Редактор темы

Разделение списка категорий фильма по видам (жанры, страны...)

DLEPlugins

Кодер
Регистрация
29 Ноя 2015
Сообщения
1.601
Рейтинг реакций
968
Баллы
113
1/3
Автор темы
Необходима доработка, так что пока не ставьте хак себе

category_hack.jpg

Продумано по просьбе земляка @sas7110 + всем любителям добавлять фильм в сотню категорий посвящается.

Кому это пригодится? Тем, кто жанры, страны, год выхода и тематику (так называемые коллекции или подборки) вбивает в качестве категорий новости. В конечном результате все категории, к которой принадлежит фильм выводится хаотично одной сплошной строчкой. Данный хак позволит разделить категории по видам (типам) и выводить нужное в нужном месте при помощи новых тегов.

Хак протестирован на DLE 11.1, работать должен на версиях ниже, если у вас не совпадают строчки кода напишите в комментарии версию вашего DLE, я напишу отдельно правки под эту версию. И так, начнем веселуху...

1. Открываем следующие файлы - /engine/modules/show.custom.php, /engine/modules/show.full.php, /engine/modules/show.short.php и /engine/modules/topnews.php

Ищем код
PHP:
foreach ( $cat_list as $element ) {
                 
                if( $allow_list[0] != "all" AND !in_array( $element, $allow_list ) ) $perm = 0;
             
                if( $not_allow_cats[0] != "" AND in_array( $element, $not_allow_cats ) ) $perm = 0;
                 
                if( $element ) {
                    $my_cat[] = $cat_info[$element]['name'];
                    if( $config['allow_alt_url'] ) $my_cat_link[] = "<a href=\"" . $config['http_home_url'] . get_url( $element ) . "/\">{$cat_info[$element]['name']}</a>";
                    else $my_cat_link[] = "<a href=\"$PHP_SELF?do=cat&amp;category={$cat_info[$element]['alt_name']}\">{$cat_info[$element]['name']}</a>";
                }
            }

меняем на код

PHP:
foreach ( $cat_list as $element ) {
             
                if(in_array($element,array(1,8))) {
                 
                if( $allow_list[0] != "all" AND !in_array( $element, $allow_list ) ) $perm = 0;
             
                if( $not_allow_cats[0] != "" AND in_array( $element, $not_allow_cats ) ) $perm = 0;
                 
                if( $element ) {
                    $my_cat[] = $cat_info[$element]['name'];
                    if( $config['allow_alt_url'] ) $my_cat_link[] = "<a href=\"" . $config['http_home_url'] . get_url( $element ) . "/\">{$cat_info[$element]['name']}</a>";
                    else $my_cat_link[] = "<a href=\"$PHP_SELF?do=cat&amp;category={$cat_info[$element]['alt_name']}\">{$cat_info[$element]['name']}</a>";
                }
                }
             
                if(in_array($element,array(2,3))) {
                 
                if( $allow_list[0] != "all" AND !in_array( $element, $allow_list ) ) $perm = 0;
             
                if( $not_allow_cats[0] != "" AND in_array( $element, $not_allow_cats ) ) $perm = 0;
                 
                if( $element ) {
                    $my_cat[] = $cat_info[$element]['name'];
                    if( $config['allow_alt_url'] ) $my_genre_link[] = "<a href=\"" . $config['http_home_url'] . get_url( $element ) . "/\">{$cat_info[$element]['name']}</a>";
                    else $my_genre_link[] = "<a href=\"$PHP_SELF?do=cat&amp;category={$cat_info[$element]['alt_name']}\">{$cat_info[$element]['name']}</a>";
                }
                }
             
                if(in_array($element,array(4,5))) {
                 
                if( $allow_list[0] != "all" AND !in_array( $element, $allow_list ) ) $perm = 0;
             
                if( $not_allow_cats[0] != "" AND in_array( $element, $not_allow_cats ) ) $perm = 0;
                 
                if( $element ) {
                    $my_cat[] = $cat_info[$element]['name'];
                    if( $config['allow_alt_url'] ) $my_country_link[] = "<a href=\"" . $config['http_home_url'] . get_url( $element ) . "/\">{$cat_info[$element]['name']}</a>";
                    else $my_country_link[] = "<a href=\"$PHP_SELF?do=cat&amp;category={$cat_info[$element]['alt_name']}\">{$cat_info[$element]['name']}</a>";
                }
                }

              
                if(in_array($element,array(9,10))) {
                 
                if( $allow_list[0] != "all" AND !in_array( $element, $allow_list ) ) $perm = 0;
             
                if( $not_allow_cats[0] != "" AND in_array( $element, $not_allow_cats ) ) $perm = 0;
                 
                if( $element ) {
                    $my_cat[] = $cat_info[$element]['name'];
                    if( $config['allow_alt_url'] ) $my_year_link[] = "<a href=\"" . $config['http_home_url'] . get_url( $element ) . "/\">{$cat_info[$element]['name']}</a>";
                    else $my_year_link[] = "<a href=\"$PHP_SELF?do=cat&amp;category={$cat_info[$element]['alt_name']}\">{$cat_info[$element]['name']}</a>";
                }
                }
             
                if(in_array($element,array(6,7))) {
                 
                if( $allow_list[0] != "all" AND !in_array( $element, $allow_list ) ) $perm = 0;
             
                if( $not_allow_cats[0] != "" AND in_array( $element, $not_allow_cats ) ) $perm = 0;
                 
                if( $element ) {
                    $my_cat[] = $cat_info[$element]['name'];
                    if( $config['allow_alt_url'] ) $my_collection_link[] = "<a href=\"" . $config['http_home_url'] . get_url( $element ) . "/\">{$cat_info[$element]['name']}</a>";
                    else $my_collection_link[] = "<a href=\"$PHP_SELF?do=cat&amp;category={$cat_info[$element]['alt_name']}\">{$cat_info[$element]['name']}</a>";
                }
                }
             
             
            }

Теперь важно правильно проставить id своих категорий.
В этой строчке
PHP:
if(in_array($element,array(1,8))) {
1,8 меняем на список id через запятую без пробелов таких категорий как "фильмы", "сериалы", "мультфильмы", "мультсериалы", "трейлеры", "новости" и тд и тп. То есть тут указываем id основных ваших категорий.

В этой
PHP:
if(in_array($element,array(2,3))) {
2,3 меняем на список id через запятую без пробелов таких категорий как "комедии", "боевики", "ужасы" и тд. Т.е. категорий с жанрами.

В этой
PHP:
if(in_array($element,array(4,5))) {
4,5 меняем на список id через запятую без пробелов таких категорий как "сша", "россия", "китай" и тд. Т.е. категорий со странами.

В этой
PHP:
if(in_array($element,array(9,10))) {
9,10 меняем на список id через запятую без пробелов таких категорий как "2017", "2016", "2015" и тд. Т.е. категорий с годом выпуска.

В этой
PHP:
if(in_array($element,array(6,7))) {
6,7 меняем на список id через запятую без пробелов таких категорий как "про вампиров", "про самураев", "про супергероев" и тд. Т.е. категорий с подборками (коллекциями) фильмов.

Внимательно перепроверьте правильность указанных id категорий через запятую. Если все
правильно, значит движемся дальше

2. В файлах /engine/modules/show.custom.php, /engine/modules/show.full.php и /engine/modules/topnews.php ищем код
PHP:
$my_cat_link = get_categories( $cat_list[0], $config['category_separator'] );
меняем его на
PHP:
$my_cat_link = "<a href=\"" . $config['http_home_url'] . $cat_info[$cat_list[0]]['alt_name'] . "/\">{$cat_info[$cat_list[0]]['name']}</a>";
         
            $my_genre_link = "<a href=\"" . $config['http_home_url'] . $cat_info[$cat_list[0]]['alt_name'] . "/\">{$cat_info[$cat_list[0]]['name']}</a>";
         
            $my_country_link = "<a href=\"" . $config['http_home_url'] . $cat_info[$cat_list[0]]['alt_name'] . "/\">{$cat_info[$cat_list[0]]['name']}</a>";

            $my_year_link = "<a href=\"" . $config['http_home_url'] . $cat_info[$cat_list[0]]['alt_name'] . "/\">{$cat_info[$cat_list[0]]['name']}</a>";
         
            $my_collection_link = "<a href=\"" . $config['http_home_url'] . $cat_info[$cat_list[0]]['alt_name'] . "/\">{$cat_info[$cat_list[0]]['name']}</a>";

В файле /engine/modules/show.short.php ищем код
PHP:
$my_cat_link = get_categories( $cat_list[0], $config['category_separator']);
меняем его на
PHP:
$my_cat_link = "<a href=\"" . $config['http_home_url'] . $cat_info[$cat_list[0]]['alt_name'] . "/\">{$cat_info[$cat_list[0]]['name']}</a>";
         
            $my_genre_link = "<a href=\"" . $config['http_home_url'] . $cat_info[$cat_list[0]]['alt_name'] . "/\">{$cat_info[$cat_list[0]]['name']}</a>";
         
            $my_country_link = "<a href=\"" . $config['http_home_url'] . $cat_info[$cat_list[0]]['alt_name'] . "/\">{$cat_info[$cat_list[0]]['name']}</a>";

            $my_year_link = "<a href=\"" . $config['http_home_url'] . $cat_info[$cat_list[0]]['alt_name'] . "/\">{$cat_info[$cat_list[0]]['name']}</a>";
         
            $my_collection_link = "<a href=\"" . $config['http_home_url'] . $cat_info[$cat_list[0]]['alt_name'] . "/\">{$cat_info[$cat_list[0]]['name']}</a>";

3. Открываем файлы /engine/modules/show.full.php и /engine/modules/show.short.php и ищем в них код
PHP:
$news_find = array ('{comments-num}' => number_format($row['comm_num'], 0, ',', ' '), '{views}' => number_format($row['news_read'], 0, ',', ' '), '{category}' => $my_cat, '{link-category}' => $my_cat_link, '{news-id}' => $row['id'] );
меняем на код
PHP:
$news_find = array ('{comments-num}' => number_format($row['comm_num'], 0, ',', ' '), '{views}' => number_format($row['news_read'], 0, ',', ' '), '{category}' => $my_cat, '{link-category}' => $my_cat_link, '{link-genre}' => $my_genre_link, '{link-country}' => $my_country_link, '{link-year}' => $my_year_link, '{link-collection}' => $my_collection_link, '{news-id}' => $row['id'] );

4. Теперь в полной и краткой новости в теге {link-category} будут выводиться ваши основные категории фильма и вам доступны новые теги:
{link-genre} - выведет категории с жанрами
{link-country} - выведет категории со странами
{link-year} - выведет категории с годом выхода
{link-collection} - выведет категории подборок (коллекций), к которым принадлежит новость.

Вот и сказочке конец, а кто слушал молодец. Всем опробовавшим просьба сообщить в комментариях работает ли у вас.

Демо - оцените мое уник описание 😉

Желающим отблагодарить "на пиво" и мотивировать меня на другие бесплатности для вас мои кошельки вебмани:

Рубли - R417794992142
Гривни - U357368699010
$ - Z244912848144
 
Последнее редактирование:
Ебать, нахуя такая портянка ? Там в массив записываешь и все
 
@DomiTori, новые таланты. следующий талан чебурашка,с его помощью я на 90% избавился от спама в коментах
 
Автор темы
Последнее редактирование:
придется писать на все категории описании?
нужно ли вообще это?
 
В первую очередь спасибо!
и просьба, можно упростить что-ли, т.е. как пример, делаю как сказано выше только для my_genre_link ( {link-genre} ),а всё другое, чьи id сюда не записал, выводится стандартным тегом (или другим но одним, т.е. без необходимости перечислять остальные категории)!
 
4 раза переделал и что то не срастается
upload_2016-10-17_2-49-30.png
upload_2016-10-17_2-50-59.png
 
Автор темы
Нихуя вы завернули )))) catlist без правок все разделяет (-_-)
 
А не проще ли бы было разделить категории на типы, к примеру год - 1, страна - 2, жанр - 3, занести изменения в базу, и потом делать фильтр через массив, зачем такие страшные вещи писать 😀
 
[catlist=1]2014[/catlist]
[catlist=2]2013[/catlist]
[catlist=3]2012[/catlist]

catlist - id категории
Внутри то что отображать
И так же с жанрами! И будет выводить че надо и куда надо!
 
ну ТС попросил кто то намутить, он намутил, теперь выложил тут, че уж )) спс канечно )
 
Автор темы
ну ТС попросил кто то намутить, он намутил, теперь выложил тут, че уж )) спс канечно )
Так все и было. Мне самому этот хак не нужен. В дле есть доп поля, нах извращаться над движком) Готовлю свой первый киносайт, реализовую на нем все задуманное. Как доделаю выставлю на критику, интересно общественное мнение будет выслушать. Уже прикидываю как геймер обосрет, лишний раз доказывая сам себе что он лучше всех нас нюбов необразованных. И будет срач как в былые времена😀
 
Последнее редактирование:
Автор темы
а как это сделать не подскажешь?
не скажет. его фишка в том, чтобы сказать "я могу лучше", при этом это пустые слова. его человек месяц просил уделить пять минут своего драгоценного времени и сделать (платно) это разделение. Не дождавшись попросил меня помочь.
 
вот модули стоят,может они что делают. больше не чего не делал
upload_2016-10-17_14-44-38.png
 
по позже попробую 6 раз, если не получится буду делать как Жека сказал
[catlist=1]2014[/catlist]
[catlist=2]2013[/catlist]
[catlist=3]2012[/catlist]
 

Похожие темы Последние темы Популярные темы

Назад
Сверху