Плагин «Мастер блоков сайдбара, тулбара и хуков (Blocks Master)»


ОПИСАНИЕ


Плагин позволяет создавать неограниченное количество блоков в сайдбаре, элементов в тулбаре и хуках, установки произвольного текста в каждый блок и его редактирование через веб-интерфейс. Настройки для показа: на определенных страницах сайта, авторизированным или нет пользователям, указание периода по времени и максимального количества показов.


ПОДРОБНЕЕ


  • возможность создания неограниченного количества блоков в сайдбаре для вывода произвольного текста, JS, html и т.п
  • возможность задания списка путей для каждого блока, где нужно показывать блок. Например, для вывода блоков на страницах определенного блога с возможностью выбора дублировать ли этот блок в топики привязанные к блогу или нет
  • возможность вывода блока на произвольных страницах (например, определенного топика, поиске по тэгу)
  • возможность задавать тип блока (блоки в сайдбаре, кнопка на панели тулбара или хук)
  • возможность показа только для зарегистрированных пользователей
  • возможность указывать временные интервалы для показа блоков (дата и время от и до), в течении которых будет показываться блок
  • возможность использовать синтаксис (команды) smarty в тексте. А при использовании плагина исполнения php кода в шаблонах — возможность выполнять и php код. Для примера, в плагин добавлен блок, в тексте которого используются команды смарти. Этот блок добавляет кнопку в тулбар для доступа к админке плагина для администраторов сайта.
  • встроена возможность показа содержимого через хуки в 146 возможных местах шаблона. Список хуков можно изменить в конфиге. Для хуков также поддерживается приоритет, как и для блоков сайдбара и кнопок в тулбаре.
  • при создании блока в поле для содержимого доступен стандартный редактор что позволяет, например, загружать изображения

СКРИНШОТЫ


1. Страница списка заданных блоков:
Blocks Master

2. Включены 3 баннера (2 вначале контента и один в конце):
Blocks Master

3. Страница добавления нового блока:
Blocks Master

4. Вид главной страницы, на которой видно два баннера на месте хука и один блок в сайдбаре:
Blocks Master

РЕЗЮМЕ


В честь выхода в свет плагина раздаю скидочные купоны самым быстрым:

e42af29a — 25%
f53881e4 — 20%
be7a2cef — 15%
6e644df0 — 10%
68ee1b26 — 5%

Плагин доступен в каталоге.

Это кросспост из гида.

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

avatar
А вот это действительно мастхэв! Беру!
avatar
Кстати, думаю 5% скидки для такой цены вряд ли особо ощутимо)
avatar
Вопрос: будет ли плагин работать со страницами от сторонних плагинов? Например, страница компании (плагин «Компании» от @gran).
avatar
Да, несомненно должен работать, если автор плагина Компании не делегирует весь шаблон.
avatar
Приоритет блока нельзя поставить отрицательным. Я ставлю 0 и блок все равно выше прямого эфира, это странно, в конфиге
('stream'=>array('priority'=>100)

Т.е по идее, эфир должен быть выше, ведь 100>0
avatar
а, все ок. Поставил 10, заработало. Ну отличный плагин, наконец то с блоками вообще не будет проблем :)
avatar
маленький косяк… забыл 0 разрешить. ставь 1 — будет работать.
avatar
Можно поинтересоваться откуда берется список: «Тип блока»: «Хук в шаблоне content_end»
Это предопрделенный список?
avatar
знаю почему вы спрашиваете — вы пытались передавать параметры через хук внутрь чтобы узнать имя хука внутри ф-и и так и не решили данную задачу?
Это предопрделенный список?
да, это весьма удобно и быстро. в конфиге список.
avatar
так и не решили данную задачу?
Решил.
avatar
Можно поинтересоваться как?
avatar
через служебную функцию public function __call определенную в хуке.
Сначала я регистрирую все возможные варианты хуков (т.е. те которые прописываю в базе со служебным префиксом, а в __call проверяю префикс)
avatar
:) аналогично сделал.
avatar
не совсем правда также, но тоже навешана проверка на __call
avatar
Вставляю код
<div class="block block-type-subscribe"><div class="block-header"><h2>{$aLang.subscribe_block_header}</h2></div><div class="block-content"><p>{$aLang.subscribe_block_content}</p><a href="{router page='blogs'}" title="{$aLang.subscribe_block_set}" class="button button-subscribe-set">{$aLang.subscribe_block_set}</a></div></div>


Сначала все показывалось. Теперь (причину не могу отследить) — нет :) странно, наверняка что то упустил как всегда.
avatar
пути показа установлены? временной интервал?
avatar
Да дело в том, что пытался в путях проставить "" (то, что в модалке помощи Указано, как для главной страницы). Но не сработало, вот и не показывался.
avatar
поставьте запятую
avatar
и еще не понял, как сделать, чтобы только на главной показылось? в попапе помощи что то непонятное написано)
avatar
пути == адрес страницы для показа, главная == пустому значению.
blogs,,tag/mytag

показывать на странице блогов, главной и теге «mytag».
avatar
главная == пустому значению.
пустое значение выставить не получается, форма сама проставляет * если все стереть. А звездочка означает ВЕЗДЕ, как у меня сейчас и происходит)
avatar
выше написал, просто поставьте:
,
avatar
А теперь еще вопрос: могу ли я добавить свой хук так, чтобы он подхватился плагином?
avatar
да, в конфиге плагина есть список хуков, добавьте свой в конец списка.
avatar
и все? его нигде в файлах регистрировать не надо, только в конфиге?
avatar
а, ну естественно его нужно прописать где-он вам нужен в шаблоне. Я думал что вы спрашиваете о существующем хуке.
avatar
нет, хука еще нет. Вообще. У меня главная страница реализована плагином, я там вывожу информацию произвольно. Я хочу в шаблоне этой страницы разместить хуки, а код блоков вынести в отдельные файлы и подключать через Мастер блоков пользуясь {include...}. Таким образом я смогу собирать/разбирать свою главную как конструктор :)

Т.е. хука нет. Я придумываю ему название, затем прописываю в конфиге и в шаблоне. И я так понимаю, это все.
avatar
да, именно так.
avatar
Ваш плагин типа aceWidgetManager, только больше возможностей и через интерфейс?
avatar
да
avatar
Можно ли в шаблоне прописать условие:
{если блок ИМЯ_БЛОКА активирован}...{/if}?
avatar
т.е. активирован? можно получить список блоков по имени, а отображались ли они или нет — не узнать никак.
avatar
Ну да, я активировал блок. Если блок активирован, мне нужно применять к другому диву иные стили. Как это в шаблоне прописать?
avatar
Если блок активирован
только опция на форме или реально показывается на данной странице?
avatar
Опция. Ну в админке я включил «показывать блок».
avatar
можно узнать только стоит ли опция в настройках, а показан ли он реально на этой странице — пока узнать нельзя (нужно доработать) либо городить целую кучу кода.
avatar
мне достаточно узнать, стоит ли опция в настройках, что блок включен.
avatar
{get_blocks assign='aBlocksLoad'}

{if isset($aBlocksLoad.right)}
  {foreach from=$aBlocksLoad.right item=aBlock}
    {if $aBlock.params.oBlock->getName()=='ИМЯ_БЛОКА' and $aBlock.params.oBlock->getActive()}
      блок активный
    {/if}
  {/foreach}
{/if}
avatar
спасибо, буду пробовать
avatar
Супер, отличный плагин. Спасибо Сергей!
avatar
Плагин универсален как для баннерокрутилки + OpenX, так и для вставки дополнительных модулей.
Но сообщество хочет — универсальную банерокрутилку + модуль оплаты.
Какие планы по развитию плагина или будет ли плагин в продолжении темы баннерокрутилки?
avatar
плагин в первую очередь предназначен для весьма гибкого управления всеми блоками в ЛС (сайдбар, тулбар и хуки) с указанием правил. На крутую баннерокрутилку он (пока?) не претендует. По мере использования плагина буду смотреть какие функции более востребованы и что ещё актуально.
avatar
Я подумал, что это начальный этап в развитие плагина. Мне очень понравился ваш плагин, все удобно и понятно. Спасибо.
avatar
На каких шаблонах тестировалось, кроме synio? На Fortune будет работать корректно?
avatar
не зависит от шаблоне никак.
avatar
Подскажите, каким образом можно в сайдбар вставить 2 графических объекта (кнопки) чтобы они находились не друг под другом, а на одной линии в сайдбаре, что-то никак не получается?
avatar
это вопрос по html, а не по плагину.
элементы должны быть линейными.
avatar
или плавающими
avatar
Хотел поставить счетчик метрики и использовал хук «купиригшт», после этого
Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template «56ce9c4d115421f0a1a08332c072f664f8481f87» on line 1 "<p><!-- Yandex.Metrika counter — и так далее, как откатить обратно.
Забыл видимо поставить {literal}код{/literal}
avatar
какой хук? отключайте плагин через plugins.dat или удалите временно хук из шаблона
комментарий был удален
комментарий был удален
комментарий был удален
avatar
Вопрос по правилам показа:
а как настроить показывать везде кроме 1 — 2 папки?
avatar
перечислять везде, где нужно. пример?
avatar
я хотел от обратного, чтобы везде кроме
avatar
есть только «где»
комментарий был удален
комментарий был удален
комментарий был удален
avatar
Подскажите, есть ли данные по совместимости с aceBlogExtender? Просто при фильтрации категории в том плагине блок, созданный хуком content_begin «уходит» вниз. У автора спрашивал уже — пока тихо…
avatar
извините, у меня нету aceBlogExtender. и чей хук уходит вниз тоже не понял.
avatar
Подскажите, можно ли доработать плагин таким образом, чтобы выводить блоки над header-ом? Насколько я заню там хука нет…
avatar
добавляете вручную хук в шаблон и прописываете имя этого хука в конфиге плагина.
новое место доступно.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.