Plugin YammYamm (Wordpress)

Nouvelle version : 0.6

Pas mal de bugs corrigés et compatibilité avec les widgets !

Télécharger : Plugin YammYamm 0.6 pour Wordpress

YammYamm (yet another multilingual manager x2).

Créez une catégorie de premier niveau et une page mère pour chaque langue. Dans le panneau d'administration, vous paramétrez les langues. Ensuite utilisez les bonnes fonctions dans votre template et le tour est joué.

Installation :

  1. Dézipper puis uploader le dossier yammyamm dans le dossier "plugins"
  2. Créer une catégorie de premier niveau par langue.
    Exemple : Catégorie "Français" et "Anglais".
  3. Créer une page de premier niveau par langue.
    Exemple : Page "Accueil" et "Welcome".
  4. Aller dans l'espace de gestion de Wordpress, puis "Gérer", puis "YammYamm".
  5. Pour chaque langue, créer une entrée en suivant ce modèle :
  6. Aller dans l’espace de gestion de Wordpress, puis "Options", puis "YammYamm" puis choisissez vos options
  7. Ensuite, il faut dire à votre template d'utiliser YammYamm :

Il y a 2 fichiers à éditer :

  1. sidebar.php :

    Editez votre fichier sidebar.php puis appellez la fonction "yy_menu($args_page,$args_blog);" à la place de "wp_list_cats" et/ou "wp_list_pages" comme suit :

    <ul>

    <?php if(function_exists('yy_menu')) yy_menu('sort_column=menu_order&title_li=','title_li=&hierarchical=1'); ?>

    </ul>

    Explication :

    La fonction affichera le menu (en "ul/li") de navigation en fonction du fait qu'on soit sur une page ou un billet de blog. Le premier niveau de navigation est la catégorie ou la page mère qui contient les billets dans cette langue. Tout se fait automatiquement, donc si vous n'y captez rien, copiez/collez le code ;) Où que vous soyez sur votre site, la langue appropirée s'affichera.

    1. Le premier argument est le même que pour la fonction "wp_list_pages" de Wordpress
    2. Le deuxième argument est le même que pour la fonction "wp_list_cats" de Wordpress

    Update : Pour toujours afficher les catégories de blog, il suffit de ne renseigner que l'argument "$args_blog" et inversemmment pour les pages :

    <ul>

    <?php if(function_exists('yy_menu')) yy_menu('','title_li=&hierarchical=1'); ?>

    </ul>

  2. header.php :
    1. Au tout tout tout tout début, ajoutez :

      <?php if(function_exists('yy_redirect')) yy_redirect(); ?>

      Explication : Cela permet de détecter la langue du navigateur et de rediriger le visiteur sur la home de la langue qu'il utilise.

      Update : Rendez-vous dans les options de yammyamm pour choisir si la home est la page mère ou la catégorie mère.

    2. Là où vous voudrez placer un menu avec les différentes langues, mettez :

      <?php if(function_exists('yy_lang_menu')) yy_lang_menu("lang_menu"); ?>

      Explication : Cela va vous créer un menu en "ul/li" avec des liens vers les pages d'accueil de chaque langue. Le paramètre sert à ajouter une classe spécifique à chaque li en plus des classes habituelles. L'id du li est le code de la langue. Le lien pointe vers la page d'accueil de la langue. Ce qui donne :

      <li id="fr_FR" class="lang_menu current_page_item">

      <a href="http://www.jide.fr/francais/">

      <span>francais</span>

      </a>

      </li>

      (etc...)

Une des nouveautés de cette version est l'apparition d'un sidepanel dans l'administration :

Pour un billet de blog, lorsqu'aucune langue n'est choisie, toutes les catégories s'affichent. Lorsqu'on choisit une langue, seules les sous-catégories de cette langue s'affichent :


Idem pour les pages. Sans la langues toutes les pages s'affichent. Si on choisit une langue, seules les pages enfants de la langue s'affichent :


Roadmap :

  • bug de "ALTER TABLE"
  • automatiser la création des catégories et pages de langues
  • automatiser la création de langues + drapeaux
  • faire un lien "créer la version anglaise de ce billet/page" et modifier les billets dans les autres langues etc
  • lier les articles de différentes langues pour pouvoir faire un lien "voir cet article en anglais" et aller directement à la version anglaise quand on clique sur le drapeau anglais
  • de la même façon, lier les catégories et les pages des différentes langues
  • supprimer la table pour les langues et utiliser les options avec un array ou un objet
  • gérer les flux rss en fonction de la langue
  • rendre compatible avec les widgets

Télécharger : Plugin YammYamm 0.6 pour Wordpress