Jump to content

Récupérer infos magasins


Recommended Posts

Bonjour

 

Comment peut-on récupérer les informations rentré dans "Préférences / Coordonnées & magasins" pour les afficher dans le module Editorial (module que j'ai modifié de toute façon) ?

 

Je n'aurais qu'un seul magasin. Je souhaiterais récupérer le nom, l'adresse, le numéro de téléphone et l'image.

 

Je suis sous Pretashop 1.5.6.2.

 

Merci d'avance.

Link to comment
Share on other sites

Bonjour Melusine,

 

Pour commencer, il faut modifier la fonction hookDisplayHome disponible à la ligne 285 du fichier /modules/editorial/editorial.php

On rajoute simplement les lignes 304 à 307 qui récupèrent les informations disponibles dans Préférences / Coordonnées & magasins

public function hookDisplayHome($params)
{
	if (!$this->isCached('editorial.tpl', $this->getCacheId()))
	{
		$id_shop = (int)$this->context->shop->id;
		$editorial = EditorialClass::getByIdShop($id_shop);
		if (!$editorial)
			return;			
		$editorial = new EditorialClass((int)$editorial->id, $this->context->language->id);
		if (!$editorial)
			return;
		$this->smarty->assign(array(
				'editorial' => $editorial,
				'default_lang' => (int)$this->context->language->id,
				'image_width' => Configuration::get('EDITORIAL_IMAGE_WIDTH'),
				'image_height' => Configuration::get('EDITORIAL_IMAGE_HEIGHT'),
				'id_lang' => $this->context->language->id,
				'homepage_logo' => !Configuration::get('EDITORIAL_IMAGE_DISABLE') && file_exists('modules/editorial/homepage_logo_'.(int)$id_shop.'.jpg'),
				'image_path' => $this->_path.'homepage_logo_'.(int)$id_shop.'.jpg',
				'blockcontactinfos_company' => Configuration::get('blockcontactinfos_company'),
				'blockcontactinfos_address' => Configuration::get('blockcontactinfos_address'),
				'blockcontactinfos_phone' => Configuration::get('blockcontactinfos_phone'),
				'blockcontactinfos_email' => Configuration::get('blockcontactinfos_email')
			));
	}
	return $this->display(__FILE__, 'editorial.tpl', $this->getCacheId());
}

Ainsi on peut utiliser les variables {$blockcontactinfos_company}, {$blockcontactinfos_address}, {$blockcontactinfos_phone} et {$blockcontactinfos_email} dans le fichier /modules/editorial/editorial.tpl (ou celui de votre thème /themes/default/modules/editorial/editorial.tpl)

Link to comment
Share on other sites

Bonjour BlobMarket

 

Dans editorial.php j'ai fait

$this->smarty->assign(array(
	'editorial' => $editorial,
	'default_lang' => (int)$this->context->language->id,
	'image_width' => Configuration::get('EDITORIAL_IMAGE_WIDTH'),
	'image_height' => Configuration::get('EDITORIAL_IMAGE_HEIGHT'),
	'id_lang' => $this->context->language->id,
	'homepage_logo' => !Configuration::get('EDITORIAL_IMAGE_DISABLE') && file_exists('modules/editorial/homepage_logo_'.(int)$id_shop.'.jpg'),
	'image_path' => $this->_path.'homepage_logo_'.(int)$id_shop.'.jpg',	
	'blockcontactinfos_company' => Configuration::get('blockcontactinfos_company'),
	'blockcontactinfos_address' => Configuration::get('blockcontactinfos_address'),
	'blockcontactinfos_phone' => Configuration::get('blockcontactinfos_phone'),
	'blockcontactinfos_email' => Configuration::get('blockcontactinfos_email')
));

Et dans editorial.tpl :

$blockcontactinfos_company : {$blockcontactinfos_company}<br/>
$blockcontactinfos_address : {$blockcontactinfos_address}<br/>
$blockcontactinfos_phone : {$blockcontactinfos_phone}<br/>
$blockcontactinfos_email : {$blockcontactinfos_email}

Mais les variables st vides.. Et dans le debug elles n'apparaissent pas..

Link to comment
Share on other sites

2 solutions :

  • Soit le fichier tpl modifié n'est pas le bon.
    Si vous avez un fichier /themes/default/modules/editorial/editorial.tpl il faut absolument modifier celui-là car s'il existe Prestashop ne se sert plus de /modules/editorial/editorial.tpl
  • Soit les templates ne sont pas recompilés.
    Pour que les modifications dans vos fichiers tpl soient pris en compte, rendez-vous dans Parametres avances > Performances et sélectionnez Recompiler les fichiers de templates si ils ont été mis à jour pour l'option Cache des templates

Cela devrait fonctionner,

Paul.

Link to comment
Share on other sites

Je n'ai pas de cache ni de compil (site de dev).

 

Je travaille sur le fichier modules/editorial.tpl. Je l'ai entièrement modifié et il n'y a plus le editorial.tpl dans le dossier de thème.

{$blockcontactinfos_company|@var_dump}

renvoi "false". Il l'arrive pas à récupérer les infos à priori. Il faut que celles-ci soit renseignée où dans le BO ? Je l'ai est renseignée dans "Préférences / Coordonnées & magasins". La magasin à pour ID 1.

Link to comment
Share on other sites

Oula, je me suis emmelé les pinceaux. Les informations que je récupérais étaient celles du module Bloc infos contact

 

On recommence.

Les informations que vous voulez récupérer sont celles du tableau disponible sur la page Préférences > Coordonnées & magasins, pas celles disponibles en dessous de ce tableau ?

Link to comment
Share on other sites

Ok dans ce cas dans le fichier editorial.php il faut modifier la fonction comme suit:

	public function hookDisplayHome($params)
	{
		if (!$this->isCached('editorial.tpl', $this->getCacheId()))
		{
			$id_shop = (int)$this->context->shop->id;
			$editorial = EditorialClass::getByIdShop($id_shop);
			if (!$editorial)
				return;
			$editorial = new EditorialClass((int)$editorial->id, $this->context->language->id);
			if (!$editorial)
				return;
			$stores = Db::getInstance()->executeS('
				SELECT s.*, cl.name country
				FROM '._DB_PREFIX_.'store s
				'.Shop::addSqlAssociation('store', 's').'
				LEFT JOIN '._DB_PREFIX_.'country_lang cl ON (cl.id_country = s.id_country)
				WHERE s.active = 1 AND cl.id_lang = '.(int)$this->context->language->id);
			$this->smarty->assign(
				array(
					'editorial' => $editorial,
					'default_lang' => (int)$this->context->language->id,
					'image_width' => Configuration::get('EDITORIAL_IMAGE_WIDTH'),
					'image_height' => Configuration::get('EDITORIAL_IMAGE_HEIGHT'),
					'id_lang' => $this->context->language->id,
					'homepage_logo' => !Configuration::get('EDITORIAL_IMAGE_DISABLE') && file_exists('modules/editorial/homepage_logo_'.(int)$id_shop.'.jpg'),
					'image_path' => $this->_path.'homepage_logo_'.(int)$id_shop.'.jpg',
					'stores' => $stores
				)
			);
		}

		return $this->display(__FILE__, 'editorial.tpl', $this->getCacheId());
	}

Ensuite dans editorial.tpl vous aurez accès aux différentes boutiques.

Par exemple pour la première ligne vous pouvez utiliser les variables suivantes : {$stores[0].name}, {$stores[0].address1}, {$stores[0].country}...

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...