Blog

Agafar correu de contacte a PrestaShop, nom de la tenda i posar valors a cookies

Si necessites agafar el correu de contacte o el nom de la tenda a PrestaShop:

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

Si a més necessites posar valors a cookies:

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

Per agafar el valor des de un template smarty (.tpl):

{$cookie->name_of_your_key}

Des de PHP (dins d’un controlador):

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

Fora d’un controlador:

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

Esper que això t’ajudi :)

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

Deshabilitar fancybox a Prestashop

disable_fancybox

De vegades, si aplicam efectes sobre les imatges dels productes (com un zoom) és preferible deshabilitar l’efecte “fancybox” que vé per defecte amb Prestashop.

Aquest efecte crea un “pop-up” que mostra una versió més gran de la imatge del producte, normalment quan es visita la pàgina d’aquest producte i es fa clic sobre la imatge.

Per a deshabilitar aquest efecte a Prestashop 1.5, haurem d’anar a /themes/{nom del tema}/js/products.js, i allà comentar aquestes línies:

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

Pots comentar aquest codi JavaScript rodejant-lo amb /* al principi i */ al final.

I ja pots dir-li adéu a fancybox!

Salut!

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

URL del mòdul a Prestashop

Si s’està treballant en un mòdul de Prestashop i es vol aconseguir la URL d’aquest mòdul dins d’un arxiu PHP del mateix, només cal afegir aquest snippet (trobat al mòdul “blocklayered”):

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

Aquest codi torna la URL del directori base del mòdul, de manera que es poden referenciar imatges o altres arxius dins del directori. Això és molt útil en els formularis de backoffice dels mòduls.

Salut!

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

Variables de Prestashop a Smarty

Aquí teniu una llista de les variables disponibles de Prestashop a Smarty, en un format fàcil de llegir:

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] }

Font original

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

Fer logging a arxiu a Prestashop

Si necessites fer debug d’una variable o funció a Prestashop (PHP, no smarty) pots fer servir aquest tros de codi. Fer logs a Prestashop no està molt ben documentat, així que he hagut de bucejar al codi per trobar la manera de fer-ho:

$logger = new FileLogger(0); //0 == nivell de debug. Sense això logDebug() no funciona.
$logger->setFilename(_PS_ROOT_DIR_.”/log/debug.log”);
$logger->logDebug(“el teu missatge 1″);
$logger->logDebug(“missatge 2″);

Els missatges de debug tendran aquest aspecte (dins de “/log/debug.log” al directori arrel de Prestashop):

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

Esper que això ajudi a algú :-). Salut.

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