29/09/2010, 08:08
|
Colaborador | | Fecha de Ingreso: octubre-2009 Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes Puntos: 334 | |
Respuesta: Php y .tpl Código PHP: <?php /** * * Sistema de Templates que enlaza PHP con las plantillas (MVC) * * Clase encargada de tomar los datos enviados desde * PHP en forma de array y distribuirlos sobre un archivo Template * El sistema toma dentro del template las palabras entre {} * y las reemplaza por el valor con la llave respectiva de un array asociativo * * @category MVC * @package H Framework * @subpackage Library Classes * @copyright Copyright (c) 2010, Hidek1 [[email protected]] * @license http://creativecommons.org/licenses/by-sa/2.0/cl/ * Atribución-Licenciar Igual 2.0 Chile. * @since 0.1a * */
class Template { private $_filename = '';
/** * * Obtiene la ruta del archivo Template. * * @param string $filename * */ public function __construct($filename) { if (file_exists($filename)) { $this->_filename = $filename; } else { throw new Exception("Template no encotrado."); } }
/** * * Devuelve el template procesado con sus variables correspondientes * * @param array $matriz * @return string * */ public function render(array $matriz = array()) { if (empty($matriz)) { return file_get_contents($this->_filename); } else { foreach ($matriz as $key => $value) { $$key = $value; } $template = file_get_contents($this->_filename); $template = str_replace(array('\\', '\''), array('\\\\', '\\\''), $template); $template = preg_replace('/{([a-z]\w+?)}/i', "'.$$1.'", $template); eval("\$template = '$template';"); return $template; } } } |