Jump to content
graphee

[RESOLU]page CMS en accueil du site

Recommended Posts

Bonjour a tous,

je souhaiterais faire passer une page CMS en page principale du site (accueil) (http://www.monsite.com/boutique/)


et mettre ma page d'accueil en arrière plan accessible via un lien type cms (ex : http://www.monsite.com/boutique/content/7-accueil-boutique)

je vais tenter pour la première fois de faire passer la boutique en second plan et d'utiliser l'outil CMS pour faire un site en premier plan.

merci de votre aide

Share this post


Link to post
Share on other sites

je ne suis pas en dédié mais en mutualisé je pense pas avoir accés a DirectoryIndex.

je suis en train de tenter quelques manipulation, j'ai déja réussi a afficher l'accueil à la place d'une page CMS ce qui me permettra d'y accéder via une url cms fixe.

Me reste plus qu'a afficher la page cms en accueil, le plus proprement possible pour les updates futures.

je pensais autrement a le faire avec le htaccess et l'url rewriting... a voir.

Share this post


Link to post
Share on other sites

autant pour moi directoryIndex c'est dans le HTACCESS et ca marche nikel, voila la procédure si vous souhaitez mettre une page CMS en page d'accueil et si vous voulez mettre l'accueil de prestashop en page CMS :

1 - Créer ses pages CMS avec une page "home" et une page "home_boutique" (on va dire que l'ID de home est 1 et l'ID de home_boutique est 2).

Remplacer TOUT LE CONTENU de index.php par celui de CMS.PHP

rajoutez ceci apres l'ouverture de la balise PHP

$_GET['id_cms'] = 1;



il s'agira donc de votre nouvelle page d'accueil.

ensuite ouvrir CMS.PHP

changer ceci

$smarty->assign(array(
   'cms' => $cms,
   'content_only' => intval(Tools::getValue('content_only'))
)); 



par cela

$smarty->assign(array(
   'cms' => $cms,
   'content_only' => intval(Tools::getValue('content_only')),
   'HOOK_HOME' => Module::hookExec('home')
)); 



OUVRIR CMS.TPL (dans votre theme)

Changez ceci

       {$cms->content}



Par cela :

       {$cms->content}

   {if $cms->id == 2}{$HOOK_HOME}{/if}



et voila vous n'avez plus qu'a utiliser un module de menu qui permet de mettre ses pages CMS dedans et vous pourrez vous faire un site CMS avec boutique intégré.

[RESOLU]

Share this post


Link to post
Share on other sites

Bonjour et merci pour cette astuce qui m'a mis sur la voie pour régler mon problème.

Je vous livre à mon tour ma solution qui me semble plus simple à mettre en place et moins "agressive" même si pas encore totalement sans défaut.

Il suffit de modifier le fichier index.php en ajoutant une condition ce qui donne ceci:

<?php
if(isset( $_GET['showboutique']) && $_GET['showboutique']==1) {
   include(dirname(__FILE__).'/config/config.inc.php');

   if(intval(Configuration::get('PS_REWRITING_SETTINGS')) === 1)
       $rewrited_url = __PS_BASE_URI__;

   include(dirname(__FILE__).'/header.php');

   $smarty->assign('HOOK_HOME', Module::hookExec('home'));
   $smarty->display(_PS_THEME_DIR_.'index.tpl');

   include(dirname(__FILE__).'/footer.php');
}
else {
   $_GET['id_cms'] = 17;
   include('cms.php');
}
?>



ici on considère que l'article que vous désirez voir en page d'accueil du site à l'ID 17 (j'ai prit ce chiffre au hasard à vous de choisir le bon en allant dans outil/cms)

Il suffit ensuite de créé un lien dans un block de menu en ajoutant le paramètre showboutique et en lui donnant la valeur 1. Comme ceci:

http://www.monsite.com/index.php?showboutique=1



Voila en espérant que ça aidera quelqu'un.

  • Like 1

Share this post


Link to post
Share on other sites

Super comme astuce, merci !

J'ajoute juste un petit truc, il faudra peut-être ajouter dans le fichier cms.php:

$smarty->assign('page_name', 'cms');



juste avant

include(dirname(__FILE__).'/header.php');



car sinon le body ne prendra pas la classe 'cms' mais 'index' et cela risque de poser des problèmes pour faire un thème particulier pour les pages CMS.

  • Like 1

Share this post


Link to post
Share on other sites

Bonjour merci beaucoup pour ces astuces,

juste un soucis, je n'ai pas le meme contenu dans cms.php ! (à la racine)

 

Je n'ai pas le code suivant

$smarty->assign(array(
'cms' => $cms,
'content_only' => intval(Tools::getValue('content_only'))
));

 

juste (après les 25 lignes de commentaires)

require(dirname(__FILE__).'/config/config.inc.php');
ControllerFactory::getController('CMSController')->run();

 

J'édite le mauvais fichier ?

Je vais pas coller ce code betement dans cms.php alors qu'il n'y était pas, si ?

Share this post


Link to post
Share on other sites

Du coup j'ai utilisé la méthode de maniT4c,

ça marchait nickel, je voulais faire une ré-écriture d'url pour qu'elles soient belles... en vain.

 

Du coup j'ai enlevé le code et là problème !

Le site cherche toujours la page cms, et en plus il ne la trouve pas, alors que j'ai bien enlevé le code avec entre autre $_GET['id_cms']= ....

La page je ne l'ai pas supprimé et bien sur elle n'a pas changé dID

 

Quelqu'un a une piste ? Je comprends pas que le comportement reste alors que j'ai supprimé le code ! Y a quand même du cache pour ça .... (je l'ai vidé quand meme par paranoia)

Share this post


Link to post
Share on other sites

Bonjour et merci pour cette astuce qui m'a mis sur la voie pour régler mon problème.

 

Je vous livre à mon tour ma solution qui me semble plus simple à mettre en place et moins "agressive" même si pas encore totalement sans défaut.

 

Il suffit de modifier le fichier index.php en ajoutant une condition ce qui donne ceci:

 

<?phpif(isset( $_GET['showboutique']) && $_GET['showboutique']==1) {    include(dirname(__FILE__).'/config/config.inc.php');        if(intval(Configuration::get('PS_REWRITING_SETTINGS')) === 1)        $rewrited_url = __PS_BASE_URI__;        include(dirname(__FILE__).'/header.php');        $smarty->assign('HOOK_HOME', Module::hookExec('home'));    $smarty->display(_PS_THEME_DIR_.'index.tpl');        include(dirname(__FILE__).'/footer.php');}else {    $_GET['id_cms'] = 17;    include('cms.php');}?>

ici on considère que l'article que vous désirez voir en page d'accueil du site à l'ID 17 (j'ai prit ce chiffre au hasard à vous de choisir le bon en allant dans outil/cms)

 

Il suffit ensuite de créé un lien dans un block de menu en ajoutant le paramètre showboutique et en lui donnant la valeur 1. Comme ceci:

http://www.monsite.com/index.php?showboutique=1

Voila en espérant que ça aidera quelqu'un.

 

Je viens de tester le script mais sur prestashop1.6.1.3 et cela ne fonctionne pas, j'ai une page blanche?

Share this post


Link to post
Share on other sites

Je viens de tester le script mais sur prestashop1.6.1.3 et cela ne fonctionne pas, j'ai une page blanche?

Bonjour,

 

ce n'est pas étonnant ce script date de plus de 5 ans ce qui fait au moins 20 ou 30 versions de PrestaShop.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More