Генератор списков (таблиц)
Перейти к навигации
Перейти к поиску
Генерация таблицы с помощью SQL-запроса
Подключение шаблонизатора элементов происходит с помощью библиотеки
require_once(SITEBILL_DOCUMENT_ROOT . '/apps/system/lib/system/view/grid_item_renderer.php');
require_once(SITEBILL_DOCUMENT_ROOT . '/apps/system/lib/system/view/grid.php');
$common_grid = new Common_Grid($this);
//Создаем экземпляр класса для рендеринга вывода определенных элементов значений в таблице
$reserved_object_id_renderer = new Reserved_OBJECT_ID_renderer;
//Установка колонок таблицы
$common_grid->add_grid_item($this->primary_key);
$common_grid->add_grid_item('is_validated');
$common_grid->add_grid_item('start_date');
$common_grid->add_grid_item('end_date');
//Второй аргумент $reserved_object_id_renderer передает экземпляр класса,
//отвечающего за генерацию оформления при выводе этого элемента в таблице
//Второй аргумент не обязателен
$common_grid->add_grid_item('object_id', $reserved_object_id_renderer);
//Установка контрольных элементов
//Просмотр записи
$common_grid->add_grid_control('view');
//Редактирование
$common_grid->add_grid_control('edit');
//Удаление
$common_grid->add_grid_control('delete');
//устанавливаем параметры для пейджера
$common_grid->setPagerParams(array('action' => $this->action, 'page' => $this->getRequestValue('page'), 'object_id' => $object_id, 'order' => $order, 'asc' => $asc, 'per_page' => $this->getConfigValue('common_per_page')));
//Устанавливаем запрос, с помощью которого мы получаем ассив значений для таблицы
$common_grid->set_grid_query("select * from " . DB_PREFIX . "_" . $this->table_name . ' WHERE user_id=' . $user_id . ' order by ' . $order . ' ' . $asc);
//Теперь в $rs содержиться сгенерированная таблица в виде строки
$rs = $common_grid->construct_grid();
Пример реализации рендерера
class Reserved_OBJECT_ID_renderer implements grid_item_renderer {
//на входе получаем значение обрабатываемой ячейки
function fetch_template($params) {
$rs = '<a href="'.SITEBILL_MAIN_URL.'/realty'.$params.'" target="_blank">номер '.$params.' </a>';
return $rs;
}
}