rodhen Posted June 2, 2008 Share Posted June 2, 2008 bonjour j'ai voulu gerer l'emplacement des modules les suprimer pr les inserer ailleurs. Je l'ai fait tout c'est bien passer en back office sauf que sur la boutique il n'y apparaisse pas nul part alors que ds l'admin tout semble etre normal Bug général ou seulement chez moi ? Autre question les modules sont en anglais c'est modifiable ou il faut aller ds le code ? car moi et le php ca fait 4 Link to comment Share on other sites More sharing options...
DrÿSs' Posted June 3, 2008 Share Posted June 3, 2008 Bonjour, Comme répété souvent, il faut une fonction dans le module pour chaque hook (emplacement). Par exemple, de base, le blockcategorie est greffé sur le hook menu de gauche, donc il y a une fonction sur le menu de gauche dans le module qui va s'exécuter sur ce hook. Maintenant, si vous greffez le module en haut de la page (hook top), mais que vous n'avez pas créé de fonction associée, alors il ne se passera rien. Donc oui, il faut tripaturer un peu le code du module PHP. Link to comment Share on other sites More sharing options...
Fistou69 Posted June 3, 2008 Share Posted June 3, 2008 Bonjour Philippe, Est-il possible d'avoir un petit tuto (un exemple) qui expliquerait la manip ? Je pense que beaucoup de personnes non programmeur seraient intéréssés par cela. Salutations. Link to comment Share on other sites More sharing options...
jcmht Posted June 3, 2008 Share Posted June 3, 2008 Bonjour Philippe, Est-t-il possible d'avoir un petit tuto (un exemple) qui expliquerait la manip ? Je pense que beaucoup de personnes non programmeur seraient intérréssés par celà. Salutations. +1 Link to comment Share on other sites More sharing options...
shagshag Posted June 3, 2008 Share Posted June 3, 2008 Bonjour, Juste une petite explication car ce n'est vraiment pas compliqué : les modules sont dans le dossier /modules/. Un modules se compose au minimum d'un fichier /modules/mon_module/mon_module.php il faut modifier ce fichier. prenons l'exemple du module BlockCurrencies le fichier /modules/blockcurrencies/blockcurrencies.php est <?php class BlockCurrencies extends Module { function __construct() { $this->name = 'blockcurrencies'; $this->tab = 'Blocks'; $this->version = 0.1; parent::__construct(); // The parent construct is required for translations $this->page = basename(__FILE__, '.php'); $this->displayName = $this->l('Currency block'); $this->description = $this->l('Adds a block for selecting a currency'); } function install() { if (!parent::install()) return false; if (!$this->registerHook('top')) return false; return true; } /** * Returns module content for header * * @param array $params Parameters * @return string Content */ function hookTop($params) { global $smarty; $currencies = Currency::getCurrencies(); if (!sizeof($currencies)) return ''; $smarty->assign('currencies', $currencies); return $this->display(__FILE__, 'blockcurrencies.tpl'); } } ?> on voit une méthode hookTop (function hookTop($params)), c'est elle qui gère l'affichage dans le Hook Top (haut de page) il y a 8 méthodes qui peuvent gérer l'affichage : [li]hookTop : haut de page[/li] [li]hookHeader : entête de page <head>[/li] [li]hookRightColumn : colonne de droite[/li] [li]hookLeftColumn : colonne de gauche[/li] [li]hookFooter : pied de page[/li] [li]hookHome : centre de la page d'accueil[/li] [li]hookExtra : page produit en dessous du bouton Ajouter au panier[/li] [li]hookProductfooter : page produit au dessus de En savoir plus[/li] si on veux afficher le block blockcurrencies dans la colonne de droite, pour l'instant ça ne marche pas car la méthode hookRightColumn n'est pas définie. Donc on la rajoute. <?php class BlockCurrencies extends Module { function __construct() { $this->name = 'blockcurrencies'; $this->tab = 'Blocks'; $this->version = 0.1; parent::__construct(); // The parent construct is required for translations $this->page = basename(__FILE__, '.php'); $this->displayName = $this->l('Currency block'); $this->description = $this->l('Adds a block for selecting a currency'); } function install() { if (!parent::install()) return false; if (!$this->registerHook('top')) return false; return true; } /** * Returns module content for header * * @param array $params Parameters * @return string Content */ function hookTop($params) { global $smarty; $currencies = Currency::getCurrencies(); if (!sizeof($currencies)) return ''; $smarty->assign('currencies', $currencies); return $this->display(__FILE__, 'blockcurrencies.tpl'); } /** * Returns module content for right column * * @param array $params Parameters * @return string Content */ function hookRightColumn($params) { return $this->hookTop($params); } } ?> la nouvelle méthode ne fait que rappeler la méthode hookTop mais ça suffit pour ce qu'on veut faire. Et voila, normalement ça marche. Link to comment Share on other sites More sharing options...
DrÿSs' Posted June 3, 2008 Share Posted June 3, 2008 Voilà, rien à faire ;D Merci shagshag Link to comment Share on other sites More sharing options...
Fistou69 Posted June 3, 2008 Share Posted June 3, 2008 Bonjour Shagshag, Merci pour cette explication qui je suis certain va servir à beaucoup d'entre nous. Je m'en vais de ce pas tester tout de suite. Salutations. Link to comment Share on other sites More sharing options...
shagshag Posted June 4, 2008 Share Posted June 4, 2008 De rien . Tant qu'a faire je relance ce sujet "Ajout de la méthode "hookDefault" pour les modules" qui éviterai de faire ces manipulations qui ne font pas très "produit fini". L'utilisateur final ne devrait pas avoir à toucher le code. Link to comment Share on other sites More sharing options...
Spheerys Posted August 6, 2008 Share Posted August 6, 2008 De rien . Tant qu'a faire je relance ce sujet "Ajout de la méthode "hookDefault" pour les modules" qui éviterai de faire ces manipulations qui ne font pas très "produit fini". L'utilisateur final ne devrait pas avoir à toucher le code. Le lien du topic n'est plus valide, mais si effectivement il existe une méthode pour que le module puisse être placé où l'utilisateur le souhaite, je pense que ça serait bien de faire passer le message.j'utilise PS depuis peu avec bcp de plaisir et cette histoire d'impossibilité de placer des bloc où je souhaite vient de générer ma première frustration....J'espère que les prochaines versions n'auront pas ce problème PS : si un modo veut bien éditer le post contenant le tuto afin de le rendre lisible (probablement un pb de tag non fermé), ça serait très appréciable 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