HTML Widgets
Desarrollo, PHP December 29th, 2007
En mi trabajo tengo la necesidad de escribir código HTML, cosa que me resulta tediosa. En muchas ocasiones prefiero usar Dreamweaver para escribir algunas cosas como por ejemplo una tabla, la creo, la lleno con el contenido necesario, luego la selecciono y en la ventana donde se ve el codigo HTML corto el código y lo pego en mi editor PHP.
Para evitar este proceso y hacerlo programáticamente en PHP, escribí algo de codigo, que aquí pongo a disposición del que le interese, el cual sirve para generar algunos elementos HTML en forma fácil y sencilla. Es un conjunto de clases, donde cada clase sirve para generar un elemento HTML. Trae las siguientes clases: table, form, radio, radioset, checkbox, checkboxset, select, anchor, paragraphp, textbox, textarea, hiddenbox, heading, y algun otro elemento que se me escapa por ahorita. Conforme vaya creando mas los ire agregando aquí.
Para bajar el código, clickea aqui.
Ejemplos de uso:
include_once('htmlwidgets.php');
//crear un formulario
$form = new form();
//establecer algunos atributos del mismo
$form->setAttrib('action', $_SERVER["PHP_SELF"]);
$form->setAttrib('method', 'post');
$form->setFormtitle('formulario de prueba');
//establecer el estilo que llevan las leyendas de cada elemento del fromulario
$form->setLegendStyle('tableheader');
//establecer algunos attributos de la tabla que le da estructura al fromulario
$form->setTableAttrib('border', 1);
$form->setTableAttrib('width', '80%');
//crear un elemento select para una pregunta
$select = new select();
$select->setName('pais');
$select->addValue('mexico');
$select->addValue('argentina');
$select->addValue('brasil');
$select->addValue('uruguay');
$select->addValue('paraguay');
$select->addValue('chile');
$select->setDefaultDisplay('escoje pais');
//agregar el select al formulario
$form->addElement($select, 'Seleccione pais');
//crear un conjunto de botones radio
$radio = new radioset();
$radio->setName('color');
$radio->setWidth(2);//desplegar botones en 2 columnas
$radio->addValue('yellow', 'amarillo');
$radio->addValue('purple', 'morado');
$radio->addValue('orange', 'naranja');
$radio->addValue('blue', 'azul');
//agregar botones radio al formulario
$form->addElement($radio, 'Su color favorito');
//crear un textbox para una pregunta
$textbox = new textbox();
$textbox->setAttrib('name', 'nombre');
$textbox->setAttrib('value', 'texto por default');
//agregar el textbox al formulario
$form->addElement($textbox, 'Cual es su nombre?');
//crear un boton de submit
$sbmt = new submit('Enviar');
$sbmt->setAttrib('name', 'enviar');
//agregarlo al formulario
$form->addElement($sbmt);
El HTML que resulta de la ejecución del código anterior es el siguiente:
<form action="/pages/test.php" method="post"> <h1 align="center">formulario de prueba</h1> <table border="1" width="80%"> <tr> <td class="tableheader">Seleccione pais</td> <td> <select name="pais"> <option value="">escoje pais</option> <br /> <option value="mexico">mexico</option> <br /> <option value="argentina">argentina</option> <br /> <option value="brasil">brasil</option> <br /> <option value="uruguay">uruguay</option> <br /> <option value="paraguay">paraguay</option> <br /> <option value="chile">chile</option><br /> </select> </td> </tr> <tr> <td class="tableheader">Su color favorito</td> <td> <table> <tr> <td><label for="XxxxHEnq"><br /> <input type="radio" name="color" value="yellow" id="XxxxHEnq">amarillo</label></td> <td><label for="WrgcumhT"><br /> <input type="radio" name="color" value="purple" id="WrgcumhT">morado</label> </td> </tr> <tr> <td><label for="GrRuDwck"><br /> <input type="radio" name="color" value="orange" id="GrRuDwck">naranja</label></td> <td><label for="jqZvEeZB"><br /> <input type="radio" name="color" value="blue" id="jqZvEeZB">azul</label></td> </tr> </table> </td> </tr> <tr> <td class="tableheader">Cual es su nombre?</td> <td> <input type="text" name="nombre" value="texto por default"> </td> </tr> <tr> <td class="tableheader"></td> <td> <input type="submit" value="Enviar" name="enviar"></td> </tr> </table> </form>