-
Notifications
You must be signed in to change notification settings - Fork 35
Widget
Структура файлов подчиняется стандартным правилам Kohana.
classes\model\widget\type.php //class Model_Widget_Type - путь до класса виджета
OR
classes\model\widget\type\underscore.php //class Model_Widget_Type_Underscore
|
views\widgets\backend\type.php - путь до файла шаблона дополнительных настроек виджета
OR
views\widgets\backend\type_underscore.php
|
views\widgets\frontend\type.php - путь до файла шаблона по умолчанию для виджета
OR
views\widgets\frontend\type_underscore.php
-
Model_Widget_Decorator
для любых типов виджетов -
Model_Widget_Decorator_Pagination
для виджетов, использующих постраничную навигацию и вывода списка.
Также вы всегда можете создать свой тип виджетов и использовать его.
Создание нового виджета начинается с конфига, все виджеты описываются в конфиг файле /config/widgets.php
.
return array(
__('Widget category') => array(
// class Model_Widget_Super_widget
// path classes\model\widget\super\widget.php
'super_widget' => __('Super widget'),
),
);
При наследовании своего класса от Model_Widget_Decorator
вам необходимо реализовать абстрактный метод fetch_data()
, который служит для передачи значений в шаблон виджета.
class Model_Widget_Test extends Model_Widget_Decorator {
public function fetch_data()
{
return array(
'param1' => 'abc
);
}
}
В сниппете указаном в качестве шаблона виджета это значение получается как:
<?php echo $param1; // return "abc" ?>
При наследовании своего класса от Model_Widget_Decorator_Pagination
вам необходимо также реализовать метод count_total()
, которые делает подсчет общего кол-ва документов в разделе, используется виджететом постраничной навигаци для расчета кол-ва страниц.
Смотреть описание методов