Plugin Domlang : Domaines par secteur de langue

Domlang est un plugin qui permet d’associer un nom de domaine ou un sous-domaine à un secteur de langue.

Ce plugin convient pour un site qui utilise des secteurs de langues. En configuration, pour chaque secteur, vous pourrez définir une URL spécifique (nom de domaine ou sous domaine) qui correspond à cette langue.

Caractéristique technique Importante

Ce plugin demande d’avoir au minimum php 5.4.0 !

Installation

Le plugin s’installe comme n’importe quel plugin.

Structure de votre site multilingue
Votre site doit contenir des secteurs de langue (plus d’informations sur la création d’un site multilingue par ici)

Gestion de vos domaines
Pour pouvoir utiliser Domlang, vos noms de domaines et/ou sous-domaines doivent pointer vers le même dossier de votre serveur (vérifier la possibilité de gérer le dossier de destination de votre nom de domaine chez votre hébergeur).

Configurer Domlang

-  Configurer les noms de domaines
Dans /ecrire/ ?exec=configurer_domlang
Le formulaire de config liste les secteurs existants, et permet de renseigner le nom de domaine de chaque langue/chaque secteur.

Domlang : configuration des urls par secteur de langue

-  Réécrire les urls en fonction du secteur
Dans /ecrire/ ?exec=configurer_urls
Sélectionner « URLs Arborescente sans secteur de langue » (/arbo/sans/la/racine/article/titre)

Domlang : configurer les urls arborescentes sans secteur de langue

Balises modifiées par le plugin

Certaines balises d’URL sont modifiées afin d’utiliser les domaines configurés :

  • `#URL_SITE_SPIP` retourne l’URL du site pour la langue en cours d’utilisation
  • `#URL_ARTICLE` ou `#URL_RUBRIQUE` retournent une URL relative si l’article ou la rubrique est dans la langue en cours, sinon, ces balises retournent une URL absolue de l’article ou la rubrique avec l’URL correspondant à sa langue.

Discussion

2 discussions

  • 1

    Salut

    Le plugin est nickel ça répond bien à un cas d’usage rencontré.

    Je n’ai pas encore regardé comment faire mais il serait intéressant de permettre la surcharge au niveau du plugin menu. Par exemple si on défini un élément de type arborescence ,le contexte du secteur n’est pas pris en compte.

    • Salut

      J’ai une solution qui me semble bancale. J’ai créé une balise

      #SECTEUR_DOM

      qui prend le contexte de langue ou en argument la langue fournie et retourne l’id_rubrique associée.

      /**
       * Compile la balise `#SECTEUR_DOM` qui retourne le secteur associé à l'URL du site
       *
       * Peut transmettre une langue en premier paramètre
       * `#SECTEUR_LANG{en}`
       *
       * @balise
       *
       * @param Champ $p
       *     Pile au niveau de la balise
       * @return Champ
       *     Pile complétée par le code à générer
       */
      function balise_SECTEUR_DOM_dist($p) {
      	$lang = interprete_argument_balise(1, $p);
      	$p->code = "domlang_get_secteur($lang)";
      	$p->code = "spip_htmlspecialchars(" . $p->code . ")";
      	$p->interdire_scripts = false;
      	return $p;	
      }
       
       
      /**
       * Définit le secteur associé au domaine depuis lequel on arrive.
       *
       * Si on ne trouve pas de langu on conssidére la langue du domaine principal.
       *
       */
      function domlang_get_secteur($lang = null) {
      	if (!$lang) {
      		$lang = $GLOBALS['spip_lang'];
      	}
          $id_rubrique = sql_getfetsel('id_rubrique','spip_rubriques', array('id_parent =0','lang ='.sql_quote($lang)));
          return $id_rubrique;
      }

      Ensuite dans une surcharge du squelette rubriques_completes.html de menu j’ai rajouté le test suivant

      [(#GET{id_rubrique}|=={0}|oui) #SET{id_rubrique,#SECTEUR_DOM}]

      Je suppose qu’on peut rendre plus transparent ce comportement.

    Répondre à ce message

  • 1

    #ClapClapClap :-)

    juste le passage sur les paramétrages d’url sont pas clairs (et les explications sur le formulaire lui même non plus d’ailleurs).
    Faut il impérativement passer en urls arbos ? pourquoi ?

    Merci ;)

    • Bonjour Loiseau2nuit

      Quelles sont les infos qu’il te manque pour le paramétrage ?

      Pour les urls arbos, oui... C’est l’objet-même du plugin.

      Si tu n’as pas besoin d’urls arbo, tu peux gérer ton site multilingue (ou non) avec le plugin multidomaines qui permet d’associer un nom de domaine à un secteur.
      Le hic en multidomaines, c’est que quand tu utilises les urls arbo, tu as un niveau d’arborescence inutile...

      Exemple :
      Ton secteur 1 a pour titre « secteur FR » et est configuré en langue française. Tu lui associes le domaine « mondomaine.fr ».
      Ton secteur 2 a pour titre « secteur EN » et est configuré en langue anglaise. Tu lui associes le domaine « mydomain.com ».
      Avec multidomaines, tes urls ressembleront à :
      mydomain.com/secteur-EN/bla-bla
      Or :
      -  mydomain.com et mydomain.com/secteur-EN/ affichent le même contenu (celui de ton secteur 2)
      -  tu ajoutes un niveau de répertoire virtuel (ici /secteur-EN/) qui n’est pas pertinent

      C’est là que Domlang intervient en supprimant le premier niveau d’arborescence dans l’url.

      Bonne fin de journée !

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom

Dernière modification de cette page le 2 novembre 2018