Zythom Posted May 5, 2014 Share Posted May 5, 2014 (edited) Bonjour à tous, tout est dans le titre : je cherche à faire apparaitre le homeslider sur certaines autres pages que la page d'accueil. Il est bien greffé dans displayheader et displaytopcolumn, maintenant je voudrais qu'il soit vraiment sur ces pages... Quelqu'un peut me dire ou je peux changer ça ? Merci d'avance Edited May 9, 2014 by Zythom (see edit history) Link to comment Share on other sites More sharing options...
Szed Posted May 6, 2014 Share Posted May 6, 2014 Il faudrait vérifier dans votre header.tpl, ou index.tpl mais le Hook displaytopcolumn ne doit être inclus que sur la home page je suppose (ce qui est le cas si il est présent dans l'index.tpl en fait...) Si il est dans le header.tpl, il est peut être entouré d'une condition du type : {if $page_name == 'index'} {displaytopcolumn } {/if} Link to comment Share on other sites More sharing options...
Zythom Posted May 6, 2014 Author Share Posted May 6, 2014 Bonjour et merci Szed. Je n'ai rien concernant le displaytopcolumn dans le index.tpl, et dans le header.tpl j'ai ceci : <div class="columns-container"> <div id="columns" class="container"> {if $page_name !='index' && $page_name !='pagenotfound'} {include file="$tpl_dir./breadcrumb.tpl"} {/if} <div class="row"> <div id="top_column" class="center_column col-xs-12 col-sm-12">{hook h="displayTopColumn"}</div> </div> <div class="row"> {if isset($left_column_size) && !empty($left_column_size)} <div id="left_column" class="column col-xs-12 col-sm-{$left_column_size|intval}">{$HOOK_LEFT_COLUMN}</div> {/if} <div id="center_column" class="center_column col-xs-12 col-sm-{12 - $left_column_size - $right_column_size}"> Mon niveau étant proche du cro-magnon, pourriez-vous m'indiquer ou je dois placer la condition ? Merci Link to comment Share on other sites More sharing options...
Szed Posted May 6, 2014 Share Posted May 6, 2014 Votre hook n'est justement pas entouré d'une condition. Donc au vu de cela, il devrait être appelé sur toute les pages. Donc trois possibilité : - Sur les autres pages, le hook/slider est caché en CSS. - Dans Modules > Positions, le slider à toutes les pages en exceptions, hormis la page d'accueil. - La condition "tu ne t'affiche que sur la home", est directement dans le .tpl du module. Avez vous un lien vers votre site. Si il s'agit du site ecigopaline, il ne s'agit pas de la solution CSS. Je pencherais pour des exceptions. Link to comment Share on other sites More sharing options...
Zythom Posted May 6, 2014 Author Share Posted May 6, 2014 Il s'agit bien du site dans ma signature... Pour être vraiment précis, j'ai fait un homesliderbis en local, que je ne voudrais afficher que sur quelques pages créées directement (en suivant ce topic). Mes pages sont crées, le homesliderbis fonctionne correctement et je lui ai appliqué les exceptions que je veux. Il doit donc s'agir de votre troisième option, je vais vérifier le .tpl et je reviens dire ce qu'il en est... Link to comment Share on other sites More sharing options...
Zythom Posted May 6, 2014 Author Share Posted May 6, 2014 Re. Donc, dans le fichier homesliderbis.php (je n'ai pas trouvé de fichier .tpl dans ce module...) voici la partie qui concerne les hook : public function hookdisplayHeader($params) { if (!isset($this->context->controller->php_self) || $this->context->controller->php_self != 'index') return; $this->context->controller->addCSS($this->_path.'homesliderbis.css'); $this->context->controller->addJS($this->_path.'js/homesliderbis.js'); $this->context->controller->addJqueryPlugin(array('bxslider')); $slider = array( 'width' => Configuration::get('homesliderbis_WIDTH'), 'speed' => Configuration::get('homesliderbis_SPEED'), 'pause' => Configuration::get('homesliderbis_PAUSE'), 'loop' => (bool)Configuration::get('homesliderbis_LOOP'), ); $this->smarty->assign('homesliderbis', $slider); return $this->display(__FILE__, 'header.tpl'); } public function hookdisplayTop($params) { return $this->hookdisplayTopColumn($params); } public function hookdisplayTopColumn($params) { if (!isset($this->context->controller->php_self) || $this->context->controller->php_self != 'index') return; if (!$this->_prepareHook()) return false; return $this->display(__FILE__, 'homesliderbis.tpl', $this->getCacheId()); } public function hookDisplayHome() { if (!$this->_prepareHook()) return false; return $this->display(__FILE__, 'homesliderbis.tpl', $this->getCacheId()); } public function clearCache() { $this->_clearCache('homesliderbis.tpl'); } Que dois-je changer pour qu'il s'affiche sur la page "new" que j'ai créée ? Link to comment Share on other sites More sharing options...
Szed Posted May 6, 2014 Share Posted May 6, 2014 Dans cette fonction public function hookdisplayTopColumn($params) { if (!isset($this->context->controller->php_self) || $this->context->controller->php_self != 'index') return; if (!$this->_prepareHook()) return false; return $this->display(__FILE__, 'homesliderbis.tpl', $this->getCacheId()); } Je ne suis pas sur de mon coup, mais je pense que c'est le : if (!isset($this->context->controller->php_self) || $this->context->controller->php_self != 'index') return; qui vérifie si l'on n'est pas sur la page d'accueil. Enfin, c'est plutot, "si on n'est pas sur la home, on ne fait rien". Commentez ces 2 lignes, ou supprimer les, pour tester. 1 Link to comment Share on other sites More sharing options...
Zythom Posted May 6, 2014 Author Share Posted May 6, 2014 (edited) Dans cette fonction public function hookdisplayTopColumn($params) { if (!isset($this->context->controller->php_self) || $this->context->controller->php_self != 'index') return; if (!$this->_prepareHook()) return false; return $this->display(__FILE__, 'homesliderbis.tpl', $this->getCacheId()); } Je ne suis pas sur de mon coup, mais je pense que c'est le : if (!isset($this->context->controller->php_self) || $this->context->controller->php_self != 'index') return; qui vérifie si l'on n'est pas sur la page d'accueil. Enfin, c'est plutot, "si on n'est pas sur la home, on ne fait rien". Commentez ces 2 lignes, ou supprimer les, pour tester. C'est ce que je pensais, mais je voulais un avis avant Je vais commenter et tester... EDIT : c'est parfait, il s'affiche là ou je veux !!! Mais j'ai un nouveau souci... Je n'avais qu'une photo et il s'est affiché. J'ai uploadé une seconde photo; pour voir si tout fonctionne comme je veux, et il a disparu La méthode que j'ai utilisé pour créer mon homesliderbis est toute simple : j'ai fait un copié/collé du module homeslider, et dans tous les fichiers et noms de fichier j'ai remplacé homeslider et HomeSlide par homesliderbis et HomeSlideBis... Je sais que ce n'est plus le même souci, mais vous auriez une idée ? Edited May 6, 2014 by Zythom (see edit history) Link to comment Share on other sites More sharing options...
Zythom Posted May 9, 2014 Author Share Posted May 9, 2014 Bonjour, j'ai résolu mon souci !!! Merci à Szed, car il s'agissait bien des bonnes lignes. Il suffisait simplement de remplacer 'index' par 'lenomdemapage', et le tour est joué Link to comment Share on other sites More sharing options...
binou-ze Posted January 19, 2015 Share Posted January 19, 2015 bonjour, j'aimerais aussi mettre le homeslider sur toutes mes pages, j'ai donc enlevé if (!isset($this->context->controller->php_self) || $this->context->controller->php_self != 'index') return; ça marche le module s'affiche sur toutes les pages mais il s'affiche deux fois sur toutes les pages sauf page d'accueil. Cordialement Robin Link to comment Share on other sites More sharing options...
Zythom Posted January 20, 2015 Author Share Posted January 20, 2015 Bonjour Robin, vous avez vérifié sur quels hooks le slider est accroché ? Cela vient peut-être de là... Link to comment Share on other sites More sharing options...
binou-ze Posted February 20, 2015 Share Posted February 20, 2015 bonjour, pouvez vous dire exactement dans quelle position activer le module, quelle fichier il faut changer, car mon module est sur toutes les pages mais en double. Merci d'avanceRobin Link to comment Share on other sites More sharing options...
Zythom Posted February 27, 2015 Author Share Posted February 27, 2015 (edited) En fait il y a d'autres lignes à commenter. Dans le fichier nomdusite/modules/homeslider/Homeslider.php lignes 586 et 610 il y a ceci : if (!isset($this->context->controller->php_self) || $this->context->controller->php_self != 'index') return; il faut commenter ces quatre lignes. Explication : pour que le slider fonctionne, il doit être greffé dans displayHeader (c'est là que tous les fonctionnement JS se font). Donc, si il est bien sur tes pages mais que (ligne 586) il n'est greffé que sur le header de l'index, il va bien s'afficher mais ne va pas appeler le JS qui doit le faire fonctionner... EDIT : Oups j'ai oublié !!! Dans le fichier nomdusite/modules/homeslider/views/templates/hook/homeslider.tpl lignes 6 et 26 il y a un : {if $page_name =='index'} , {/if} Faire sauter ces deux lignes (ou les commenter) pour que ça fonctionne Edited February 27, 2015 by Zythom (see edit history) 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