Адекватный rss для страниц блога
Мне потребовалось, чтобы при отображении блогов в head был адекватный показанной странице с указанием ссылки на rss-поток именно просматриваемой страницы. Решение придумывалось быстро, и, вероятно, оно не совсем правильное, но работает.
В файл шаблона header.tpl в секцию head я добавил следующий код:
А в методы в blog.entity.class.php:
Мне показалось, что личный блог определяется в исходном коде движка несколько кривовато, но сейчас разбираться нет времени.
Итак, на странице темы добавляется ссылка на rss с комментариями к ней. На странице блога — ссылка на rss всего блога. На остальных — ссылка на общий поток.
Жду комментариев и дополнений. Просьба строго не судить, ибо мозг не варит.
В файл шаблона header.tpl в секцию head я добавил следующий код:
{if $oTopic}
<link title="Комментарии к топику {$oTopic->getTitle()|escape:'html'}" type="application/rss+xml" rel="alternate" href="{$DIR_WEB_ROOT}/rss/comments/{$oTopic->getId()}/">
{elseif $oBlog}
<link title="{$oBlog->getTitle()}" type="application/rss+xml" rel="alternate" href="{$oBlog->getRssUrl()}">
{elseif $oUserProfile}
<link title="Rss-лента пользователя {$oUserProfile->getLogin()}" type="application/rss+xml" rel="alternate" href="{$DIR_WEB_ROOT}/rss/log/{$oUserProfile->getLogin()}/">
{else}
<link title="" type="application/rss+xml" rel="alternate" href="{$DIR_WEB_ROOT}/rss/">
{/if}
А в методы в blog.entity.class.php:
public function getRssUrl() {
if ($this->getType()=='personal') {
return DIR_WEB_ROOT.'/rss/log/'.$this->getUrl().'/';
} else {
return DIR_WEB_ROOT.'/rss/blog/'.$this->getUrl().'/';
}
}
Мне показалось, что личный блог определяется в исходном коде движка несколько кривовато, но сейчас разбираться нет времени.
Итак, на странице темы добавляется ссылка на rss с комментариями к ней. На странице блога — ссылка на rss всего блога. На остальных — ссылка на общий поток.
Жду комментариев и дополнений. Просьба строго не судить, ибо мозг не варит.