Jump to content

CMS a contenu différent [Résolu]


Recommended Posts

Bonjour,

Est-il possible d'afficher un contenu différent dans les CMS suivant si la personne est un client connecté ou pas ?

En fait, pour les non clients, je souhaite ne pas afficher des informations contenu dans le CMS du type :

"Ce contenu est réservé aux clients de la boutique"

Et d'en afficher le contenu pour les clients (connecté et identifié).

Je ne sais pas si on peut insérer du smarty dans le CMS ou bien de créer 2 CMS (suivant le cas afficher l'un ou l'autre mais cela demande de maintenir 2 CMS au lieu d'un).

Ou encore ajouter du BBcode à prestashop ;-)

Merci de retour sur cette question

Link to comment
Share on other sites

Merci du retour,

en effet j'ai commencé sur cette piste mais je ne veux pas gérer 2 cms (trop de gestion...)

J'arrive a afficher un message dans le cms si l'utilisateur est connecté ou pas, mais ce message est fixe ( ecrit en dur dans le fichier cms.tpl du themes avec smarty)

Ce que je cherche à faire c'est un peu la méthode du BBcode.

Via TinyMCE, je voudrais déclarer un tag du type [PRIVATE] [/PRIVATE]
et dans mon cms.tpl utilisé une regex pour remplacer la valeur suivant le cas :
- connecté : supprimer uniquement les tags
- non connecté : remplacer les tags et son contenu par un message du type "Partie Privée réservé aux clients uniquement"

Je ne sais pas comment aujourd'hui ajouter simplement ce TAG à TinyMCE de prestashop car après en php/smarty il ne reste plus qu'à gérer le RegEx

Link to comment
Share on other sites

A titre d'exemple

J'ai un CMS qui contient différentes prestation, en plus de mes produits, ou un catalogue, d'on les prix ne sont accessibles que pour les utilisateurs authentifiés.

J'ai trouve un plugins tinyMCE BBcode mais je ne sais comment le télécharger :red:

Comme ca je pourrais modifier le contenu des tags comme je veux. Pour les interpréter dans mon tpl

En plus l'avantage de le gérer à ce niveau là c'est que le contenu n'est même pas pris en compte par les moteurs de recherche ;-)

Link to comment
Share on other sites

Bon en fait j'ai trouve.

Il suffit juste de modifier le fichier cms.php

après la ligne

    $rewrited_url = $link->getCmsLink($cms, $cms->link_rewrite);


ajouter

    $isLogged = intval($cookie->isLogged());

   if ($isLogged == 1) {
       $cms->content=preg_replace('/\[private\](.*?)\[\/private\]/is', '$1', $cms->content); 
   } else {
       $cms->content=preg_replace('/\[private\](.*?)\[\/private\]/is', 'Information accessible uniquement aux clients', $cms->content); 
   }



Puis quand vous voulez afficher des informations uniquement pour vos clients identifié, dans votre CMS, vous l'encadrez en commencant par [private] et terminé avec [/private].

Pas besoin de plugin bbcode tinyMCE

Link to comment
Share on other sites

  • 4 weeks later...

Bonjour,

J'ai un peu le même soucis, je souhaiterais optimiser ce petit bloc CMS en ajoutant la possibilité d'ajouter directement le contenu de la page CMS dans le bloc CMS - bref en faire un petit bloc de contenu éditable, pour y mettre news et cie, et surtout pouvoir les changer.
J'ai tenté de regardé le .php et je suis presque sure que ça ne doit pas être bien compliqué ..

Si j'ai bien vu, il faudrait appeler le champ 'content' de la table 'cms_lang' en meme temps qu'on appelle 'meta_title' de la meme table ... Or je ne capte pas le langage utilisé.
Donc j'y suis presque, mais j'y arrive pas : si quelqu'un(e) avait la bonté de m'aider à terminer mon trifouillage ..
A moins que ça ne soit déjà fait ?

Merci par avance des réponses,
*G

Link to comment
Share on other sites

tu devrais t'appuyer sur le fichier CMS.php

if (( $id_cms = intval(Tools::getValue('id_cms'))) AND $cms = new CMS(intval($id_cms), intval($cookie->id_lang)) AND Validate::isLoadedObject($cms))
{
   /* rewrited url set */
   $rewrited_url = $link->getCmsLink($cms, $cms->link_rewrite);



mais dans ton block (je pense que tu veux dire un module block), au lieu de faire appel à la page CMS.php?id_cms=xx pour générer une page complète, tu affiche le contenu de $cms sans oublier de fournir le numéro de ton cms ($id_cms)

Bon courage....

Link to comment
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...