[Résolu] Créer un site Bilingue - Problème avec mes menus

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
#1
Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.8.1
#~ Nom de l'hébergeur : local
#~ Informations Système :
#~ Cms Version: 1.8.1
#~ Installed Modules:
#~ CMSMailer: 2.0
#~ FileManager: 1.0.2
#~ MenuManager: 1.6.5
#~ ModuleManager: 1.4
#~ News: 2.10.6
#~ nuSOAP: 1.0.1
#~ Printing: 1.1.0
#~ Search: 1.6.5
#~ ThemeManager: 1.1.1
#~ TinyMCE: 2.7.2
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template: false
#~ output_compression: false
#~ max_upload_size: 2000000
#~ default_upload_permission: 664
#~ 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.2.9-1
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ memory_limit: 128M
#~ max_execution_time: 30
#~ output_buffering: 1
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 8M
#~ upload_max_filesize: 2M
#~ session_save_path: c:/wamp/tmp (0777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ Server Information:
#~ Server Api: apache2handler
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.1.32
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~

J'ai vu quelques sujets pour rendre un site web bilingue (je ne parle pas de la section admin.).

Je crois que la meilleure façon de faire selon vos commentaires est cette façon :
- FR
- - pageFR1
- - pageFR2
- EN
- - pageEN1
- - pageEN2

Je crois aussi que c'est la meilleur façon, par contre, j'ai un problème avec le menu... il affiche seulement FR et EN et si je sélectionne « ne pas afficher dans le menu » plus s'affiche... naturellement.

J'ai cherché à modifier mon gabarit de menu dans la « Gestion de Menu » sans succès. Ce que je veux afficher ces le 2e et 3e niveaux... pageFR1
et pageFR2...
#1
Citation :#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~
#~ Version du CMS: 1.8.1
#~ Nom de l'hébergeur : local
#~ Informations Système :
#~ Cms Version: 1.8.1
#~ Installed Modules:
#~ CMSMailer: 2.0
#~ FileManager: 1.0.2
#~ MenuManager: 1.6.5
#~ ModuleManager: 1.4
#~ News: 2.10.6
#~ nuSOAP: 1.0.1
#~ Printing: 1.1.0
#~ Search: 1.6.5
#~ ThemeManager: 1.1.1
#~ TinyMCE: 2.7.2
#~ Config Information:
#~ php_memory_limit:
#~ process_whole_template: false
#~ output_compression: false
#~ max_upload_size: 2000000
#~ default_upload_permission: 664
#~ 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.2.9-1
#~ md5_function: On (Vrai)
#~ gd_version: 2
#~ tempnam_function: On (Vrai)
#~ magic_quotes_runtime: Off (Faux)
#~ E_STRICT: 0
#~ memory_limit: 128M
#~ max_execution_time: 30
#~ output_buffering: 1
#~ safe_mode: Off (Faux)
#~ file_uploads: On (Vrai)
#~ post_max_size: 8M
#~ upload_max_filesize: 2M
#~ session_save_path: c:/wamp/tmp (0777)
#~ session_use_cookies: On (Vrai)
#~ xml_function: On (Vrai)
#~ Server Information:
#~ Server Api: apache2handler
#~ Server Db Type: MySQL (mysql)
#~ Server Db Version: 5.1.32
#~~~~~ NE PAS SUPPRIMER CE BLOC ~~~~~

J'ai vu quelques sujets pour rendre un site web bilingue (je ne parle pas de la section admin.).

Je crois que la meilleure façon de faire selon vos commentaires est cette façon :
- FR
- - pageFR1
- - pageFR2
- EN
- - pageEN1
- - pageEN2

Je crois aussi que c'est la meilleur façon, par contre, j'ai un problème avec le menu... il affiche seulement FR et EN et si je sélectionne « ne pas afficher dans le menu » plus s'affiche... naturellement.

J'ai cherché à modifier mon gabarit de menu dans la « Gestion de Menu » sans succès. Ce que je veux afficher ces le 2e et 3e niveaux... pageFR1
et pageFR2...
#2
Voici mon code...
===========================================
{if $count > 0}
<ul class="Mart-menu">
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string="<ul>" times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
</li>
{elseif $node->index > 0}</li>
{/if}
{if $node->current == true}
<li><a href="{$node->url}" class="active"><span class="l"></span><span class="r"></span><span class="t"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </span></a>
{elseif $node->parent == true && $node->depth == 1}<li>
<a href="{$node->url}"> <span class="l"></span><span class="r"></span><span class="t"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext}</span> </a>
{elseif $node->type == 'sectionheader'}
<li class="sectionheader">{$node->menutext}
{elseif $node->type == 'separator'}
<li style="list-style-type: none;"> <hr class="separator" />
{else}
<li><a href="{$node->url}" ><span class="l"></span><span class="r"></span><span class="t"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </span></a>
{/if}
{/foreach}
{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}


===========================================
#2
Voici mon code...
===========================================
{if $count > 0}
<ul class="Mart-menu">
{foreach from=$nodelist item=node}
{if $node->depth > $node->prevdepth}
{repeat string="<ul>" times=$node->depth-$node->prevdepth}
{elseif $node->depth < $node->prevdepth}
{repeat string="</li></ul>" times=$node->prevdepth-$node->depth}
</li>
{elseif $node->index > 0}</li>
{/if}
{if $node->current == true}
<li><a href="{$node->url}" class="active"><span class="l"></span><span class="r"></span><span class="t"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </span></a>
{elseif $node->parent == true && $node->depth == 1}<li>
<a href="{$node->url}"> <span class="l"></span><span class="r"></span><span class="t"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext}</span> </a>
{elseif $node->type == 'sectionheader'}
<li class="sectionheader">{$node->menutext}
{elseif $node->type == 'separator'}
<li style="list-style-type: none;"> <hr class="separator" />
{else}
<li><a href="{$node->url}" ><span class="l"></span><span class="r"></span><span class="t"{if $node->target ne ""} target="{$node->target}"{/if}> {$node->menutext} </span></a>
{/if}
{/foreach}
{repeat string="</li></ul>" times=$node->depth-1}</li>
</ul>
{/if}


===========================================
#3
regarde l'aide de menumanager

laisse le gabarit d'origine et insère dans le gabarit de ta page :

Code :
{menu option_qui_fait_démarrer_au_niveau_2="2" option_qui_fait_démarrer_a_l'alias_du_menu_FR='fr'}  <-- si l'alias de ta page FR est bien fr
{menu option_qui_fait_démarrer_au_niveau_2="2" option_qui_fait_démarrer_a_l'alias_du_menu_EN='en'}  <-- si l'alias de ta page EN est bien en

ca te fait dès lors 2 menu qui démarreront du niveau 2 ayant comme parent respectivement le FR et le EN.

pour n'afficher que l'un sur les deux il faut ajouter une condition sur la langue courante. Là je vais passer la main car je suis pas un pro du multilangue mais tu dois pouvoir faire

Code :
{if $lang='FR'}
   {menu option_qui_fait_démarrer_au_niveau_2="2" option_qui_fait_démarrer_a_l'alias_du_menu_FR='fr'}
{else}
   {menu option_qui_fait_démarrer_au_niveau_2="2" option_qui_fait_démarrer_a_l'alias_du_menu_EN='en'}
{/if}

concernant les options du menu, allez tiens je te les donnes, à toi de tester Wink


Citation :(optional) start_level="2" - Cette option permet d'afficher uniquement les éléments à partir d'un niveau donné. Un exemple: vous avez un menu avec number_of_levels='1'. Puis, comme second menu, vous avez start_level='2'. Le second menu affichera les éléments basés sur ce qui est sélectionné dans le premier menu.
Citation :(optional) start_page="home" - Cette option permet d'afficher uniquement les éléments à partir d'une page donnée (start_page), ainsi que les niveaux en-dessous de cet élément. la valeur doit être égale à l'alias de l'élément.
#3
regarde l'aide de menumanager

laisse le gabarit d'origine et insère dans le gabarit de ta page :

Code :
{menu option_qui_fait_démarrer_au_niveau_2="2" option_qui_fait_démarrer_a_l'alias_du_menu_FR='fr'}  <-- si l'alias de ta page FR est bien fr
{menu option_qui_fait_démarrer_au_niveau_2="2" option_qui_fait_démarrer_a_l'alias_du_menu_EN='en'}  <-- si l'alias de ta page EN est bien en

ca te fait dès lors 2 menu qui démarreront du niveau 2 ayant comme parent respectivement le FR et le EN.

pour n'afficher que l'un sur les deux il faut ajouter une condition sur la langue courante. Là je vais passer la main car je suis pas un pro du multilangue mais tu dois pouvoir faire

Code :
{if $lang='FR'}
   {menu option_qui_fait_démarrer_au_niveau_2="2" option_qui_fait_démarrer_a_l'alias_du_menu_FR='fr'}
{else}
   {menu option_qui_fait_démarrer_au_niveau_2="2" option_qui_fait_démarrer_a_l'alias_du_menu_EN='en'}
{/if}

concernant les options du menu, allez tiens je te les donnes, à toi de tester Wink


Citation :(optional) start_level="2" - Cette option permet d'afficher uniquement les éléments à partir d'un niveau donné. Un exemple: vous avez un menu avec number_of_levels='1'. Puis, comme second menu, vous avez start_level='2'. Le second menu affichera les éléments basés sur ce qui est sélectionné dans le premier menu.
Citation :(optional) start_page="home" - Cette option permet d'afficher uniquement les éléments à partir d'une page donnée (start_page), ainsi que les niveaux en-dessous de cet élément. la valeur doit être égale à l'alias de l'élément.
#4
Bonsoir,
Et pour gérer un site multilingue, regarde du côté du module Babel qui devrait te simplifier la tâche Wink
#4
Bonsoir,
Et pour gérer un site multilingue, regarde du côté du module Babel qui devrait te simplifier la tâche Wink
#5
Merci Bess,

J'ai trouvé une autre solution...

Dans le gabarit de ma page utilisée ce menu :

{menu template='Mon_gabarit_de_menu' collapse='2' start_level="2" }


et dans mes pages, j'ai créé comme cela et ça fonctionne très bien

- FR
- - pageFR1
- - pageFR2
- - Lien english (Lien page interne)
- EN
- - pageEN1
- - pageEN2
- - Lien français (Lien page interne)

Donc, mon menu ressemble à ceci...

Dans mon site français :
PageFR1 / PageFR2 / English

Dans mon site anglais :
PageEN1 / PageEN2 / Français

Merci pour ton aide
#5
Merci Bess,

J'ai trouvé une autre solution...

Dans le gabarit de ma page utilisée ce menu :

{menu template='Mon_gabarit_de_menu' collapse='2' start_level="2" }


et dans mes pages, j'ai créé comme cela et ça fonctionne très bien

- FR
- - pageFR1
- - pageFR2
- - Lien english (Lien page interne)
- EN
- - pageEN1
- - pageEN2
- - Lien français (Lien page interne)

Donc, mon menu ressemble à ceci...

Dans mon site français :
PageFR1 / PageFR2 / English

Dans mon site anglais :
PageEN1 / PageEN2 / Français

Merci pour ton aide


Atteindre :


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