Sticky Topics - Прикрепленные топики

ваш_сайт/admin/stickytopics – Админка.
Зайти могут не только администраторы всего сайта, но и пользователи, являющиеся администраторами в каких-либо блогах. А так же и обычные пользователи — администраторы своих персональных блогов.

Можно запретить админам блогов использовать настройку прикрепления, отредактировав файл config/config.php и установив параметр allow_blog_admins в значение false. Для запрета обычным пользователям прикреплять записи в их персональных блогах, следует установить параметр allow_personal_blogs в false.

В двигле.
Прикрепленные топики на главной странице сайта.
Открываем файл из каталога шаблона actions/ActionIndex/index.tpl
Перед строчкой
{include file='topic_list.tpl'}

Вставить строчку
{hook run='get_sticky_topics' aTopics=$aTopics}

Чтобы убрать прикрепленные топики со страниц после первой, следует использовать такой вызов хука:
{hook run='get_sticky_topics' aTopics=$aTopics aPaging=$aPaging}

Еще может быть случай, когда прикрепленные топики требуется вывести как-то по-другому, нежели стандартной лентой. Может быть просто названия. Тогда к вызову хука надо добавить параметр outName, который задает имя массива, в который будут помещаться прикрепленные записи.
{hook run='get_sticky_topics' aTopics=$aTopics aPaging=$aPaging outName=aSticky}
{if $aSticky}
{foreach from=$aSticky item=oTopic}
{$oTopic->getTitle()|escape:html}
{/foreach}
{/if}

Тогда в результате работы хука в массиве шаблона aSticky окажутся прикрепленные топики, а массив aTopics останется неизменным. Если, все же, из массива aTopics требуется убрать прикрепленные топики, то хуку надо задать параметр removeSticky
{hook run=’get_sticky_topics’ aTopics=$aTopics aPaging=$aPaging outName=aSticky removeSticky=true}

Прикрепленные топики на странице конкретного блога.
Для того, чтобы вывести прикрепленные топики для каждого блога надо редактировать файл шаблона action/ActionBlog/blog.tpl
Единственное, чем отличается использование хука в конкретных блогах это, собственно, указание из какого, конкретно, блога брать записи. Делается это с помощью параметра blog_id:
{hook run='get_sticky_topics' aTopics=$aTopics blog_id=$oBlog->getId()}

Такой вызов хука в шаблоне блога прикрепит топики для текущего блога.
Все случаи, описанные для главной страницы сайта применимы и для конкретного блога, при добавлении параметра blog_id

Прикрепленные топики в персональном блоге пользователя
Тут надо менять шаблон action/ActionMy/blog.tpl
Для вывода прикрепленных топиков к персональному блогу требуется задать параметр blog_id равным -1 и указать дополнительный параметр oUser в который передать объект профиля пользователя. Для экшена ActionMy это объект oUserProfile
{hook run='get_sticky_topics' aTopics=$aTopics blog_id=-1 oUser=$oUserProfile}


Скачать плагин можно тута.
comments powered by Disqus

0 комментариев

Оставить комментарий