Вывод картинки в конце сообщения в DLE сделать вполне даже легко — редактируется шаблон shortstory.tpl и все.
Но таким способом мы будем выводить одну и ту же картинку в конце всех анонсов новостей.
В нашем новом проекте понадобилось сделать немного по другому — в одной категории в конце поста выводить одну картинку, в другой — другую, в третьей — вообще не выводить. Да еще и сделать эти картинки ссылками внутрь новости.
Если говорить конкретнее:
- в категории «Кинотеатр-онлайн» выводим картинку с кинолентой;
- в категории «Скачать» выводим картинку с VHS-кассетой;
- в остальных категориях ничего дополнительного не выводим.
Сначала решение казалось очевидным — назначить каждой категории свой шаблон, где и прописать вывод нужных картинок. Но это срабатывает только при выводе новостей определенной категории, когда же мы просматриваем главную страницу — движок не может определить в какой категории мы находимся и использует стандартный shortstory.tpl.
Другой путь — написать простенький php-скрипт в shortstory.tpl, который будет определять текущую категорию и, в зависимости от нее, добавлять (или нет) html вывода картинки в страницу.
Прежде всего, нужно «включить» возможность включать php в шаблон. Как это сделать — можно узнать в этой статье.
Открываем shortstory.tpl и ищем место, где выводится краткая новость — это легко делается по служебному тегу {short-story}:
{short-story}
И добавляем скрипт:
';
echo(stripslashes($short_story_addon));
}
?>
Что в нем происходит?
- Обнуляем переменную с именем картинки.
- Смотрим относится ли наша новость к какой-либо из нужных нам категорий и, если да, записываем в переменную имя картинки.
- Если переменная с именем картинки не пустая, собираем и выводим нужный html — в нашем случае это картинка, являющаяся одновременно ссылкой внутрь новости.
Скрипт не тестировался при включенной опции мультикатегорий.
Возникла необходимость, решение нашел у вас. Спасибо!