Joomladay francophone 2018 à Paris 18 et 19 mai

template en fonction de la langue

Réduire
X
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • template en fonction de la langue

    Bonjour,

    Je souhaite changer de template en fonction de la langue. J'ai utilisé le code que l'on trouve sur le forum.

    <?php
    global $mosConfig_lang;
    if ($mosConfig_lang=="french") include_once("index.php");
    else if ($mosConfig_lang=="english") include_once ("index-english.php");
    ?>

    Il marche. Le hic, c'est que lorsque je vais sur la version anglaise de mon site. Il me duplique la page. il me met la page avec le template anglais et le texte anglais et encore en dessous le template français avec le texte anglais.

    Est ce que quelqu'un saurait éviter la duplication ?
    Dernière édition par funkycoco à 13/10/2008, 15h14

  • #2
    j'ai trouvé la solution

    Finalement, j'ai changé mon fusil d'épaule.
    Mon but était de changer de header en fonction de la langue.
    Voilà le code que j'utilise et il marche bien !

    <div id="topmodul"><? if ($_GET['lang']==en) { ?>
    <img src="../xxx/templates/xxx/images/banner_accueil_en.jpg" width="900" height="120" />
    <? } else { ?>
    <img src="../xxx/templates/xxx/images/banner_accueil.jpg" width="900" height="120" />
    <? } ?>
    </div>

    Commentaire


    • #3
      y a quoi dans index-english.php ??
      Je vois pas bien comment ...
      l'information du template a utilisé est dans la BDD table jos_templates_menu
      De plus il me semble que la commande est pour joomla 1 (mos...) !!

      Je veraais plus un hack de include/application.php ligne 307
      if not french then
      $template = "mon template";
      endif

      De cette façon on redéfinis la valeur $template en un autre uniquement si ce n'est pas FR

      ou dans l'index.php avant body
      Je cherche encore où ce trouve le paramètre langue
      Règlement du forum : http://forum.joomla.fr/faq.php
      Comment mettre le post en [Réglé]: http://forum.joomla.fr/announcement.php?f=58
      Joomla! 3 Le Livre Pour Tous , n'hésitez pas à le lire pour vous aider
      http://www.iwannaclick.org

      Commentaire


      • #4
        Envoyé par funkycoco Voir le message
        Finalement, j'ai changé mon fusil d'épaule.
        Mon but était de changer de header en fonction de la langue.
        Voilà le code que j'utilise et il marche bien !

        <div id="topmodul"><? if ($_GET['lang']==en) { ?>
        <img src="../xxx/templates/xxx/images/banner_accueil_en.jpg" width="900" height="120" />
        <? } else { ?>
        <img src="../xxx/templates/xxx/images/banner_accueil.jpg" width="900" height="120" />
        <? } ?>
        </div>
        A oui plus simple
        Règlement du forum : http://forum.joomla.fr/faq.php
        Comment mettre le post en [Réglé]: http://forum.joomla.fr/announcement.php?f=58
        Joomla! 3 Le Livre Pour Tous , n'hésitez pas à le lire pour vous aider
        http://www.iwannaclick.org

        Commentaire


        • #5
          finalement c'est pas réglé

          Il va faloir que je revienne à ma première solution, et donc il va falloir que j'arrête la duplication.
          Pourquoi me direz-vous, parce qu'avec la solution précédente, il ne change que la page d'accueil et pas les autres pages...

          Donc non je n'ai rien mis de particulier dans index-english.php

          Effectivement, les solutions que j'utilise sont pour joomla 1.0, mais elles me sont plus accessibles. J'avoue je m'enmêle pas mal avec les codes pour 1.5. (en gros, je ne suis pas une as de la programmation)
          Si quelqu'un veut bien m'expliquer?!

          Commentaire


          • #6
            Attention tu as posté dan le forum 1.5
            Pour J1, si ce n'est que le header qui change, je mettrais dans le header
            Code PHP:
            <?php $lang $_GET['lang'];
            switch (
            $lang) {
            case 
            'en':$img="logo_english.gif";
            break;
            case 
            'fr':$img="logo_french.gif";
            break;
            default:
            $img="logo_french.gif";
            break;
            ?>
            et dans le code pour insérer l'image
            Code PHP:
            <img src="<?php echo $mosConfig_live_site;?>/templates/<?php echo $mainframe->getTemplate(); ?>/images/<?php echo $img ?>
            Règlement du forum : http://forum.joomla.fr/faq.php
            Comment mettre le post en [Réglé]: http://forum.joomla.fr/announcement.php?f=58
            Joomla! 3 Le Livre Pour Tous , n'hésitez pas à le lire pour vous aider
            http://www.iwannaclick.org

            Commentaire


            • #7
              autre solution
              dans le header
              Code PHP:
              if (file_exists($mosConfig_absolute_path.'/templates/'.$mainframe->getTemplate().'/images/logo_'.$mosConfig_lang.'.gif')) {
                  
              $img($mosConfig_absolute_path.'/templates/'.$mainframe->getTemplate().'/images/logo_'.$mosConfig_lang.'.gif');
              } else {
                  
              $img($mosConfig_absolute_path.'/templates/'.$mainframe->getTemplate().'/images/logo_french.gif');

              et pour l'image
              Code PHP:
              <img src="<?php echo $img ?>
              Pour les 2 solutions il faut placer les image dans le répertoire images de ton template. et ce nomme logo_english.gif, logo_french.gif, ...
              Règlement du forum : http://forum.joomla.fr/faq.php
              Comment mettre le post en [Réglé]: http://forum.joomla.fr/announcement.php?f=58
              Joomla! 3 Le Livre Pour Tous , n'hésitez pas à le lire pour vous aider
              http://www.iwannaclick.org

              Commentaire


              • #8
                Avant d'aller plus loin:
                1. le site est-il en Joomla 1.0.x ou 1.5
                2. utilisez-vous joomfish?
                Jean-Marie Simonet / infograf768
                Joomla co-fondateur. Joomla Production Working Group.
                Sauf demande explicite de ma part, merci de ne pas utiliser de Message Privé pour poser des questions. Le forum est là pour ça.

                Commentaire


                • #9
                  Il semble qu'il est en 1.5, mais je pense, par déduction, qu'il a le legacy activé
                  Règlement du forum : http://forum.joomla.fr/faq.php
                  Comment mettre le post en [Réglé]: http://forum.joomla.fr/announcement.php?f=58
                  Joomla! 3 Le Livre Pour Tous , n'hésitez pas à le lire pour vous aider
                  http://www.iwannaclick.org

                  Commentaire


                  • #10
                    plus d'info

                    Bonjour,

                    merci pour tes réponses sharky je vais tester tout ça aujourd'hui.

                    j'utilise joomla 1.5 et joomfish 2.0. effectivement le mode legacy est activé.
                    (Je sais que les nouvelles templates sont codés différement, mais je m'en sortais mieux avec celle 1.0. )

                    Commentaire


                    • #11
                      Si 1.5 et Joomfish 2, voir:
                      http://www.joomfish.net/en/documenta...-joomfish-only
                      Jean-Marie Simonet / infograf768
                      Joomla co-fondateur. Joomla Production Working Group.
                      Sauf demande explicite de ma part, merci de ne pas utiliser de Message Privé pour poser des questions. Le forum est là pour ça.

                      Commentaire


                      • #12
                        Question: $this->language c'est une variable Joomla ou Joomfish ?
                        Et le contenu est de-de, fr-fr, ... la case pas importante ?
                        Règlement du forum : http://forum.joomla.fr/faq.php
                        Comment mettre le post en [Réglé]: http://forum.joomla.fr/announcement.php?f=58
                        Joomla! 3 Le Livre Pour Tous , n'hésitez pas à le lire pour vous aider
                        http://www.iwannaclick.org

                        Commentaire


                        • #13
                          $this->language -> Joomla

                          Le préfixe de langue sera obtenu en bas de casse. Garder le bas de casse.
                          Voir Milkyway :
                          <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" >
                          Jean-Marie Simonet / infograf768
                          Joomla co-fondateur. Joomla Production Working Group.
                          Sauf demande explicite de ma part, merci de ne pas utiliser de Message Privé pour poser des questions. Le forum est là pour ça.

                          Commentaire


                          • #14
                            Merci infograf768

                            Donc mon adaptation pour Joomla 1.5

                            Solution 1
                            Code PHP:
                            <?php $lang $this->language;
                            switch (
                            $lang) {
                            case 
                            'en-en':$img="logo_en-en.gif";
                            break;
                            case 
                            'fr-fr':$img="logo_fr-fr.gif";
                            break;
                            default:
                            $img="logo_fr-fr.gif";
                            break;
                            ?>
                            Code PHP:
                            <img src="<?php echo $tmpTools->templateurl(); ?>/images/<?php echo $img?>

                            Solution 2
                            Code PHP:
                            <?php $lang $this->language;
                            if (
                            file_exists($tmpTools->templateurl().'/images/logo_'.$lang.'.gif')) {
                                
                            $img($tmpTools->templateurl().'/images/logo_'.$lang.'.gif');
                            } else {
                                
                            $img($tmpTools->templateurl().'/images/logo_fr-fr.gif');
                            ?>
                            Code PHP:
                            <img src="<?php echo $img ?>
                            Règlement du forum : http://forum.joomla.fr/faq.php
                            Comment mettre le post en [Réglé]: http://forum.joomla.fr/announcement.php?f=58
                            Joomla! 3 Le Livre Pour Tous , n'hésitez pas à le lire pour vous aider
                            http://www.iwannaclick.org

                            Commentaire


                            • #15
                              bouuuu

                              Bon, j'ai testé les codes de sharky et j'ai des erreurs !!
                              Des messages du genre
                              Code:
                              Notice: Undefined variable: tmpTools in C:\Program Files\EasyPHP 2.0b1\www\sts_test\templates\siteground\index.php on line 18
                              
                              Fatal error: Call to a member function templateurl() on a non-object in C:\Program Files\EasyPHP 2.0b1\www\sts_test\templates\siteground\index.php on line 18
                              mais je crois qu'il me manque des bouts de code. Je crois que j'ai une piste grâce au lien d'infograph.

                              Commentaire

                              Annonce

                              Réduire
                              1 sur 2 < >

                              C'est [Réglé] et on n'en parle plus ?

                              A quoi ça sert ?
                              La mention [Réglé] permet aux visiteurs d'identifier rapidement les messages qui ont trouvé une solution.

                              Merci donc d'utiliser cette fonctionnalité afin de faciliter la navigation et la recherche d'informations de tous sur le forum.

                              Si vous deviez oublier de porter cette mention, nous nous permettrons de le faire à votre place... mais seulement une fois
                              Comment ajouter la mention [Réglé] à votre discussion ?
                              1 - Aller sur votre discussion et éditer votre premier message :


                              2 - Cliquer sur la liste déroulante Préfixe.

                              3 - Choisir le préfixe [Réglé].


                              4 - Et voilà… votre discussion est désormais identifiée comme réglée.

                              2 sur 2 < >

                              Assistance au forum - Outil de publication d'infos de votre site

                              Compatibilité: PHP 4.1,PHP4, 5, 6DEV MySQL 3.2 - 5.5 MySQLi from 4.1 ( @ >=PHP 4.4.9)

                              Support Version de Joomla! : | J!3.0 | J!2.5.xx | J!1.7.xx | J!1.6.xx | J1.5.xx | J!1.0.xx |

                              Version française (FR) D'autres versions sont disponibles depuis la version originale de FPA

                              UTILISER À VOS PROPRES RISQUES :
                              L'exactitude et l'exhaustivité de ce script ainsi que la documentation ne sont pas garanties et aucune responsabilité ne sera acceptée pour tout dommage, questions ou confusion provoquée par l'utilisation de ce script.

                              Problèmes connus :
                              FPA n'est actuellement pas compatible avec des sites Joomla qui ont eu leur fichier configuration.php déplacé en dehors du répertoire public_html.

                              Installation :

                              1. Téléchargez l'archive souhaitée : http://afuj.github.io/FPA/

                              Archive zip : https://github.com/AFUJ/FPA/zipball/master

                              2. Décompressez le fichier de package téléchargé sur votre propre ordinateur (à l'aide de WinZip ou d'un outil de décompression natif).

                              3. Lisez le fichier LISEZMOI inclus pour toutes les notes de versions spécifiques.

                              4. LIRE le fichier de documentation inclus pour obtenir des instructions d'utilisation détaillées.

                              5. Téléchargez le script fpa-fr.php à la racine de votre site Joomla!. C'est l'endroit que vous avez installé Joomla et ce n'est pas la racine principale de votre serveur. Voir les exemples ci-dessous.

                              6. Exécutez le script via votre navigateur en tapant: http:// www. votresite .com/ fpa-fr.php
                              et remplacer www. votresite .com par votre nom de domaine


                              Exemples:
                              Joomla! est installé dans votre répertoire web et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/
                              Pour executer le script: http://www..com/fpa-fr.php

                              Joomla! est installé dans un sous-répertoire nommé "cms" et vous avez installé la version française du fichier FPA:
                              Télécharger le script fpa-fr.php dans: /public_html/cms/
                              Pour executer le script: http://www..com/cms/fpa-fr.php

                              En raison de la nature très sensible de l'information affichée par le script FPA, il doit être retiré immédiatement du serveur après son utilisation.

                              Pour supprimer le script de votre site, utilisez le lien de script de suppression fourni en haut de la page du script. Si le lien de suppression échoue pour supprimer le script, utilisez votre programme FTP pour le supprimer manuellement ou changer le nom une fois que le script a généré les données du site et le message publié sur le forum. Si le script est toujours présent sur le site, il peut être utilisé pour recueillir suffisamment d'informations pour pirater votre site. Le retrait du script empêche des étrangers de l'utiliser pour jeter un oeil à la façon dont votre site est structuré et de détecter les défauts qui peuvent être utilisé à vos dépends.
                              Voir plus
                              Voir moins
                              Travaille ...
                              X