From: Martín Marrese Date: Mon, 11 Aug 2003 22:20:49 +0000 (+0000) Subject: Agrego el nuevo renderer X-Git-Tag: svn_import~319 X-Git-Url: https://git.llucax.com/mecon/meconlib.git/commitdiff_plain/58890a698f770e368aedf137df241bc01041e62e?ds=inline Agrego el nuevo renderer --- diff --git a/lib/MECON/HTML/QuickForm/Renderer/Tabla_Servicios.php b/lib/MECON/HTML/QuickForm/Renderer/Tabla_Servicios.php new file mode 100644 index 0000000..c2b267e --- /dev/null +++ b/lib/MECON/HTML/QuickForm/Renderer/Tabla_Servicios.php @@ -0,0 +1,270 @@ + +------------------------------------------------------------------------------- +$Id$ +-----------------------------------------------------------------------------*/ + +require_once 'HTML/QuickForm/Renderer.php'; +require_once 'MECON/HTML/Tabla.php'; + +/** + * QuickForm renderer que usa Tabla como backend. + * Basado en el QuickForm Renderer basico. + * + * @access public + */ +class MECON_HTML_QuickForm_Renderer_Tabla_Servicios extends HTML_QuickForm_Renderer { + + /** + * Tabla usada para dibujar el formulario. + * @var object Tabla + * @access private + */ + var $_tabla; + + /** + * HTML con los scripts para poner antes del formulario (tipicamente + * un javascript). + * @var string + * @access private + */ + var $_script = ''; + + /** + * HTML para agregar antes de la tabla (tipicamente un javascript). + * @var string + * @access private + */ + var $_prepend = ''; + + /** + * HTML para agregar despues de la tabla. + * @var string + * @access private + */ + var $_append = ''; + + /** + * True if we are inside a group + * @var bool + * @access private + */ + var $_inGroup = false; + + /** + * Group error related message. + * @var string + * @access private + */ + var $_groupError = ''; + + /** + * Array with HTML generated for group elements + * @var array + * @access private + */ + var $_groupElements = array(); + + /** + * Constructor. + * + * @param mixed $style Estilo de la tabla. + * + * @access public + */ + function MECON_HTML_QuickForm_Renderer_Tabla_Servicios($style = array()) + { + $this->HTML_QuickForm_Renderer(); + $this->_tabla =& new Tabla($style); + } // end constructor + + /** + * returns the HTML generated for the form + * + * @access public + * @return string + */ + function toHtml() + { + return $this->_script . $this->_prepend . + $this->_tabla->toHtml() . + $this->_append; + } // end func toHtml + + /** + * Called when visiting a form, before processing any form elements + * + * @param object An HTML_QuickForm object being visited + * @access public + * @return void + */ + function startForm(&$form) + { + # FIXME - deberia sacarlo del QuickForm + #$this->_prepend = $form->getFormStart(); + $attrs = $form->getAttributesString(); + $this->_prepend = "\n\n"; + } // end func startForm + + /** + * Called when visiting a form, after processing all form elements + * Adds required note, form attributes, validation javascript and form content. + * + * @param object An HTML_QuickForm object being visited + * @access public + * @return void + */ + function finishForm(&$form) + { + // add a required note, if one is needed + if (!empty($form->_required) && !$form->_freezeAll) { + $id = $this->_tabla->addRow( + array($form->getRequiredNote()), + array('colspan' => 2, 'align' => 'center') + ); + //$this->_tabla->updateCellAttributes($id, array('colspan' => 2)); + } + // add form attributes and content + //$this->_html = str_replace('{content}', $this->_html, $html); + // add a validation script + $this->_script = strval($form->getValidationScript()); + # FIXME - deberia sacarlo del QuickForm + #$this->_append = $form->getFormEnd(); + $this->_append = "\n\n"; + } // end func finishForm + + /** + * Called when visiting a header element + * + * @param object An HTML_QuickForm_header element being visited + * @access public + * @return void + */ + function renderHeader(&$header) + { + $name = $header->getName(); + $this->_tabla->addRow( + array($header->toHtml()), + array('colspan' => 2, $name => true, 'align' => 'center') + ); + } // end func renderHeader + + /** + * Renders an element Html + * Called when visiting an element + * + * @param object An HTML_QuickForm_element object being visited + * @param bool Whether an element is required + * @param string An error message associated with an element + * @access public + * @return void + */ + function renderElement(&$element, $required, $error) + { + if (!$this->_inGroup) { + $id = $this->_tabla->addRow( + array( + $element->getLabel() . ($required ? '*' : ''), + $element->toHtml() . ($error ? "
$error" : ''), + ) + ); + $this->_tabla->updateCellAttributes($id, 0, array('align' => 'left')); + $this->_tabla->updateCellAttributes($id, 1, array('align' => 'left')); + } else { + $this->_groupElements[] = ($element->getLabel() ? ($element->getLabel().' ') : '') . $element->toHtml(); + } + } // end func renderElement + + /** + * Renders an hidden element + * Called when visiting a hidden element + * + * @param object An HTML_QuickForm_hidden object being visited + * @access public + * @return void + */ + function renderHidden(&$element) + { + $this->_prepend .= "\n\t". $element->toHtml(); + } // end func renderHidden + + /** + * Called when visiting a raw HTML/text pseudo-element + * + * @param object An HTML_QuickForm_html element being visited + * @access public + * @return void + */ + function renderHtml(&$data) + { + $this->_tabla->addRow( + array($header->toHtml()), + array('colspan' => 2) + ); + } // end func renderHtml + + /** + * Called when visiting a group, before processing any group elements + * + * @param object An HTML_QuickForm_group object being visited + * @param bool Whether a group is required + * @param string An error message associated with a group + * @access public + * @return void + */ + function startGroup(&$group, $required, $error) + { + $this->_groupElements = array(); + $this->_groupError = $error; + $this->_inGroup = true; + } // end func startGroup + + /** + * Called when visiting a group, after processing all group elements + * + * @param object An HTML_QuickForm_group object being visited + * @access public + * @return void + */ + function finishGroup(&$group) + { + $name = $group->getName(); + $sep = $group->_separator; + if (strtolower($name) == 'botones') { + $id = $this->_tabla->addRow( + array(join('', $this->_groupElements)) + ); + $this->_tabla->updateCellAttributes($id, 0, array('valign' => 'middle', 'align' => 'center', 'colspan' => 2)); + } else { + $id = $this->_tabla->addRow( + array($group->getLabel(), join($sep, $this->_groupElements)), + array('valign' => 'middle', 'align' => 'left') + ); + $this->_tabla->updateCellAttributes($id, 0, array('titulo' => true, 'align' => 'left')); + } + $this->_inGroup = false; + } // end func finishGroup + +} // end class HTML_QuickForm_Renderer_Default + +?> diff --git a/test/Marco/prueba/conf/confSecciones.php b/test/Marco/prueba/conf/confSecciones.php index fcc1898..a523984 100644 --- a/test/Marco/prueba/conf/confSecciones.php +++ b/test/Marco/prueba/conf/confSecciones.php @@ -60,7 +60,7 @@ 'imagenMouseOn' => '', // 'imagenSelect' => '', // 'link' => 'usuarios', //LINK DE LA SECCION - 'tipoMenu' => 'horizontal', //TIPO DEL MENU DE HIJOS (vertical, horizontal, oculto) + 'tipoMenu' => 'vertical', //TIPO DEL MENU DE HIJOS (vertical, horizontal, oculto) 'hijos' => array ( //HIJOS PARA EL MENU array ( 'nombre' => 'Filtrar Usuario', //NOMBRE DEL HIJO 1 'imagenComun' => 'usuarios-filtrar.gif', //IMAGEN COMUN diff --git a/test/Marco/prueba/www/include/prepend.php b/test/Marco/prueba/www/include/prepend.php index e858e61..9e15a84 100644 --- a/test/Marco/prueba/www/include/prepend.php +++ b/test/Marco/prueba/www/include/prepend.php @@ -4,7 +4,7 @@ //ARCHIVO DE PRUEBA DEL OBJETO MARCO require_once 'MECON/general.php'; -prepend_include_path('/home/mmarrese/public_html/meconlib/tronco/lib'); +prepend_include_path('/home/mmarrese/public_html/meconlib/lib'); require_once 'MECON/Marco.php'; require_once 'SAMURAI/Perm.php';