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

Категории группы: Обновления

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

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

До этого момента, вывод контента одной вкладки личного кабинета регулировался только одной функцией указанной при регистрации этой вкладки и, как правило, на одну вкладку приходилась одна "страница" контента. Теперь же одна вкладка рассматривается как множество дочерних вкладок, даже если это нигде и не указывается специально. И хотя внешне ничего не изменилось, следует знать, что по-умолчанию, внутри основной вкладки выводится контент первой дочерней вкладки, а дочерних вкладок может быть много.

Вкладка, имеющая только одну дочернюю вкладку, выводит свой функционал как обычно, но если дочерних вкладок становится больше, то автоматически формируется субменю основной вкладки для переключения между ними.

2016-09-02_15-34-15

А под этим меню будет выводится контент активной дочерней вкладки.

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

Итак, перейдем к самому интересному, а именно к коду и деталям регистрации основной вкладки и ее дочерних элементов.

Новый функционал продиктовал необходимость внесения корректив в процесс регистрации основной вкладки. Теперь необходимо формировать массив данных с новой структурой и передавать его в функцию rcl_tab(), рассмотрим полный набор параметров которые может примать указанная функция на данный момент:

Приведу пример регистрации основной вкладки личного кабинета по новым правилам с минимальным набором необходимых параметров:

В массиве 'callback' указываем наименование функции-обработчика, которая и будет формировать контент вкладки. По-умолчанию функцию всегда принимает один аргумент - идентификатор пользователя текущего личного кабинета.

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

Таким образом, будет зарегистрирована самая обычная приватная вкладка личного кабинета.

Расширим регистрацию вкладки с указанием расширенных параметров и двух дочерних вкладок:

Как можно заметить в приведенном коде мы добавили для вкладки поддержку кеширования и ajax-загрузки, указали публичный доступ, иконку и область вывода. Кроме того, были сформированы два массива с данными дочерних вкладок, в них мы также указали необходимые данные для правильного формирования кнопок вывода этих вкладок и вывода контента. Каждая дочерняя вкладка подразумевает указание массива 'callback', в котором через параметр 'name' необходимо передавать наименование функции формирующей контент этой вкладки и, если есть необходимость, через параметр 'args' передаем массив аргументов которые указанная функция будет принимать. Если аргументы не будут указаны, то функция будет принимать идентификатор пользователя текущего личного кабинета.

Новая структура массива данных вкладки личного кабинета добавляет плагину гибкости и позволяет легко добавлять дочерние вкладки не только при регистрации своих вкладок, но и в любые, уже существующие, вкладки личного кабинета, даже произвольно созданные из административной части!

Рассмотрим возможность добавления своих дочерних вкладок внутрь любой другой, уже существующей, вкладки личного кабинета:

Как можно заметить, мы формируем массив новой дочерней вкладки при срабатывании события "rcl_setup_tabs" и передаем его внутрь функции вторым аргументом

Первым аргументом функция rcl_add_sub_tab() принимает указание идентификатора существующей вкладки личного кабинета для которой и добавляем данную дочернюю вкладку.

Формируемый массив по своей структуре идентичен массиву данных дочерней вкладки при регистрации вкладки через функцию rcl_tab().

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

Теперь нет необходимости создавать новую вкладку личного кабинета, когда логичнее выводить данные в дочерней вкладке. Стало проще структурировать контент личного кабинета и выводить его.

Надеюсь новый функционал плагина найдет признание у разработчиков дополнений к плагину WP-Recall и будет ими широко использоваться.

ПС: Новый метод регистрации вкладки личного кабинета через функцию rcl_tab() полностью совместим со всеми ранее выпущенными дополнениями, где применяется старый способ регистрации вкладок. Авторам таких дополнений в дальнейшем рекомендуется перевести регистрацию вкладок к актуальному состоянию.

 

6

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

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

Андрей CS

12k

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

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