Samos Posted November 28, 2018 Share Posted November 28, 2018 (edited) Bonsoir, J'essaye d'apprendre à créer des modules et j'ai quelques questions. 😊 J'ai essayé de lire la doc mais je ne vous cache pas que je comprend pas tout. J'ai donc opté pour un livre (celui ci : https://www.eyrolles.com/Chapitres/9782212141924/9782212141924.pdf) mais, je me retrouve bloqué au premier chapitre... 😐 Le but de l'exercice est de créer un module de notation et de commentaires produit. La partie back-office fonctionne, cependant, je n'arrive pas à afficher un message sur le site. Je pense donc que ce livre, (qui ce dit être pour la 1.7) est fait pour la version 1.6 de prestashop. 😋 Je vous met mon code en espérant trouver de l'aide : (le module se nomme mymodcomments) mymodcomments.php (a la racine) : <?php class MyModComments extends Module { public function __construct() { $this->name = 'mymodcomments'; $this->tab = 'frot_office_features'; $this->version = '0.1.0'; $this->author = 'Samos Sit'; $this->displayName = 'Mon module de commentaires produits'; $this->description = 'Avec ce module, vos clients pourront noter et commenter vos produits !'; $this->bootstrap = true; parent::__construct(); } public function install() { parent::install(); $this->registerHook('displayProductTabContent'); return true; } public function processConfiguration() { if (Tools::isSubmit('submit_mymodcomments_form')) { $enable_grades = Tools::getValue('enable_grades'); $enable_comments = Tools::getValue('enable_comments'); Configuration::updateValue('MYMOD_GRADES', $enable_grades); Configuration::updateValue('MYMOD_COMMENTS', $enable_comments); $this->context->smarty->assign('confirmation', 'ok'); } } public function assignConfiguration() { $enable_grades = Configuration::get('MYMOD_GRADES'); $enable_comments = Configuration::get('MYMOD_COMMENTS'); $this->context->smarty->assign('enable_grades', $enable_grades); $this->context->smarty->assign('enable_comments', $enable_comments); } public function getContent() { $this->processConfiguration(); $this->assignConfiguration(); return $this->display(__FILE__, 'getContent.tpl'); } public function hookDisplayProductTabContent(array $params) { return 'Affichez-moi sur la fiche produit'; } } getContent.tpl (mymodcomments/views/templates/hook/) : {if isset($confirmation)} <div class="alert alert-success">La configuration a bien été mise à jour</div> {/if} <form method="post" action="" class="defaultForm form-horizontal"> <div class="panel"> <div class="panel-heading"> <i class="icon-cogs"></i> La configuration de mon module </div> <div class="form-wrapper"> <div class="form-group"> <label class="control-label col-lg-3">Activer les notes :</label> <div class="col-lg-9"> <img src="../img/admin/enabled.gif" alt="" /> <input type="radio" id="enable_grades_1" name="enable_grades" value="1" {if $enable_grades eq '1'}checked{/if} /> <label class="t" for="enable_grades_1">Oui</label> <img src="../img/admin/disabled.gif" alt="" /> <input type="radio" id="enable_grades_0" name="enable_grades" value="0" {if $enable_grades ne '1'}checked{/if} /> <label class="t" for="enable_grades_0">Non</label> </div> </div> <div class="form-group"> <label class="control-label col-lg-3">Activer les commentaires :</label> <div class="col-lg-9"> <img src="../img/admin/enabled.gif" alt="" /> <input type="radio" id="enable_comments_1" name="enable_comments" value="1" {if $enable_comments eq '1'}checked{/if} /> <label class="t" for="enable_comments_1">Oui</label> <img src="../img/admin/disabled.gif" alt="" /> <input type="radio" id="enable_comments_0" name="enable_comments" value="0" {if $enable_comments ne '1'}checked{/if} /> <label class="t" for="enable_comments_0">Non</label> </div> </div> </div> <div class="panel-footer"> <button class="btn btn-default pull-right" name="submit_mymodcomments_form" value="1" type="submit"> <i class="process-icon-save"></i> Enregistrer </button> </div> </div> </form> J'aimerais donc savoir : Pourquoi le "Affichez-moi sur la fiche produit" ne s'affiche pas ? Si quelqu'un aurais un moyen autre que la doc pour apprendre ? Comment pourrais-je afficher un bouton qui redirige vers un fichier pdf ou tpl ? Merci beaucoup pour vos futures réponses ! 😀 Edited November 28, 2018 by Samos orthographe (see edit history) Link to comment Share on other sites More sharing options...
joseantgv Posted November 28, 2018 Share Posted November 28, 2018 Cette documentation semble être obsolète. Vérifiez ceci: https://mypresta.eu/prestashop-17/product-page-tabs.html https://belvg.com/blog/product-tabs-for-cms-prestashop-1-7.html En outre, le formulaire de configuration est également obsolète. Je vous recommande de créer un module de test à l'adresse https://validator.prestashop.com/generator et de voir comment il le fait. 1 Link to comment Share on other sites More sharing options...
Samos Posted November 28, 2018 Author Share Posted November 28, 2018 5 hours ago, joseantgv said: Je vous recommande de créer un module de test à l'adresse https://validator.prestashop.com/generator et de voir comment il le fait. Effectivement, c'est super et on apprends pas mal de choses ! 😁 Savez vous par hasard comment faire pour cette question ? 15 hours ago, Samos said: Comment pourrais-je afficher un bouton qui redirige vers un fichier pdf ou tpl ? ou pour faire en sorte de rediriger le bouton 'commander' de la page panier a un fichier tpl de mon module. Merci beaucoup !! 😀 Link to comment Share on other sites More sharing options...
joseantgv Posted November 28, 2018 Share Posted November 28, 2018 10 minutes ago, Samos said: Effectivement, c'est super et on apprends pas mal de choses ! 😁 Savez vous par hasard comment faire pour cette question ? ou pour faire en sorte de rediriger le bouton 'commander' de la page panier a un fichier tpl de mon module. Merci beaucoup !! 😀 Vous devez créer un contrôleur. https://devdocs.prestashop.com/1.7/modules/concepts/controllers/front-controllers/ 1 Link to comment Share on other sites More sharing options...
Samos Posted November 28, 2018 Author Share Posted November 28, 2018 Pour être plus explicite, j'aimerais avoir le même fonctionnement que ce bouton : {block name='cart_detailed_actions'} <div class="checkout cart-detailed-actions card-block"> {if $cart.minimalPurchaseRequired} <div class="alert alert-warning" role="alert"> {$cart.minimalPurchaseRequired} </div> <div class="text-sm-center"> <button type="button" class="btn btn-primary disabled" disabled>{l s='Proceed to checkout' d='Shop.Theme.Actions'}</button> </div> {elseif empty($cart.products) } <div class="text-sm-center"> <button type="button" class="btn btn-primary disabled" disabled>{l s='Proceed to checkout' d='Shop.Theme.Actions'}</button> </div> {else} <div class="text-sm-center"> <a href="{$urls.pages.order}" class="btn btn-primary">{l s='Proceed to checkout' d='Shop.Theme.Actions'}</a> {hook h='displayExpressCheckout'} </div> {/if} </div> {/block} Cependant, cliquer sur ce fameux bouton nous redirigerais vers une page tpl vide, ou au mieux vers un pdf afin de proposer un devis. J'aimerais que mon site génère des devis au format pdf et non pas des achats. J’espère m’être fait comprendre, encore merci 😊 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