Выводим топики из текущего блога
Всем привет!
Появилась задача вывести на странице топика, к примеру, после комментариев, топики из текущего блога.
Т.е. читая топик из блога «Сайты на LiveStreet», в конце топика видим список топиков (через topic_list) из этого же блога.
Спустя какое-то время удалось это сделать через метод GetTopicsByBlog().
Написал в шаблоне (в любом файле, к примеру, в конце comment_tree.tpl или в своем tpl)(да, знаю, что так нельзя) примерно такое:
Дальше идем в topic_list.tpl для того, чтобы убрать дубляж (чтобы в списке топиков не выводился тот, который читаем). Находим этот цикл:
Изменяем его на это (добавил переменную для текущего топика, не знаю, может есть стационарная):
В результате должно получится так, что на странице топика, после комментариев будет выводиться 4 последних топика из текущего блога. Если нужны топики из конкретного блога, то необходимо заменить
Появилась задача вывести на странице топика, к примеру, после комментариев, топики из текущего блога.
Т.е. читая топик из блога «Сайты на LiveStreet», в конце топика видим список топиков (через topic_list) из этого же блога.
Спустя какое-то время удалось это сделать через метод GetTopicsByBlog().
Написал в шаблоне (в любом файле, к примеру, в конце comment_tree.tpl или в своем tpl)
{assign var="oBlog" value=$oTopic->getBlog()} {assign var="aTopics" value=$LS->Topic_GetTopicsByBlog($oBlog,1,4)} {assign var="aTopics" value=$aTopics.collection} {include file='topic_list.tpl'}
Дальше идем в topic_list.tpl для того, чтобы убрать дубляж (чтобы в списке топиков не выводился тот, который читаем). Находим этот цикл:
{foreach from=$aTopics item=oTopic} {if $LS->Topic_IsAllowTopicType($oTopic->getType())} {assign var="sTopicTemplateName" value="topic_`$oTopic->getType()`.tpl"} {include file=$sTopicTemplateName bTopicList=true} {/if} {/foreach}
Изменяем его на это (добавил переменную для текущего топика, не знаю, может есть стационарная):
{if $oTopic}{$CurrTopic=$oTopic->getId()}{/if} {foreach from=$aTopics item=oTopic} {if !$oTopic || $oTopic->getId()!=$CurrTopic} {if $LS->Topic_IsAllowTopicType($oTopic->getType())}{assign var="sTopicTemplateName" value="topic_`$oTopic->getType()`.tpl"} {include file=$sTopicTemplateName bTopicList=true}{/if} {/if} {/foreach}
В результате должно получится так, что на странице топика, после комментариев будет выводиться 4 последних топика из текущего блога. Если нужны топики из конкретного блога, то необходимо заменить
{assign var="aTopics" value=$LS->Topic_GetTopicsByBlog($oBlog,1,4)}на это
{assign var="aTopics" value=$LS->Topic_GetTopicsByBlogId(BLOG_ID, 1, 10, array ('blog'), false)}где BLOG_ID это id необходимого блога.