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 |