Вывод собственной картинки для каждой категории в DataLife Engine

Вывод картинки в конце сообщения в DLE сделать вполне даже легко — редактируется шаблон shortstory.tpl и все.

Но таким способом мы будем выводить одну и ту же картинку в конце всех анонсов новостей.

В нашем новом проекте понадобилось сделать немного по другому — в одной категории в конце поста выводить одну картинку, в другой — другую, в третьей — вообще не выводить. Да еще и сделать эти картинки ссылками внутрь новости.

Если говорить конкретнее:

  • в категории «Кинотеатр-онлайн» выводим картинку с кинолентой;
  • в категории «Скачать» выводим картинку с VHS-кассетой;
  • в остальных категориях ничего дополнительного не выводим.

Сначала решение казалось очевидным — назначить каждой категории свой шаблон, где и прописать вывод нужных картинок. Но это срабатывает только при выводе новостей определенной категории, когда же мы просматриваем главную страницу — движок не может определить в какой категории мы находимся и использует стандартный shortstory.tpl.

Другой путь — написать простенький php-скрипт в shortstory.tpl, который будет определять текущую категорию и, в зависимости от нее, добавлять (или нет) html вывода картинки в страницу.

Прежде всего, нужно «включить» возможность включать php в шаблон. Как это сделать — можно узнать в этой статье.

Открываем shortstory.tpl и ищем место, где выводится краткая новость — это легко делается по служебному тегу {short-story}:

{short-story}

И добавляем скрипт:



'; echo(stripslashes($short_story_addon)); } ?>

Что в нем происходит?

  • Обнуляем переменную с именем картинки.
  • Смотрим относится ли наша новость к какой-либо из нужных нам категорий и, если да, записываем в переменную имя картинки.
  • Если переменная с именем картинки не пустая, собираем и выводим нужный html — в нашем случае это картинка, являющаяся одновременно ссылкой внутрь новости.

Скрипт не тестировался при включенной опции мультикатегорий.

Похожий бред:

Вывод собственной картинки для каждой категории в DataLife Engine: 1 комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Protected by WP Anti Spam