Skip to content

kerbylav/stickytopics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Плагин «Sticky Topics» предназначен для управления «прикрепленными»
записями. Прикрепленными считаются записи, находящиеся в начале списка
на главной странице сайта или блога, вне зависимости от того, когда они
были опубликованы. Управлять такими записями может не только
администратор всего сайта, но и администраторы конкретного блога.
Обычные пользователи могут управлять прикрепленными записями в своем
личном блоге. Параметры этих возможностей настраиваются в конфиг-файле.

Плагин устанавливается обычным порядком. Т.е. файлы копируются в папку
plugins, после чего плагин активируется через http://сайт/admin/plugins

Затем следует зайти на страничку http://сайт/admin/stickytopics - это
страничка администрирования. Как было уже сказано, зайти на эту страницу
могут не только администраторы всего сайта, но и пользователи,
являющиеся администраторами в каких-либо блогах. А так же и обычные
пользователи, если у них есть персональные блоги. Можно запретить
админам блогов использовать настройку прикрепления, отредактировав файл
config/config.php и установив параметр allow_blog_admins в значение
false. Для запрета обычным пользователям прикреплять записи в их
персональных блогах, следует установить параметр allow_personal_blogs в
false.

На страничке администрирования можно выбрать блог, в котором вы хотите
прикреплять топики. Выбрав блог, в поле «Фильтр по названию топиков»
следует ввести часть названия нужного вам топика и нажать кнопку
«Искать». Появится список подходящих записей. Для добавления топика к
списку прикрепленных, надо нажать на кнопку «+» рядом с названием
нужного топика.

В прикрепленных топиках можно менять порядок с помощью кнопок вверх и
вниз. Временно деактивировать и активировать прикрепление, а так же
откреплять топики.

Теперь вопрос как это, собственно, выводить на сайт?

Короткий ответ – с помощью шаблонного хука get_sticky_topics. Теперь
подробней.

Наверное, самый частый случай это «встраивание» прикрепленных топиков в
ленту выводимых записей. То есть просто выводить прикрепленные записи
вместе со всеми остальными. Как правило, это используется  в трёх
случаях: на главной странице сайта, на странице коллективного блога, и
на странице персонального блога. Рассмотрим все три случая.

1. Прикрепленные топики на главной странице сайта

Открываем файл из каталога шаблона actions/ActionIndex/index.tpl
Перед строчкой

{include file='topic_list.tpl'}

Вставить строчку

{hook run='get_sticky_topics' aTopics=$aTopics}

Она означает вызвать хук get_sticky_topics и передать ему параметром
массив aTopics, сформированный системой livestreet. В данном случае
плагин ставит в начало топиков прикрепленные и убирает их из остального
списка, чтобы не дублировались. Если записей больше, чем на одну
страницу, то прикрепленные топики будут отображаться вначале каждой
страницы. 

Чтобы убрать прикрепленные топики со страниц после первой, следует
использовать такой вызов хука:

{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}<br/>
{/foreach}
{/if}

Тогда в результате работы хука в массиве шаблона aSticky окажутся
прикрепленные топики, а массив aTopics останется неизменным. Если, все
же, из массива aTopics требуется убрать прикрепленные топики, то хуку
надо задать параметр removeSticky

{hook run='get_sticky_topics' aTopics=$aTopics  aPaging=$aPaging outName=aSticky removeSticky=true}

2. Прикрепленные топики на странице конкретного блога

Для того, чтобы вывести прикрепленные топики для каждого блога надо
редактировать файл шаблона action/ActionBlog/blog.tpl

Единственное, чем отличается использование хука в конкретных блогах это,
собственно, указание из какого, конкретно,  блога брать записи. Делается
это с помощью параметра blog_id:

{hook run='get_sticky_topics' aTopics=$aTopics blog_id=$oBlog->getId()}

Такой вызов хука в шаблоне блога прикрепит топики для текущего блога.

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

3. Прикрепленные топики в персональном блоге пользователя

Тут надо менять шаблон action/ActionMy/blog.tpl

Для вывода прикрепленных топиков к персональному блогу требуется задать
параметр blog_id равным -1 и указать дополнительный параметр oUser в
который передать объект профиля пользователя. Для экшена ActionMy это
объект oUserProfile

{hook run='get_sticky_topics' aTopics=$aTopics blog_id=-1 oUser=$oUserProfile}

Соответственно, с такими изменениями можно использовать все
вышеописанные способы вызова хука.

Ну вот, собственно, и все. Надеюсь плагин будет полезен. Да, еще в
планах есть автоматическая активация и деактивация прилипания топиков в
зависимости от текущей даты, но я пока еще  не решил с интерфейсом все
вопросы.

P.S. Этот плагин бесплатный, но автор с благодарностью примет
материальное вознаграждение на кошельки WebMoney Z334942299641 и
R328441042941, а так же Яндекс.Деньги счет 41001830047811. Помните, даже
пара баксов могут скрасить вечер пивом :)

About

Plugin SticyTopics for LiveStreet 0.4.2

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published