]> git.llucax.com Git - mecon/scripts.git/commitdiff
Agrego un archivo de ejemplo completo
authorMartín Marrese <marrese@gmail.com>
Wed, 3 Sep 2003 18:29:29 +0000 (18:29 +0000)
committerMartín Marrese <marrese@gmail.com>
Wed, 3 Sep 2003 18:29:29 +0000 (18:29 +0000)
code2xmi/Tabla.php [new file with mode: 0644]

diff --git a/code2xmi/Tabla.php b/code2xmi/Tabla.php
new file mode 100644 (file)
index 0000000..f344ce1
--- /dev/null
@@ -0,0 +1,393 @@
+<?php /* vim: set binary expandtab tabstop=4 shiftwidth=4 textwidth=80:
+-------------------------------------------------------------------------------
+                             Ministerio de Economía
+                                    meconlib
+-------------------------------------------------------------------------------
+This file is part of meconlib.
+
+meconlib is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+
+meconlib is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+You should have received a copy of the GNU General Public License; if not,
+write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+Boston, MA  02111-1307  USA
+-------------------------------------------------------------------------------
+Creado: fri mar 21 ART 2003
+Autor:  Martin Marrese <mmarre@mecon.gov.ar>
+-------------------------------------------------------------------------------
+$Id: Tabla.php 325 2003-09-02 18:50:30Z llucar $
+-----------------------------------------------------------------------------*/
+
+require_once 'HTML/Table.php';
+
+/**
+ * Libreria para le manejo de las tablas de los sistemas de intranet.
+ *
+ */
+
+class MECON_HTML_Tabla extends HTML_Table {
+    
+    /**
+     * Valores de Configuracion particular
+     *
+     * @var array() $conf
+     * @access protected
+     */
+    var $_conf;
+
+    /**
+     * Atributos de las tablas.
+     *
+     * @var array() attrs
+     * @access protected
+     */
+    var $_attrs;
+
+    /**
+     * Constructor. 
+     * Puede recibir como parametro un string con los atributos que se 
+     * quieren dar a la tabla en cuestion. Estos atributos estan
+     * seteados por default segun el archivo de configuracion.
+     * Ademas puede recibir la indicacion de algun estilo en particular.
+     *
+     * @param mixed $atributos Atributos diferentes a los estandares para la tabla
+     * @param string $estilo Tipo de tabla
+     * 
+     * @access public
+     */
+    function MECON_HTML_Tabla($attrs = null, $estilo = 'comun') 
+    {
+        $this->_conf = include 'MECON/HTML/Tabla/estilo_'.$estilo.'.php'; // Obtengo los valores particulares de configuracion
+        // Seteo los atributos para la tabla
+        $this->_attrs = $this->_conf['atributos']['tabla_comun'];
+        //Genero el objeto HTML_Table
+        if (is_string($attrs)) {
+            $attrs = $this->_parseAttributes($attrs);
+        }
+        if (is_array($attrs)) {
+            if (isset($attrs['width'])) {
+                $this->_attrs['width'] = $attrs['width'];
+            }
+            if (isset($attrs['bgcolor'])) {
+                $this->_attrs['bgcolor'] = $attrs['bgcolor'];
+            }
+            if (isset($attrs['cellspacing'])) {
+                $this->_attrs['cellspacing']  = $attrs['cellspacing'];
+            }            
+            if (isset($attrs['cellpadding'])) {
+                $this->_attrs['cellpadding']  = $attrs['cellpadding'];
+            }            
+        }        
+        $this->HTML_Table($this->_attrs);
+    }    
+
+    /**                 
+     * Agrega una fila del tipo cabecera tomando colores y demas del  
+     * archivo de configuracion. Recibe como parametro un array con 
+     * los datos a incluir en la linea. Agrega tantas columnas como
+     * elementos tenga el array. Si no recibe parametro alguno, 
+     * inserta una fila en blanco. Devuelve el identificador de la
+     * fila en donde inserto los datos.
+     *
+     * @param array() $contenido Contenido de la fila
+     *
+     * @return int Identificador de Linea
+     * @access public
+     * @deprecated
+     */
+    function agregarFilaCabecera($contenido = '', $atributos = '')
+    {
+        return $this->addRow($contenido, 'cabecera');
+    }
+
+    /**                 
+     * Agrega una fila del tipo comun, tomando colores y demas del  
+     * archivo de configuracion. Recibe como parametro un array con 
+     * los datos a incluir en la linea. Agrega tantas columnas como
+     * elementos tenga el array. Si no recibe parametro alguno, 
+     * inserta una fila en blanco. Devuelve el identificador de la
+     * fila en donde inserto los datos.
+     *
+     * @param array() $contenido Contenido de la fila
+     *
+     * @return int Identificador de Linea
+     * 
+     * @access public
+     * @deprecated
+     */
+    function agregarFila($contenido = '')
+    {
+        return $this->addRow($contenido, 'comun');
+    }
+
+    /**                 
+     * Modifica el atributo rowSpan a la celda pasada por parametro
+     *
+     * @param int $fila    Identificador de la fila que se quiere modificar
+     * @param int $columna Identificador de la columna que se quiere modificar
+     * @param int $valor   Atributo a modificar
+     * 
+     * @access public
+     * @deprecated
+     */
+    function rowSpan($fila, $columna, $valor)
+    {
+        return $this->updateCellAttributes($fila, $columna, 'rowspan="'.$valor.'"');
+    }
+
+    /**                 
+     * Modifica el atributo colSpan a la celda pasada por parametro
+     *
+     * @param int $fila    Identificador de la fila que se quiere modificar    
+     * @param int $columna Identificador de la columna que se quiere modificar
+     * @param int $valor   Atributo a modificar                               
+     * 
+     * @access public
+     * @deprecated
+     */
+    function colSpan($fila, $columna, $valor)
+    {
+        return $this->updateCellAttributes($fila, $columna, 'colspan="'.$valor.'"');
+    }
+
+    /**                 
+     * Modifica el atributo aling de la celda pasada por parametro
+     *
+     * @param int $fila     Identificador de la fila que se quiere modificar      
+     * @param int $columna  Identificador de la columna que se quiere modificar
+     * @param string $valor Atributo a modificar                               
+     * 
+     * @access public
+     * @deprecated
+     */
+    function align($fila, $columna, $valor)
+    {
+        return $this->updateCellAttributes($fila, $columna, 'align="'.$valor.'"');
+    }
+
+    /**
+     * Setea una columna como del tipo cabecera    
+     *
+     * @param int $columna Identificador de la columna que se quiere modificar
+     * 
+     * @access public
+     * @deprecated
+     */
+    function setColCabecera($columna)
+    {
+        return $this->updateColAttributes($columna, 'cabecera');
+    }
+
+    /**                 
+     * Setea una columna como del tipo titulo
+     *
+     * @param int $columna Identificador de la columna que se quiere modificar
+     * 
+     * @access public
+     * @deprecated
+     */
+    function setColTitulo($columna)
+    {
+        return $this->updateColAttributes($columna, 'titulo');
+    }
+
+    /**                 
+     * Alinea una columna entera  
+     *
+     * @param int $columna Identificador de la columna que se quiere modificar
+     * @param string $valor Valor
+     * 
+     * @access public
+     * @deprecated
+     */
+    function setColAlign($columna, $valor)
+    {
+        return $this->updateColAttributes($columna,'align="'.$valor.'"');
+    }
+
+    /**                 
+     * Cambia el tamanio de una columna entera  
+     *
+     * @param int $columna  Identificadore de la columna que se quiere modificar
+     * @param string $valor Valor
+     * 
+     * @access public
+     * @deprecated
+     */
+    function setColWidth($columna, $valor)
+    {
+        return $this->updateColAttributes($columna,'width="'.$valor.'"');
+    }
+
+    /**                 
+     * Cambia el color de fondo de una celda  
+     *
+     * @param int $fila     Identificador de la fila que se quiere modificar    
+     * @param int $columna  Identificador de la columna que se quiere modificar
+     * @param string $valor Atributo a modificar                               
+     *
+     * @access public
+     * @deprecated
+     */
+    function setCellBgcolor($fila, $columna, $valor)
+    {
+        return $this->updateCellAttributes($fila, $columna,'bgcolor="'.$valor.'"');
+    }
+
+    /**                 
+     * Devuelve el html de la tabla
+     *
+     * Devuelve el html de la tabla para que sea mostrado.
+     * Como parametro recibe el indicador de tabla simple.
+     * Si $simple es falso, devuelve el html comun y corriente (con 2
+     * tablas), si es false devuelve una tabla sola.
+     *
+     * @param bool $simple Tipo de tabla que se quiere recibir.
+     *
+     * @return string Html
+     * 
+     * @access public
+     */
+    function toHtml($simple = 0)
+    {
+        // Agregar la tabla de fondo.
+        if ($simple) {
+            $result = parent::toHtml();
+        } else {
+            $contenedora = $this->_conf['atributos']['tabla_contenedora'];
+            $contenedora['width'] = $this->getAttribute('width');
+            $this->updateAttributes(array('width' => '100%'));
+            $tabla_externa =  new HTML_Table($contenedora);
+            $tabla_externa->addRow(array(parent::toHtml()),
+                $this->_conf['atributos']['celda_contenedora']);
+            $result = $tabla_externa->toHtml();    
+        }
+
+        return $result;
+    }
+
+    /**
+     * Cambia las propiedades de una celda
+     *
+     * Cambia las propiedades de una celda. Si $attrs es un array
+     * asociativo, se setean los atributos representados por las claves
+     * con los valores.
+     *
+     * @param int $row     Identificador de la fila que se quiere modificar    
+     * @param int $col     Identificador de la columna que se quiere modificar
+     * @param mixed $attrs Atributo a modificar                               
+     *
+     * @access public
+     */
+    function updateCellAttributes($row, $col, $attrs)
+    {
+        return parent::updateCellAttributes($row, $col, $this->_translateAttributes($attrs, false));
+    }
+
+    /**
+     * Establece las propiedades de una celda
+     *
+     * Establece las propiedades de una celda. Si $attrs es un array
+     * asociativo, se setean los atributos representados por las claves
+     * con los valores.
+     *
+     * @param int $row     Identificador de la fila que se quiere modificar     
+     * @param int $col     Identificador de la columna que se quiere modificar
+     * @param mixed $attrs Atributo a modificar                               
+     *
+     * @access public
+     */
+    function setCellAttributes($row, $col, $attrs)
+    {
+        return parent::setCellAttributes($row, $col, $this->_translateAttributes($attrs, true));
+    }
+
+    /**
+     * Agrega una fila
+     *
+     * Agrega una fila. El contenido es el que viene representado por 
+     * el array $content. Recibe los atributos en la variable $attrs
+     *
+     * @param mixed $content Contenido
+     * @param mixed $attrs Atributos
+     *
+     * @return int $rowId Identificador de la fila
+     *
+     * @access public
+     */
+    function addRow($content, $attrs = 'comun')
+    {
+        return parent::addRow($content, $attrs);
+    }
+    
+    /**
+     * Convierte un atributo a string
+     * 
+     * Convierte un atributo HTML al string para pasar a los metodos de HTML_Table
+     * Recibe en $attrs los atributos a modificar.
+     *
+     * @param mixed $attrs Atributos.
+     * @param bool  $isSet Indica si hay que setear.
+     *
+     * @return array
+     * @access private
+     */
+    function _translateAttributes($attrs, $isSet)
+    {
+        if (!$attrs) {
+            return array();
+        }
+        if (is_string($attrs)) {
+            $attrs = $this->_parseAttributes($attrs);
+        }
+        if ($isSet) {
+            $rta = $this->_conf['atributos']['celda_comun'];
+        } else {
+            $rta = array();
+        }
+        foreach ($attrs as $attr => $val) {
+            $attr = strtolower($attr);
+            switch ($attr) {
+                // Estilos de celda
+                case 'comun':
+                case 'cabecera':
+                case 'titulo':
+                    $rta = array_merge($rta, $this->_conf['atributos']["celda_$attr"]);
+                    break;
+                case 'align':
+                case 'valign':
+                case 'width':
+                case 'height':
+                case 'rowspan':
+                case 'colspan':
+                case 'bgcolor':
+                case 'class':
+                case 'border':
+                case 'cellspacing':
+                case 'cellpadding':
+                case 'nowrap':
+                    $rta[$attr] = $val;
+                    break;
+                case 'spacing':
+                case 'padding':
+                    $rta["cell$attr"] = $val;
+                    break;
+                case 'th':
+                    $rta[$attr] = '';
+                    break;
+                default:
+                    trigger_error("No se permite setear el atributo $attr", E_USER_ERROR);
+            }
+        }
+        return $rta;
+    }
+
+}
+
+?>