Comunidad de diseño web y desarrollo en internet online

sobre el tutorial de templates!

Citar            
MensajeEscrito el 22 Nov 2005 06:07 pm
hola chicos!

pues a ver, me he encontrado con el tema de que no me sale bien una cosa y es que el archivo "holamundo.php" quiero que este dentro de una carpeta que se llama prueba. y afuera de esta hay una carpeta que se llama includes, en esta esta el "clase_plantilla.php".

vamos que estan asi las rutas:

** prueba/holamundo.php
** includes/clase_plantilla.php

se supone que en el "holamundo.php" le digo en el include que el archivo "clase_plantilla.php" esta en la carpeta includes de esta manera:

Código :

   include("includes/clase_plantilla.php");


pero me falla los templates. pues no me carga los archivos.

edito que los templates estan en la carpeta templates pero me sigue fallando.

alguien sabe porque?

llego a lograr que me carge el template pero no el error.
sabeis porque puede ser?

un saludo

Por NatESkiN

43 de clabLevel



 

firefox
Citar            
MensajeEscrito el 22 Nov 2005 10:18 pm

Código :

   include("../includes/clase_plantilla.php");

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 23 Nov 2005 12:15 am
no me entiendes v.v

a ver mira:

** admin/index.tpl:

Código :

<?
   include("../include/template.php");
   $Contenido=new Plantilla("index");//al Pasar como parametro Prueba, asumimos que en la carpeta    plantillas existe un archivo de nombre Prueba.tpl
   $Contenido->asigna_variables(array(
               "variable" => "Hola Mundo"
               ));
   $ContenidoString = $Contenido->muestra();//$ContenidoString contiene nuestra plantilla, ya con las variables asignadas, fácil no?
   echo $ContenidoString;
?>


** include/template.php

Código :

<?
class plantilla{
   function plantilla($template_file){
      $this->tpl_file = 'templates/' . $template_file . '.tpl';
   }
   function asigna_variables($vars){
      $this->vars= (empty($this->vars)) ? $vars : $this->vars . $vars;
   }
   function muestra(){
      if (!($this->fd = @fopen($this->tpl_file, 'r')))
      {
         sostenedor_error('error al abrir la plantilla ' . $this->tpl_file);
      } else{
         $this->template_file = fread($this->fd, filesize($this->tpl_file));
         fclose($this->fd);
         $this->mihtml = $this->template_file;
         $this->mihtml = str_replace ("'", "\'", $this->mihtml);
         $this->mihtml = preg_replace('#\{([a-z0-9\-_]*?)\}#is', "' . $\\1 . '", $this->mihtml);
         reset ($this->vars);
         while (list($key, $val) = each($this->vars)) 
         {
            $$key = $val;
         }
         eval("\$this->mihtml = '$this->mihtml';");
         reset ($this->vars);
         while (list($key, $val) = each($this->vars)) 
         {
            unset($$key);
         }
         $this->mihtml=str_replace ("\'", "'", $this->mihtml);
         echo $this->mihtml;
      }
   }
}
function sostenedor_error($error){
   $miplantilla=new plantilla("error");
   $miplantilla->asigna_variables(array(
      'ERROR' => $error)
   );
   return $miplantilla->muestra();
}
?>


** templates/index.tpl
** templates/error.tpl

pero falla.

Por NatESkiN

43 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Nov 2005 02:38 am
ok a ver tu estructura debe ser asi


/principal/templates/index.tpl
/principal/templates/error.tpl
/principal/index.php

si miras las imagenes de la estructura de los archivos te darás cuenta :wink:

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 23 Nov 2005 09:18 pm
a ver no me entiendes.
el index.php esta en la carpeta ADMIN no en la principal

** admin/index.tpl:


:? :crap:

Por NatESkiN

43 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Nov 2005 10:51 pm
Con esto que te voy a decir, no hay mas que explicar:


En la ruta donde creas la instancia de la clase, algo como esto:

archivo.php

Código :

<?
$variable = new plantilla();
?>


Donde tienes archivo.php, debe existir una carpeta llamada "templates", de lo contrario no funcionará.

Cuando la hice, y por mi metodología de trabajo, no requería definir un directorio de trabajo, el fin de semana, tratara de darme tiempo, para agregar una propiedad que defina el directorio de trabajo. Por lo pronto tienes de dos, usar como te digo, o BAJO TU propio riesgo, moverle a la clase.


Saludos ^^

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 25 Nov 2005 03:24 am

NatESkiN escribió:

a ver no me entiendes.
el index.php esta en la carpeta ADMIN no en la principal

** admin/index.tpl:


:? :crap:


fijate date cuenta de esta simple e importantisima linea en el código

$this->tpl_file = 'templates/' . $template_file . '.tpl';


Lo que esta en negritas, es el nombre del directorio que contiene tus plantillas. Por eso puse en el tutorial las imagenes de la estructura de archivos y carpetas que DEBEN usar por defecto, por eso te mencione esta estructura

/index.php
/templates/index.tpl


si cambiariamos un poco el código de la clase por
$this->tpl_file = 'plantillas/' . $template_file . '.tpl';


entonces la estructura debería ser así:
/index.php
/plantillas/index.tpl


insisto por defecto el directorio que CONTIENE las plantillas es templates.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.