Twitter-Bootstrap Tools

Html5 Element

Clase TwBs/Html/BsElm

Uso:
  1. Crear una instancia:
    $element = new BsElm($tagName, [$elmDef])
  2. Ofrecer salida:
    echo $element->toString()

Información general sobre la clase

  • Popósito:
    Ofrecer una salida HTML correcta para cualquier elemento HTML5 desde PHP manejando un modelo de definición simple.
  • Constructor: Esta clase requiere de dos parámetros:
    1. El nombre del elemento $TagName
    2. opcionalmente un array de definición $elmDef

Uso sintético (recomendado)

La clase ComponentFactory ofrece un mecanismo sintético simple para obtener cualquier elemento Html5 debidamente (renderizado) o en la forma de clase BsElm, en caso de que todavía sea necesario hacerle ajustes antes de enviarlo a las plantillas de salida.
Es la forma conveniente de uso porque resuelve adecuadamente todas las dependencias internas. Salvo casos especiales (como el dialogo modal) que se indican el la documentación particular de los mismos.

  • $html = \TwBs2l\Factory\TwBsFactory::getBsElement($elmDef); // devuelve el elemento listo para ejecutar el comando: // echo $html;
  • $elm = \TwBs2l\Factory\TwBsFactory::getBsElement($elmDef, FALSE); // entrega una instancia de la clase para actuar sobre ella. Una vez lista se puede invocar: // echo $elm->toString(); para renderizar y entregar su salida

Parámetros

$TagName

Cualquier nombre de etiqueta HTML válido, escrito en minúsculas. (ej: div, a, table, etc.) Su default es div

$elmDef

Es un array de pares opcionales clave => valor, en el que las claves deben ser escritas con la ortografía que se muestra a continuación:

$elmDef = [
            'tagName'       => 'etiqueta'
            // el nombre del elemento html
            'id'            => 'id_del_elemento' | '' | no asignar
            // identificador único para manejo explícito (puede ir dentro de attributes, pero
            // puede ser conveniente para casos en que se quiere hacer manejo explícito)
            'context'       => 'default' | 'success' | 'info' | 'primary' | 'warning' | 'danger' | ''
            // Descriptor de contexto. 
            tipoDeElemento  => 'cadena_indicadora_de_tipo' // ej: dropdown-menu, menu, etc
            // Tipo BootStrap, o tipo HTML para generar y asignar clases en sus elementos anidados.
            // Es particularmente importante en los procedimientos de construcción recursiva de
            // los items integrantes del parámetro 'innerHtm': orienta la
            // identificación del ComponentFactory requerido para cada tipo. 
            clases          => [] // (default [] array vacío)
            // Array de clases a asignar 
            'attributes'    => [] // (default [] array vacío)
            // Array de atributos html válidos como pares de cadenas nombre_atributo => valor
            'unKeyedAttributes' => [] // (default [] array vacío)
            // Array de atributos autovalor (que se presentan sólos en la etiqueta html)
            'autoClose'     => TRUE | FALSE // default FALSE
            // Si no necesita etiqueta de cierre Booleano pasar TRUE cuando no se requiera
            'innerHtm' => 'texto' | [$elmDef1, $elmDef2, ... ] | [$elm1, $elm2, ...]
            // Contenido anidado en la etiqueta HTML
            // corresponde al atributo innerHtml de los elementos HTMl que es ubicado entre
            // las etiquetas así: <tagName ...>innerHtml</tagName>
            // Puede ser un texto, un array de textos, un array de definiciones de elementos
            // como esta, un array de instancias de elementos o un array que combina
            // textos, definiciones e instancias como elementos.
            'buildVars' => [] // (default [] array vacío)
            // todos los parámetros especiales, específicos del elemento pasados como
            // pares clave valor. En muchos casos no se usa
          ];

Nota importante:
Siempre que en la documentación de este módulo se haga referencia a una definición de elemento html de algún tipo (p.ej lista ul) se estará aludiendo al uso de esta estructura para definirlo.

Cuando se anide un componente TwBs dentro de otro es importante que su propiedad tipoDeElemento sea asignada correctamente. Si se ignora o se asigna mal, es posible que no se resuelvan correctamente sus atributos por defecto en caso de no estar presentes.

En algunos casos, los componentes admiten claves adicionales explícitas. Algunos, como el componente Object's Embeder soportan claves extra ('ratio') y otros las usan en el array 'buildVars'. El componente DropDown, por ejemplo, soporta las claves 'btn' => btn_def_array, y 'lst' => list_items_array, para asegurar que sean adecuadamente interpretados al construirlo en iteraciones desde ComponentFactory.


Twitter-Bootstrap Tools