Twitter-Bootstrap Tools

Tablas típicas

TwBs2l\Component\BsTable\BsTabla

Clase controladora de definicion y presentacion de tablas tipicas con formato soportado por Bootstrap.
Instanciación

$tabla = new TwBs2l\Component\BsTable\BsTabla( $elmDef );
dónde: $elmDef es Nulo o un array de definición del elemento.
Adicionalmente, los parámetros 'tagName' => 'table' y 'tipoDeElemento' => 'BsTabla' deben ser establecidos si se va a pasar dentro de innerHtm para objetos contenedores que la constuirán en iteraciones.
Uso básico
echo $tabla->toString(); muestra una instancia de la tabla en la página a servir.
Uso como componente TwBs
Hay dos maneras:

  • Pasando su array de definición al método
    TwBsFactory::getBsElement($tablaDef, $parsed);
  • Invocando el método TwBsFactory::getBsTabla( $id, $striped, $rebordeada, $sensible, $responsiva, $ArrLineas ) que permite indicar explícitamente las características bootstrap deseadas

Ejemplo de tabla basada en lectura en B.D.

En la base de datos se encuentra la tabla 'album' que fue definida y poblada usando el ejemplo de la Referencia para desarrollo de Zendframework 2.3. Dicha tabla contiene tres columnas: id, artist y title. Se va a crear una consulta a la misma y sus datos serán mostrados en una tabla para ilustrar el uso del mecanismo de manejo de la clase BsTabla:
  • Ejecución de una consulta para obtener los registros
      $query = 'SELECT * FROM album WHERE 1';
      $consulta = db_query($query);
  • Preparar un array para recibir las líneas y un par de plantillas para generar las definiciones de líneas y de celdas:
      $lineas = array();
      $rowPad = new \TwBs2l\Entity\BsEntityPad();
      $rowPad->setTipoDeElemento('BsTableRow')->setTagName('tr');
      $cellPad = new \TwBs2l\Entity\BsEntityPad();
      $cellPad->setTipoDeElemento('BsTableCell')->setTagName('td');
  • Preparar una linea html de encabezados para las columnas de la tabla, terminando con la etiqueta de apertura del tbody y agregarla al array $lineas:
      $lineas[] = '<thead><tr><th>Id</th><th>Artista</th><th>Canción</th></tr></thead><tbody>';
  • Iterar sobre la consulta para llenar el array $lineas
      foreach($consulta as $registro){
        // genera un array para contener las celdas
        $celdas = array();
        // itera sobre los campos modificando el contenido en la plantilla
        // y agrega la definición al array de celdas
        foreach($registro as $campo => $valor){
          $cellPad->setInnerHtm($valor)->setClases([$campo]);
          $celdas[] = $cellPad->toArray();
        }
        // Establece las celdas como InnerHtm de la plantilla de líneas
        // que es lo que la hace diferente para cada línea, y agrega la
        // definición al array $lineas
        $rowPad->setInnerHtm($celdas);
        $lineas[] = $rowPad->toArray();
      }
      // se agrega una cadena de texto al conjunto de líneas para cerrar el tbody que 
      // fue dejado abierto al agregar la cadena de encabezados.
      $lineas[] = '</tbody>'  
  • Finalmente crear y mostrar la tabla:
      $tabla = \TwBs2l\Factory\TwBsFactory::getBsTabla( '', TRUE, FALSE, TRUE, FALSE, $lineas );
      echo $tabla;

La tabla obtenida es la siguiente:

 
 IdArtistaCanción
 
 
 
 42S021146Table 'sintetic_prueba.album' doesn't exist
 
Aquí se muestran los movimientos

Twitter-Bootstrap Tools