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:
$query = 'SELECT * FROM album WHERE 1'; $consulta = db_query($query);
$lineas = array(); $rowPad = new \TwBs2l\Entity\BsEntityPad(); $rowPad->setTipoDeElemento('BsTableRow')->setTagName('tr'); $cellPad = new \TwBs2l\Entity\BsEntityPad(); $cellPad->setTipoDeElemento('BsTableCell')->setTagName('td');
$lineas[] = '<thead><tr><th>Id</th><th>Artista</th><th>Canción</th></tr></thead><tbody>';
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>'
$tabla = \TwBs2l\Factory\TwBsFactory::getBsTabla( '', TRUE, FALSE, TRUE, FALSE, $lineas ); echo $tabla;
La tabla obtenida es la siguiente:
Id | Artista | Canción | |
---|---|---|---|
42S02 | 1146 | Table 'sintetic_prueba.album' doesn't exist |