Выводим топики из текущего блога

Всем привет!

Появилась задача вывести на странице топика, к примеру, после комментариев, топики из текущего блога.
Т.е. читая топик из блога «Сайты на 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 необходимого блога.

2 комментария

avatar
Аналогичное обсуждение было livestreet.ru/blog/questions/14607.html#comment233516
avatar
Там было для BlogId, у меня выводит для текущего блога. Это немного другая задача.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.