Indice


Volver al Indice xhtml.php


En algunos casos es necesario generar un conjunto de páginas de forma automatizada.
Un ejemplo claro es cuando un usuario no recuerda su password y nos solicita que lo enviemos de nuevo.

Lo más habitual es usar una plantilla y añadir el usuario y password para remitirlo a la persona que lo solicita.

Para todo esto he creado una pequeña clase encargada de generar un documento apartir de una plantilla y unos datos.

Este ejemplo concretamente crea documentos html con ofertas de trabajo.

//Genera un documento XHTML apartir de unos datos y una plantilla...
class PutXHTML {
     var $plantilla;
     var $datos;

     function PutXHTML($plan, $datos) {
        $this->plantilla = implode('', file($plan));
        $this->datos = $datos;
     }

     function Genera($destino) {
        foreach ($this->datos as $k => $v) {
              $this->plantilla = str_replace("<@$k@>", $v, $this->plantilla);
        }
        $fp = fopen($destino, 'wt');
        fwrite($fp, $this->plantilla);
        fclose($fp);
     }
}


La función PutXHTML toma como parametro el nombre de la plantilla y un array con todos los datos a reemplazar.

La plantilla debe contener las marcas con la posición donde apareceran los datos.
Por ejemplo, si añadimos la marca <@requisitos@> en nuestra plantilla. El array que pasamos a PutXHTML debe contener el valor de dicha marca.

Por último la función Genera escribe el resultado en la dirección pasada por parámetro.

En nuestro ejemplo solo hemos usado dos marcas, por lo tanto nuestro array solo tendra dos campos.

Ejemplo


//Asigno los datos ha reemplazar de mi plantilla...
$b['requisitos'] = 'Tener mas de 18 años';
$b['descripcion'] = 'Se busca empleado muy trabajador para un supermercado';

//Visualizo los datos que he obtenido...
echo '<p>' . $b['requisitos'] . '</p>';
echo '<p>' . $b['descripcion'] . '</p>';

//Genero un documento a partir de los datos obtenidos...
$c = new PutXHTML('plantilla.html', $b);
$c->Genera('generado.html');


Como podemos observar es muy simple añadir nuevas marcas y realizar cambios en la plantilla.
De este modo siempre podremos realizar cambios de un modo sencillo.