What's new? | Help | Directory | Sign in
Google
  
  
  
  
    
Search
for
Updated Apr 08, 2008 by maxsite.org
widgets  
Виджеты

Проект

Что такое виджеты

Под словом «Виджеты» мы будем понимать некий блок на сайте, который отображает какую-то информацию. Условно говоря, виджет - это некая оболочка, которая выполняет скрипт. Результат работы этого скрипта и отображается в виде блока (виджета).

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

Общая структура виджетов

В общем случае любой виджет выглядит так:

Функция, которая наполняет виджет имеет два обязательных параметра:

Массив параметров является специфичным для каждого конктретного виджета.

Что касается номера виджета, то он служит для того, чтобы однозначно идентифицировать опции. Это позволяет многократно использовать один виджет в разных блоках сайта. При этом достаточно указать разные номера с тем, чтобы настройки одного виджета не пересекались с настройками другого (функция-то одна!). При этом следует учесть, что конкретную реализацию как опций, так и номера ложаться на саму функцию плагина (мы предполагаем, что видеты будут создаваться как плагины).

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

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

Подключение виджета в шаблоне

function mso_widget($function = '', $arg = array(), $num = 1, $do = '', $posle = '', $echo = true)

Любая функция виджета должна иметь два параметра $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