•  » Plugins
  •  » Pb Language Switch et PWG Stuffs depuis màj 2.3.2 (correction perso)

#1 2012-01-29 13:20:47

NinoLuigi
Membre
2012-01-29
1

Pb Language Switch et PWG Stuffs depuis màj 2.3.2 (correction perso)

Bonjour à tous,

je viens faire un petit retour sur les dernières mises à jour de Piwigo (2.3.2) et des deux plugins "Language Switch" (2.3.0) et "PWG Stuffs" (2.3.g).
J'ai fait ces mises à jour en décembre après la sortie de la version 2.3.2 de Piwigo.

Et depuis, lorsque je changeais de langue, les blocs PWG Stuffs disparaissaient !
Je n'avais ce problème qu'en page d'accueil, car ces blocs ne sont pas visibles lorsqu'on navigue dans les galeries photo.

Mon site (de photos de famille) commence par une page perso où on choisit la langue d'accès à la galerie Piwigo.
Les liens sont de la forme http://xxxx.fr/gallerie/index.php?/&lang=<code langue> (fr_FR, it_IT, etc)

A part ça, j'ai très peu customisé mon installation de Piwigo. Elle est tout à fait standard avec le thème Sylvia.
En page d'accueil de la galerie, j'affiche les blocs PWG Stuffs suivants : Edito / Images au hasard / Accueil / Derniers commentaires. Le bloc Language Switch est dans le bloc Accueil.
Et, en changeant la langue, les blocs PWG Stuffs n'étaient plus affichés (ne restait que le bloc Accueil).

Finalement, j'ai cherché pour corriger ce point.
J'ai étudié l'existant et j'ai modifié le script gallerie\plugins\language_switch\language_switch.inc.php.

Il construit l'URL en ajoutant le code langue, et j'ai remarqué que les URL résultantes n'étaient pas sous la même forme que celle que j'ai utilisée sur ma page perso de lancement.

Voici le code que j'ai remplacé en ligne 106 :

      $qlc = array (
        'url' => add_url_params(duplicate_index_url(), array('lang'=> $code)),
        'alt' => ucwords($displayname),
        'title' => substr($displayname, 0, -4), // remove [FR] or [RU]
        'img' => get_root_url().'language/'.$code.'/'.$code.'.jpg',
        );

par le code ci-dessous :

      // mes modifs
      $url_accueil_sans_langue = get_root_url().'index';
      if ($conf['php_extension_in_urls'])
      {
        $url_accueil_sans_langue .= '.php';
      }
      if ($conf['question_mark_in_urls'])
      {
        $url_accueil_sans_langue .= '?';
      }
      $url_accueil_sans_langue .= '/';
     
      $url_sans_langue = add_url_params(duplicate_index_url(), null);

      $url_finale = add_url_params(duplicate_index_url(), array('lang'=> $code));
      if ( $url_sans_langue == $url_accueil_sans_langue.'categories' )
      { // on est en page d'accueil
          $url_finale = add_url_params($url_accueil_sans_langue, array('lang'=> $code));;
      } // sinon url_sans_langue reste inchangee
      // mes modifs   

      $qlc = array (
        //'url' => add_url_params(duplicate_index_url(), array('lang'=> $code)),
        'url' => $url_finale,
        'alt' => ucwords($displayname),
        'title' => substr($displayname, 0, -4), // remove [FR] or [RU]
        'img' => get_root_url().'language/'.$code.'/'.$code.'.jpg',
        );

La complexité était juste de s'assurer qu'on est bien en page d'accueil pour ne pas changer l'URL résultat  dans les autres cas. Il y a peut-être une variable globale pour indiquer qu'on est en page d'accueil, mais je ne l'ai pas trouvée.

Depuis, ma galerie retrouve son fonctionnement d'avant la mise à jour, et le contexte utilisateur n'est pas perdu lors du changement de langue.

Il serait intéressant de corriger ce point dans la prochaine version de Language Switch. Sinon, il faudra juste penser à appliquer la correction à chaque mise à jour du plugin....

Stéphane.
http://stephane.menozzi.free.fr

Hors ligne

  •  » Plugins
  •  » Pb Language Switch et PWG Stuffs depuis màj 2.3.2 (correction perso)

Pied de page des forums

Propulsé par FluxBB