Xataface 2.0
Xataface Application Framework
Dataface/FormTool/table.php
Go to the documentation of this file.
00001 <?php
00002 $GLOBALS['HTML_QUICKFORM_ELEMENT_TYPES']['table'] = array('HTML/QuickForm/table.php', 'HTML_QuickForm_table');
00003 
00007 class Dataface_FormTool_table {
00008 
00009         function &buildWidget(&$record, &$field, &$form, $formFieldName, $new=false){
00010                 /*
00011                  *
00012                  * This field uses a table widget.
00013                  *
00014                  */
00015                 
00016                 $table =& $record->_table;
00017                 $formTool =& Dataface_FormTool::getInstance();
00018                 $factory =& Dataface_FormTool::factory();
00019                 $widget =& $field['widget'];
00020                 $el =& $factory->addElement('table',$formFieldName, $widget['label']);
00021                 if ( isset($widget['fields']) ){
00022                         $widget_fields =& $widget['fields'];
00023                         foreach ($widget_fields as $widget_field){
00024                                 $widget_field =& Dataface_Table::getTableField($widget_field, $this->db);
00025 
00026                                 if ( PEAR::isError($widget_field) ){
00027                                         return $widget_field;
00028                                 }
00029                                 
00030                                 $widget_widget = $formTool->buildWidget($record, $widget_field, $factory, $widget_field['name']);
00031                                 $el->addField($widget_widget);
00032                         }
00033                 } else if ( isset($field['fields']) ){
00034                         foreach ( array_keys($field['fields']) as $field_key){
00035                                 $widget_widget = $formTool->buildWidget($record, $field['fields'][$field_key], $factory, $field['fields'][$field_key]['name']);
00036                                 $el->addField($widget_widget);
00037                                 unset($widget_widget);
00038                         
00039                         }
00040                 }
00041 
00042                 return $el;
00043         }
00044         
00045         function pullValue(&$record, &$field, &$form, &$element, $new=false){
00046                 return $record->getValue($field['name']);
00047         }
00048 }
 All Data Structures Namespaces Files Functions Variables Enumerations