Crear página PHP en Prestashop 1.7

Lo primero es que no estamos hablando de crear páginas de contenidos en la pestaña Preferencias -> CMS (Diseño -> Páginas)

Empecemos  🙂

Aunque se puede hacer mediante módulo, nosotros lo vamos hacer a mano, que si bien no es lo más indicado, supongo que a más de alguno os puede venir bien.

Hace unos 5 años hicimos un ejemplo basado en Prestashop 1.5, ahora lo vamos hacer basado en Prestashop 1.7

El primer paso es crearnos un controlador, al que vamos a llamar “nadieController.php

Lo vamos a guardar en el directorio “/controllers/front”

¿Qué contenido va a tener el fichero “nadieController.php”?

<?php
class NadieControllerCore extends FrontController
{
public $php_self = 'nadie';
public function initContent()
{
$this->context->smarty->assign(
array(
'variableSmarty1' => 'Prueba 1',
'variableSmarty2' => 'Prueba 2',
)
);
parent::initContent();
$this->setTemplate('nadie');
}
}
  • Identificación página
    Entre otras cuestiones, no permite identificar a la página, como también por ejemplo cuando accedemos al controlador vía web, el valor del parámetro. (mismo nombre que la página, si el controlador es “nadieController…”, aquí indicamos ‘nadie’)

    public $php_self = 'nadie';
    
  • Heredamos de FrontController
    class NadieControllerCore extends FrontController
    
  • Función que viene del FrontController, y que se ejecuta nada más ejecutar el controlador.
    public function initContent()
    
  • Preparamos variables para usarlas en el TPL (plantilla)
    $this->context->smarty->assign(
    array(
    'variableSmarty1' => 'Prueba 1',
    'variableSmarty2' => 'Prueba 2',
    )
    
  • Llamada al método padre:
    parent::initContent();
    
  • Asignamos nombre de la plantilla
    “nadie” tiene que estar en “/themes/tuplantilla/templates/” (con extensión tpl), es decir “nadie.tpl
    En setTemplate, escribimos el nombre de la plantilla (nadie.tpl) sin necesidad de colocar la extensión.

    $this->setTemplate('nadie');
    

Una vez preparado el Controlador, vamos a crear el fichero “nadie.tpl” o mejor dicho la plantilla de impresión.

Nuestro contenido será el siguiente:

{extends file='page.tpl'}
{block name='page_title'}
<span class="sitemap-title">{l s='Pagina Nadie' d='Shop.Theme'}</span>
{/block}
{block name='page_content_container'}
<section>
{$variableSmarty1}
{$variableSmarty2}
</section>
{/block}

Bloque estructura – (plantilla)

{extends file='page.tpl'}

Bloque Titulo:

{block name='page_title'}
<span class="sitemap-title">{l s='Pagina Nadie' d='Shop.Theme'}</span>
{/block}

Bloque Titulo

Bloque Contenido:

{block name='page_content_container'}
<section>
{$variableSmarty1}
{$variableSmarty2}
</section>
{/block}

Estamos mostrando el contenido del valor de las variables “variableSmarty1” y “variableSmarty2” que antes habíamos declarado en el controlador.

Imprimiendo variables Smarty

 

Por último, vamos a definir los metatitulos, metadescripción y url amigable de la página de “Nadie”

Vamos a la pestaña Parámetros de la tienda -> Tráfico & SEO, y en el botón “+” añadimos nuestra página.

Nueva página

Nos saldrá un formulario donde seleccionamos la página “nadie”

Definiendo metas y urls amigables para una nueva página en Prestashop

Y definimos el metatitulo, metadescripción, url amigable, etc..

Definiendo datos SEO para la página de Nadie

Ahora para entrar a la dirección, podemos entrar así:

tutienda.com/nadie

Depende así:

tutienda.com/index.php?controller=nadie

Además veremos que aparece el metatitulo y metadescripción, tal como hemos configurado:

Mostrando titulo y descripción SEO

Y con esto y un bizcocho, terminamos por hoy.

Bizcocho de Prestashop

Documento realizado bajo Prestashop 1.7.1.0

Print Friendly

[DOC] – Añadir CSS y JS a los módulos en Prestashop 1.7

He elaborado un documento en Español, que nos permitirá saber cómo añadir nuestras propias librerías de javasript y nuestras hojas de estilos a los módulos en Prestashop 1.7

Evidentemente, es un repaso rápido, espero que os sirva.

¿Preparado para añadir tus propias hojas de estilo a tu módulo en Prestashop 1.7? (Pincha en la siguiente imagen)

Añadir CSS y JS en los módulos en Prestashop 1.7

Añadir CSS y JS en los módulos en Prestashop 1.7

Print Friendly

Personalizar la página de mantenimiento en Prestashop 1.7 – [DOC]

He elaborado un documento, que nos permitirá conocer aspectos básicos a la hora de personalizar la página de mantenimiento en Prestashop 1.7 

Evidentemente es un documento básico, para que os vayáis buscando la vida )

¿Preparado para personalizar tu página de mantenimiento en Prestashop 1.7?

Para acceder al documento, pulsar en la siguiente imagen.

¿Cómo personalizar la página de mantenimiento en Prestashop 1.7?

¿Cómo personalizar la página de mantenimiento en Prestashop 1.7?

Print Friendly

Prestashop 1.7.1.1 Disponible

Hoy día 20 de abril acaban de sacar la versión 1.7.1.1 de Prestashop.

Como siempre, dejo enlace de descarga y de registro de cambios.

Descargar: https://download.prestashop.com/download/old/prestashop_1.7.1.1.zip

Log de cambios: https://www.prestashop.com/en/developers-versions/changelog/1.7.1.1-stable

Más de 15 errores corregidos con respecto a Prestashop 1.7.1.0

 

Print Friendly

Editar mapa del sitio en Prestashop 1.7

(No confundir con el Sitemap que enviamos a los buscadores)

Hablamos de la sección dentro del tienda denominada “Mapa del Sitio“, donde podemos ver por defecto 4 bloques:

  • Nuestras Ofertas
  • Categorías
  • Su Cuenta
  • Páginas

Mapa del Sitio Web en Prestashop 1.7

Imaginemos que queremos borrar el bloque “Su Cuenta” de la sección mapa del sitio de nuestra tienda.

Bloque su Cuenta en el Mapa de Sitio de Prestashop 1.7

Nos vamos al fichero:

/themes/classic/templates/cms/sitemap.tpl

Donde lo interesante viene aquí:

<div class="col-md-3">
<h2>{$our_offers}</h2>
{include file='cms/_partials/sitemap-nested-list.tpl' links=$links.offers}
</div>
<div class="col-md-3">
<h2>{$categories}</h2>
{include file='cms/_partials/sitemap-nested-list.tpl' links=$links.categories}
</div>
<div class="col-md-3">
<h2>{$your_account}</h2>
{include file='cms/_partials/sitemap-nested-list.tpl' links=$links.user_account}
</div>
<div class="col-md-3">
<h2>{$pages}</h2>
{include file='cms/_partials/sitemap-nested-list.tpl' links=$links.pages}
</div>

Nuestra intención es ocultar la sección de “Su Cuenta”.

Sigue leyendo

Print Friendly

Cambiar fondos en Prestashop 1.7

En su momento, estuvimos hablando de cambiar el fondo del pie de página en Prestashop 1.7.

Siempre, os he recordado que usar firebug o inspeccionar elemento en Chrome os puede ayudar en estas ocasiones, pero bueno…

En esta guía, hablaremos de dos fondos “Cabecera” y “Cuerpo/contenedor de la tienda (parte central)

Cambiar el color de fondo de la cabecera:

Fondo blanco de la cabecera en Prestashop 1.7

Para la cabecera, podemos añadir en el fichero:

/themes/classic/assets/css/custom.css

Nuestro propio estilo (depende modificar el “/themes/classic/assets/css/theme.css”)

Añadiendo, por ejemplo:

#header {
background: nuevo_color_de_fondo_de_la_cabecera_en_prestashop_1.7;
}

Por ejemplo, ahora la cabecera tiene color gris 🙂

Cambiando fondo de la cabecera en Prestashop 1.7

Cambiar el fondo del cuerpo (parte central) de la página:

Fondo en Prestashop 1.7

Añadimos nuestro propio estilo en el fichero:

/themes/classic/assets/css/custom.css

#wrapper {
background: nuevo_color_de_fondo_contenedor_prestashop_1.7;
}

Nosotros hemos puesto un color “rosa”:

Fondo rosa en Prestashop 1.7

Evidentemente, solo he puesto un “mini ejemplo

Personalizar colores en Prestashop 1.7

Documento basado en Prestashop 1.7.1.0

Print Friendly

Ancho del menú horizontal en Prestashop 1.7

Si por casualidades de la vida, has quitado el buscador que está al lado del “Menú Horizontal”, porque querías añadir más elementos en el Menú Horizontal, y ahora te encuentras que el menú no se ha extendido.

Menú Horizontal en Prestashop 1.7

Una posible solución para extender el ancho del menú horizontal en Prestashop 1.7, ocupando el espacio que antes tenía el buscador, es editando el fichero:

Editar fichero:

/themes/classic/modules/ps_mainmenu/ps_mainmenu.tpl

<div class="menu col-lg-8 col-md-7 js-top-menu position-static hidden-sm-down" id="_desktop_top_menu">

Cambiando estas líneas:

col-lg-8 col-md-7

Hablamos de subir el valor “8” y el valor “7”

¿Qué es col-lg y col-md?

Leer un poquito: http://librosweb.es/libro/bootstrap_3/capitulo_2/tipos_de_rejillas.html (Uno es para resoluciones mas pequeñas y otro para resoluciones mas grandes)

Recordar limpiar cache en la pestaña Parámetros Avanzados -> Rendimiento al terminar.

Documento basado en Prestashop 1.7.1.0

Print Friendly

Localización de los menús del panel de Prestashop 1.6 en Prestashop 1.7

Siendo hoy el último día de semana santa, y como dije en su momento, desconozco cuando voy a volver por aquí, os recuerdo que tenemos documentado exhaustivamente los cambios de localización de las pestañas entre el panel de administración de Prestashop 1.7 y de versiones anteriores.

De esta forma, si antes habías estado trabajando con versiones anteriores de Prestashop, no te perderás por el panel de administración de esta nueva versión.

Prepárate para entrar en el universo oscuro de Prestashop

¿Cómo puedo ver esté documento?

Lo tienes elaborado aquí: (Pincha en la imagen para acceder al documento)

¿Dónde están las opciones del menú del panel de administración de Prestashop 1.6 en Prestashop 1.7?


¿Dónde están las opciones del menú del panel de administración de Prestashop 1.6 en Prestashop 1.7?

Print Friendly

Bloque de pestañas del producto encima del de políticas en Prestashop 1.7

Cuando hablo del bloque de Políticas, nos estamos refiriendo al módulo “Confianza de Cliente” que vemos en la ficha del producto en Prestashop 1.7

Confianza del Cliente en Prestashop 1.7

Confianza del Cliente en Prestashop 1.7

Este bloque lo vemos habitualmente encima del de pestañas, donde vemos información como la de la descripción completa, destalles del producto, ficha técnica etc…

Cambiar posición del bloque de confianza debajo del bloque de pestañas en Prestashop 1.7

¿Y si queremos mostrarlo a la inversa?

Módulo de confianza debajo del bloque de pestañas en Prestashop 1.7

Lo primero, que tenemos que entender es que el módulo “Confianza de Cliente”, esta anclado en el hook: displayReassurance

Hook en displayReassurance en Prestashop 1.7

Si vamos al fichero/themes/classic/templates/catalog/product.tpl, y buscamos la siguiente línea: (En Prestashop 1.7.1.0 sobre la línea 143/145)

{block name='hook_display_reassurance'}
{hook h='displayReassurance'}
{/block}

Vemos que estamos imprimiendo el hook: “displayReassurance” aquí: “{hook h=’displayReassurance’}

Por lo tanto, lo que vamos a mover no es el módulo de confianza del cliente, vamos a mover el hook donde imprime dicho módulo.

En definitiva, movemos el “Bloque Entero”, cortando esta parte del código:

{block name='hook_display_reassurance'}
{hook h='displayReassurance'}
{/block}

Y la vamos a pegar donde se cierra el “{block name=’product_tabs’} y el <div class=”tabs”>” (En Prestashop 1.7.1.0 sobre la línea 211/212)

{block name='product_tabs'}
<div class="tabs">
...............
..............
{/block}
</div>

Bloque de confianza ha sido cambiado posición en la ficha del producto en Prestashop 1.7

Print Friendly

¿A los clientes no les guarda la información del carrito en Prestashop?

Imaginemos que tienes un cliente que va tu tienda, y añade 5 productos al carrito, pero tiene una urgencia y tiene que salir, y por el camino en un momento de pausa, intenta continuar la compra, pero sospechamente ya no le aparecen los 5 productos que tenía añadidos en el carrito y tiene que añadirlos de nuevo.

¿Cómo podemos hacer que guarde la información del carrito la próxima que vez que inicie sesión en Prestashop?

En Prestashop 1.6, en la pestaña Preferencias  -> Clientes

Configuración básica de las opciones de los clientes en Prestashop 1.6

Opción “Mostrar el carrito al iniciar sesión“.

Recuperar  información del carrito cuando el cliente vuelve a iniciar sesión en Prestashop 1.7

Recuperar información del carrito cuando el cliente vuelve a iniciar sesión en Prestashop 1.7

En Prestashop 1.7, en la pestaña Parámetros de la tienda -> Ajustes sobre Clientes

Opciones básicas de los clientes en Prestashop 1.7

Opción “Mostrar el carrito al iniciar sesión

Recuperar carrito al iniciar sesión en Prestashop 1.7


Debemos señalar en dicha opción (en ambas versiones de Prestashop) el valor ‘SÍ” en la opción que hemos comentado, de esta manera cuando el cliente vuelva a iniciar sesión en la tienda, podrá recuperar su carrito (ver los productos que ya tenía añadidos) y proseguir con la compra.

Sigue leyendo

Print Friendly