fablecrab Posted July 24, 2009 Share Posted July 24, 2009 Bonsoir à tous!Je me penche sur la création d'un thème pour Presta et j'ai bien fouillé sur le forum afin de me débrouiller déjà un peu seul. Je bloque mtn sur quelques points. 1. Le lien entre les fichiers header.tpl et footer.tpl Je ne comprends pas comment se fait le lien entre les deux fichiers. Venant de wordpress, je m'attendais à voir un fichier index qui appelle les différentes parties, comme le header et le footer par ex. Je ne trouve pas de telle structure, est-ce qu'il y en a une? 2. Les hook, des points d'accroche ok, mais... 2.1 Je ne parviens pas à bien saisir la définition d'un hook, même après avoir bien cherché. Ce sont en quelque sortes des emplacements dans la page qui nous permettent de placer les modules? Un hook top page pourrait il en théorie être placé dans un div qui se trouverait dans le footer ou pas?2.2 Ne peut on pas insérer un module dans un div sans passer par le concept de hook?2.3 Peut on créer un hook? Si oui comment et à quoi cela peut il servir? A l'utiliser pour placer un module fait maison? 3. Placement des modules avec un exemple concret, le panier dans l'entête Pour reprendre ma question 2.2, comment dois-je faire si je veux placer mon panier tout en haut du site au centre, et non pas dans une colonne? Pourquoi est-ce que certains modules comme le panier sont ils limités à certains hooks? Peut on modifier ces restrictions?Merci infiniment d'avance pour votre aide! Link to comment Share on other sites More sharing options...
fablecrab Posted July 24, 2009 Author Share Posted July 24, 2009 Je vais me répondre déjà un peu tout seul Alors j'ai testé une magouille... j'ai placé le hook left column dans le div de l'entête (où se trouve le logo du site). Et en effet ça marche, je peux glisser mes modules dedans. Le problème est que mtn je n'ai plus de colonne gauche... De plus je ne comprend pas comment aligner les modules plutôt qu'ils ne s'affichent en colonne, est-ce dans le CSS? En fait un nouveau div se crée pour chaque module et on régle son emplacement?Ne peut on pas créer un nouveau hook, par ex hook top 2, et permettre au module panier par ex de s'y placer? Cela serait génial, on pourrait vraiment être flexible! On pourrait définir une grille de base et sa ligne graphique, puis y placer les modules via le back office.Je m'excuse si mes questions doivent paraître vraiment bêtes pour certains, mais je ne suis absolument pas dévelopeur. Je suis graphiste et j'essaye donc de conceptiser au max, parsk là je suis un peu perdu... Link to comment Share on other sites More sharing options...
Natsu Posted July 25, 2009 Share Posted July 25, 2009 Salut,1. lien entre les fichiersEn faite, Prestashop utilise le moteur de template Smarty qui utilise de fichier .tpl ce qui permet de séparer le contenu du code php (pour ma part je trouve ça plus propre ^^) Pour en savoir plus sur le principe de tpl -> http://phpcodeur.net/articles/php/templates par contre c'est la lib dans l'article c'est phplib, le moteur de template de phpBB (entre autre)2. Les Hook doivent être vu comme de boîte (de mon pointe vue)2.1 Oui et non le Hook Top peut être utiliser dans le footer cependant le Hook est défini dans le fichier header.php2.2 Effectivement, je crois qu'on ne peut pas passer outre les hook pour afficher les modules2.3 Il suffit créer un fichier et d'y placer des requêtes (voir l'exemple ci-joint) ou lorsque tu crées un module, il suffit de placer la requête là.Par exemple ça permet de mieux placer tes modules, par exemple le HookTop regroupe plusieurs modules et pour y faire de modification c'est plutôt compliquer car tout est réglé au millimètre prés ^^3. Alors pour ton exemple concret il faut modifier le module panier voilà la marche à suivre:- Utilise l'installeur que j'ai fourni pour créer un HookExemple- Une fois créer, il faut que tu que tu édites le fichier header.phpRecherche ceci 'HOOK_TOP' => Module::hookExec('top'), Ajoute apres 'HOOK_EXEMPLE' => Module::hookExec('HookExemple'), - Après il faut éditer le fichier header.tpl, tu ajoutes ceci ou tu veux ! avec les css qui va avec ^^ {$HOOK_EXEMPLE} - Après, il faut éditer le module "blockcart" plus exactement le fichier blockcart.phpRecherche ce code: function hookLeftColumn($params) { return $this->hookRightColumn($params); } Après ajoute ceci: function hookHookExemple($params) { return $this->hookRightColumn($params); } - Une fois fait, il te suffit d'accrocher le module au HookTopExempleVoilà fini voir sceen par contre j'ai pas mis de css du coup ça s'affiche en "tas" installeur.zip Link to comment Share on other sites More sharing options...
fablecrab Posted July 25, 2009 Author Share Posted July 25, 2009 Merci infiniment Natsu de prendre du temps pour m'expliquer. En plus, tes infos sont vraiment claires! Je vais faire l'exemple ce soir, lors d'une énimène "PrestaNuit" Par contre je bloque sur un seul point, je ne comprends pas ce que je dois faire avec ton installateur pour créer un hook. Où dois-je le lancer?J'aimerais aussi clarifier la façon dont le contenu d'un module s'affiche dans un hook lorsqu'on inspecte sa page avec firebug:- Un div avec ID contient le hook. Je peux donc définir son CSS.- Ce div contient un div principal pour chaque module, lui aussi avec ID, comme par ex que je peux aussi modifier indépendamment dans le CSS- Ma question est donc, d'où viennent ces div id="nom du module">? Ils sont définis dans un fichier du module?La structure de Presta (au niveau design) me parait bcp plus flexible que ce que tout le monde dit si on peut commencer à créer des hook et y insérer n'importe quel module! Je me réjouis d'essayer! Link to comment Share on other sites More sharing options...
Atch Posted July 25, 2009 Share Posted July 25, 2009 Salut Fab,Chaque module (répertoire modules de Presta) contient au moins 4 fichiers :-lemodule.PHP-lemodule.TPL-en.PHP (langue)-logo.gifSi tu souhaites modifier le style d'un des block modules tu trouveras ton bonheur dans le fichier .tplV++Atch Link to comment Share on other sites More sharing options...
fablecrab Posted July 25, 2009 Author Share Posted July 25, 2009 Ok super, merci bcp! Par contre je bloque tjs sur ce que je dois faire avec l'installateur de hook?A bientôt! Link to comment Share on other sites More sharing options...
Natsu Posted July 26, 2009 Share Posted July 26, 2009 Désolé en weekend ^^Merci pour le compliment fablecrab Je répondrai certainement plus longtement demain mais pour l'installeur, il suffit de lancer le fichier comme ceci:http://ton-adresse/ton-presta/install.phpNormalement, il te renvoi une page blanche Link to comment Share on other sites More sharing options...
fablecrab Posted July 28, 2009 Author Share Posted July 28, 2009 Natsu, au risque de me répéter en compliments, tes explications sont géniales! J'ai tout suivi, et utilisé ton installateur (qui crée le nouveau hook dans la base de donnée si j'ai bien compris) et ça marche parfaitement! J'ai pu placé mon caddie dans le nouveau hook sans problème.Cette discussion devrait être épinglée, parce que vraiment c'est génial pour les gens qui sont plus orientés graphisme. Presta devient totalement flexible.Merci encore, et à bientôt! Link to comment Share on other sites More sharing options...
coach Posted September 18, 2009 Share Posted September 18, 2009 Bonjour,Je ne comprend pas la façon d'utiliser l'installateur.Je teste en local, est ce le problème ou pas. J'ai modifié les fichiers mais je bloque sur le hook exempleMerci de vos réponses. Link to comment Share on other sites More sharing options...
blasto Posted October 29, 2009 Share Posted October 29, 2009 Tu places le fichier à la racine du site et depuis le navigateur, tu fais :http://www.monsite.com/install.php- Tu arrives sur pages blanches, le script a lancé l'installation.Puis tu suis la démarche expliquée ...------------------Merci ! merci ! merci ! je viens enfin d'avoir une piste sur ce que je souhaitais faire ... Link to comment Share on other sites More sharing options...
erehcab Posted November 2, 2009 Share Posted November 2, 2009 Bonjour à tous, J'ai bien suivis la procédure indiquée par Natsu mais je ne comprends pas comment accrocher le module cart au hook (HookExemple) créé. Link to comment Share on other sites More sharing options...
botashi Posted March 13, 2010 Share Posted March 13, 2010 je confirme NATSU les éloges.ton post est excellent clair et riche. merci beaucoup Link to comment Share on other sites More sharing options...
Natsu Posted March 13, 2010 Share Posted March 13, 2010 Merci botashi Link to comment Share on other sites More sharing options...
Maury Girard Posted October 29, 2010 Share Posted October 29, 2010 Bonjour Natsu ou AtchJe me permets de Faire uper ce Threadcar j'aimerais une information complémentaireActuellement sur un thème à offrir pour la communauté j'aimerais placer le module le MGC Carousel , je voudrais l'adapté, pas, dans la page d'accueil comme il le propose par défaut.Mais plus dans Top of page (voir screen )J'ai donc suivi ton thread mais malheureusement je n'ai aucun résultat visuelTravaillant en local voici screens + le module MGC Carousel ou j'ai modifié le fichier homecarousel.phple code function hookHookExemple($params) Pourrais tu me dire si m'a démarche fut bonne ou je me suis carrément plantéQu'aurais pu oublié ?et si possible m'expliquer ce qui serais à changer pour obtenir le résultat désiré (voir screen résultat voulu )Cordialement à vous 2. homecarousel.zip Link to comment Share on other sites More sharing options...
Atch Posted October 29, 2010 Share Posted October 29, 2010 Salut,As tu ajouté ton Hook dans la base de donnée et dans le fichiers header.php?V++Atch Link to comment Share on other sites More sharing options...
Maury Girard Posted October 29, 2010 Share Posted October 29, 2010 Oui Atch j'ai trouvé ma connerie En faite j 'ai fait ma grosse bourde de la journée dans la greffe du module MGC carousel, je l avais oubliéRhooooThx ATCH quand meme Link to comment Share on other sites More sharing options...
snatch1974 Posted November 27, 2010 Share Posted November 27, 2010 Merci pour ce tuto qui m'a permis de créer un nouveau hook entre le top et les colonnes pour pouvoir mettre mes scènes.le problème est que j'ai que dalle à la sortie!!!donc j'ai bien crée le nouveau hook if (!Db::getInstance()->Execute('INSERT INTO `'._DB_PREFIX_.'hook` (`id_hook`, `name`, `title`, `description`, `position`) VALUES ("", "topsecond", "Top_second", "second top under the first one", "1")')) puis modifié le fichier header.php 'HOOK_SECONDTOP' => Module::hookExec('topsecond'), enfin le header.tpl de mon template {$HOOK_SECONDTOP} donc, voilà, maintenant, je peux accrocher n'importe quel module dans ce nouveau hook, rien n'apparait et dans le code source de la page la balise reste tritement vide.est-ce que quelqu'un aurait une idée du problème??merci Link to comment Share on other sites More sharing options...
snatch1974 Posted November 28, 2010 Share Posted November 28, 2010 C'est résolu, il fallait ne pas oublier de modifier le module pour l'autoriser à se hooker au nouveau hook. 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