Публикация в группе: Плагин WP-Recall - Личный кабинет на WordPress

Категории группы: Полезное

Добавлено в закладки: 3

Начиная с версии 13.7.0 плагина WP-Recall в группах каждый администратор группы может управлять выводом контента через виджеты.

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

В дефолтном шаблоне группы по-умолчанию зарегистрировано три области контента: content, footer и sidebar. Разработчикам своих шаблонов будет полезно узнать как именно производится регистрация и размещение своей области контента в шаблоне группы.

Зарегистрируем новую область контента с идентификатором 'custom-sidebar' и названием 'Мой сайдбар':

После резмещения этого кода, данная область появится в разделе управления виджетами группы и в нее уже можно будет добавлять нужные виджеты.

2015-11-21 15-51-17 Группы Работа сайта WPPOST - WPPOST - продажа цифровых товаров - Mozilla Firefox

Когда область виджетов зарегистрирована, остается только вывести ее в нужном месте шаблона группы:

Мы передаем в функцию rcl_group_content идентификатор зарегистрированной области, после этого функция начнет выводить содержимое виджетов, если таковые в этой области имеются.

Регистрация области виджетов достаточно проста, перейдем к рассмотрению порядка создания своего виджета.

Для начала надо создать дочерний класс для класса Rcl_Group_Widget.

Итак, мы создали заготовку, свой класс Group_Custom_Widget с тремя методами внутри: одноименным Group_Custom_Widget, widget и options.

Первый метод должен по названию соответствовать названию нашего созданного класса, он содержит массив с основными данными создаваемого виджета:

  • widget_id - идентификатор виджета
  • widget_title - Заголовок виджета по-умолчанию
  • widget_place - идентификатор области виджетов, в котором будем выводить виджет по-умолчанию, можно указывать 'unuses', если хотим размещать виджет в области неиспользуемых виджетов.

Рассмотрим второй метод - widget. Именно тут и производится вывод контента нашего виджета. Метод получает два аргумента: $args и $instance. Первый передает для построения виджета, данные верстки выводимые до и после выводимого контента, а второй получает массив настроек виджета, если такие имеются.

Выведем простейший контент нашего виджета:

Теперь наш виджет, при размещении в какой-либо области контента будет выводить строку: "Happy new year - 2016!". Это пример создания простейшего виджета, без каких-либо его настроек. Добавим настройки заголовка нашего виджета:

Теперь у нашего виджета появилась настройка заголовка:

2015-11-21 16-05-58 Группы Работа сайта WPPOST - WPPOST - продажа цифровых товаров - Mozilla Firefox

Заголовок является основной настройкой поэтому при добавлении этой настройки в методе options ничего больше делать не требуется, заголовок будет выводится в настройках и меняться при выводе в зависимости от введенного значения. Но другие возможные настройки уже потребуют дополнительных действий при выводе контента виджета.

Добавим настройку для смены года при выводе контента нашего виджета:

Теперь получим текущее значение года из настроек и выведем его в контенте виджета:

 

Теперь у нашего виджета есть настройка для смены года при выводе поздравления и мы сможем использовать его и в следующем году))

После того как для нашего виджета были созданы настройки и сформирован контент для вывода, мы можем зарегистрировать его в системе виджетов групп:

Посмотрим полный код нашего виджета:

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

По такому принципу можно создавать свои собственные виджеты для вывода любого контента с различными настройками.

Если при формировании настроек или контента виджета вдруг понадобятся данные текущей группы, то вы всегда можете получить их из глобальной переменной $rcl_group - это объект с основными параметрами.

 

3

Автор публикации

не в сети 3 часа

Андрей CS

12k

Есть задание? Вам сюда http://codeseller.ru/task
Нужна консультация? Вам сюда http://codeseller.ru/products/skype-konsultaciya/
Если не приглашал в личку, писать туда не надо.
Для всего остального есть форум.

Комментарии: 1587Публикации: 489Регистрация: 30-11--0001Продаж/Покупок: 12238/91