fly_in_the_sky Posted June 12, 2014 Share Posted June 12, 2014 Bonjour, J'ai un site www.saphonyx.be et je suis entrain de monter une boutique prestashop en parallèle sur le même serveur. www.saphonyx.be/shop Je suis entrain de recrée le thème de mon site wordpress pour prestashop afin que les clients se trouve sur le même environnement design entre les deux sites. Afin de bien crée le lien entre les deux sites, je souhaiterais importer le menu horizontal de wordpress et qu'il s'affiche dans le header de ma boutique prestashop. Ce qui serait vraiment très pratique car lorsque je modifie le menu sous wordpress, il sera automatiquement modifié dans prestashop, et mes clients aurait le même menu pour les deux sites. Bon ne sais pas trop comment m'y prendre, si quelqu'un a des pistes ? Voici ce que firebug me dit quand je lui demande des infos sur le menu de wordpress : <li class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-18 current_page_item menu-item-26"><a href="http://www.saphonyx.be/" title="Page d’accueil"><span></span>Accueil</a></li> mon fichier header.php : <?php add_theme_header(); ?> <?php // check if landing page and main navigation is disabled if ( get_current_template() == "page-landing.php" ) { if ( get_post_meta ( get_the_ID() , 'hb_disable_main_navigation', true ) != "on" ){ add_theme_main_nav(); } } else add_theme_main_nav(); ?> <?php add_header_separator( get_the_ID() ); ?> qui appelle le fichier main-navigation.php : <?php /** * @package WordPress * @subpackage Aegaeus */ // Function which includes main navigation function add_theme_main_nav () { if ( has_nav_menu ('main-menu') ) { wp_nav_menu( array ( 'theme_location' => 'main-menu' , 'container_id' => 'main-navigation-wrapper', 'container_class' => 'navigation-class clearfix', 'menu_class' => 'menu clearfix', 'menu_id'=>'nav') ); } else { echo '<div id="main-navigation-wrapper" class="navigation-class"><ul id="nav" class="menu clearfix"><li><a>'; _e('Please attach a menu to this menu location in Appearance > Menu.', 'hbthemes'); echo '</a></li></ul></div>'; } } function add_theme_footer_nav() { if ( has_nav_menu ('footer-menu') ) { wp_nav_menu( array ( 'theme_location' => 'footer-menu' , 'container_id' => 'footer-nav' ,'container_class' => '', 'items_wrap' => '<ul id="footer-navigation">%3$s</ul>', 'before' => '<span>/</span>' ) ); } } ?> ----------------------------------------------------------------------------------------------------------- Du côté de pretashop, j'ai un fichier header.tpldans lequel il faudrait appeller le menu de wordpress: <div class="header-container"> <div class="container"> <header id="header"> <div class="banner"> <div class="row"> {hook h="displayBanner"} </div> </div> <div class="nav"> <div class="row"> <nav>{hook h="displayNav"}</nav> </div> </div> <div> <div id="header_bannieresapho"> </div> <div class="row"> {if isset($HOOK_TOP)}{$HOOK_TOP}{/if} </div> </div> </header> </div> </div> <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}"> {/if} Bon voilà a partir de là, je sais pas trop de ce que je dois faire, si vous pouvez me donner des conseils se serait super. Merci d'avance Nicolas Link to comment Share on other sites More sharing options...
Szed Posted June 13, 2014 Share Posted June 13, 2014 Ca va pas être si simple que ca. Si vous souhaitez utilisé des éléments de WP dans PS, il va vous falloir faire une intégration avancée de WP vers PS. Plusieurs topics traite du sujet Sinon, un petit module PS qui va chercher en base de donnée et recréer votre menu WP. Si vous ne voulez récup que le WP, ca me parait le plus simple peut être. Link to comment Share on other sites More sharing options...
fly_in_the_sky Posted June 13, 2014 Author Share Posted June 13, 2014 Bonjour, J'ai déjà regarder la méthode de webbmax, (si c'est à cela que vous pensez), mais ce n'est pas ce que je veux faire, et puis je n'arrive pas a adpaté la méthode avec mon thème wordpress. Si vous avez d'autre topic qui pourrait parler d'une integration du menu je suis interesser. Pour le faire via un module, c'est une bonne idée. Un menu finalement reste un menu, mais si il peux chercher les infos dans la base de donnée de wordpress, ce serait idéal. Connaissez vous un module de menu qui pourrait faire l'affaire ou être modifié légèrement pour le faire ? J'imagine qu'il suffit de prendre un module de menu et puis de modifié la base de donnée à laquelle il se connecte ou alors de mixer les deux bases de donnée ensemble. Cordialement Link to comment Share on other sites More sharing options...
Szed Posted June 13, 2014 Share Posted June 13, 2014 (edited) Vous voyez les choses un peu trop simple. Si vous voulez un module qui va chercher dans les tables WP le menu, ça sera du dev à la main. Car votre menu est structure pour WP, et WP à ses propres méthodes pour aller le chercher en base, le re-créer, puis l'afficher. Méthode spécifique à WP, qui ne marcheront donc que si le WP global est installé et "appelé" sur le PS. Ou tout du moins une bonne partie du WP. Même si vous voudriez bosser à partir d'un module de menu, il faudrait quasiment tout refaire, car je ne pense pas que quelqu'un ce soit déjà penché sur un tel module. Pour ma part, je fais l'inverse, j'intègre Prestashop dans le WP, via un module qui me permet d'afficher des hooks/modules de PS, en tant que widget WP. Ce qui me permet d'afficher le menu de WP par défaut, et si je veux, celui de PS. Mais c'est du boulot, et c'est plus facile si c'est prévu des le début avec un thème WP simple et blanc avant d'aller plus loin. Edited June 13, 2014 by Szed (see edit history) Link to comment Share on other sites More sharing options...
fly_in_the_sky Posted June 14, 2014 Author Share Posted June 14, 2014 (edited) Effectivement cela a l'aire un peu galère... Etant donné que je pars d'un site wordpress existant, je ne vais pas tout recommencer à zero, il faut donc que je trouve une solution qui est possible à ce niveau. J'ai trouver ce tuto, qui a l'aire d'être une alternative. qu'en pensez vous ? http://www.webmasterbulletin.net/2011/10/how-to-integrate-wordpress-menu-into-prestashop/1584/comment-page-1#comment-51161 How to : integrate wordpress menu into prestashop The wordpress and prestashop integration is a big subject : prestashop is good for selling products and wordpress is good for dealing with content. One very efficient feature of wordpress is the menu builder that allows you to build unlimited hierachical menus. We submit here a technique that hooks into the wordpress update menu event to generate a static version of the modified menu, that can be then included in your prestashop theme via easy static include. create a cache directory in your wordpress theme folder add the following code to your functions.php file add_action("wp_update_nav_menu" , 'poleouestMakeMenu' ); function poleouestMakeMenu($menuId) { $html=wp_nav_menu(array('menu'=>$menuId, "echo"=>false)); $fileNAme= STYLESHEETPATH . "/cache/" . "menu" . $menuId .".html"; file_put_contents($fileNAme,$html); } once you've tested that the menu . html file is generated, include it in your prestashop template via some hack in the prestashop core. Let us know how you do it !! Est ce que cela a l'aire possible ? Dans ce tuto, il dit que un .html est crée. Il est crée où? dans quelle répertoire et quelle sera son nom ? Merci Nico Edited June 14, 2014 by fly_in_the_sky (see edit history) Link to comment Share on other sites More sharing options...
Szed Posted June 16, 2014 Share Posted June 16, 2014 Hello, alors ce bout de code vous propose de créer un dossier cache, dans le dossier de votre thème WP. Ainsi que de coller ce bout de code dans le fonction.php de votre thème. Une fois cela fait, lorsque vous afficherez le menu, cela devrait créer un fichier html dans le dossier cache contenant l'html du menu. Il vous suffirait ensuite d'inclure ce fichier html dans votre prestashop via include Ca se tente ^^ 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