]> git.llucax.com Git - mecon/samurai.git/blob - src/www/include/hooks/default-db-formulario.php
(no commit message)
[mecon/samurai.git] / src / www / include / hooks / default-db-formulario.php
1 <?php
2 // vim: set expandtab tabstop=4 softtabstop=4 shiftwidth=4:
3 // +--------------------------------------------------------------------+
4 // |                          HORAS EXTRA                               |
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 // +--------------------------------------------------------------------+
11 //
12 // $URL: http://portal.mecon.ar/svn/he/ramas/carga_inicial/src/includes/hooks/default-db-formulario.php $
13 // $Rev: 129 $
14 // $Date: 2002-11-08 17:37:57 -0300 (vie, 08 nov 2002) $
15 // $Author: llucar $
16 //
17
18 require_once 'HE/DB.php';
19 require_once 'HE/lib/hooks.php';
20
21 /**
22  * Dibujar un elemento de un listado de una base de datos.
23  *
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.
28  */
29
30 // Extrae los parámetros del hook.
31 list( $tipo, $action, $class ) = array_slice( $args, 2 );
32 $db =& $objeto;
33
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 . '"';
42
43 // Nombre de lo que se busca (en plural y singular)
44 $nombre  = ucfirst( $db->_nombre );
45 $nombres = ucfirst( $db->_nombres );
46
47 // Setea valores
48 $tipo   = strtolower( $tipo );
49 $action = is_null( $action ) ? "$tipo.php" : $action;
50 $accion = ucfirst( $tipo );
51
52 // contador para ver si la fila es par o impar.
53 $i = 0;
54
55 ?>
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'] ?>">
62     <? } ?>
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 ?>>
67             <tr<?= $class_t ?>>
68                 <th colspan="2"<?= $class_t ?>><?= "$accion $nombre" ?></th>
69             </tr>
70         </thead>
71         <tbody<?= $class ?>>
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 ) ) ?>
78                     </th>
79                     <td<?= $classtd[$i%2] ?>>
80                 <? } ?>
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"] ?>">
87                 <? }
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
95                 else
96                     $db->raiseError( "No hay un manejador definido para el campo $campo", HE_ERROR );
97                 $i++;
98                 ?>
99                 <? if ( $cinfo['form'] != 'hidden' ) { // Si no es un campo oculto ?>
100                     </td>
101                 <? } ?>
102             </tr>
103         <? } ?>
104         <? } ?>
105         </tbody>
106         <tfoot<?= $class_f ?>>
107             <tr<?= $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 ?>/>
115                     <? } ?>
116                     <input type="submit" title="Cancelar la operaci&oacute;n (vuelve a la p&aacute;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>',
119                 <? } ?>
120                 </td>
121             </tr>
122         </tfoot>
123     </table>
124 </form>
125 <!-- FIN $URL: http://portal.mecon.ar/svn/he/ramas/carga_inicial/src/includes/hooks/default-db-formulario.php $ -->