PrestashopUser03 Posted August 28, 2019 Share Posted August 28, 2019 Bonjour à tous, J'ai créé un fichier tpl qui correspond à des pages magasins personnalisées, et lorsque je tente d'afficher des infos dessus de cette façon en modifiant le controller, pas moyen, j'ai un écran blanc. $this->context->smarty->assign('store', $store); parent::initContent(); if($store) $this->setTemplate('cms/store.tpl'); Lorsque je fais {debug}sur la page tpl, je vois que les infos sont bien là mais elles refusent de s'afficher lorsque je fais par exemple {$store.wysiwyg1} (qui est un de mes champs personnalisés). Précision : le contenu du debug : Array (2) value => Store Object (25) ->id = 1 ->id_country = "8" ->id_state = "0" ->name = Array (1) 1 => "nom du magasin" ->address1 = Array (1) 1 => "adresse" ->address2 = Array (1) 1 => "" ->postcode = "75015" ->city = "Paris" ->latitude = "coordonnées" ->longitude = "coordonnées" ->hours = Array (1) 1 => "a:7:{i:0;s:6:"Fermé";i:1;s:29:"10h00 ..." ->phone = "01 02 03 04 05" ->fax = "09 01 02 03 04" ->note = Array (1) 1 => "..." ->email = "" ->date_add = "2016-09-05 10:49:06" ->date_upd = "2019-08-20 11:27:44" ->active = "1" ->wysiwyg1 = Array (1) 1 => "<h2><a href="lien..." ->wysiwyg2 = Array (1) 1 => "<h2>Le magasin en photos </h2> <p><i..." ->payments = Array (1) 1 => "Espèces, Visa, MasterCard, American E..." ->url_rewrite = Array (1) 1 => "url-récente" ->id_shop_list = Array (0) ->force_id = false ->id_image = 1 scope => "Smarty object" Est-ce une nouveauté de prestashop 1.7? Link to comment Share on other sites More sharing options...
doekia Posted August 28, 2019 Share Posted August 28, 2019 Il faudrait voir ton template (et le reste de ton code) , mais ... ça semble venir du fait que tu n'a pas filtré par langue (getStores() ?) Link to comment Share on other sites More sharing options...
PrestashopUser03 Posted August 28, 2019 Author Share Posted August 28, 2019 Merci beaucoup pour cette réponse, je fais comment pour trier par langue? Link to comment Share on other sites More sharing options...
doekia Posted August 28, 2019 Share Posted August 28, 2019 il y a 2 minutes, doekia a dit : l faudrait voir ton template (et le reste de ton code) Link to comment Share on other sites More sharing options...
PrestashopUser03 Posted August 28, 2019 Author Share Posted August 28, 2019 Sur mon template, il n'y a rien pour l'instant, voici le reste de mon code cela dit. J'ai créé un champs personnalisé sur les pages magasins appelé url_rewrite que j'ai ajouté dans ps_store_lang (avec les autres chmaps personnalisés). j'ai donc créé cette fonction : public static function getStoreByUrl($url_rewrite) { $id_store = Db::getInstance()->getValue(' SELECT id_store FROM '._DB_PREFIX_.'store_lang WHERE url_rewrite = "'.$url_rewrite.'"'); return $id_store; } qui permet de comprendre avec une url quel est le store dont on parle, puis dans les controllers, vu que je ne réussissais pas à overrider, j'ai fait ça : public function initContent() { $distance_unit = Configuration::get('PS_DISTANCE_UNIT'); if (!in_array($distance_unit, array('km', 'mi'))) { $distance_unit = 'km'; } $this->context->smarty->assign(array( 'mediumSize' => Image::getSize(ImageType::getFormattedName('medium')), 'searchUrl' => $this->context->link->getPageLink('stores'), 'distance_unit' => $distance_unit, 'stores' => $this->getTemplateVarStores(), )); parent::initContent(); $this->setTemplate('cms/stores'); $store = false; if(Tools::getValue('url_rewrite')) { $id_store = Store::getStoreByUrl(Tools::getValue('url_rewrite')); if($id_store) { $store = new Store($id_store); $address = new Address(); $address->country = Country::getNameById($this->context->language->id, $store->id_country); $address->address1 = $store->address1; $address->address2 = $store->address2; $address->postcode = $store->postcode; $address->city = $store->city; $addresses_formated = AddressFormat::getFormattedLayoutData($address); $has_picture = file_exists(_PS_STORE_IMG_DIR_ . (int)$store->id . '.jpg'); $working_hours = Tools::unSerialize($store->hours); $this->context->smarty->assign(array( 'has_picture' => $has_picture, 'addresses_formated' => $addresses_formated, 'working_hours' => $working_hours, )); } } $this->context->smarty->assign('store', $store); parent::initContent(); if($store) $this->setTemplate('cms/store.tpl'); } Comme je le disais plus haut, ce qui est étonnant, c'est que lorsque je débug la page, je vois bien toutes les variables de $store qui ont été envoyées. Merci pour les réponses en tous cas. Link to comment Share on other sites More sharing options...
doekia Posted August 28, 2019 Share Posted August 28, 2019 il y a 9 minutes, doekia a dit : Il faudrait voir ton template c'est une blague non? Link to comment Share on other sites More sharing options...
PrestashopUser03 Posted August 28, 2019 Author Share Posted August 28, 2019 je me suis mal exprimé, sur mon template, lors que je fais $store.wysiwyg1 qui devrait afficher le contenu du champs wysiwyg1, rien ne s'affiche et pire encore, il provoque un écran blanc. Link to comment Share on other sites More sharing options...
Eolia Posted August 28, 2019 Share Posted August 28, 2019 Ben oui c'est un array() tu l'as débugué juste avant ->wysiwyg1 = Array (1) 1 => "<h2><a href="lien..." ->wysiwyg2 = Array (1) un foreach sera pas mal venu ou alors détecter l'id_lang directement dans le controleur... Link to comment Share on other sites More sharing options...
PrestashopUser03 Posted August 28, 2019 Author Share Posted August 28, 2019 Mais non... Il fallait ajouter ".1" à chaque variable, deux heures que je me prends la tête pour un truc aussi con. En tous cas, merci Eolia ! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now