Бесплатный плагин aceWidgetManager - наглядные примеры использования
В предыдущей статье я подробно расписал, какие опции используются для подключения и конфигурирования виджетов с помощью плагина aceWidgetManager. А теперь приведу конкретные примеры, как все это богатство можно использовать.
Вот самый простой пример задания виджета:
Здесь в группу виджетов 'right' добавляется шаблонный виджет blocks/block.something.tpl. Т.е. в папке /templates/skin/<текущий_скин>/blocks/ будет взят шаблон block.something.tpl и вставлен туда, где в шаблоне объявлено (обычно это в правом сайдбаре):
Этот виджет будет выводиться на всех страницах и в любое время, без каких-либо специальных условий.
А теперь давайте усложним задачу и зададим вывод стандартного виджета, в котором выводится информация о блоге для которого создается/редактируется топик:
Как видите, опций тут задано уже гораздо больше, в т.ч. и пути (страницы) задаются, на которых этот виджет должен отображаться. Кстати, обратите внимание: для простоты настроек начиная с версии 2.0.212 путь 'topic/edit' эквивалентен пути 'topic/edit/*'.
А что если нужно подключить виджет, который определен в каком-то плагине? Например, есть виджет Companies в плагине Company и его можно подключить так:
Иногда возникает необходимость вставить в сайдбар какой-то HTML-код. Это может быть блок с счетчиками, или банерокрутилка, или что-то еще – в общем, произвольный HTML-код (в том числе и javascript). Без плагина aceWidgetManager вам пришлось бы писать для этого специальный виджет или же влезать в код шаблона. Но с плагином задача упрощается в разы и решается так:
А в папку /plugins/acewidgetmanager/config/widgets/ кладется файл demo-file.txt, в который вы пишете тот HTML-код, что нужно выводить на страницу. И все!
Надо вам там два виджета с разным содержимым? Так в чем проблема! Добавляете два таких виджета и в каждом задаете свой файл с кодом.
Нужно вам вывести в виджете какое-то изображение, баннер, флеш? Нет проблем — пишите код в файл и выводите его.
Кроме того, можно этот код (если он небольшой по объему) прямо в описание виджета добавить:
Я хотел бы еще несколько интересных приемчиков показать, как можно манипулировать видимостью виджетов, но, пожалуй, оставлю это для следующей статьи.
Часть 1: livestreet.ru/blog/addons/13391.html
Часть 2: этот топик
Часть 3: livestreet.ru/blog/13401.html
Вот самый простой пример задания виджета:
$config['widgets'][] = array( 'name' => 'blocks/block.something.tpl', // название шаблона виджета 'group' => 'right', // позиционирование );
Здесь в группу виджетов 'right' добавляется шаблонный виджет blocks/block.something.tpl. Т.е. в папке /templates/skin/<текущий_скин>/blocks/ будет взят шаблон block.something.tpl и вставлен туда, где в шаблоне объявлено (обычно это в правом сайдбаре):
{include file='blocks.tpl' group='right'}
Этот виджет будет выводиться на всех страницах и в любое время, без каких-либо специальных условий.
А теперь давайте усложним задачу и зададим вывод стандартного виджета, в котором выводится информация о блоге для которого создается/редактируется топик:
$config['clear'] = true; // $config['widgets'][] = array( 'name' => 'blocks/block.blogInfo.tpl', // имя файла виджета-шаблона 'group' => 'right', // позиционирование виджета 'priority' => 'top', // приоритет top – выводить выше всех 'on' => array( 'topic/add', 'topic/edit', 'link/add', 'link/edit', 'question/add', 'question/edit', 'photoset/add', 'photoset/edit', ), );
Как видите, опций тут задано уже гораздо больше, в т.ч. и пути (страницы) задаются, на которых этот виджет должен отображаться. Кстати, обратите внимание: для простоты настроек начиная с версии 2.0.212 путь 'topic/edit' эквивалентен пути 'topic/edit/*'.
А что если нужно подключить виджет, который определен в каком-то плагине? Например, есть виджет Companies в плагине Company и его можно подключить так:
$config['widgets'][] = array( 'name' => 'companies', // название виджета 'group' => 'right', // позиционирование 'params' => array( 'plugin' => 'company', // название плагина ), );В этом примере задается исполняемый виджет BlockCompanies.class.php. Кстати, предусмотрена проверка — активен ли плагин, виджет которого подключается, или нет. Если в админке отключить плагин Company, то этот виджет будет просто игнорироваться при выводе. Включили плагин Company — виджет будет отображаться.
Иногда возникает необходимость вставить в сайдбар какой-то HTML-код. Это может быть блок с счетчиками, или банерокрутилка, или что-то еще – в общем, произвольный HTML-код (в том числе и javascript). Без плагина aceWidgetManager вам пришлось бы писать для этого специальный виджет или же влезать в код шаблона. Но с плагином задача упрощается в разы и решается так:
$config['widgets'][] = array( 'name' => 'template', // название пустого виджета 'group' => 'right', // позиционирование 'params' => array( 'plugin' => 'acewidgetmanager', // 'title' => 'Это заголовок', 'file' => 'demo-file.txt', ), );
А в папку /plugins/acewidgetmanager/config/widgets/ кладется файл demo-file.txt, в который вы пишете тот HTML-код, что нужно выводить на страницу. И все!
Надо вам там два виджета с разным содержимым? Так в чем проблема! Добавляете два таких виджета и в каждом задаете свой файл с кодом.
Нужно вам вывести в виджете какое-то изображение, баннер, флеш? Нет проблем — пишите код в файл и выводите его.
Кроме того, можно этот код (если он небольшой по объему) прямо в описание виджета добавить:
$config['widgets'][] = array( 'name' => 'template', // название пустого виджета 'group' => 'right', // позиционирование 'params' => array( 'plugin' => 'acewidgetmanager', // 'title' => 'Это заголовок', 'text' => '<a href="http://ya.ru"><img src="/uploads/banner/yandex.png"></a>', ), );
Я хотел бы еще несколько интересных приемчиков показать, как можно манипулировать видимостью виджетов, но, пожалуй, оставлю это для следующей статьи.
Часть 1: livestreet.ru/blog/addons/13391.html
Часть 2: этот топик
Часть 3: livestreet.ru/blog/13401.html
При ремонте загородного дома особого внимание требует выбор стойкой краски для пола. Широкий ее ассортимент представлен в строительных магазинах.
11 комментариев
На главной странице (которая Events), показывается шапка блока, комменты — нет. Если поклазать свитчер (комменты — топики), то начинает показываеться. При перезагрузке — опять не показывается
вот посмотрите: rosbenz.ru/
на главной все нормально, на внутренних беда((
уже и другие шаблоны пробовал
За ранее благодарен за ответ!!!