ormMultiForm

На печать

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

Мультиформы - это формы для редактирования сразу нескольких ORM-объектов. Своеобразный сплав обычной формы и таблицы.

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

__construct()

Создает мультиформу с указанным именем.

addColumn()

Добавляет столбец в форму.

attachJavaScript()

Прикрепляет указанный JavaScript файл к форме

setData()

Устанавливает в качестве источника данных выборку ORM-объектов.

moreParam()

Устанавливает дополнительные параметры, передаваемые обработчику формы.

setRight()

Устанавливает право для обработки формы.

withoutAdditions()

Запрещает добавление объектов через форму.

withoutRemoving()

Запрещает удаление объектов через форму.

insideForm()

Указывает, что форма не является самостоятельной. Если метод вызван, элементы формы не обрамляются тегом <form>.

getHTML()

Генерация мультиформы.

getParam()

Вернет дополнительные параметры переданные в POST через метод moreParam(). Данный метод имеет смысл использовать только в обработчике формы.

process()

Сохраняет все пришедшие данные. Метод используется обработчиком формы.


Примеры



Редактирование различных видов цен у товаров

Создается мультиформа для редактирования трех видов цен товара, без возможности добавления и удаления товаров. Задается четыре поля: первое название товара (только чтение) и три поля для редактирования ценны.

<?php

class __price {

    // Форма редактирования
	public function upd() {
		
		// Создаем выборку объектов
		$sel = new ormSelect('goods');

		// Создаем форму
		$form = new ormMultiForm('change_price');
		$form->setData($sel);
		$form->setRight('price_proc_upd');      
		
		$form->addColumn('name', 'Название', 0, 0, false);      
		$form->addColumn('price1', 'Розница');
		$form->addColumn('price2', 'Опт');
		$form->addColumn('price3', 'Дилер'); 

		$form->withoutAdditions();   
		$form->withoutRemoving();
		
		return $form->getHTML(); 
	}    
	
	// Обработчик формы
	public function proc_upd() {

		// Сохраняем изменения   
		$form = new ormMultiForm('change_price');
		$form->process();  
		
		system::redirect('/structure/tree');

	} 		  
}
	
?>


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