[TYPO3-UG Quebec] Menu multilingue et script php

Fred hamel at urbansecurity.org
Wed Jul 4 17:35:52 CEST 2007


Bon, dans un sens ça progresse, j'arrive à inclure un php dans le menu.
J'ai essayer d'intégrer le sélecteur de kasper mais il répète le même, 
normal puisqu'il tient compte de la variable courante.
J'arrive également à afficher l'uid de l'item avec before.data = 
field:uid mais je ne vois pas bien comment l'utiliser dans un script 
php, d'autant que celui que j'ai créé (avec une simple fonction du genre

function(){
$content = youpi
}

m'affiche un message d'erreur me disant que cette fonction est déjà 
déclarée.
Je rame, mais si quelqu'un a une idée... en attendant j'espère que ça 
aidera d'autres personnes.

Fred a écrit :
> 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