Forum CMS Made Simple Francophone

Aide francophone sur CMS Made Simple

Vous n'êtes pas identifié(e).

Annonce

ATTENTION

  • Prenez le temps de rechercher si quelqu'un n'a pas déjà proposé une solution à votre problème. Sur le forum français et sur le wiki
  • Pensez à mettre à jour votre version de CMS Made Simple. Nous ne faisons de support que sur LA dernière version de CMS Made Simple.
  • Renseignez impérativement le formulaire de nouveau message de manière la plus complète que possible. Dans votre CMS utiliser le menu Administration du site/Informations du système en haut Vue au format texte. Ces informations demandées nous permettent de mieux vous aider
  • Ajoutez [Résolu] au début du titre de votre 1er message lorsqu'une solution a été trouvée.

#1 10/11/2016 10:58:01

pierrepercee
Membre
Inscription : 11/06/2009
Messages : 435
Site Web

Changement dynamique en fonction url appel

#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 2.1.5
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~


Bonjour,


Sur un gros site j'ai deux grandes rubriques(avec de multiples sous-rubriques) avec un gabarit différent pour chacune des deux rubriques.
Certaines pages sont communes aux deux rubriques, je ne souhaite pas les dupliquer (duplicate content etc, et structure trop lourde).
Du coup je souhaite que certaines pages du gabarit rub1 se présentent comme des pages du gabarit rub2 si et seulement si elles sont appelées depuis un lien contenu dans une page de la rubrique rub2.

Je pensais créer un troisième gabarit qui afficherait des gcb header et  footer différents en fonction de la page appelante.
Structurellement c'est clairement le plus simple : l'url reste identique et cela répond à mon cahier des charges.

Là j'ai plusieurs pistes :
- parser l'url refferer de la page appelante et en fonction retourner le cgb adapté (le code peut être un peu complexe à cause des url externes par exemple Google)
- passer une variable à l'url , tester l'existence de cette variable et renvoyer en fonction le gcb adapté


Clairement je ne suis pas coincé, mais il peut exister une solution plus élégante qui m'aurait échappé....

A vous lire  smile


Win 7 pro 64 - CMSMS 1.6.4 à 2.1.2

Hors ligne

#2 10/11/2016 22:44:36

Jean le Chauve
Sa Seigneurie le Chauve, Comte du domaine .be
Lieu : Bruxelles
Inscription : 13/12/2007
Messages : 4 695
Site Web

Re : Changement dynamique en fonction url appel

Salut,

Tu pourrais travailler avec CGSimpleSmarty qui te permet de récupérer l'alias de la rubrique principale.
Admettons que tu donnes comme alias à tes 2 grandes rubriques : rubrique1 et rubrique2.
Tes blocs header et footer se nommeront : headerrubrique1 et 2, footerrubrique1 et 2.
Dans la page appelante, le lien doit être sous forme :

{cms_selflink page="alias" urlparam=$urlparam}

Un seul gabarit contenant :

{strip}
{$urlparam = "{cgsimple::get_root_alias()}"}
{assign var=urlparam value="?gabarit=$urlparam" scope="global"}
{if isset($smarty.get.gabarit)} {* si paramètre passé en url *}
	{$header={global_content name="header{$smarty.get.gabarit}"} scope=global}
	{$footer={global_content name="footer{$smarty.get.gabarit}"} scope=global}
{else} {* si pas de paramètre, récupère l'alias du root parent *}
	{$header={global_content name="header{cgsimple::get_root_alias()}"} scope=global}
	{$footer={global_content name="footer{cgsimple::get_root_alias()}"} scope=global}
{/if}
{process_pagedata}{/strip}<!DOCTYPE HTML>
<html lang="fr">
	<body>
		<header>
			{$header}
		</header>
		[...]
		<footer>
			{$footer}
		</footer>
	</body>
</html>

Je crois que c'est efficace et élégant cool

Hors ligne

Pied de page des forums