Генератор списков (таблиц): различия между версиями
Перейти к навигации
Перейти к поиску
Kondin (обсуждение | вклад) |
Kondin (обсуждение | вклад) |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
− | Генерация таблицы с помощью SQL-запроса | + | Генерация таблицы с помощью SQL-запроса<br /> |
+ | |||
+ | Подключение шаблонизатора элементов происходит с помощью библиотеки <br /> | ||
+ | |||
+ | '''require_once(SITEBILL_DOCUMENT_ROOT . '/apps/system/lib/system/view/grid_item_renderer.php'); | ||
+ | ''' | ||
+ | |||
<pre> | <pre> | ||
<nowiki> | <nowiki> | ||
Строка 34: | Строка 40: | ||
//Теперь в $rs содержиться сгенерированная таблица в виде строки | //Теперь в $rs содержиться сгенерированная таблица в виде строки | ||
$rs = $common_grid->construct_grid(); | $rs = $common_grid->construct_grid(); | ||
+ | </nowiki> | ||
+ | </pre> | ||
+ | |||
+ | Пример реализации рендерера | ||
+ | <pre> | ||
+ | <nowiki> | ||
+ | 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; | ||
+ | } | ||
+ | |||
+ | } | ||
</nowiki> | </nowiki> | ||
</pre> | </pre> |
Текущая версия на 12:06, 17 мая 2018
Генерация таблицы с помощью 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; } }