Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/03/2015, 07:32
Avatar de AngelKrak
AngelKrak
 
Fecha de Ingreso: noviembre-2014
Mensajes: 917
Antigüedad: 10 años
Puntos: 91
Respuesta: prestashop como hago un apartado de presentación de nuestra empresa?

tu quieres algo como estoo >_< aqui puedes ver el tutorial completo, pero te pondre los codigos aqui ;)

http://www.jose-aguilar.com/blog/com...en-prestashop/


Cita:
Iniciado por jose-aguilar.com
Para estos casos, es necesario crear una nueva página con su controlador y su vista (archivo .tpl) en la plantilla activa.

Lo primero que tendremos que hacer es añadir un nuevo archivo en la raiz del Prestashop con el siguiente contenido:

Código:
<?php

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

Tools::redirect('index.php?controller=newpage'.((count($_GET) || count($_POST)) ? '&'.http_build_query(array_merge($_GET, $_POST), '', '&') : ''), __PS_BASE_URI__, null, 'HTTP/1.1 301 Moved Permanently');
Casi todos los archivos que hay en la raiz tienen este mismo contenido. En este caso, lo único que varía es el parámetro controller=newpage.

En este caso, estamos creando una página con el nombre de “newpage”.

Ahora tendremos que añadir su controlador. En controllers/front/ crearemos un nuevo archivo con el siguiente contenido:

Código:
<?php

class NewpageControllerCore extends FrontController
{
    public $php_self = 'new-page';
    public $ssl = true;

    public function postProcess()
    {

    }

    public function setMedia()
    {
        parent::setMedia();
        $this->addCSS(_THEME_CSS_DIR_.'new-page.css');
        $this->addJS(_THEME_JS_DIR_.'new-page.js');
    }

    public function initContent()
    {
        parent::initContent();

        $this->setTemplate(_PS_THEME_DIR_.'new-page.tpl');
    }
}
Y lo guardaremos con el siguiente nombre: NewpageController.php.

Estamos creando la clase que controlará la información de nuestra página. Todos los controladores heredan los métodos y atributos de FrontController.

La función postProcess() se puede utilizar para recibir los datos de un formulario por ejemplo.

La función setMedia() es interesante utilizarla cuando vamos necesitar ejecutar javascript o añadir estilos.

La función initContent() es una de las más importantes y su principal objetivo es enlazar con la plantilla donde estará nuestro HTML. En esta función crearemos las variables smarty necesarias para trasladar al archivo .tpl.

En el archivo .tpl tendremos la vista de nuestra página. Será contenido HTML con variables smarty si fuera necesario.

En nuestro ejemplo crearemos un nuevo archivo llamado new-page.tpl que añadiremos en la raiz de la plantilla que estemos utilizando con el siguiente contenido:

Código:
{capture name=path}{l s='New Page'}{/capture}
{include file="$tpl_dir./breadcrumb.tpl"}

<p>YOUR CODE FOR NEW PAGE</p>
Tan solo es un ejemplo sencillo donde tan solo estamos añadiendo el breadcumb y el contenido de la página.



Para acceder a esta nueva página que hemos creado podríamos hacerlo a través una url como la siguiente:

http://www.your-shop.com/index.php?controller=new-page

jj
Si queremos añadirle url amigable, tan solo tenemos que ir a la administración de la tienda e ir a Preferencias -> SEO y URLS y pulsar en añadir nueva página. Nos encontraremos con un formulario donde aparecerá nuestra nueva página donde podremos configurar sus metas:



Guardando este formulario añdiendo al menos el nombre de la página y su url reescrita podremos acceder a nuestra nueva página con la siguiente URL:

http://www.your-shop.com/new-page

Última edición por pzin; 11/03/2015 a las 08:16 Razón: Citar el copy&paste