FFCMS Wiki

Официальная документация разработчика и администратора

Инструменты пользователя

Инструменты сайта


helper:html:table

HTML-помощник: Таблицы (Table)

Помощник таблицы (Table) предназначен для быстрой генерации каркаса статических и динамических таблиц для пользовательского представления. Помощник таблицы предназначен для отображения структурированных данных в табличном виде.

Класс Table содержит один статический метод display(array) который в качестве аргумента принимает массив параметров таблицы и элементов отображения.

Введение в использование

Расмотрим простейший пример использования помощника таблиц, для генерации классической bootstrap таблицы:

use Ffcms\Core\Helper\HTML\Table;
 
echo Table::display([
    'table' => ['class' => 'table table-striped'],
    'thead' => [
        'titles' => [
            ['text' => '#'],
            ['text' => 'First name'],
            ['text' => 'Last name'],
            ['text' => 'User name']
        ]
    ],
    'tbody' => [
        'items' => [
            [['text' => '1'], ['text' => 'Mark'], ['text' => 'Otto'], ['text' => '@mdo']],
            [['text' => '2'], ['text' => 'Jacob'], ['text' => 'Thornton'], ['text' => '@fat']],
        ]
    ]
]);

В результате интерпретации данного php-кода будет сгенерирован следующий html-код:

<table class="table table-striped"> 
    <thead>
        <tr>
            <th>#</th> 
            <th>First Name</th> 
            <th>Last Name</th> 
            <th>Username</th> 
        </tr> 
    </thead> 
    <tbody> 
         <tr> 
             <td>1</td> 
             <td>Mark</td> 
             <td>Otto</td> 
             <td>@mdo</td> 
         </tr> 
         <tr> 
             <td>2</td> 
             <td>Jacob</td> 
             <td>Thornton</td> 
             <td>@fat</td> 
         </tr>
    </tbody>
</table>

имеющий следующий вид:

 table example

При передаче массива параметров, должны (могут) быть определены следующие ключи:

  • table - необязательный параметр, отвечает за свойства корневого тега <table[properties]>
  • thead - необязательный параметр, отвечает за генерацию секции <thead></thead> заголовков таблицы
  • tbody - обязательный параметр с обязательным вложенным параметром items, отвечает за генерацию секции <tbody></tbody> и вложенных в нее структурированных элементов tr→{td}

Элементы таблицы

Элементы основного тела таблицы (см. tbody ⇒ items) должны быть представлены в виде структурированного двухмерного массива. Из содержимого массива items генерируется основная часть таблицы - строки и ячейки данных. Каждый новый массивный элемент в items определяет новую строку tr, а каждый массивный элемент строки - определяет значение ячейки. Рассмотрим построение двухмерного массива items на примере:

use Ffcms\Core\Helper\HTML\Table;
 
echo Table::display([
    'tbody' => [
        'items' => [
            // row #1
            [
                ['text' => '1'], // column #1
                ['text' => 'Mark'], // column #2
                ['text' => 'Otto'], // column #3
                ['text' => '@mdo'] // column #4
            ],
            // row #2
            [['text' => '2'], ['text' => 'Jacob'], ['text' => 'Thornton'], ['text' => '@fat']],
        ]
    ]
]);

Как видно из примера, первая строка (row #1) формируется массивом, который в свою очередь содержит внутри себя массивы с ячейками(column #1, #2 .. #4) и их параметрами. Такой подход к формированию строк и столбцов позволяет динамически генерировать элементы items в циклах или переборах списков. Рассмотрим используемые атрибуты в формировании ячеек:

  • text: обязательное свойство, задает содержимое ячейки <td>text</td>
  • property: необязательное свойство, определяет массив атрибутов тегов ячей или строк
  • html: необязательное свойство. Позволяет использовать безопасный html-синтаксис в свойстве text в случае, если значение установлено в true.
  • !secure: необязательное свойство. Позволяет использовать любой html-синтаксис в свойстве text в случае, если значение установлено в true.

Область применения

Как уже отмечалось ранее, динамическая генерация таблиц удобна для быстрого отображения структурированных данных.

helper/html/table.txt · Последние изменения: 2017/09/06 09:01 (внешнее изменение)