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

DLE Перелинковка сезонов сериала при посезонной публикации материалов

Ботяра

Забанен
Регистрация
10 Окт 2015
Сообщения
0
Рейтинг реакций
-155
Баллы
0
1/3
Автор темы
1590137926_2020-05-22_15-57-23.png
Несколько лет назад использовал модуль seasons от LisER. Но всё меньше стараюсь использовать различного рода хаков, и если есть возможность это сделать стандартными средствами DLE - то лучше этим и воспользоваться. Использовал одно время тег custom, но сортировка в нем неправильная, если >10 сезонов (на скрине - симпсоны).

В полной новости в месте вывода прописываем:
Код:
{custom xfields="[xfvalue_id_kinopoisk]" template="serial_all_links" limit="35" order="title" sort="asc" cache="yes"}

Шаблон serial_all_links.tpl оформляете по своему усмотрению. Всё бы ничего, но в данном способе есть один минус, его видно на скрине:
1590137003_2020-05-22_15-42-31.png
Как видно, если сезонов больше 10, то сортировка будет идти 1 10 11... 2 3 4 и т.д...

Несколько лет висел данный код с неправильной сортировкой, да и перелинковка чисто для ПС, но потом решил подправить и сделать это тегом custom к сожалению не получилось.

Здесь на помощь пришёл модуль DLE-BlockPro от ПафНутиЙ. Стоит заметить, что раньше он был платный, сейчас его может скачать любой желающий.

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

В итоге тег custom для перелинковки я заменил на:
Код:
{include file="engine/modules/base/blockpro.php?template=blockpro/serial_all_links&limit=35&xfSearch=id_kinopoisk|[xfvalue_kpid]&sort=xf|nurseason&order=old"}

xf|nurseason - это доп поле nurseason, в котором указан сезон, который выводится в открытой новости.
blockpro/serial_all_links - шаблон serial_all_links.tpl в папке blockpro шаблона.
xfSearch=id_kinopoisk - это доп поле ID кинопоиска, для выборки новостей с одинаковым значением.

У меня в итоге содержимое шаблона blockpro/serial_all_links.tpl получилось таким:
Код:
{var $newsCount = $list|count}
{if $newsCount > 1}    {foreach $list as $el}    <a href="{$el.url}" class="seriallink button">{$el.xfields.season}</a>    {/foreach}
{/if}

В результате за несколько лет я наконец таки настроил нормальную сортировку перелинковки сериалов, если у сериала больше 10 сезонов (просто не хотел покупать отдельный модуль, потому что через кастом, хоть и криво, но перелинковка для ПС выводилась в каждом сезоне).

Источник
 
Последнее редактирование:
"есть возможность это сделать стандартными средствами DLE "
А как это делается?
 
Автор темы
"есть возможность это сделать стандартными средствами DLE "
А как это делается?
2020-05-23_01-35-13.png

вроде бы всё написал 🙂

35 - это количество сезонов, просто у симпсонов их больше 30.
 
byroot, а это когда много новостей с одним ID кинопоиска, но в каждой новости другие сезоны) сгодится
 
Шаблон serial_all_links.tpl оформляете по своему усмотрению.
простите может я туплю, а как реализовать так что бы название выводилось не название всех новостей, а Сезон 1, Сезон2 и тд
 
Автор темы
простите может я туплю, а как реализовать так что бы название выводилось не название всех новостей, а Сезон 1, Сезон2 и тд
у меня эти данные записаны в доп поле season и выводятся тегом {$el.xfields.season} в шаблоне, можешь прописать там что угодно, хоть и название сериала добавить к каждуму сезону.
 
Иногда есть нюансы, у сериалов сезоны идут с разными кинопоискId, как тогда ваши модули будут их находить? Лично я себе делал модуль, где сам создаешь связки, типа коллекций или ручных перелинковок, а в сериале указываешь ID этой связки. Да, при создании постов есть дополнительные телодвижения, но зато можно связать все что хочешь.
 
Автор темы
Иногда есть нюансы, у сериалов сезоны идут с разными кинопоискId,
Балансеры такого не учитывают. В данном случае просто можно через custom выводить новости для перелинковки, а в самих новостях указывать ID Новостей чтобы была перелинковка. Ранее так делал на одном сайте для связи всех частей фильмов.
 

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

Назад
Сверху