ВходИмяПароль
Автоматически входить при каждом посещении    
Регистрация
Регистрация
Войти и проверить личные сообщения
Войти и проверить личные сообщения
Список форумов ЛанМедиаСервис » Скрипт видео-каталога v.1.x

Начать новую тему   Ответить на тему
Добавление вкладки Бестселлеры На страницу 1, 2, 3  След.
Предыдущая тема :: Следующая тема  
Автор Сообщение

Илья Спесивцев

Администратор



Зарегистрирован: 26.02.2008
Сообщения: 703
Откуда: Техподдержка

blank.gif
Сообщение Добавлено: 2008-02-29 12:23 pm    Заголовок сообщения: Добавление вкладки Бестселлеры Ответить с цитатой

1. Переименовать шаблон.
2. В header.php после строки:
Код:
//Здесь, если нужно, можно переопределить javascript-функции из index.php

добавить:
Код:
        var pagescontent = new Array('page:0','page:1','page:2','page:3');
        var pagesrealcontent = new Array('page:0','','','');
        var pagestitle = new Array(SITE_TITLE, SITE_TITLE + ": Поиск",SITE_TITLE,SITE_TITLE);

        var MyPages = new Pages(
                Array("CatalogPage", "SearchPage","FilmsPage", "StartPage"),
                Array("Каталог", "Поиск", "Фильмы", "<span style='color:#887700;'>Бестселлеры</span>"),
                Array("if (document.getElementById('backbox')) document.getElementById('backbox').innerHTML = ''","if (document.getElementById('backbox')) document.getElementById('backbox').innerHTML = ''", "", "", ""),
                "PageSelector",
                "MyPages"
        )

<?php if (isset($_GET['all_bestsellers']) || ($user['Login']=='guest')) { ?>
function updateUI(newLocation,
                  historyData) {

        action = newLocation.split(":");
        for (i=0;i<3;i++){
                if (pagesrealcontent[i].length && (pagesrealcontent[i]==newLocation)){
                        document.title = pagestitle[i];
                        MyPages.select(i);
                        return;
                }
        }
        switch (action[0]){
                case '':
                        window.location = "#" + pagescontent[3];
                break;
                case 'page':
                        document.title = pagestitle[i];
                        MyPages.select(action[1]);
                        pagescontent[action[1]] = newLocation;
                        pagesrealcontent[action[1]] = newLocation;
                        setCookie ("page"+action[1], newLocation);
                break;
                case 'film':
                        DrawFilm(action[1],action[2],action[3]);
                        pagescontent[2] = newLocation;
                        pagesrealcontent[2] = newLocation;
                        setCookie ("page2", newLocation);
                break;
        }
}
<?php } ?>


3. В main.php после строки:
Код:
<!-- /Главное меню -->

добавить:
Код:
<div id="StartPage" style="display:none;padding:10px;">
        <div id="StartBox" style='margin1:10px;'>
<?php

    $result2 = mysql_query("SELECT FilmID, count(*) as c FROM hits WHERE DateHit>(NOW()-INTERVAL 70 DAY) GROUP BY FilmID");
    $filmMonthPopularity = array();
    while ($result2 && $field2 = mysql_fetch_assoc($result2)){
   $filmMonthPopularity[$field2["FilmID"]] = $field2["c"];
    }

    $sql = "SELECT ID,
               Name,
               OriginalName,
               Year,
               Poster,
               TypeOfMovie
               FROM films WHERE films.Hide=0";

       $result = mysql_query($sql);
       while ($result && $field = mysql_fetch_assoc($result)){
               $films[$field['ID']] = $field;
       }

       $result2 = mysql_query("SELECT FilmID, GenreID FROM filmgenres");
       $filmgenres = array();
       while ($result2 && $field2 = mysql_fetch_assoc($result2)){
           $filmgenres[$field2["FilmID"]][] = $field2["GenreID"];
       }

       $result2 = mysql_query("SELECT FilmID, CountryID FROM filmcountries");
       $filmcountries = array();
       while ($result2 && $field2 = mysql_fetch_assoc($result2)){
           $filmcountries[$field2["FilmID"]][] = $field2["CountryID"];
       }

       $result2 = mysql_query("SELECT ID, Name FROM genres");
       $genres = array();
       while ($result2 && $field2 = mysql_fetch_assoc($result2)){
           $genres[$field2["ID"]] = $field2["Name"];
       }

       $result2 = mysql_query("SELECT ID, Name FROM countries");
       $countries = array();
       while ($result2 && $field2 = mysql_fetch_assoc($result2)){
           $countries[$field2["ID"]] = $field2["Name"];
       }

       $optionSkipDownloaded = (isset($_GET['all_bestsellers']))? false : true;

       $downloadedFilms = array();
      if ($optionSkipDownloaded) {
              $result2 = mysql_query("SELECT FilmID FROM hits WHERE UserID={$user['ID']}");
              while ($result2 && $field2 = mysql_fetch_assoc($result2)){
                  $downloadedFilms[$field2["FilmID"]] = $field2["FilmID"];
              }
      }

      //calculate categories
      $categoryIndex = array();
      define('CATEGORY_SERIES',1);
      define('CATEGORY_COMEDY',2);
      define('CATEGORY_ACTION',3);
      define('CATEGORY_DOCUMENTARY',4);
      define('CATEGORY_ANIME',5);
      define('CATEGORY_ANIMATION',6);
      define('CATEGORY_HORROR',7);
      define('CATEGORY_FANTASY_SCFI',8);
      define('CATEGORY_DRAMA',9);

      $categoryNames = array(
              CATEGORY_SERIES => 'Сериалы',
              CATEGORY_COMEDY => 'Комедии',
              CATEGORY_ACTION => 'Боевики',
              CATEGORY_DOCUMENTARY => 'Документальные',
              CATEGORY_ANIME => 'Аниме',
              CATEGORY_ANIMATION => 'Мультфильмы',
              CATEGORY_HORROR => 'Ужасы',
              CATEGORY_FANTASY_SCFI => 'Фантастика/фэнтези',
              CATEGORY_DRAMA => 'Драма/мелодрама'
      );

      foreach ($films as $id => $film) {
              $weight = isset($filmMonthPopularity[$id])? $filmMonthPopularity[$id] : 0;
              if (!isset($downloadedFilms[$id])){
                      if ($film['TypeOfMovie']=='Худ. телесериал') {
                              $categoryIndex[CATEGORY_SERIES][$id] = $weight;
                      } elseif (@in_array(23, $filmgenres[$id])) {
                              $categoryIndex[CATEGORY_DOCUMENTARY][$id] = $weight;
                      } elseif (@in_array(25, $filmgenres[$id])) {
                              $categoryIndex[CATEGORY_ANIME][$id] = $weight;
                      } elseif (@in_array(13, $filmgenres[$id])) {
                              $categoryIndex[CATEGORY_ANIMATION][$id] = $weight;
                      } elseif (@in_array(4, $filmgenres[$id]) && !@in_array(3, $filmgenres[$id]) && !@in_array(7, $filmgenres[$id])) {
                              $categoryIndex[CATEGORY_COMEDY][$id] = $weight;
                      } elseif ((@in_array(10, $filmgenres[$id]) || @in_array(5, $filmgenres[$id]))) {
                              $categoryIndex[CATEGORY_FANTASY_SCFI][$id] = $weight;
                      } elseif (@in_array(7, $filmgenres[$id])) {
                              $categoryIndex[CATEGORY_HORROR][$id] = $weight;
                      } elseif (@in_array(6, $filmgenres[$id]) || @in_array(3, $filmgenres[$id]) || @in_array(18, $filmgenres[$id])) {
                              $categoryIndex[CATEGORY_ACTION][$id] = $weight;
                      } elseif ((@in_array(2, $filmgenres[$id]) || @in_array(17, $filmgenres[$id])) && !@in_array(18, $filmgenres[$id])) {
                              $categoryIndex[CATEGORY_DRAMA][$id] = $weight;
                      }
              }
      }

       $selectedFilms = array();
       $categoriesWeight = array();
       foreach ($categoryIndex as $categoryId => $categoryContent) {
               arsort($categoryContent);
               $c = 0;
               foreach ($categoryContent as $id=>$weight) {
                       $c++;
                       if ($c>5) break;
                       @$categoriesWeight[$categoryNames[$categoryId]] += $weight;
                       $film = $films[$id];
                       $OriginalName = $film["OriginalName"];
                       $str = "";
                       for($i=0;$i<strlen($OriginalName);$i++){
                               $str .= "&#".ord($OriginalName{$i}).";";
                       }
                       $posters = preg_split("/(\r\n|\r|\n)/", $film["Poster"]);
                       $film["Poster"] = $posters[0] ? $posters[0] : "templates/{$config['template']}/images/noposter.jpg";
                       $film["OriginalName"] = $str;
                       $film["OriginalName1252"] = $OriginalName;
                       $thisFilmCountries = array();
                       if (isset($filmcountries[$id])) {
                               foreach ($filmcountries[$id] as $counryId) {
                                       $thisFilmCountries[] = $countries[$counryId];
                               }
                       }
                       $film["countries"] = implode(" / ", $thisFilmCountries);
                       $selectedFilms[$categoryNames[$categoryId]][] = $film;
               }
       }
       arsort($categoriesWeight);
       $_RESULT['categories'] = $categoriesWeight;
       $_RESULT['selected_films'] = $selectedFilms;

    echo "<br><table border='0' width='100%' cellspacing='15'>";
    foreach (array_keys($categoriesWeight) as $categoryName) {
        echo "<tr>";
        echo "<td colspan=5><span class='sectionheader' >$categoryName</span><br><img src='images/hr2.gif' width='327' height='1'><br><td>";
        echo "</tr>";
        echo "<tr>";
        foreach ($selectedFilms[$categoryName] as $film) {
            echo "<td align='center' width='20%' style='padding-top:10px; border: 1px dotted silver; background-color:#F5F5F5;' valign='top'>";
       echo "<a href='#film:{$film['ID']}:1:0'><img width='100px' height='150px' src='{$film['Poster']}' border='0'><br><b>{$film['Name']}</b><p style='margin:2px;margin-bottom:5px;color:gray'>{$film['OriginalName']} ({$film['Year']})</p></a>";
            echo "</td>";
        }
        echo "</tr>";
    }
    echo "</table>";
    if (!isset($_GET['all_bestsellers']) && ($user['Login']!='guest')) echo "<br><div style='text-align:center;color:gray'>Из списка убраны фильмы, которые вы уже качали. Чтобы просмотреть список полностью нажмите <a href='?all_bestsellers' target='_blank'>здесь</a></div>";
?>
   </div>
</div>

3. В styles.css найти строку
Код:
#CatalogPage, #SearchPage, #FilmsPage {

и заменить ее на
Код:
#StartPage, #CatalogPage, #SearchPage, #FilmsPage {


Последний раз редактировалось: Илья Спесивцев (2008-07-09 07:25 am), всего редактировалось 3 раз(а)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора

PrX





Зарегистрирован: 29.02.2008
Сообщения: 1


blank.gif
Сообщение Добавлено: 2008-02-29 18:57 pm    Заголовок сообщения: Ответить с цитатой

Для тех кто хочет чтоб первой открывалась вкладка с фильмами а не с бестселлерами нужно в файле main.php изменить
Код:
        switch (action[0]){
                case '':
                        window.location = "#" + pagescontent[3];


на
Код:

        switch (action[0]){
                case '':
                        window.location = "#" + pagescontent[0];
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Danphil 





Зарегистрирован: 29.02.2008
Сообщения: 15
Откуда: Москва

russia.gif
Сообщение Добавлено: 2008-03-01 11:32 am    Заголовок сообщения: Ответить с цитатой

Можно сделать чтобы новую вкладку "Бестеллеры" не видели Гости? Или допустим для них там отображалась фраза

"Только зарегистрированные пользователи могут создавать закладки.
Зарегистрируйтесь
или войдите под своим логином"

как сделанно для вкладки "Фильмы"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора

Константин 





Зарегистрирован: 29.02.2008
Сообщения: 6


russia.gif
Сообщение Добавлено: 2008-03-01 11:41 am    Заголовок сообщения: Ответить с цитатой

Да, у меня тоже гостю разрешено заходить и качать фильмы, а в бестселлерах показываются по-умолчанию еще не скачанные гостем фильмы, поэтому там присутствуют только самые непопулярные фильмы...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение ICQ Number

Илья Спесивцев

Администратор



Зарегистрирован: 26.02.2008
Сообщения: 703
Откуда: Техподдержка

blank.gif
Сообщение Добавлено: 2008-03-01 13:06 pm    Заголовок сообщения: Ответить с цитатой

Тогда проще заменить:
Код:
$optionSkipDownloaded = (isset($_GET['all_bestsellers']))? false : true;

на
Код:
$optionSkipDownloaded = false;

и удалить внизу:
Код:
   if (!isset($_GET['all_bestsellers']) && ($user['Login']!='guest')) echo "<br><div style='text-align:center;color:gray'>Из списка убраны фильмы, которые вы уже качали. Чтобы просмотреть список полностью нажмите <a href='?all_bestsellers' target='_blank'>здесь</a></div>";
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора

Instruktor 





Зарегистрирован: 29.02.2008
Сообщения: 89


russia.gif
Сообщение Добавлено: 2008-03-03 08:26 am    Заголовок сообщения: Ответить с цитатой

Дайте пожалуйста разъяснение логики работы мода.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Илья Спесивцев

Администратор



Зарегистрирован: 26.02.2008
Сообщения: 703
Откуда: Техподдержка

blank.gif
Сообщение Добавлено: 2008-03-03 09:45 am    Заголовок сообщения: Ответить с цитатой

vadim@m9-uz.ru писал(а):
Дайте пожалуйста разъяснение логики работы мода.

Отбирает клики по фильмам за последние 70 дней, сортирует фильмы по группам, выводит для каждой группы наиболее популярные фильмы.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора

жека Славин





Зарегистрирован: 09.03.2008
Сообщения: 11


blank.gif
Сообщение Добавлено: 2008-03-09 23:12 pm    Заголовок сообщения: Ответить с цитатой

Цитата:
Отбирает клики по фильмам за последние 70 дней, сортирует фильмы по группам, выводит для каждой группы наиболее популярные фильмы.


проблема такая что в эксплоере все нормально работает а в мазиле все сдвинуто в право, у меня такая же была проблема с faq. что делать?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Илья Спесивцев

Администратор



Зарегистрирован: 26.02.2008
Сообщения: 703
Откуда: Техподдержка

blank.gif
Сообщение Добавлено: 2008-03-10 08:29 am    Заголовок сообщения: Ответить с цитатой

жека Славин писал(а):

проблема такая что в эксплоере все нормально работает а в мазиле все сдвинуто в право, у меня такая же была проблема с faq. что делать?

Не должно ничего смещаться.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора

Diver 





Зарегистрирован: 09.03.2008
Сообщения: 96


russia.gif
Сообщение Добавлено: 2008-03-10 15:32 pm    Заголовок сообщения: Ответить с цитатой

Илья Спесивцев писал(а):
жека Славин писал(а):

проблема такая что в эксплоере все нормально работает а в мазиле все сдвинуто в право, у меня такая же была проблема с faq. что делать?

Не должно ничего смещаться.


У меня такая же проблема (смещение) в опере 9.50 beta2 (linux). В других браузерах не проверял. Пришлось отключить этот мод Sad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number

жека Славин





Зарегистрирован: 09.03.2008
Сообщения: 11


blank.gif
Сообщение Добавлено: 2008-03-10 18:14 pm    Заголовок сообщения: Ответить с цитатой

Илья Спесивцев писал(а):
жека Славин писал(а):

проблема такая что в эксплоере все нормально работает а в мазиле все сдвинуто в право, у меня такая же была проблема с faq. что делать?

Не должно ничего смещаться.

можно его в отдельный файл сделать?Чтобы как модуль присоединялся или как я описывал в топике система FAQ. Только он что то не работает
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Илья Спесивцев

Администратор



Зарегистрирован: 26.02.2008
Сообщения: 703
Откуда: Техподдержка

blank.gif
Сообщение Добавлено: 2008-03-10 20:22 pm    Заголовок сообщения: Ответить с цитатой

жека Славин писал(а):
Илья Спесивцев писал(а):
жека Славин писал(а):

проблема такая что в эксплоере все нормально работает а в мазиле все сдвинуто в право, у меня такая же была проблема с faq. что делать?

Не должно ничего смещаться.

можно его в отдельный файл сделать?Чтобы как модуль присоединялся или как я описывал в топике система FAQ. Только он что то не работает

Это же не плагин, а модификация. Нет никакой гарантии, что она будет работать как ожидается, тем более одновременно с другой модификацией.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора

жека Славин





Зарегистрирован: 09.03.2008
Сообщения: 11


blank.gif
Сообщение Добавлено: 2008-03-11 17:30 pm    Заголовок сообщения: Ответить с цитатой

Илья Спесивцев писал(а):
жека Славин писал(а):
Илья Спесивцев писал(а):
жека Славин писал(а):

проблема такая что в эксплоере все нормально работает а в мазиле все сдвинуто в право, у меня такая же была проблема с faq. что делать?

Не должно ничего смещаться.

можно его в отдельный файл сделать?Чтобы как модуль присоединялся или как я описывал в топике система FAQ. Только он что то не работает

Это же не плагин, а модификация. Нет никакой гарантии, что она будет работать как ожидается, тем более одновременно с другой модификацией.

так систему FAQ я отдельно написал в одтельном файлы и просто линку на него прописал
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Instruktor 





Зарегистрирован: 29.02.2008
Сообщения: 89


russia.gif
Сообщение Добавлено: 2008-03-14 10:18 am    Заголовок сообщения: Ответить с цитатой

Вот от чего мне логика показалась непонятной:

Как видно мод работает с таблицей hits а у меня в ней нет ни одной записи за 2008 год, хотя внешне все функиции каталога работают.

Что за hits и отчего она перестала обновляться?
Из-за неё бестселлеры у меня совсем не бестселлеры Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение

Илья Спесивцев

Администратор



Зарегистрирован: 26.02.2008
Сообщения: 703
Откуда: Техподдержка

blank.gif
Сообщение Добавлено: 2008-03-14 12:30 pm    Заголовок сообщения: Ответить с цитатой

Instruktor  писал(а):
Вот от чего мне логика показалась непонятной:

Как видно мод работает с таблицей hits а у меня в ней нет ни одной записи за 2008 год, хотя внешне все функиции каталога работают.

Что за hits и отчего она перестала обновляться?
Из-за неё бестселлеры у меня совсем не бестселлеры Smile

Да, hits не заполняется при $config['hitmethod'] = 1 или 3
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов ЛанМедиаСервис » Скрипт видео-каталога v.1.x Часовой пояс: GMT
На страницу 1, 2, 3  След.
Страница 1 из 3

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы