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

[Résolu] liens page suivante et précédante MLEcms
#1

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.3
#~ Url du site : www.leroure.fr
#~ Hébergeur / Soft : planethoster
#~ Informations Système :
#~ ----------------------------------------------
#~ Cms Version: 1.11
#~ Installed Modules:
#~ CMSMailer: 5.2.1
#~ CMSPrinting: 1.0.2
#~ FileManager: 1.4.0
#~ MenuManager: 1.8.2
#~ MicroTiny: 1.2.3
#~ ModuleManager: 1.5.5
#~ News: 2.12.7
#~ Search: 1.7.6
#~ ThemeManager: 1.1.7
#~ CGExtensions: 1.29.1
#~ MleCMS: 1.11.2
#~ ExtendedTools: 1.3.3
#~ CGSimpleSmarty: 1.5.1
#~ JQueryTools: 1.1
#~ FrontEndUsers: 1.17.6
#~ CGEcommerceBase: 1.3.11
#~ Availability: 1.8.1
#~ TinyMCE: 2.9.10.1
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template:
#~ output_compression:
#~ max_upload_size: 128000000
#~ url_rewriting: none
#~ page_extension:
#~ query_var: page
#~ image_manipulation_prog: GD
#~ auto_alias_content: true
#~ locale:
#~ default_encoding: utf-8
#~ admin_encoding: utf-8
#~ set_names: true
#~ Php Information:
#~ phpversion: 5.3.13
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ E_DEPRECATED: 0
#~ memory_limit: 256M
#~ max_execution_time: 30
#~ output_buffering: On
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 64M
#~ upload_max_filesize: 128M
#~ session_save_path: /var/lib/sessionsphp (1777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ xmlreader_class: On (Vrai)
#~ Server Information:
#~ Server Api: litespeed
#~ Server Db Type: MySQL (mysqli)
#~ Server Db Version: 5.1.63
#~ Server Db Grants: Trouvé un privilège "GRANT ALL" qui semble être adapté
#~ ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour à tous,

deux petites questions pour un site multilangues... En l'occurence ici, j'en ai 2 fr et en.



La première question, comme l'indique le titre, concerne les liens page suivante et page précédante.

Ma hiérarchie:

1-français
1.1-accueil
1.2-le gite
1.3-tarifs

2-english
2.1-home
2.2-the cottage
2.3-rates

j'ai enlevé les pages 1 et 2 du menu pour qu'elles n'apparaissent paset les ai paramétrés en tant que lien interne vers respectivement accueil et home.
tout marche nickel sauf les liens page suivante et précédante qui me donnent:

- lorsque je suis sur la page 1.3, j'ai la page 2.1 en page suivante
- lorsque je suis sur la page 2.1, j'ai la page 1.3 en page précédante

est-ce normal que le lien m'affiche une page en langue différente?
comment y remédier pour que lorsque je suis sur 2.1 il ne me donne pas de page précédante et pas de page suivante pour 1.3?

ps: code des liens

Code :
[== HTML ==]
<span class='previous left'>{cms_selflink lang=$lang_locale dir='previous'}</span>
<span class='next right'>{cms_selflink lang=$lang_locale dir='next'}</span>


ma seconde question est d'ordre plus générale.

Est-ce que ma hierarchie est correcte ou peut-elle être améliorée pour une exploitation plus logique?


Merci à tous
#2

as-tu lu le wiki MleCMS (Module)

J-C Etiemble v 2.2.xx
#3

Ouais, je l'ai épluché, ce qui m'a donné pas mal d'indices dont la compréhension des snippets, block et autres et le paramétrage de certaines optioins.

Pour la hiérarchie, j'ai suivi dans un premier temps le tuto de Goran vers lequel l'aide du module MLE nous envoie.

Dans les 2 cas, je n'ai pas trouvé la réponse à ma première question.
dans les 2 cas, une hierarchie différente est proposée d'où ma seconde question.
#4

Citation :Dans les 2 cas, je n'ai pas trouvé la réponse à ma première question.
j'ai 3 sites qui sont conçu sur les modèle du tuto "wiki MleCMS (Module)" et je n'ai pas de soucis

J-C Etiemble v 2.2.xx
#5

Alors, pour faire le test, j'ai ré-organisé ma hierarchie comme sur le wiki au lieu de l'exemple donné sur l'aide.

Soit je suis un gland, soit y'a un soucis :p

même avec cette nouvelle hierarchie, lorsque je suis sur la dernière page française en page suivante il me donne la première page de la version anglaise!
#6

Citation :même avec cette nouvelle hierarchie, lorsque je suis sur la dernière page française en page suivante il me donne la première page de la version anglaise!
heu ça c'est normal, non Wink

J-C Etiemble v 2.2.xx
#7

pt'être mais justement, c'est ce que je voudrais réussir à à supprimer.
que la première page anglaise s'affiche dans les métas, je m'en fous un peu mais sur le font office, j'aimerais que si si on est dans la section française , seules les pages en français soient linkées.
#8

Salut,

Tu as bien ceci : {menu loadprops=0 start_level='2'} dans ton gabarit ?

J'ai une bonne douzaine de sites avec MleCMS et je n'ai pas rencontré ton problème.

On peut voir le site quelque part ?

www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#9

Mon menu est : {menu childrenof=$lang_parent template='Simplex_Navigation.tpl'}

les liens prennent l'intégralité de la hierarchy des pages visibles dans le menu, mais il me semble pas qu'il y'ait une corrolation entre la balise de menu et celles des liens relatifs ... si ???

le site est en maintenance car seul le design est fait mais faites moi passer votre ip en MP et je vous mets en exception.
#10

Pourquoi ne pas faire une condition : {if $page_alias neq 'tarifs' && $page_alias neq 'rates'}<span class='next right'>{cms_selflink lang=$lang_locale dir='next'}</span>{/if}
Ou utiliser extra1 ou ...
#11

La condition est un point intéressant mais du coup il faudrait une condition dynamique au ca sou des pages seraient rajoutées et enlevées.

{if $page_alias != "l'alias de la première page de chaque langue"}<span class='previous right'>{cms_selflink lang=$lang_locale dir='previous'}</span>{/if}

{if $page_alias != "l'alias de la dernière page de chaque langue"}<span class='next right'>{cms_selflink lang=$lang_locale dir='next'}</span>{/if}
#12

GCSimpleSmarty te permet de le faire :
Code :
[== Indéfini ==]
get_sibling(\$direction[,\$assign][,\$alias])
Returns the alias of the next or previous sibling to the specified page. or false.
Arguments:
\$direction - the direction to look in. possible values are prev,previous,-1,next,1
[\$assign] - (optional) The name of the variable to assign the results to.
[\$alias] - (optional) The page alias to find the sibling for. If this is not specified, the current page is used.

Example:
Link to previous sibling: {\$cgsimple->get_sibling("prev","prev_sibling")}{if !empty(\$prev_sibling)}{cms_selflink page="\$prev_sibling" text="Previous"}{/if}
#13

Et, pour améliorer l'indexation de ton site, tu as plutôt intérêt de mettre le lien de passage à l'autre langue en visibility:hidden pour laisser les moteurs de recherche l'utiliser.
#14

je viens de regarder ça dans CgSimplesmarty...

j'ai un peu de mal à saisir le truc mais si j'ai tout de même un peu compris, cette fonction permet de savoir si il existe une page avant ou après (prev ou next), c'est ça?
si oui, la condition sera exacte même si la page précédente ou suivante est en langue différente car il regarde sur la hierarchie globale et pas sur la portion de hierarchie correspondant à chaque langue, non?


le visibility:hidden est une option à laquelle je n'avais pas pensé, mais c'est totalement vrai! merci ;-)
#15

Non, si une page prev ou next existe, elle renvoie l'alias de cette page, sinon rien.
Returns the alias of the next or previous sibling to the specified page. or false.
#16

{if $page_alias eq "home"}<span class='previous right hidden'>{cms_selflink lang=$lang_locale dir='previous'}</span>{else}<span class='previous right'>{cms_selflink lang=$lang_locale dir='previous'}</span>{/if}
{$cgsimple->get_sibling("next","next_sibling")}{if $next_sibling eq "home"}<span class='next right hidden'>{cms_selflink lang=$lang_locale dir='next'}</span>{else}<span class='next right'>{cms_selflink lang=$lang_locale dir='next'}</span>{/if}
Avec .hidden défini en css et avec 2 langues dont la page d'accueil de la seconde langue est 'home'.
Si plus de langues, tu fais des && dans ta condition. Tu n'as pas besoin de te préoccuper de la «homepage» première langue.
#17

D'accord, tu vérifies si ta page actuelle est une page d'accueil ou si la suivante en est une.
Je prenais le problème à l'envers et restait concentrée que si une page précédente ou suivante existait.
J'essaye ça et revient de suite dire ce qu'il en est...
#18

Pour le premier, ça fonctionne, par contre celui avec get_sibling me retourne une valeur vide donc la solution fonctionnelle avec la hierarchie donnée au départ est:

Code :
[== Indéfini ==]
{$cgsimple->get_sibling("prev","prev_sibling")}
{$cgsimple->get_sibling("next","next_sibling")}

{if empty($prev_sibling)}
   {cms_selflink dir='previous' label='' class='previous hidden'}
{else}
   {cms_selflink dir='previous' label='' class='previous'}
{/if}

{if empty($next_sibling)}
   {cms_selflink dir='next' label='' class='next hidden'}
{else}
   {cms_selflink dir='next' label='' class='next'}
{/if}

Merci sa seigneurie!

Voilà une affiare qui roule...
#19

Je viens de tester {$cgsimple->get_sibling("next","next_sibling")}{$next_sibling}
{$next_sibling} renvoie bien l'alias de la page suivante (s'il y en a une), par contre, il ne renvoie cette valeur qu'au même niveau hiérarchique.
Ex : page parent 1 renvoie l'alias parent 2
page enfant 1.1 renvoie l'enfant 1.2 mais renvoie "false" si c'est le dernier enfant du parent 1
C'est donc un bug par rapport à l'aide donnée dans le module.
J'ai testé avec le svn 8215, même résultat.
Je vais poser la question sur le .org
#20

Dans ma hierarchie, la première pagede chaque langue n'est pas une page de contenu mais une page redirection interne... Ca a peut-être un lien avec le fait que {$prev_sibling} et {$next_sibling} soit vide.
#21

J'ai modifié le post.
Je teste avec la redirection.
#22

La page parent dont la page parent suivante est un lien de redirection interne renvoie l'alias de la page parent :
voir les tests ici : http://www.tutos-pour-cmsmadesimple.be/
La variable est affichée sous le titre de la page.
La page test redirige sur test/enfant-1
#23

Une précision dans mon cas, la page de redirection interne , n'apparait pas dans le menu (case décochée).
C'est pt'être tout simplement ça qui donne une variable vide

si le next_sibling donne une valeur vide lorsque la page suivante est d'un niveau supérieur, ça veut dire que ce syteème fonctionne que sur une hiérarchie à 1 niveau...

en rajoutant un enfant dans la hierarchie, en effet lorsque l'on est sur cet enfant les sibling ne donnent plus rien!
#24

Posté sur .org : http://forum.cmsmadesimple.org/viewtopic...=7&t=62280
#25

Déjà la réponse de Calguy Smile
Ce n'est pas un bug, get_sibling renvoie l'alias dans la même hiérarchie.
Donc,
{if empty($next_sibling) && $cgsimple->get_root_alias() == "la dernière page parent de ta première langue"} ->hidden
{else} pas hidden
Le root_alias reste ta page parent même si c'est un lien de redirection.
Sujet fermé


Atteindre :


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