Blog

Conseguir correo de contacto en PrestaShop, nombre de la tienda y poner valores en cookies

Si necesitas el correo de contacto o el nombre de la tienda en PrestaShop:

$shop_email = strval(Configuration::get('PS_SHOP_EMAIL'));
$shop_name = strval(Configuration::get('PS_SHOP_NAME'));

Si además necesitas poner valores en las cookies:

$this->context->cookie->__set('name_of your_key', $your_value);

Para obtener el valor desde un template smarty (.tpl):

{$cookie->name_of_your_key}

Desde PHP (dentro de un controlador):

$this->context->cookie->name_of your_key

Fuera de un controlador:

$context = Context::getContext();
$context->cookie->name_of your_key;

Espero que sea de ayuda :)

19:00 hrs. | Posted by | 0 comments
facebooktwittergoogle_plusredditpinterestlinkedinmail

Deshabilitar fancybox en Prestashop

disable_fancybox

A veces, si aplicamos efectos sobre las imágenes de los productos (como un zoom) es preferible deshabilitar el efecto “fancybox” que viene por defecto con Prestashop.

Este efecto crea un “pop-up” que muestra una versión engrandecida de la imágen del producto, normalmente cuando se visita la página de dicho producto y se hace clic sobre la imágen.

Para deshabilitar este efecto en Prestashop 1.5, debes ir a /themes/{nombre de tu tema}/js/products.js, y comentar estas líneas:

$(‘.thickbox’).fancybox({
‘hideOnContentClick’: true,
‘transitionIn’ : ‘elastic’,
‘transitionOut’ : ‘elastic’
});

Puedes comentar este código JavaScript rodeándolo con /* al principio y */ al final.

¡Y dile adiós a fancybox!

Saludos

12:47 hrs. | Posted by | 0 comments
facebooktwittergoogle_plusredditpinterestlinkedinmail

URL del módulo en Prestashop

Si se está trabajando en un módulo de Prestashop y se quiere conseguir la URL de dicho módulo dentro de un archivo PHP del mismo, sólo es necesario añadir este snippet (encontrado en el módulo “blocklayered”):

$module_url = Tools::getProtocol(Tools::usingSecureMode()).$_SERVER['HTTP_HOST'].$this->getPathUri();

Este código devuelve la URL del directorio base del módulo, de manera que se pueden referenciar imágenes u otros archivos dentro del directorio. Esto es muy útil en los formularios de backoffice de los módulos.

¡Saludos!

17:05 hrs. | Posted by | 0 comments
facebooktwittergoogle_plusredditpinterestlinkedinmail

Variables de Prestashop en Smarty

Aquí teneis una lista de las variables disponibles de Prestashop en Smarty, en un formato fácil de leer:

01 $base_dir { root folder of your shop }
02 $base_dir_ssl { root folder of your shop using HTTPS protocol }
03 $content_dir { root folder of your shop depending on the SSL settings }
04 $img_ps_dir { root folder containing images “/img/” }
05 $img_dir { images folder in your current theme directory }
06 $css_dir { css folder inside the current theme folder }
07 $js_dir { JavaScript inside the theme folder }
08 $tpl_dir { theme root folder }
09 $modules_dir { modules root folder }
10 $mail_dir { mail templates root folder }
11 $lang_iso { current language ISO code }
12 $come_from { previous page address [absolute] }
13 $shop_name { your specified shop name }
14 $cart_qties { total number of products in the cart }
15 $cart { shopping cart contents }
16 $currencies { pulls available currencies }
17 $id_currency_cookie { selected currency id [cookie dependent] }
18 $currency { active currency }
19 $cookie { active cookie }
20 $languages { grabs available languages }
21 $logged { checks whether users is logged in }
22 $page_name { current page’s name }
23 $customerName { customer name [session dependent] }
24 $priceDisplay { current price display settings [currency dependent] }

Fuente original

16:36 hrs. | Posted by | 0 comments
facebooktwittergoogle_plusredditpinterestlinkedinmail

Hacer logging en archivo en Prestashop

Si necesitas hacer debug de una variable o función a Prestashop (PHP, no Smarty) puedes utilizar este trozo de código. Hacer logs en Prestashop no está muy bien documentado, así que he tenido que bucear en el código para encontrar la manera de hacerlo:

$logger = new FileLogger(0); //0 == nivel de debug. Sin esto logDebug() no funciona.
$logger->setFilename(_PS_ROOT_DIR_.”/log/debug.log”);
$logger->logDebug(“mensaje 1″);
$logger->logDebug(“mensaje 2″);

Los mensajes de debug tendrán este aspecto (en “/log/debug.log” en el directorio raíz de Prestashop):

*DEBUG* 2014/02/11 – 14:31:48: Hello world

Espero que esto ayuda a alguien :-) Saludos

12:06 hrs. | Posted by | 2 comments
facebooktwittergoogle_plusredditpinterestlinkedinmail