Генератор списков (таблиц): различия между версиями

Материал из CMS Sitebill Wiki
Перейти к навигации Перейти к поиску
Строка 34: Строка 34:
 
         //Теперь в $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>

Версия 09:53, 17 мая 2018

Генерация таблицы с помощью SQL-запроса


        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;
    }

}