uiTable

На печать

Класс позволяет создавать таблицы вывода, является наследником абстрактного класса uiTableFunctions.

Таблицы вывода - специальные элементы интерфейса для вывода, в различном виде, списков объектов/записей. Эти таблицы позволяют выводить редактируемые списки объектов с использованием:

Большинство действий выполняется без перезагрузки страницы с использованием технологии Ajax. Существуют различные варианты изменения стиля и оформления таблиц вывода.

Таблицы вывода работают в двух режимах:

При работе с массивом поддерживается не весь функционал. Нужно самостоятельно писать обработчики:

Описание методов

__construct()

Конструктор класса. Устанавливает источник выборки объектов. Источником может быть либо объект класса ormSelect, либо ассоциативный массив. При этом ключи массива должны совпадать с названием столбцов таблицы.

style()

Определяет стиль отображения таблицы.

Внимание! Метод в разработке!

showStyles()

Показывает \ прячет панель выбора стиля таблицы.

Внимание! Метод в разработке!

showSearch()

Показать / скрыть форму поиска по таблице.

hideEmptyColumns()

Показать / спрятать пустые столбцы таблицы. Пустыми считаются столбцы со значением "" или "0". Метод используется, если вы не знаете объекты каких классов данных будут выводиться в таблице.

fastEdit()

Включает \ выключает быстрое редактирование текстовых полей в таблице. Работает только в режимах table и list.

Внимание! Метод в разработке!

formatValues()

Включает / выключает автоформатирование значений полей. Используется при работе с ORM-объектами. Если автоформатирование включено, способ отображения полей таблицы выбирается автоматически в зависимости от типа.

emptyText()

Устанавливает текст сообщения, которое выведется при пустом списке объектов.

addRight()

  Добавляет новую кнопку для строк таблицы. 

addEmptyRight()

Добавляет отступ между кнопками.

addColumn()

Добавляет столбец в таблицу.

defaultRight()

Устанавливает действие по клику на строки таблицы.

moreParam()

Устанавливает дополнительные параметры передаваемые по ссылке и через POST-запрос.

disableFilters()

Отключает / включает фильтры. По умолчании фильтры включены.

showFilters()

Показывает / прячет форму с фильтрами. По умолчанию фильтры не отображаются.

hideFilters()

Устанавливает список полей фильтры для которых показывать не нужно.

showFilter()

Принудительно показывает фильтр для указанного поля.

newFilter()

Добавляет новый произвольный фильтр в указанную позицию.

setDelMessage()

Устанавливает текст для сообщения показываемом пользователю при удалении записи.

setMultiDelMessage()

Устанавливает текст для сообщения показываемом пользователю при удалении нескольких записей.

getHTML()

Формирует таблицу


Примеры



Строим список объектов, в качестве источника ORM-выборка

Выводим список пользователей с формой поиска и фильтрации, с кнопками редактирования, с возможностью сортировки.

// Определяем условия выборки пользователей
$sel = new ormSelect('user');
$sel->orderBy('last_visit', desc);

// Строим таблицу пользователей
$table = new uiTable($sel);
$table->formatValues(true);      // Автоматически форматировать значения полей
$table->showSearch(true);        // Выводить форму поиска с фильтрами

// Перечисляем столбцы таблицы
$table->addColumn('name', 'Логин', 0, true);
$table->addColumn('familia first_name', 'Имя', 0, true);
$table->addColumn('last_visit', 'Последнее посещение', 0, true);
$table->addColumn('parents', 'Входит в группы', 0, false, true);

// Перечисляем действия которые возможно произвести
$table->defaultRight('user_upd');                // Клик на строку, переход к редактированию
$table->addRight('user_upd', 'edit', single);    // Кнопка редактировать
$table->addRight('user_act', 'active', multi);   // Кнопка активности
$table->addRight('user_del', 'drop', multi);     // Кнопка удалить

// Генериhetv таблицу
return $table->getHTML();


Строим произвольный список, в качестве источника массив значений
// Исходный массив
$mas = array(
	0 => array('name' => 'Рыба красная', 'price' => '100', 'date' => '2010-11-24 03:55:47'),
	1 => array('name' => 'Мясо вкусное', 'price' => '90', 'date' => '2010-08-23 15:07:15'),
	2 => array('name' => 'Булка сдобная', 'price' => '40', 'date' => '2010-08-23 15:07:15')
);

// Функция для обработки значений столбца "цена"
function changePrice($val, $obj) {
	return $val.' руб.';	
}

// Строим таблицу
$table = new uiTable($mas);

$table->addColumn('name', 'Название', 300, false);
$table->addColumn('price', 'Цена', 100, true, true, 'changePrice');
$table->addColumn('date', 'Дата', 100, true, true, 'viewDate');

$table->defaultRight('myobj_upd');               
$table->addRight('myobj_upd', 'edit', single);    
$table->addRight('myobj_del', 'drop', multi);     

return $table->getHTML();


Что-то не так? Напиши, учтем!