PHP Classes

File: Grid/Form.php

Recommend this page to a friend!
  Classes of Filipe Sá   Zend Framework Data Grid   Grid/Form.php   Download  
File: Grid/Form.php
Role: Class source
Content type: text/plain
Description: Class source
Class: Zend Framework Data Grid
Display and edit data from a database in a grid
Author: By
Last change:
Date: 13 years ago
Size: 21,632 bytes
 

Contents

Class file image Download
<?php /** * LICENSE * * This source file is subject to the new BSD license * It is available through the world-wide-web at this URL: * http://www.petala-azul.com/bsd.txt * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to geral@petala-azul.com so we can send you a copy immediately. * * @package Bvb_Grid * @author Bento Vilas Boas <geral@petala-azul.com> * @copyright 2010 ZFDatagrid * @license http://www.petala-azul.com/bsd.txt New BSD License * @version $Id$ * @link http://zfdatagrid.com */ class Bvb_Grid_Form { /** * * @var Zend_Form */ protected $_form; /** * input types (text, select, etc, etc) for every form input * * @var array */ protected $_inputsType = array(); /** * Form options * * @var array */ public $options; /** * Form fields * @var array */ public $fields; /** * If the form to be showed is built with fields from query * @var bool */ protected $_fieldsBasedOnQuery = false; /** * Decorators for subform Groups * @var array */ protected $_subformGroupDecorator = array('FormElements', array('HtmlTag', array('tag' => 'td', 'colspan' => '90', 'class' => 'buttons')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))); /** * Decorators for subform elements * @var array */ protected $_subformElementDecorator = array('ViewHelper', 'Description', 'Errors', array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')), array(array('label' => 'Label'), array('tag' => 'td', 'class' => 'elementTitle')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))); /** * Decorators for subform Element Titles * @var array */ protected $_subformElementTitle = array(array('Label', array('tag' => 'th'))); /** * Decorators for subform vertical inputs elements * @var array */ protected $_subformElementDecoratorVertical = array('ViewHelper', 'Description', 'Errors', array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element'))); /** * Decorators for subform file decorators * @var array */ protected $_fileDecorator = array('File', 'Description', 'Errors', array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')), array(array('label' => 'Label'), array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))); /** * Decorators for subform hidden elements * @var array */ protected $_buttonHiddenDecorator = array('ViewHelper'); /** * Decorators for form * @var array */ protected $_formDecorator = array('FormElements','Form'); /** * Decorators for Form * @var array */ protected $_formDecoratorSimple = array('FormElements', 'Form'); /** * Decorators for Groups * @var array */ protected $_displayGroupsDecorator = array(); /** * Decorators for subform * @var array */ protected $_subFormDecorator = array('FormElements', array('HtmlTag', array('tag' => 'table', 'class' => 'borders subForm'))); /** * Decorators for vertical subform * @var array */ protected $_subFormDecoratorVertical = array('FormElements', array('HtmlTag', array('tag' => 'tr'))); /** * Number of subform to show when performing bulk aditions * @var int */ protected $_bulkAdd = 1; /** * Allow bulk Deletion * @var bool */ protected $_bulkDelete = false; /** * Allow bulk Edition * @var bool */ protected $_bulkEdit = false; /** * use vertical inputs, instead horizontal * @var bool */ protected $_useVerticalInputs = true; /** * Use CSRF element to prevent atacks * @var bool */ protected $_useCSRF = true; /** * Use decorators. If false it will assume you have your own in your form class * @var bool */ protected $_useDecorators = true; /** * Fields allowed to be processd * @var array */ protected $_allowedFields = array(); /** * Fields not allowed to be processed * @var array */ protected $_disallowedFields = array(); /** * When adding force some input to have the value specified * @var array */ protected $_onAddForce = array(); /** * When editing force some inputs to have the value specified * @var array */ protected $_onEditForce = array(); /** * When editing, add extra condition to the existing ones * @var array */ protected $_onEditAddCondition = array(); /** * When deleting records, add extra condition to the existing ones * @var array */ protected $_onDeleteAddCondition = array(); /** * If we should show the delete column * @var bool */ protected $_deleteColumn = true; /** * If we should show the edit column * @var bool */ protected $_editColumn = true; /** * Text to be showed on top of add/edit form * * @var mixed */ protected $_formTitle = false; /** * Add button label * * @var string */ protected $_addButtonLabel = 'Add Record'; /** * If we should load only form elements that where defined * in user supplied form * * @var bool */ protected $_usePreDefinedFormElements = false; /** * Instantiates a new form, using Zend_Form * by default or any provided by the user * * @param Zend_Form $formClass Class to be instantiated. Zend_Form or any implementation * @param array $formOptions Options to be passed to the form * * @return void */ public function __construct($formClass = 'Zend_Form', $formOptions = array()) { if($formClass instanceof Zend_Form) { $this->_form = $formClass; }else{ $this->_form = new $formClass($formOptions); } } /** * Returns the current form or subform if a number is specified * * @param int $subForm If set, the subForm number to be returned. (Probably 1) * * @return Zend_Form */ public function getForm($subForm = null) { if (!is_null($subForm)) return $this->_form ->getSubForm($subForm); return $this->_form; } /** * sets the protected properties of this class, of the method does not exists * in the instantiated class (Zend_Form by default) * * @param string $name The method name or class proporty * @param mixed $args Arguments to be passed * * @return Bvb_Grid_Form */ public function __call($name, $args) { if (method_exists($this->getForm(), $name)) { return call_user_func_array(array($this->getForm(), $name), $args); } if (substr(strtolower($name), 0, 3) == 'set') { $name = substr($name, 3); $name[0] = strtolower($name[0]); $this->options[$name] = $args[0]; return $this; } } /** * @param Zend_Form $_form */ public function setForm($_form) { $this->_form = $_form; return $this; } /** * @return the $_inputsType */ public function getInputsType() { return $this->_inputsType; } /** * @param array $_inputsType */ public function setInputsType($_inputsType) { $this->_inputsType = $_inputsType; return $this; } /** * @return the $options */ public function getOptions() { return $this->options; } /** * @param array $options */ public function setOptions($options) { $this->options = $options; return $this; } /** * @return the $fields */ public function getFields() { return $this->fields; } /** * @param array $fields */ public function setFields($fields) { $this->fields = $fields; return $this; } /** * @return the $_fieldsBasedOnQuery */ public function getFieldsBasedOnQuery() { return $this->_fieldsBasedOnQuery; } /** * @param bool $_fieldsBasedOnQuery */ public function setFieldsBasedOnQuery($_fieldsBasedOnQuery) { $this->_fieldsBasedOnQuery = $_fieldsBasedOnQuery; return $this; } /** * @return the $_subformGroupDecorator */ public function getSubformGroupDecorator() { return $this->_subformGroupDecorator; } /** * @param array $_subformGroupDecorator */ public function setSubformGroupDecorator($_subformGroupDecorator) { $this->_subformGroupDecorator = $_subformGroupDecorator; return $this; } /** * @return the $_subformElementDecorator */ public function getSubformElementDecorator() { return $this->_subformElementDecorator; } /** * @param array $_subformElementDecorator */ public function setSubformElementDecorator($_subformElementDecorator) { $this->_subformElementDecorator = $_subformElementDecorator; return $this; } /** * @return the $_subformElementTitle */ public function getSubformElementTitle() { return $this->_subformElementTitle; } /** * @param array $_subformElementTitle */ public function setSubformElementTitle($_subformElementTitle) { $this->_subformElementTitle = $_subformElementTitle; return $this; } /** * @return the $_subformElementDecoratorVertical */ public function getSubformElementDecoratorVertical() { return $this->_subformElementDecoratorVertical; } /** * @param array $_subformElementDecoratorVertical */ public function setSubformElementDecoratorVertical( $_subformElementDecoratorVertical) { $this->_subformElementDecoratorVertical = $_subformElementDecoratorVertical; return $this; } /** * @return the $_fileDecorator */ public function getFileDecorator() { return $this->_fileDecorator; } /** * @param array $_fileDecorator */ public function setFileDecorator($_fileDecorator) { $this->_fileDecorator = $_fileDecorator; return $this; } /** * @return the $_buttonHiddenDecorator */ public function getButtonHiddenDecorator() { return $this->_buttonHiddenDecorator; } /** * @param array $_buttonHiddenDecorator */ public function setButtonHiddenDecorator($_buttonHiddenDecorator) { $this->_buttonHiddenDecorator = $_buttonHiddenDecorator; return $this; } /** * @return the $_formDecorator */ public function getFormDecorator() { return $this->_formDecorator; } /** * @param array $_formDecorator */ public function setFormDecorator($_formDecorator) { $this->_formDecorator = $_formDecorator; return $this; } /** * @return the $_formDecoratorSimple */ public function getFormDecoratorSimple() { return $this->_formDecoratorSimple; } /** * @param array $_formDecoratorSimple */ public function setFormDecoratorSimple($_formDecoratorSimple) { $this->_formDecoratorSimple = $_formDecoratorSimple; return $this; } /** * @return the $_displayGroupsDecorator */ public function getDisplayGroupsDecorator() { return $this->_displayGroupsDecorator; } /** * @param array $_displayGroupsDecorator */ public function setDisplayGroupsDecorator($_displayGroupsDecorator) { $this->_displayGroupsDecorator = $_displayGroupsDecorator; return $this; } /** * @return the $_subFormDecorator */ public function getSubFormDecorator() { return $this->_subFormDecorator; } /** * @param array $_subFormDecorator */ public function setSubFormDecorator($_subFormDecorator) { $this->_subFormDecorator = $_subFormDecorator; return $this; } /** * @return the $_subFormDecoratorVertical */ public function getSubFormDecoratorVertical() { return $this->_subFormDecoratorVertical; } /** * @param array $_subFormDecoratorVertical */ public function setSubFormDecoratorVertical($_subFormDecoratorVertical) { $this->_subFormDecoratorVertical = $_subFormDecoratorVertical; return $this; } /** * @return the $_bulkAdd */ public function getBulkAdd() { return $this->_bulkAdd; } /** * @param int $_bulkAdd */ public function setBulkAdd($_bulkAdd) { $this->_bulkAdd = $_bulkAdd; return $this; } /** * @return the $_bulkDelete */ public function getBulkDelete() { return $this->_bulkDelete; } /** * @param bool $_bulkDelete */ public function setBulkDelete($_bulkDelete) { $this->_bulkDelete = $_bulkDelete; return $this; } /** * @return the $_bulkEdit */ public function getBulkEdit() { return $this->_bulkEdit; } /** * @param bool $_bulkEdit */ public function setBulkEdit($_bulkEdit) { $this->_bulkEdit = $_bulkEdit; return $this; } /** * @return the $_useVerticalInputs */ public function getUseVerticalInputs() { return $this->_useVerticalInputs; } /** * @param bool $_useVerticalInputs */ public function setUseVerticalInputs($_useVerticalInputs) { $this->_useVerticalInputs = $_useVerticalInputs; return $this; } /** * @return the $_useCSRF */ public function getUseCSRF() { return $this->_useCSRF; } /** * @param bool $_useCSRF */ public function setUseCSRF($_useCSRF) { $this->_useCSRF = $_useCSRF; return $this; } /** * @return the $_useDecorators */ public function getUseDecorators() { return $this->_useDecorators; } /** * @param bool $_useDecorators */ public function setUseDecorators($_useDecorators) { $this->_useDecorators = $_useDecorators; return $this; } /** * @return the $_allowedFields */ public function getAllowedFields() { return $this->_allowedFields; } /** * @param array $_allowedFields */ public function setAllowedFields($_allowedFields) { $this->_allowedFields = $_allowedFields; return $this; } /** * @return the $_disallowedFields */ public function getDisallowedFields() { return $this->_disallowedFields; } /** * @param array $_disallowedFields */ public function setDisallowedFields($_disallowedFields) { $this->_disallowedFields = $_disallowedFields; return $this; } /** * Adds one more field to the set not allowed to be managed * @param string $field * @return Bvb_Grid_Form */ public function addAllowedField($field) { $this->_allowedFields[] = $field; return $this; } /** * Adds another set of fields not allowed to be managed * @param array $fields * @return Bvb_Grid_Form */ public function addAllowedFields(array $fields) { $this->_allowedFields = array_merge($fields, $this->_allowedFields); return $this; } /** * Adds one more field to the set not allowed to be managed * @param string $field * @return Bvb_Grid_Form */ public function addDisallowedField($field) { $this->_disallowedFields[] = $field; return $this; } /** * Adds another set of fields not allowed to be managed * @param array $fields * @return Bvb_Grid_Form */ public function addDisallowedFields(array $fields) { $this->_disallowedFields = array_merge($fields, $this->_disallowedFields); return $this; } /** * @return the $_onAddForce */ public function getOnAddForce() { return $this->_onAddForce; } /** * @param array $_onAddForce */ public function setOnAddForce($_onAddForce) { $this->_onAddForce = $_onAddForce; return $this; } /** * @return the $_onEditForce */ public function getOnEditForce() { return $this->_onEditForce; } /** * @param array $_onEditForce */ public function setOnEditForce($_onEditForce) { $this->_onEditForce = $_onEditForce; return $this; } /** * @return the $_onEditAddCondition */ public function getOnEditAddCondition() { return $this->_onEditAddCondition; } /** * @param array $_onEditAddCondition */ public function setOnEditAddCondition($_onEditAddCondition) { $this->_onEditAddCondition = $_onEditAddCondition; return $this; } /** * @return the $_onDeleteAddCondition */ public function getOnDeleteAddCondition() { return $this->_onDeleteAddCondition; } /** * @param array $_onDeleteAddCondition */ public function setOnDeleteAddCondition($_onDeleteAddCondition) { $this->_onDeleteAddCondition = $_onDeleteAddCondition; return $this; } /** * @return the $_deleteColumn */ public function getDeleteColumn() { return $this->_deleteColumn; } /** * @param bool $_deleteColumn */ public function setDeleteColumn($_deleteColumn) { $this->_deleteColumn = $_deleteColumn; return $this; } /** * @return the $_editColumn */ public function getEditColumn() { return $this->_editColumn; } /** * @param bool $_editColumn */ public function setEditColumn($_editColumn) { $this->_editColumn = $_editColumn; return $this; } /** * If we should use a table thead with some text to describe form action * * @param string $label * @return Bvb_Grid_Form */ public function setFormTitle($label) { $this->_formTitle = $label; return $this; } /** * If we should use a for header to describe form action * * @return mixed */ public function getFormTitle() { return $this->_formTitle; } /** * returns current label for add button * * @return string */ public function getAddButtonLabel() { return $this->_addButtonLabel; } /** * Defines a new label for the add record button * @param string $label * @return Bvb_Grid_Form */ public function setAddButtonLabel($label) { $this->_addButtonLabel = (string) $label; return $this; } /** * Defined if we should display all form elements or only the ones * definef in user supplied form * * @param bool $use * @return Bvb_Grid_Form */ public function setUsePreDefinedFormElements($value) { $this->_usePreDefinedFormElements = (bool) $value; return $this; } /** * Returns current option if we should display all form elements * or only the ones defined in user supplied form * * @return bool */ public function getUsePreDefinedFormElements() { return $this->_usePreDefinedFormElements; } }