Jump to content

[Solucionado] - Creación de páginas


mukrus

Recommended Posts

Buenas a todos, estoy buscando la forma de crear una página nueva, completamente vacía dentro del tema. Buscando en tutoriales he estado probando de crear un fichero nuevo .tpl dentro del tema y poniéndole el siguiente código

 

{capture name=path}{l s='Main Title'}{/capture}

{include file=$tpl_dir./breadcrumb.tpl}

<h2>{l s='Titulo de Pagina'}</h2>

 

luego crear otro fichero en la raíz .php con el mismo nombre del fichero .tpl e insertarle el siguiente código.

 

<?php

include(dirname(__FILE__).'/config/config.inc.php');

include(dirname(__FILE__).'/header.php');

$smarty->display(_PS_THEME_DIR_.'uypagina.tpl');

include(dirname(__FILE__).'/footer.php');

?>

 

Luego he generado un enlace en el footer que me dirige ha esta página.

El problema es que al escribir algo en el fichero .tpl no me muestra nada por pantalla. Necesitaría saber en que fallo u otra forma de generar una página en blanco nueva.

Gracias.

Link to comment
Share on other sites

Buenas a todos, estoy buscando la forma de crear una página nueva, completamente vacía dentro del tema. Buscando en tutoriales he estado probando de crear un fichero nuevo .tpl dentro del tema y poniéndole el siguiente código

 

{capture name=path}{l s='Main Title'}{/capture}

{include file=$tpl_dir./breadcrumb.tpl}

<h2>{l s='Titulo de Pagina'}</h2>

 

luego crear otro fichero en la raíz .php con el mismo nombre del fichero .tpl e insertarle el siguiente código.

 

<?php

include(dirname(__FILE__).'/config/config.inc.php');

include(dirname(__FILE__).'/header.php');

$smarty->display(_PS_THEME_DIR_.'uypagina.tpl');

include(dirname(__FILE__).'/footer.php');

?>

 

Luego he generado un enlace en el footer que me dirige ha esta página.

El problema es que al escribir algo en el fichero .tpl no me muestra nada por pantalla. Necesitaría saber en que fallo u otra forma de generar una página en blanco nueva.

Gracias.

 

Por que no has creado un controlador?

Link to comment
Share on other sites

Si, la he forzado. He encontrado una solución algo diferente de como lo estaba haciendo ahora, la cuelgo como solución.

El fichero .tpl lo creo en la carpeta themas como antes hacia, pero en este caso no hace falta introducirle ningún contenido, luego me dirijo a la raíz de mi prestashop y creo un fichero .php, este a diferencia de antes le digo que me apunte a otro fichero .php que se encuentra en la carpeta controller.

 

require(dirname(__FILE__).'/config/config.inc.php');

ControllerFactory::getController('ArchivoController')->run();

 

Me dirijo a la carpeta Controller y aquí genero el archivo ArchivoController.php y creo una función displayContent(), a esta le indico cual es mi fichero .tpl

 

parent::displayContent();

self::$smarty->display(_PS_THEME_DIR_.'archivo.tpl');

 

Ahora si que me muestra el contenido que le introduzco en el fichero .tpl.

Gracias por contestar, haber que te parece este método.

Edited by mukrus (see edit history)
Link to comment
Share on other sites

Si me he dado cuenta, prestashop sigue una estructura MVC, lo que no entiendo es que en algunos ejemplos que he visto el modelo se comunica directamente con la vista sin pasar por el controlador

Es posible que fueran ejemplos de prestashop 1.3 donde no estaba la carpeta controllers.

Link to comment
Share on other sites

  • 1 month later...

Hola,

 

Estoy intentando crear una página de la forma en que comentáis. Tenía creada una como hizo mukrus al principio pero prefiero hacerlo de la forma correcta, con controlador, modelo y vista.

 

Pero al crearla siguiendo todos los pasos que comentáis y repasando mucho, no me funciona, me da un error de servidor.

 

Es necesario crear la clase ??

 

mi página es about.tpl

 

el código de about.php:

 

 

require(dirname(__FILE__).'/config/config.inc.php');

ControllerFactory::getController('AboutController')->run();

 

y el código del controlador AboutController:

 

 

class AboutController extends FrontController

{

public $php_self = 'about.php';

 

public function displayContent()

{

parent::displayContent();

self::$smarty->display(_PS_THEME_DIR_.'about.tpl');

}

}

 

De momento lo haré de la primera forma, la mala, porque necesito terminarlo y son páginas muy estáticas pero necesitaré hacerlo de la otra forma.

 

Gracias y saludos!

Link to comment
Share on other sites

Hola,

 

Estoy intentando crear una página de la forma en que comentáis. Tenía creada una como hizo mukrus al principio pero prefiero hacerlo de la forma correcta, con controlador, modelo y vista.

 

Pero al crearla siguiendo todos los pasos que comentáis y repasando mucho, no me funciona, me da un error de servidor.

 

Es necesario crear la clase ??

 

mi página es about.tpl

 

el código de about.php:

 

 

require(dirname(__FILE__).'/config/config.inc.php');

ControllerFactory::getController('AboutController')->run();

 

y el código del controlador AboutController:

 

 

class AboutController extends FrontController

{

public $php_self = 'about.php';

 

public function displayContent()

{

parent::displayContent();

self::$smarty->display(_PS_THEME_DIR_.'about.tpl');

}

}

 

De momento lo haré de la primera forma, la mala, porque necesito terminarlo y son páginas muy estáticas pero necesitaré hacerlo de la otra forma.

 

Gracias y saludos!

 

Te han contestado por aquí: http://www.prestashop.com/forums/index.php?/topic/178957-creacion-de-paginas-php/page__view__findpost__p__882556

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...