Muchas gracias por la sugerencia Triby de enserio, mi sistema de plantillas es el siguiente:
http://blog.pecesama.net/clase-php-4...llas-o-themes/ Código PHP:
<?php
class plantillas {
var $plantilla;
var $plantilla_cargada;
var $texto_plantilla;
var $antesBloque;
var $bloque;
var $despuesBloque;
var $bloqueFinal="";
function plantillas($plantilla) {
$this->plantilla = ($plantilla == "") ? "default" : $plantilla;
}
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;
}
}
}
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);
}
}
}
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);
}
}
}
function procesaBloque($entrada, $salida, $bloque) {
for ($i = 0; $i < count($entrada); $i++) {
$bloque = str_replace($entrada[$i], $salida[$i], $bloque);
}
return $bloque;
}
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));
}
function cargaAntesBloque($nombreBloque) {
$inicioBloque = "[bloque: ".$nombreBloque."]";
$ini = strpos($this->texto_plantilla,$inicioBloque);
$this->antesBloque = substr($this->texto_plantilla,0,$ini);
}
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));
}
function mostrarPlantillaConBloque() {
echo $this->antesBloque.$this->bloqueFinal.$this->despuesBloque;
}
function mostrarPlantilla() {
echo $this->plantilla_cargada;
}
function renderizaEtiqueta($texto="", $etiquetaHtml="p", $claseCss="") {
echo "<".$etiquetaHtml." class=\"".$claseCss."\">".$texto."</".$etiquetaHtml.">";
}
function renderizaTexto($texto="") {
echo $texto;
}
}
?>
El problema es que probe de todo y no puedo lograr la tabla dinamica, no puedo crear bloques o ciclos, o no estoy viendo la solucion correctamente..
Espero que alguien pueda darme una mano...