2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +--------------------------------------------------------------------+
5 // +--------------------------------------------------------------------+
6 // | Sistema de Horas Extra - Ministerio de Economía - Argentina |
7 // +--------------------------------------------------------------------+
8 // | Creado: jue oct 10 16:57:53 ART 2002 |
9 // | Autor: Leandro Lucarella <llucar@mecon.gov.ar> |
10 // +--------------------------------------------------------------------+
12 // $URL: http://portal.mecon.ar/svn/he/ramas/carga_inicial/src/includes/hooks/default-db-formulario.php $
14 // $Date: 2002-11-08 17:37:57 -0300 (vie, 08 nov 2002) $
18 require_once 'HE/DB.php';
19 require_once 'HE/lib/hooks.php';
22 * Dibujar un elemento de un listado de una base de datos.
24 * @param object HE_DB $db Base de datos que se lista.
25 * @param array $fila Fila a mostrar.
26 * @param array $campos Campos a mostrar.
27 * @param string $class Class para CSS.
30 // Extrae los parámetros del hook.
31 list( $tipo, $action, $class ) = array_slice( $args, 2 );
34 // Setea las diferentes "classes" de estilos
35 $class = is_null( $class ) ? 'he_db_form' : $class;
36 $class = is_string( $class ) ? $class : get_class( $db );
37 $class_t = ( $class === false ) ? '' : ' class="' . $class . '_titulo"';
38 $class_f = ( $class === false ) ? '' : ' class="' . $class . '_pie"';
39 $classtd[0] = ( $class === false ) ? '' : ' class="' . $class . '_par"';
40 $classtd[1] = ( $class === false ) ? '' : ' class="' . $class . '_impar"';
41 $class = ( $class === false ) ? '' : ' class="' . $class . '"';
43 // Nombre de lo que se busca (en plural y singular)
44 $nombre = ucfirst( $db->_nombre );
45 $nombres = ucfirst( $db->_nombres );
48 $tipo = strtolower( $tipo );
49 $action = is_null( $action ) ? "$tipo.php" : $action;
50 $accion = ucfirst( $tipo );
52 // contador para ver si la fila es par o impar.
56 <!-- INICIO $URL: http://portal.mecon.ar/svn/he/ramas/carga_inicial/src/includes/hooks/default-db-formulario.php $ -->
57 <form action="<?= $action ?>" method="post">
58 <input type="hidden" name="<?= $db->_form_var ?>_formulario_enviado" value="1">
59 <? if ( isset( $_SERVER['HTTP_REFERER'] ) or isset( $_POST['HTTP_REFERER'] ) ) { ?>
60 <input type="hidden" name="HTTP_REFERER"
61 value="<?= isset( $_POST['HTTP_REFERER'] ) ? $_POST['HTTP_REFERER'] : $_SERVER['HTTP_REFERER'] ?>">
63 <!-- Esto debería ser así, pero para lidiar con el Netscape se agregan atributos extra. -->
64 <!-- table summary="<?= "$accion $nombre" ?>"<?= $class ?> -->
65 <table summary="<?= "$accion $nombre" ?>" bordercolor="#006699" border="1" cellpadding="0" cellspacing="0" width="80%"<?= $class ?>>
66 <thead<?= $class_t ?>>
68 <th colspan="2"<?= $class_t ?>><?= "$accion $nombre" ?></th>
72 <? foreach ( $db->_campos as $campo => $cinfo ) { ?>
73 <? if ( isset( $cinfo['form'] ) and $cinfo['form'] ) { ?>
74 <tr<?= $classtd[$i%2] ?>>
75 <? if ( $cinfo['form'] != 'hidden' ) { // Si no es un campo oculto ?>
76 <th<?= $classtd[$i%2] ?>>
77 <?= htmlentities( ucwords( isset ( $cinfo['desc'] ) ? $cinfo['desc'] : $campo ) ) ?>
79 <td<?= $classtd[$i%2] ?>>
81 <? if ( ! $db->formulario_enviado() ) { // Si no se envio el formulario todavía, se guarda el original. ?>
82 <input type="hidden" name="<?= "{$db->_form_var}_original_$campo" ?>"
83 value="<?= $db->_form_var( $campo ) ?>">
84 <? } else { // Si se envio el formulario, lo propaga. ?>
85 <input type="hidden" name="<?= "{$db->_form_var}_original_$campo" ?>"
86 value="<?= $_POST["{$db->_form_var}_original_$campo"] ?>">
88 // Llama al hook encargado de dibujar el elemento del formulario para este campo
89 if ( hooko_exists( "form-$campo", $db ) )
90 hooko( "form-$campo", $db, $tipo, $classtd[$i%2] );
91 // Si no existe, usa uno por defecto
92 elseif ( ! empty( $cinfo['form'] ) and hooko_exists( "form--{$cinfo['form']}", $db ) )
93 hooko( "form--{$cinfo['form']}", $db, $campo, $tipo, $classtd[$i%2] );
94 // Si no cae en un error
96 $db->raiseError( "No hay un manejador definido para el campo $campo", HE_ERROR );
99 <? if ( $cinfo['form'] != 'hidden' ) { // Si no es un campo oculto ?>
106 <tfoot<?= $class_f ?>>
108 <td colspan="2"<?= $class_f ?>>
109 <? if ( $tipo != 'ver' ) { ?>
110 <input type="submit" title="<?= "$accion este $nombre" ?>"
111 name="<?= $db->_form_var ?>_boton_<?= $accion ?>"
112 value="<?= $accion ?>"<?= $class_f ?>/>
113 <? if ( $tipo != 'borrar' ) { // XXX - Esto no debería estar porque en está clase no se pueden borrar elementos, pero se deja igual para no tener que sobreescribir el método en ABM cambiandole sólo esto. ?>
114 <input type="reset" title="Borra todos los campos del formulario, volviendo al estado inicial" value="Reestablecer"<?= $class_f ?>/>
116 <input type="submit" title="Cancelar la operación (vuelve a la página anterior)" name="<?= $db->_form_var ?>_boton_cancelar" value="Cancelar"<?= $class_f ?>/>
117 <? } else { // Tipo = ver ?>
118 <a title="<?= "$accion este $nombre" ?>" href="<?= $action ?>"<?= $class_f ?>><?= $accion ?></a>',
125 <!-- FIN $URL: http://portal.mecon.ar/svn/he/ramas/carga_inicial/src/includes/hooks/default-db-formulario.php $ -->