|
|
Проект
Что такое виджеты
Под словом «Виджеты» мы будем понимать некий блок на сайте, который отображает какую-то информацию. Условно говоря, виджет - это некая оболочка, которая выполняет скрипт. Результат работы этого скрипта и отображается в виде блока (виджета).
Совершенно не принципиально, что за скрипт используется в виджете. Это может быть скрипт самой системы или сторонний.
Общая структура виджетов
В общем случае любой виджет выглядит так:
- HTML-оформление в начале блока (например <div class="widget">)
- Непосредственно функция виджета (например из плагина)
- HTML-оформление в конце блока (например </div>)
Функция, которая наполняет виджет имеет два обязательных параметра:
- $args = array() - массив параметров
- $num = 1 - номер виджета
Массив параметров является специфичным для каждого конктретного виджета.
Что касается номера виджета, то он служит для того, чтобы однозначно идентифицировать опции. Это позволяет многократно использовать один виджет в разных блоках сайта. При этом достаточно указать разные номера с тем, чтобы настройки одного виджета не пересекались с настройками другого (функция-то одна!). При этом следует учесть, что конкретную реализацию как опций, так и номера ложаться на саму функцию плагина (мы предполагаем, что видеты будут создаваться как плагины).
Поскольку на данном этапе я не планирую внедрять управлением виджетами через админ-панель, то мы будем использовать виджеты, прописанные вручную в шаблоне сайта. В будущем, если настроки виджетов всё-таки переберутся в админ-панель, сам шаблон потребует минимального изменения.
Для того, чтобы унифицировать все виджеты используются несколько основных функций.
Подключение виджета в шаблоне
function mso_widget($function = '', $arg = array(), $num = 1, $do = '', $posle = '', $echo = true)
- $function - название функции виджета (в плагине).
- $arg - массив аргументов для этой функции
- $num - номер виджета, также передается в функцию
- $do - html-код перед выводом
- $posle - html-код после
- $echo - выводить ли в браузер или вернуть значение по return
Любая функция виджета должна иметь два параметра $arg и $num. Вот пример:
function plugin_widget($arg, $num)
{
if ( !isset($arg['url']) ) $arg['url'] = false;
if ( !isset($arg['count']) ) $arg['count'] = 5;
...
return $out;
}Массив параметров и номер мы задаем в mso_widget - оттуда они передаются в функцию $function.
В будущем данный способ позволит вынести настроки виджетов в админ-панель. В этом случае можно будет сохранить данные виджета в options, а в самой функции (plugin_widget) можно их сосчитать.
Sign in to add a comment
