[TYPO3-UG Quebec] Menu multilingue et script php

Fred hamel at urbansecurity.org
Wed Jul 4 14:36:24 CEST 2007


Merci pour la solution, mais en fait le multilingue fonctionne.

En fait je pense intégrer un menu qui soit à peu près celui de kasper 
mais je ne sais pas wrapper le script php dans le menu.
Je pense qu'un script php peut faire l'affaire, il récupère l'id de la 
page pointée en lien  et le compare avec les entrées disponibles en 
traductions, c'est ce que fait le script de kasper, me semble-t-il.

//récupération des données de pages_language_overlay pour l'id en cours
$result = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 
'pages_language_overlay', 'pid='.intval($GLOBALS['TSFE']->id);
$tab    = array();
while($tab = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
    $rows[] = $row;
}
//s'il ne trouve rien il n'y a pas de traduction
if (count($rows) == 0){
    $rub_menu    = "<div><a 
href=\"index.php?id=\"".intval($GLOBALS['TSFE']->id."></div>";
}else{
//inclusion des drapeaux pour chaque langue
   
}

Grosso-modo (c'est en cours de travail).



Sébastien Rivest a écrit :
> Bonjour Fred, 
>
>  
>
> Je ne sais pas si cela peut te venir en aide... Mais pour les sites multilangues, j'utilise une config dans le champ setup de mon template principale.
>
>  
>
> # configuration de la langue pour le site par défaut
>
> config.sys_language_uid =0
>
> config.language=fr
>
> config.locale_all=fr_FR
>
> page.config.language = fr
>
>  
>
> #configuration de la variable L
>
>  
>
> config.linkVars=L
>
>  
>
> #français
>
> [globalVar = GP:L = 0]
>
> config.sys_language_uid = 0
>
> config.language = fr
>
> config.locale_all = fr_FR
>
> page.config.language = fr
>
>  
>
>  
>
> #doit etre retourner pour que les langues marchent
>
> [GLOBAL]
>
>  
>
> #anglais
>
> [globalVar = GP:L = 1]
>
> config.sys_language_uid = 1
>
> config.language = en
>
> config.locale_all = english
>
> page.config.language = en
>
>  
>
> #doit etre retourner pour que les langues marchent
>
> [GLOBAL]
>
>  
>
>  
>
> Solution #1
>
> Ensuite, le code typoscript qui génère mon menu est standard et s'adapte en fonction des langues.
>
>  
>
> Suggestion pour ton menu (Je n'ai pas du tout testé ça !) :
>
>  
>
> Instancie une variable quand tu configures tes langues dans le template principal...
>
> (Champ constant cette fois-ci)
>
>  
>
> [globalVar = GP:L = 0]
>
> drapeauMenu= class="menu_2_lvl_1"
>
>  
>
> Ensuite dans ton code temp.menu_2 :
>
>  
>
> NO.allWrap = <tr><td {$drapeauMenu}> | </td></tr>
>
>  
>
>  
>
> Solution #2
>
>  
>
> Tu pourrais aussi envisager de charger une autre feuille de style (personnalisée selon la langue). Donc si l'usager navigue sur ton site anglais, il voit la feuille de style en anglais. Pour cela (dans le champ setup) utilise :
>
>  
>
> [globalVar = GP:L = 1]
>
> page.stylesheet = fileadmin/template/monSite/css/styleAnglais.css par exemple.
>
>  
>
>  
>
> Réflexion
>
>  
>
> Je viens de penser que tu veux peut-être que ton menu détecte dans quelle langue est l'item généré du menu... Dans ce cas, je ne saurais t'aider... si tu as utilisé la solution avec une seule hiérarchie mais des versions différentes de tes pages selon les langues, je ne saurais pas comment «capter» l'information car le lien généré par le code du menu mène vers une page qui possède elle-même une version pour chaque langue.
>
>  
>
> J'espère que ça peut te donner des pistes de solution.
>
>  
>
> Bonne chance !
>
>  
>
>  
>
> -----Message d'origine-----
> De : typo3-ug-quebec-bounces at lists.netfielders.de [mailto:typo3-ug-quebec-bounces at lists.netfielders.de] De la part de Fred
> Envoyé : 4 juillet 2007 06:42
> À : typo3-ug-quebec at lists.netfielders.de
> Objet : [TYPO3-UG Quebec] Menu multilingue et script php
>
>  
>
> Bonjour,
>
>  
>
> Voici le descriptif de mon deuxième problème.
>
> J'ai un site en 5 langues, j'utilise le sélecteur de kasper, tout 
>
> fonctionne.
>
> Ce que je souhaite faire, ça serait inclure ce sélecteur (ou un autre) 
>
> directement dans l'item concerné, afin que les drapeaux des éventuelles 
>
> traductions apparaissent à côté de chaque titre.
>
> J'épluche la documentation mais le forum français n'est pas accessible 
>
> ces temps-ci.
>
> Je pense que ça doit être possible via un script php à inclure dans le 
>
> allwrap mais je ne vois pas comment.
>
>  
>
> temp.menu_2 = HMENU
>
> temp.menu_2.entryLevel = 2
>
>   # First level menu-object, textual
>
> temp.menu_2.1 = TMENU
>
> temp.menu_2.1 {
>
>     # Normal state properties
>
>   NO.allWrap = <tr><td class="menu_2_lvl_1"> | </td></tr>
>
> }
>
>   # Second level menu-object, textual
>
> temp.menu_2.2 = TMENU
>
> temp.menu_2.2 {
>
>     # Normal state properties
>
>   NO.linkWrap = <td class="menu_2_lvl_2_no"> | </td>
>
>   NO.allWrap = <tr class="toto">|</tr>
>
>     # Enable active state and set properties:
>
>   ACT = 1
>
>   ACT.allWrap = <tr><td class="menu_2_lvl_2_ac"> | </td></tr>
>
> }  
>
> _______________________________________________
>
> TYPO3-UG-quebec mailing list
>
> TYPO3-UG-quebec at lists.netfielders.de
>
> http://lists.netfielders.de/cgi-bin/mailman/listinfo/typo3-ug-quebec
>
>   


More information about the TYPO3-UG-quebec mailing list