Современная, быстрая и удобная система управления сайтом

Плагин «Tabs»

Центр помощиКомментарии: 0Просмотров: 15284

Сделал плагин для табов. Сами по себе эти табы не проблема, тем более, что они уже стандартно входят в jQuery UI (он в комплекте MaxSite CMS). Но мне хотелось сделать так, чтобы эти табы можно было настраивать как обычный виджет.

Проблема в том, что содержимое таба это какая-то php-функция. Можно конечно просто выводить какой-то статический текст, но мне такой вариант не интересен. Насколько я знаю, даже в некоторых WordPress-шаблонах данная проблема решена «в лоб»: функции для табов явно прописаны в шаблоне или виджете. То есть например поменять порядок или сами функции можно только изменив исходный php-код. Мне такой подход не нравится, поэтому я придумал другую схему.

Вариант 1. Используем Ушки

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

Схема до безобразия простая.

Вначале активируем плагины «Tabs» и «Ушки». Располагаем виджет табов в сайдбаре. В самом виджете таба указывает названия табов и названия ушек, например так:

Метки | таб-метки 
Рубрики | таб-рубрики
Цитата | таб-цитата

Разделитель - «|».

Далее идем в Ушки Плагины) и создаем ушки «таб-метки», «таб-рубрики» и «таб-цитата». Во всех ушках ставим тип «PHP».

Теперь наша задача прописать код в ушках. Поскольку все наши функции это виджеты, то мы можем просто ими воспользоваться. Имена функций можно посмотреть на странице «Сайдбары и виджеты» или в коде виджетов. В большинстве случаев функции вывода будут формата: «виджет_widget_custom».

Код для ушки «таб-метки»:

<?php
echo tagclouds_widget_custom(array(), 999);
?>

Код для ушки «таб-рубрики»:

<?php
echo catclouds_widget_custom(array(), 999);
?>

Код для ушки «таб-цитата»:

<?php
echo randomtext_widget_custom(array(), 999);
?>

Как видите у всех стандартный формат вызова. Для того, чтобы кастомизировать вывод можно в первом параметре (массив) указать нужные параметры. Естественно, эти параметры зависят от конкретного виджета и их следует уже смотреть в файле плагина.

Второй параметр - номер виджета. Если указать скажем 1, то будут использоваться настройки (точнее кэш) первого виджета данной функции. Поэтому я указал несуществующий 999.

В общем-то можно пойти и на хитрость: вначале настроить виджет как обычно, а потом просто указать его номер. Но в этом случае вам нужно вызывать функцию «виджет_widget», где указать единственный параметр - номер виджета.

Для того, чтобы изменить внешний вид таба нужно редактировать файл tabs.css. Сами табы отображаются в виде картинки tabs.png. Все эти файлы находятся в каталоге плагина /to_template/ и их необходимо скопировать в каталог шаблона.

 

Вариант 2. Используем Виджеты

Можно сразу указать функцию виджета. Для этого в сайдбаре расположим виджеты для табов. Нужно только указать номер и условие = false:

category_widget 20
links_widget 20 false
catclouds_widget 20 false

Условие «false» указывается для того, чтобы виджет никогда не отображался в сайдбаре. Но при этом мы можем настроить эти виджеты.

После этого в настройках виджета табов указываем функции виджетов и их номер:

Рубрики | category_widget 20
Ссылки | links_widget 20
Рубрики | catclouds_widget 20

Там же указываем, что мы используем функции виджетов, а не ушку.