Sujet fermé
Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5

[Resolu]Retour vers la page appelante
#1

Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.6.x
#~ Nom de l'hébergeur :
#~ Informations Système :
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
Bonjour à tous,

Sur mon futur site, il y a des pages qui seront accessibles depuis plusieurs autres. Je voudrai pouvoir revenir à la page appelante comme le fait le module News sur le lien "Retour". J'ai regardé comment c'était fait dans les templates mais je ne sais pas comment le reproduire pour mon besoin.

Mon soucis est juste d'avoir une méthode et/ou une façon de coder ou une astuce pour réaliser cela.

Autre question qui me hante : comment récupérer l'allias de la page en cours dans un template ?

Merci d'avance pour vos réponses

Cordialement
Alain
#2

re,

>Version du CMS: 1.6.x
heu .... c'est la 1.6.7 obligatoire

Ce sont des pages internes ou externes ?

J-C Etiemble v 2.2.xx
#3

Bonjour JCE

Je sais je suis un peu en retard sur la version, mais mon souci est, je pense, indépendant de la version.
Pour répondre à ta question, ce sont des pages internes exclusivement des pages internes.

Merci de ton aide

Alain
#4

re,

c'est la 1.6.7 pour raison de sécurité (attention danger)

pour les pages internes utiliser le lien interne de TinyMce

J-C Etiemble v 2.2.xx
#5

Heu! c'est quoi TinyMce ?
#6

re,

>Heu! c'est quoi TinyMce ?
l'éditeur de texte
http://wiki.cmsmadesimple.org/index.php/...TinyMCE/fr

Donc mettre le lien interne (cible) dans la page source

J-C Etiemble v 2.2.xx
#7

Bien sur où avais-je la tête !

C'est bien entendu ce que j'utilise pour créer le lien de la page appelante vers la page cible. Par contre ce que je ne sais pas faire c'est revenir sur la page appelante lorsque l'on a atteint la cible. Surtout que la cible peut être atteinte à partir de beaucoup de pages.

J'ai essayé avec {cms_selflink} mais cela n'est pas implémenté .

Alain
#8

Je ne vois à priori que deux possibilités :
1° Utiliser history de javascript;
2° Ajouter page_appelante comme variable à l'url du lien appelant.
Ex : accueil?page_appelante=uploads

Voici comment procéder pour le 2°

Tu crées une balise utilisateur (nom=return par ex.)
Code :
echo "<a href='".$_GET[page_appelante]."'>previous</a>";
Attention, si tu utilises une extension au nom des pages (ex:.html), il faudra que tu l'ajoutes après le $_GET. Ex :
Code :
echo "<a href='".$_GET[page_appelante].".html'>previous</a>";
Dans la page appelante, tu écris ton lien ainsi :
Code :
<a  href="{cms_selflink href='laPageCible'}?page_appelante={$page_alias}">questions</a>
$page_alias est l'alias de la page sur laquelle tu te trouves.
C'est une des variables toujours disponibles dans les pages. Pour les connaître, utilise {get_template_vars} dans ton gabarit ou ton content.

Dans la page cible, tu n'as qu'à placer {return} pour avoir le lien de retour vers la page appelante.

Attention de bien utiliser le lien canonical (il est prévu dans toutes les dernières versions du cmsms par défaut, dans la head des gabarits) sinon tu risques de te chopper du duplicate content avec Google.
#9

Merci infiniment Jean le chauve,
Je vais tester la deuxième solution qui me plaît bien. Pour les variables disponibles dans les gabarits, j'espère trouver la liste de ces variables dans l'aide de {get_template_vars}. Si ce n'est pas le cas, où pourrais-je trouver cette liste ?

Merci encore
Amicalement

Alain
#10

Tu dois simplement coller {get_template_vars} dans ton gabarit ou ton content. Lorsque tu afficheras la page, tu verras toutes les variables, mais effectivement, lire l'aide n'est pas superflu Wink.
#11

Je me suis rendu compte très vite que j'avais mal interprété ce que tu as écrit.
J'ai testé et le retour me renvoi à la page d'accueil.

J'ai écrit le lien dans la page appelante comme ceci :

<li>Juste au moment de tourner à gauche, admirez le <a href="{cms_selflink href='roc-h-ar-conq'}?page_appelante={$page_alias}"> rocher de Roch ar Cong</a>.</li>
<br />

J'ai créé un balise {return} que j'ai placé dans le template de la page cible au niveau du selflink, dont le code est celui ci :
echo "<a href='".$_GET[page_appelante]."'> Retour à la page d'origine</a>";

J'ai également testé en ajoutant l'extension .html le résultat est pire puisque je tombe sur une paged'erreur "FORBIDEN vous n'avez pas le droit d'utiliser .html sur ce serveur"

Aurais-je oublié quelque chose ?

Merci d'avance

Alain
#12

En regardant ce qui se passe avec firebug, le lien appelant est initialisé avec l'alias de la page appelante dans la variable page_appelante, a priori c'est ok.
par contre dans le lien donné par la balise {return} le cela donne : <a href=""> retour à la page appelante</a>

Que ce passe-t'il ?

Alain
#13

Active l'url_rewriting dans le config.php et modifie l'.htaccess pour qu'il le prenne en compte.
As-tu un lien vers tes pages ? Sinon, donne-moi l'url complète pour arriver sur tes pages.
#14

Ça marche parfaitement sur mon site test : http://www.menus-cmsms-madesimple.be/uploads.html
#15

Bonjour Jean le Chauve,

Pardon pour cet interruption momentanée du son et de l'image, mais je me suis absenté pour un enterrement dans le sud de la France.

Je suis désolé, je ne peux pas te donner l'url de mon site vu que je suis toujours en local sur mon Pc. Donc je n'ai pas non plus de fichier .htaccess.

J'ai activé l'url_rewrinting dans le config.php et là je n'avais plus que la page d'accueil d'accessible. Je n'ai pas pu accéder aux autres pages par les menus.

Y-a t'il d'autres choses à faire pour mettre en oeuvre l'url_rewriting dans CMSMS ? Est-ce que ce mode est possible en local ?

Enfin, pourquoi ce mode serait déterminant pour passer le lien de la page appelante à la page appelée?

Merci pour ton aide

Cordialement

Alain
#16

Commence déjà par upgrader le cms.

Ensuite clic gauche sur le tachygraphe de wamp
Apache => httpd.conf
Chercher la ligne : #LoadModule rewrite_module modules/mod_rewrite.so
supprimer le dièse (#) va dé-commenter cette ligne et ajouter le module rewrite.
Clic gauche sur le tachy
Restart All Services
Attendre que la couleur redevienne blanche
Apache => Apache modules
Cliquer sur rewrite_module (en bas) (il faut qu'une coche apparaisse)
Clic gauche sur le tachy
Restart All Services

Ajouter le .htacces (à la racine du site et modifier le config.php pour activer le mod_rewrite)
Code :
Options +FollowSymLinks
RewriteEngine on

#Sub-dir e.g: /cmsms
#RewriteBase /
#
# 301 Redirect all requests that don't contain a dot or trailing slash to
# include a trailing slash
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^(.*) %{REQUEST_URI}/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?page=$1 [QSA]
#17

Merci pour ta réponse rapide.

je m'y mets et je reprends contact.

Cordialement

Alain
#18

Bon ce coup ci ça marche.

Merci de ton aide Jean le Chauve, je marque résolu dans mon premier post.

A bientôt

Cordialement

Alain
Sujet fermé


Atteindre :


Utilisateur(s) parcourant ce sujet : 5 visiteur(s)