Прикрепляем топик без плагина
В LS существует множество возможностей для реализации самого разного функционала как с использованием плагинов, так и без них.
Допустим мы хотим реализовать следующий функционал: на главной странице для гостей сверху всегда выводится определенный топик. Конечно мы можем написать под эту задачу несложный плагин, повесить его на хук в шаблоне и радоваться, но мы поступим проще (на все про все уйдет 4 строчки c учетом замечаний kpoxas три строчки). Сделаем все в шаблоне, написав при этом минимальное кол-во кода. Итак.
Нас интересует главная страница, а значит экшен Index, шаблон вывода которого находится в файле templates/skin/synio/actions/ActionIndex/index.tpl который и будем изменять.
Сразу приведу код
Здесь будем считать, что синтаксис Smarty вам более или менее знаком.
$LS — в шаблонах к ядру мы обращаемся через эту переменную.
LS::CurUsr() — эквивалент $LS->User_GetUserCurrent() — эта конструкция возвращает сущность авторизованного пользователя. Нам нужно чтобы топик выводился только гостям, поэтому перед ней указываем символ "!"
Router::GetActionEvent() — так же проверяем чтобы не был передан Event, таким образом топик будет выводиться только на первой странице.
$LS->Topic_GetTopicById(8) — здесь мы используем функцию GetTopicById для того чтобы получить топик с id = 8. Идентификатор нужного топика легко определить, для этого можно либо посмотреть в БД, либо посмотреть на ссылку ведущую на страницу его редактирования.
{include file='topic_topic.tpl' oTopic=$oTopic} — а тут мы подключаем дефолтный шаблон для вывода топиков, файл которого находится по адресу templates/skin/synio/topic_topic.tpl и передаем в нее полученный ранее топик (если тип топика отличается, например это фотосет, то нужно использовать соответствующий шаблон). Здесь нужно добавить, что можно ограничиться например выводом только текста топика, вызвав {$oTopic->getText()}
P.S. Честно говоря использовать подобные конструкции в шаблоне не является хорошей практикой, но если очень хочется, то можно ;) Ни в коем случае не призываю так делать, просто показал один из способов получить желаемый результат без плагина.
Допустим мы хотим реализовать следующий функционал: на главной странице для гостей сверху всегда выводится определенный топик. Конечно мы можем написать под эту задачу несложный плагин, повесить его на хук в шаблоне и радоваться, но мы поступим проще (
Нас интересует главная страница, а значит экшен Index, шаблон вывода которого находится в файле templates/skin/synio/actions/ActionIndex/index.tpl который и будем изменять.
Сразу приведу код
{if !LS::CurUsr() and !Router::GetActionEvent()} {include file='topic_topic.tpl' oTopic=$LS->Topic_GetTopicById(8)} {/if}Да-да, больше ничего не нужно, результат достигнут ;)
Здесь будем считать, что синтаксис Smarty вам более или менее знаком.
$LS — в шаблонах к ядру мы обращаемся через эту переменную.
LS::CurUsr() — эквивалент $LS->User_GetUserCurrent() — эта конструкция возвращает сущность авторизованного пользователя. Нам нужно чтобы топик выводился только гостям, поэтому перед ней указываем символ "!"
Router::GetActionEvent() — так же проверяем чтобы не был передан Event, таким образом топик будет выводиться только на первой странице.
$LS->Topic_GetTopicById(8) — здесь мы используем функцию GetTopicById для того чтобы получить топик с id = 8. Идентификатор нужного топика легко определить, для этого можно либо посмотреть в БД, либо посмотреть на ссылку ведущую на страницу его редактирования.
{include file='topic_topic.tpl' oTopic=$oTopic} — а тут мы подключаем дефолтный шаблон для вывода топиков, файл которого находится по адресу templates/skin/synio/topic_topic.tpl и передаем в нее полученный ранее топик (если тип топика отличается, например это фотосет, то нужно использовать соответствующий шаблон). Здесь нужно добавить, что можно ограничиться например выводом только текста топика, вызвав {$oTopic->getText()}
P.S. Честно говоря использовать подобные конструкции в шаблоне не является хорошей практикой, но если очень хочется, то можно ;) Ни в коем случае не призываю так делать, просто показал один из способов получить желаемый результат без плагина.
Профессиональное оборудование Cisco TelePresence
13 комментариев
Это исправлено уже
и рсс?
и с кешем все ок?
везде работает?
А что есть «хорошая практика»?
Прикрепление топика есть catalog.livestreetcms.com/addon/view/83/
Полезная отсылка. Все посмотрел. Надо теперь подумать как это стыкуется с livestreet 2.0, которую я настраиваю.
catalog.livestreetcms.com/addon/view/83/
Или
1)Написать автору тут livestreet.ru/profile/kerby/
2)Раздел доработок-разработок job.livestreetcms.com/
Воспользовался поиском нашел.
Единственный минус топик не обозначить что он закрепление. но это уже к разработчику шаблона