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

Несколько лет назад использовал модуль 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 оформляете по своему усмотрению. Всё бы ничего, но в данном способе есть один минус, его видно на скрине:

Как видно, если сезонов больше 10, то сортировка будет идти 1 10 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-blockpro-master.zip
[508.3 Kb] (cкачиваний: 65)
Скачать последнюю версию BlockPro с гитхаба
Похожие статьи:
Комментарии: