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