Класс Table


НАЧАЛО >> Оглавление >> Сервер приложений ИРБИС 64/128 >> Ядро системы >> Класс Table📄 Скачать в DOCX


Table - внутренний PHP-класс для накопления табличных данных в памяти и вывода их в нескольких представлениях. Класс расположен в classes/Table.php и используется серверным кодом, когда нужно собрать набор строк и столбцов, а затем передать его дальше как массив, HTML-таблицу, результат шаблона или CSV-строку.

1. Основные методы

Метод Назначение
AppendCol($id, $title = '') Добавляет один столбец. $id используется как ключ данных, $title - как пользовательский заголовок.
AppendCols($colarr) Добавляет несколько столбцов из массива id => title.
AppendRow($data) Добавляет одну строку. Ключи массива должны совпадать с идентификаторами столбцов.
AppendRows($data) Добавляет несколько строк.
GetAsArray() Возвращает строки как массив с ключами выбранных столбцов.
GetAsHtml() Возвращает HTML-таблицу. Дополнительные HTML-атрибуты можно задавать через свойства таблицы, строк и столбцов.
GetAsTemplate($tplname) Передает rows и cols в модуль Templates и возвращает результат указанного шаблона.
GetAsCsv() Возвращает содержимое таблицы в виде CSV-строки.

2. GetAsCsv()

GetAsCsv() формирует CSV по текущим строкам таблицы и возвращает готовую строку. Метод не отправляет HTTP-заголовки и не сохраняет файл: вызывающий код сам выбирает, как передать результат пользователю или другой подсистеме.

Особенности результата:

Перед вызовом GetAsCsv() в таблице должна быть хотя бы одна строка, иначе методу не из чего определить порядок столбцов. Значения строк должны быть текстовыми или приводимыми к строке и должны корректно перекодироваться из UTF-8 в windows-1251.

Пример:

UseClass('Table');

$table = new Table();
$table->AppendCols(array(
    'id' => 'Идентификатор',
    'name' => 'Название',
));
$table->AppendRow(array(
    'id' => '1',
    'name' => 'Пример',
));

$csv = $table->GetAsCsv();

В примере переменная $csv содержит CSV-строку с заголовками Идентификатор и Название, разделенными точкой с запятой.