![]() |
Xataface 2.0
Xataface Application Framework
|
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 }
1.7.4