- 12.05.15
 - 21:44
 - 2257
 - 0
 
Задача: сайдбары темы должны поддерживать несколько вариантов оформления виджетов (см. рис.) Соответствие вариантов виджетам задано в виде двухуровневого хеша:
id сайдбара => id_base типа виджета => вариант оформления.
Т. е. режим отображения виджета следует получать так:
| 
					 1 2  | 
						$mode_id = $a_widget_modes[$sidebar_id][$id_base]; $mode = $AVAILABLE_MODES[$mode_id];  | 
					
Все режимы являются частью шаблонов (содержат фрагменты вёрстки) и не имеют настраиваемых параметров. Поэтому они заданы в виде массива $AVAILABLE_MODES прямо в коде темы.
Массив соответствия вариантов виджетам $a_widget_modes является настраиваемым и каким-либо образом задаётся администратором.
Решение задачи сводится к коррекции передаваемых виджету параметров сайдбара before_widget, after_widget, before_title и after_title.
Корректировка проводится фильтром 'dynamic_sidebar_params'. Фильтруемым значением является числовой массив, содержащий два элемента:
[0]— параметры сайдбара, идентификатор и имя виджета;[1]— хеш с номером виджета.
                            