Бесплатный плагин aceWidgetManager - инструкция по применению

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

Общие правила – задание путей
При конфигурировании плагина часто будет использоваться задание путей, поэтому объясню для начала, как это делается.

Включить пути в обработку
Для этого используются опции 'on' или 'include' (они синонимы, но 'on' предпочтительней). Например, так (пути перечисляются в строке через запятую):
'on'=>'topic/, blog/',

Или так (пути задаются, как массив):
'include' =>array('index/', ‘blog/'),

Исключить пути из обработки
Для этого используются опции 'off' или 'exclude' (тоже синонимы, но 'off' предпочтительней). Например, так:
'off'=>' blog/*, profile/admin/*',

Сопоставление текущего URL с заданными путями
Допустим, наш сайт живет на домене site.ru, тогда если задан путь 'index/' или просто '/' (слеш), то это соответствует адресу site.ru/, т.е. домашняя страница сайта.

Если задан путь 'topic/', то это соответствует адресу site.ru/topic/, но НЕ соответствует ни адресу site.ru/topic/add/, ни site.ru/topic/123.html, т.е. только строго site.ru/topic/ и ничто иное.

Если же задан путь 'topic/*', то он будет соответствовать и адресу site.ru/topic/add/, и site.ru/topic/123.html, и любому другому, начинающемуся с site.ru/topic/.

ВАЖНО: опция off (exclude) всегда имеет бОльший приоритет, чем опция on (include). Поэтому если будут заданы одновременно два таких правила:
array(
on=profile/admin/,
off=profile/*,
);
то правило «исключения» будет перекрывать правило «включения»

Отключение вывода стандартных виджетов
Мне кажется, что лучше выбирать что-то одно: либо стандартную схему вывода виджетов (то, что идет в config/config.php), либо альтернативную – с помощью плагина aceWidgetManager. Просто потому, что в этом случае управление всеми виджетами будет однотипным и в одном месте.
Чтобы отключить вывод виджетов, заданных стандартным способом, достаточно в конфиг-файле плагина указать:
$config['clear'] = true;

Если вы хотите оставить все стандартные виджеты, то этот параметр должен быть задан в false:
$config['clear'] = false;

Вы также можете указать конкретные страницы, на которых желаете отключить вывод стандартных виджетов:
$config['clear'] = array('on'=>'people/, profile/');  // Cбрасывать на страницах people и profile

Или
$config['clear'] = array('off'=>'people/, profile/');  // Cбрасывать везде, кроме people и profile


Опции добавляемых виджетов
Виджеты добавляются с помощью такой конструкции:
$config['widgets'][] = array(
  //  опции виджета
);

Опции могут быть такие:
'name' — название виджета; здесь работает та же логика, что и для стандартных виджетов – если задано расширение tpl, то это шаблонный виджет, если его нет – это исполняемый виджет с классом BlockНазваниевиджетае
'group' – группа виджета, определяющая, в каком месте он будет выводиться; в стандартных шаблонах предопределены две группы – right и toolbar
'priority' — приоритет виджета, виджеты с бОльшим приоритетом выводятся перед теми, у кого приоритет меньше; здесь можно задать также значение top, и виджет с этим значением будет выводиться выше всех остальных
'params' — параметры, передаваемые в исполняемый виджет; и среди них есть специальный параметр plugin, который указывает (если задан, конечно), что это – виджет заданного плагина
'js' – задает имя js-файла, который нужно подгрузить, если виджет выводится на странице
'on' – где выводить виджет
'off' – где не выводить виджет
'display' – задает, выводить или нет виджет: true — выводить виджет, false — не выводить
или задает с какого времени выводить: array('date_from'=>'2011-10-10')
или задает до какого времени выводить: array('date_upto'=>'2011-10-20')
или задает период, когда выводить: array('date_from'=>'2011-10-10', 'date_upto'=>'2011-10-20')

Как, не слишком утомил? В следующем топике я приведу уже конкретные примеры с пояснениями, чтобы лучше было понятно, как пользоваться всем этим богатством.

Часть 1: этот топик
Часть 2: livestreet.ru/blog/13400.html
Часть 3: livestreet.ru/blog/13401.html

Всё о здоровом образе жизни на http://fitfan.ru. Тренировки, режим, питание, диеты — все что вам нужно.

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

avatar
Спасибо за инструкцию у плагину!
avatar
Спасибо, действительно нужна была!
avatar
Большое спасибо, очень полезный плагин!
avatar
Прописываю $config['clear'] = true; в ...\plugins\acewidgetmanager\config.php и ничего на сайте не происходит! еще для наглядности прописал то же самое в ...\plugins\acewidgetmanager\config.local.php Блоки как есть так и работают, не пропадают! В чем может быть дело? Вер 1.0.3 Шаблон стандартный, я прост на тестовом сайте совсем чистом от плагинов проверяю!
avatar
А не все работает!=) Сорри! А можно с помощью этого плаина вывести то что есть в прямом эфире но без табов, комментарии сперва а под ними список последних топиков? Буду признателен за ответ!
avatar
Я чет не понимаю, если я прописываю в config.local.php
$config['clear'] = true;
$config['widgets'][] = array(
'name' => 'blocks/block.stream_comment.tpl',
'group' => 'right',
);
Почему последние комментарии выводятся только на страничке comments?
avatar
А нет все правильно! Только вот если код такой
$config['widgets'][] = array(
'name' => 'blocks/block.stream_topic.tpl',
'group' => 'right', /
); Список топиков не выводиться!
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.