Бесплатный плагин aceWidgetManager - инструкция по применению
Прародитель плагина, который в последней редакции называется aceWidgetManager, появился на свет, когда и плагинов-то в LS еще не было в помине. Сначала простенький, и как-то так незаметно нехило оброс мясом-функционалом. А какой-то общей инструкции до сих пор не было, были только отдельные описания отдельных функций и опций. Но, наверное, настала пора все же в одном месте дать максимум информации про этот плагин и его возможности. Собственно, написал давно, но все никак руки не доходили оформить публикацию
Или так (пути задаются, как массив):
Если задан путь '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). Поэтому если будут заданы одновременно два таких правила:
Чтобы отключить вывод виджетов, заданных стандартным способом, достаточно в конфиг-файле плагина указать:
Если вы хотите оставить все стандартные виджеты, то этот параметр должен быть задан в false:
Вы также можете указать конкретные страницы, на которых желаете отключить вывод стандартных виджетов:
Или
Опции могут быть такие:
'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
Общие правила – задание путей
При конфигурировании плагина часто будет использоваться задание путей, поэтому объясню для начала, как это делается.Включить пути в обработку
Для этого используются опции '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 комментариев
$config['clear'] = true;
$config['widgets'][] = array(
'name' => 'blocks/block.stream_comment.tpl',
'group' => 'right',
);
Почему последние комментарии выводятся только на страничке comments?
$config['widgets'][] = array(
'name' => 'blocks/block.stream_topic.tpl',
'group' => 'right', /
); Список топиков не выводиться!