zfstarter / zfs-grid
Installs: 166
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 1
Open Issues: 1
pkg:composer/zfstarter/zfs-grid
Requires
- php: >=5.3.23
- zendframework/zend-view: 2.3.*
This package is not auto-updated.
Last update: 2025-10-21 11:58:04 UTC
README
Модель и представление данных в табличном виде.
Подключение
Модель может быть использована сразу после подклчения библиотеки через композер.
Для использования помощников вида (ViewHelper) нужно в ваш application.config.php в ветки service_manager и listeners добавить следующее:
'service_manager' => array( 'invokables' => array( 'ZFS\Grid\View\Helper\Configurator' => 'ZFS\Grid\View\Helper\Configurator' ) ), 'listeners' => array( 'ZFS\Grid\View\Helper\Configurator' )
Ключ можно выбрать любой другой, если есть необходимость. Для использования произвольных помощников вида, их можно подключить к ViewHelperManager:
$serviceLocator ->get('ViewHelperManager') ->setInvokableClass('gridRowValue', 'ZFS\Grid\View\Helper\GridRowValue');
Использование
Для отображения данных в табличном виде нужны:
- Сами данные:
$users = array( array( 'id' => 1, 'login' => 'Vasia', 'email' => 'vasia@pupkin.com', 'status' => '0', ), array( 'id' => 2, 'login' => 'Fedia', 'email' => 'Fedia@nepupkin.com', 'status' => '1', ) );
- Модель "сетки":
$grid = new GridModel();
- Установить гриду данные:
$grid->setRows($users);
- Установить гриду набор колонок. Параметр name - системное имя колонки, fieldName - имя/ключ параметра в строке для выборки и подстановки в ячейку, title - заглавие колонки:
$grid->setColumns( array( new ColumnModel(array( 'name' => 'id', 'fieldName' => 'id', 'title' => 'ID', )), new ColumnModel(array( 'name' => 'login', 'fieldName' => 'login', 'title' => 'Login', )), new ColumnModel(array( 'name' => 'email', 'fieldName' => 'email', 'title' => 'E-mail', )) ) );
- Передать грид в представление:
// представим, что находимся в контроллере return new ViewModel(array('grid' => $grid));
- Отобразить таблицу в шаблоне с помощью ViewHelper'а Grid:
<?php echo $this->grid($grid); ?>
или отобразить таблицу вручную, если вы намеренно не подключили ViewHelper'ы.
Параметры GridModel и ColumnModel
Все параметры ColumnModel можно устанавливать через get* и set* методы:
$column = new ColumnModel(); $column->setName('name'); $column->setFieldName('name'); $column->setTitle('User name');
Полный набор параметров у ColumnModel:
- 
name - системное имя колонки; 
- 
fieldName - имя/ключ параметра в строке для выборки и подстановки в ячейку; 
- 
title - заглавие колонки; 
- 
formatter - callback, результат которого идет как значение в ячейку. Вызывается помощником вида GridRowValue после получения значения из строки и только при наличии этого параметра у ColumnModel. Сигнатура функции: function ($valueFromRowCell, $wholeRow, $currentColumn) {};
- 
id - строка, подставляется в атрибут idтэгу<th>в<thead>и<tfoot>;
- 
css - строка, подставляется в атрибут classтэгу<th>в<thead>и<tfoot>;
- 
style - строка, подставляется в атрибут styleтэгу<th>в<thead>и<tfoot>;
У GridModel тоже есть подобные параметры:
- id - строка, подставляется в атрибут idтэгу<table>;
- css - строка, подставляется в атрибут classтэгу<table>
- style - строка, подставляется в атрибут styleтэгу<table>
И у ColumnModel и у GridModel есть возможность установки произвольных параметров через магические __get и __set для ручной их обработки в шаблонах представления.
Помощники вида
В библиотеке реализованы следующие помощники вида:
- grid - отображение стандартной таблицы с использованием параметров id, css, style;
- gridHeader - отображение блока <thead>;
- gridHeaderRow - отображение строки заголовка: <tr><th>...</th></tr>;
- gridHeaderCell - отображение ячейки строки заголовка: <th>..</th>;
- gridBody - отображение блока <tbody>;
- gridBodyRow - отображение строки тела: <tr><td>...<td></tr>;
- gridBodyCell - отображение ячейки строки тела: <td>...</td>;
- gridFooter - отображение блока <tfoot>;
- gridFooterRow - отображение строки футера: <tr><th>...</th></tr>;
- gridFooterCell - отображение ячейки строки футера: <th>..</th>;
- gridRowValue - отображение значения ячейки строки данных.
Для отображения стандартной таблицы достаточно использовать лишь grid:
<?php echo $this->grid($grid); ?>
Если вам не нужен футер, к примеру, можно воспользоваться помощниками вида ниже уровня: gridHeader, gridBody:
<?php echo $this->grid()->openTag($grid); ?> <?php echo $this->gridHeader($grid); ?> <?php echo $this->gridBody($grid); ?> <?php echo $this->grid()->closeTag(); ?>
Полная аналогия с помощниками вида Zend\Form.
Лицензия
MIT