=========================== */ class plantillas { public $plantilla; public $plantilla_cargada; public $texto_plantilla; public $antesBloque; public $bloque; public $despuesBloque; public $bloqueFinal=""; public function __construct($plantilla) { $this->plantilla = ($plantilla == "") ? "tumblr" : $plantilla; } public function cargarPlantilla($entrada, $salida, $plantilla_usar) { $plantilla_usar = "themes/".$this->plantilla."/".$plantilla_usar.".htm"; if (!file_exists($plantilla_usar)) { die("No se encuentra la plantilla :".$plantilla_usar); } else { if (!$fd = fopen($plantilla_usar, "r")) { die("Error en la plantilla"); } else { $salida_xhtml = fread($fd, filesize($plantilla_usar)); fclose($fd); $salida_xhtml = stripslashes($salida_xhtml); $this->texto_plantilla = $salida_xhtml; for ($i = 0; $i < count($entrada); $i++) { $salida_xhtml = str_replace($entrada[$i], $salida[$i], $salida_xhtml); } $this->plantilla_cargada = $salida_xhtml; } } } public function precargarPlantillaConBloque($entrada, $salida, $plantilla_usar, $nombreBloque) { $plantilla_usar = "themes/".$this->plantilla."/".$plantilla_usar.".htm"; if (!file_exists($plantilla_usar)) { die("No se encuentra la plantilla :".$plantilla_usar); } else { if (!$fd = fopen($plantilla_usar, "r")) { die("Error en la plantilla"); } else { $salida_xhtml = fread($fd, filesize($plantilla_usar)); fclose($fd); $salida_xhtml = stripslashes($salida_xhtml); $this->texto_plantilla = $salida_xhtml; $this->cargaAntesBloque($nombreBloque); $this->cargaDespuesBloque($nombreBloque); $this->antesBloque = $this->procesaBloque($entrada, $salida, $this->antesBloque); $this->despuesBloque = $this->procesaBloque($entrada, $salida, $this->despuesBloque); } } } public function cargarPlantillaConBloque($entrada, $salida, $plantilla_usar, $nombreBloque) { $plantilla_usar = "themes/".$this->plantilla."/".$plantilla_usar.".htm"; if (!file_exists($plantilla_usar)) { die("No se encuentra la plantilla :".$plantilla_usar); } else { if (!$fd = fopen($plantilla_usar, "r")) { die("Error en la plantilla"); } else { $salida_xhtml = fread($fd, filesize($plantilla_usar)); fclose($fd); $salida_xhtml = stripslashes($salida_xhtml); $this->texto_plantilla = $salida_xhtml; $this->cargaBloque($nombreBloque); $this->bloqueFinal .= $this->procesaBloque($entrada, $salida, $this->bloque); } } } public function procesaBloque($entrada, $salida, $bloque) { for ($i = 0; $i < count($entrada); $i++) { $bloque = str_replace($entrada[$i], $salida[$i], $bloque); } return $bloque; } public function cargaBloque($nombreBloque) { $inicioBloque = "[bloque: ".$nombreBloque."]"; $finBloque = "[/bloque: ".$nombreBloque."]"; $ini = strpos($this->texto_plantilla, $inicioBloque)+strlen($inicioBloque); $fin = strpos($this->texto_plantilla, $finBloque); $this->bloque = substr($this->texto_plantilla, $ini, ($fin-$ini)); } public function cargaAntesBloque($nombreBloque) { $inicioBloque = "[bloque: ".$nombreBloque."]"; $ini = strpos($this->texto_plantilla, $inicioBloque); $this->antesBloque = substr($this->texto_plantilla, 0, $ini); } public function cargaDespuesBloque($nombreBloque) { $finBloque = "[/bloque: ".$nombreBloque."]"; $fin = strpos($this->texto_plantilla, $finBloque); $this->despuesBloque = substr($this->texto_plantilla, ($fin+strlen($finBloque)), strlen($this->texto_plantilla)); } public function mostrarPlantillaConBloque() { echo $this->antesBloque.$this->bloqueFinal.$this->despuesBloque; } public function mostrarPlantilla() { echo $this->plantilla_cargada; } public function renderizaEtiqueta($texto="", $etiquetaHtml="p", $claseCss="") { echo "<".$etiquetaHtml." class=\"".$claseCss."\">".$texto.""; } public function renderizaTexto($texto="") { echo $texto; } }