Módulo Blog para tienda online con Prestashop 1.5.

En nuestro anterior post explicábamos las ventajas de integrar un blog en nuestra tienda virtual: ¿Por qué incluir un blog en nuestra tienda online?

En este post os vamos a ofrecer un módulo gratuito (Free Blog Module) hecho por PrestaLive y que funcionaba para versiones anteriores de Prestashop, pero que hemos tenido que adaptar para que funcione para la versión 1.5.


Instalación de la versión actualizada de plblog para Prestashop 1.5.:
  1. Descargad el zip.
  2. Descomprimidlo
  3. Incluid la carpeta plblog en la carpeta /modules de vuestro Prestashop.
  4. Dirigiros a la carpeta override/classes/ e incluid los archivos Tools.php y Link.php.
  5. En el panel de administración de vuestra tienda, id a la pestaña de módulos e instalad el módulo plblog.
  6. Una vez instalado, podéis hacer click sobre “configurar” para elegir las preferencias del módulo.
  7. Se puede gestionar el blog (sus categorías, posts, comentarios...) desde Catálogo >> Blog
  8. Para usar URL's amigables y que funcionen correctamente todos los enlaces del blog:
    1. A través del FTP, borrad el archivo class_index.php de la carpeta cache
    2. En preferencias >> SEO y URLs desactivad los enlaces amigables y volved a activarlos a continuación.
    3. Actualizad el archivo .htaccess. En el zip, adjunto el archivo htaccess que he utilizado yo y con el que me funciona perfectamente, por si lo queréis utilizar. Eso sí, tenéis que poner la ruta correcta a vuestra web.
    4. Si con estos pasos aún no os funciona, volved al paso 8.2. y desactivad, además de los enlaces amigables, el apache MultiViews. Repetid también los pasos siguientes.
      asdf

Con esto, el módulo debería estar instalado correctamente y funcionando, pero según lo vas usando te vas encontrando con algunos problemas a los que damos solución a continuación:


PROBLEMA CON LAS IMÁGENES DE LOS PRODUCTOS

A algunos usuarios que tienen la tienda en un subdirectorio de su directorio raíz les dejaron de aparecer las imágenes de los productos correctamente. Esto se debe a un problema en la generación del htaccess, en el que aparecía un link a las imágenes parecido al siguiente:
{ENV:REWRITEBASE}/subdirectorio-tienda/img/p/$1/$1$2$3.jpg [L]
y que se deberá sustituir por:
{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]

PROBLEMA CON LAS FECHAS

Si tenéis problema con la fecha de publicación de los posts, en el archivo modules\plblog\plblog.php, sustituid la línea
post_date_create datetime NULL
por
post_date_create TIMESTAMP NOT NULL

Esto ya está hecho en el zip que adjuntamos desde Tictac Soluciones. Pero si habéis utilizado otro zip, deberéis cambiar la línea y volverlo a instalar.

PROBLEMA AL INTRODUCIR ETIQUETAS HTML EN LAS DESCRIPCIONES DE LAS CATEGORÍAS Y EN LOS TEXTOS DE LOS POSTS

Tal y como está el módulo, cuando introduces un enlace, una imagen o cualquier etiqueta html a través del editor de texto rico, éste los ignora y no los guarda en la base de datos. Es fácil arreglarlo, sólo hay que cambiar 2 líneas.

En el archivo CategoryObject.php, buscad la línea:
'category_description' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCleanHtml', 'size' => 2000)
y sustituidla por:
'category_description' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isString', 'size' => 2000),

En el archivo PostObject.php, buscad la línea:
'post_description' => array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isString', 'required' => true)
y sustituidla por:
'post_description' => array('type' => self::TYPE_HTML, 'lang' => true, 'validate' => 'isString', 'required' => true)

Esto ya está hecho en el zip que adjuntamos, pero ahí lo dejamos para aquellos que hayan conseguido el módulo por otro sitio.

PROBLEMA CON LOS COMENTARIOS

También está ya solucionado en este zip.

El problema es que toda la parte de comentarios está comentada en algunas de las versiones del módulo y, por eso, no se mostraba el formulario para incluir comentarios. Para solucionarlo:
editad el archivo post-detail.tpl en \modules\plblog\frontent\tpl\ y quitad {* en la línea 54 y *} en la línea 119.

¡Importante! Os dará un error si en /config/defines.inc.php tenéis la variable _PS_MODE_DEV_ a true, que es para el entorno en desarrollo. Ponedlo a FALSE.

PROBLEMA CON EL CAPTCHA DE LOS COMENTARIOS

Si en la configuración del módulo eliges que se debe introducir el texto del CAPTCHA para poder enviar un comentario, verás que si se introduce correctamente todo funciona como debería, pero que si se introduce mal, no envía el comentario, pero tampoco muestra ningún mensaje de error indicando el problema. Para corregirlo:
  1. Busca el archivo DetailsController.php en /modules/plblog/frontent/controllers
  2. Ábrelo y busca  la línea:
  3.  if ($_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'])) {
  4. Añade el siguiente codigo después de ese if:
  5.  elseif($_SESSION['security_code'] != $_POST['security_code'] && !empty($_SESSION['security_code'])){
           $data = 2;
           $this->context->smarty->assign('pl_blog_post_detail_display_message', $data);
       }
  6. Buscar el archivo post-detail.tpl en modules/plblog/frontent/tpl
  7.  Ábrelo y busca la línea
  8. {if $pl_blog_post_detail_display_message == 1 }
  9. Añade el siguiente código después de ese if
  10. {if $pl_blog_post_detail_display_message == 2 }
         <div class="plconf invalid">
                {l s='Invalid Security Code' mod='plblog'}
         </div>
     {/if}
  11. Gestiona las traducciones del módulo: habrá aparecido una nueva línea llamada "Invalid Security Code" (la que nosotros hemos añadido al archivo post-detail.tpl; no existía previamente. Ahora podemos traducirla.)
  12. El mensaje de error saldrá en verde. Para corregir esto, añadiremos el siguiente código en el archivo style.css que se encuentra en modules/plblog/frontent/css
 .plconf.invalid{
      background-color: #FAE2E3;
      border: 1px solid red;
      padding: 5px;
      margin-bottom: 20px;
}

PROBLEMA CON LOS TAGS O ETIQUETAS DEL BLOG

Cuando se crea un post, este módulo permite asociar al mismo distintas etiquetas o tags. Puede dar problemas si se incluyen acentos en estas etiquetas. Para evitarlo, abriremos el archivo \modules\plblog\frontent\tolls\PITools.php y buiscaremos la función stringOnLink, añadiendo el siguiente código antes del return:

$str = str_replace("&aacute;","a",$str);
$str = str_replace("&eacute;","e",$str);
$str = str_replace("&iacute;","i",$str);
$str = str_replace("&oacute;","o",$str);
$str = str_replace("&uacute;","u",$str);
$str = str_replace("&ntilde;","n",$str);
$str = str_replace("&Aacute;","A",$str);
$str = str_replace("&Eacute;","E",$str);
$str = str_replace("&Iacute;","I",$str);
$str = str_replace("&Oacute;","O",$str);
$str = str_replace("&Uacute;","U",$str);
$str = str_replace("&Ntilde;","N",$str);

$originales = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðòóôõöøùúûýýþÿŔŕ';


$modificados= 'AAAAAAACEEEEIIIIDOOOOOOUUUUYbsaaaaaaaceeeeiiiidoooooouuuyybyRr';

$str = utf8_decode($str);
$str = strtr($str, utf8_decode($originales), $modificados);

ÚLTIMOS DETALLES

Aparece, en las migas de pan, la palabra Nieuws. Para cambiarla, editad el archivo plblog/frontent/controllers/ViewAllPostController.php y sustituidla por Noticias, Blog o lo que queráis.

Si tenéis cualquier duda o os surge cualquier problema, os intentaremos ayudar en lo que podamos.
Os dejamos, también, un enlace al foro de prestashop en el que se habla de este módulo y que a nosotros nos ha servido de gran ayuda. Está en inglés.

Y si todavía no tenéis claro si queréis un blog en vuestra tienda, os dejamos un enlace a otro post en el que os hablamos de las ventajas que supone: ¿Por qué incluir un blog en nuestra tienda online?