Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bscheshirwork/hyphenation-grid


https://github.com/bscheshirwork/hyphenation-grid

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

hyphenation-grid
========================

Данные одной сущности размещаем в несколько строк для zii.widgets.grid.CGridView

Использование:

Импортируем компонент:

```php

```



В свойствах добавлены следующие настройки:

'hyphenationColumns' = array();
массив номеров колонок, по которым осуществлять перенос на новую строку
или

'hyphenationOnCount' = null;
через каждые N колонок делать перенос

'hyphenationRowHtmlOptionsExpression'
аналог rowHtmlOptionsExpression, применяется к tr перенесённой строки. Если передан hyphenationOnCount - берётся для каждого переноса. Иначе требуется передать массив, где ключами будут номера колонок, по которым идёт перенос,
а значениями - применяемые для этого переноса опции.
```php
'hyphenationRowHtmlOptionsExpression'=>[
2=>'["id"=>"second_{$row}"]', //обратите внимание на вид кавычек - строка будет передана в evaluateExpression
],
```

'hyphenationRowCssClassExpression'
аналог rowCssClassExpression, применяется к tr перенесённой строки. Если передан hyphenationOnCount - берётся для каждого переноса. Иначе требуется передать массив, где ключами будут номера колонок, по которым идёт перенос,
а значениями - применяемые для этого переноса опции.
```php
'hyphenationRowCssClassExpression'=>[
2=>'($row % 2)?"hidden":""', //обратите внимание на вид кавычек - строка будет передана в evaluateExpression
],
```

'hyphenationDisableRowCssClass'
Если данный флаг передан - для новой строки не будет применятся стиль из перечесления rowCssClass.
Работает в паре с 'hyphenationRewriteClass'
По умолчанию true

'hyphenationRewriteClass'
При переносе строки перезаписывать класс, сформированный для начала строки. Новые значения, вычисленные в
hyphenationRowHtmlOptionsExpression и hyphenationRowCssClassExpression заменят $htmlOptions['class'] начала строки.
Используйте с 'hyphenationDisableRowCssClass'=>false, если всё ещё хотите применить тот же стиль из перечисления rowCssClass, что и в начале строки.
По умолчанию false

Используем colspan для объеденения колонок.


В остальном - используем как обычно.

Пример
```php
...
$controller = $this;
...
widget('HypGridView', [
'id'=>'currencyrate-grid-1',
'dataProvider'=>$dataProvider,
'hyphenationColumns'=>[2,3],
//'hyphenationOnCount'=>2,
'hyphenationRowHtmlOptionsExpression'=>[
2=>'["id"=>"second_{$row}"]'
],
'hyphenationRowCssClassExpression'=>[
2=>['display'=>'none']
],
'hyphenationDisableRowCssClass'=>true,
'hyphenationRewriteClass'=>false,
'columns'=>[
'ccy',
'ccy_name_ru',
[
'name'=>'buy',
'type' => 'raw',
'value'=>'$data->buy/10000',
'headerHtmlOptions'=>['colspan'=>'2'],
'htmlOptions'=>['colspan'=>'2'],
],
[
'name'=>'sortOrder',
'evaluateHtmlOptions'=>true,
'htmlOptions'=>['id'=>'"ordering_{$data->id}"'],
],
'unit',
'date',
[
'name'=>'somename',
'header'=>'someheader',
'value' => function($data, $row) use ($controller) {
return $controller->renderPartial('trait/__someone', array('data' => $data), true);
},
],
],
]); ?>
```