SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

289 Plugins, 197 contribs sur SPIP-Zone, 79 visiteurs en ce moment

Accueil > Multilinguisme > Domaines par langue > Plugin Domlang : Domaines par secteur de langue

Plugin Domlang : Domaines par secteur de langue

4 septembre 2017 – par Matthieu Marcillaud, Sandrine – commentaires

9 votes

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.

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.

Dernière modification de cette page le 4 septembre 2017

Retour en haut de la page

Vos commentaires

  • Le 21 novembre 2017 à 14:16, par cam.lafit En réponse à : Plugin Domlang : Domaines par secteur de langue

    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.

    • Le 21 novembre 2017 à 15:02, par cam.lafit En réponse à : Plugin Domlang : Domaines par secteur de langue

      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.

      1. /**
      2.  * Compile la balise `#SECTEUR_DOM` qui retourne le secteur associé à l'URL du site
      3.  *
      4.  * Peut transmettre une langue en premier paramètre
      5.  * `#SECTEUR_LANG{en}`
      6.  *
      7.  * @balise
      8.  *
      9.  * @param Champ $p
      10.  *     Pile au niveau de la balise
      11.  * @return Champ
      12.  *     Pile complétée par le code à générer
      13.  */
      14. function balise_SECTEUR_DOM_dist($p) {
      15.         $lang = interprete_argument_balise(1, $p);
      16.         $p->code = "domlang_get_secteur($lang)";
      17.         $p->code = "spip_htmlspecialchars(" . $p->code . ")";
      18.         $p->interdire_scripts = false;
      19.         return $p;     
      20. }
      21.  
      22.  
      23. /**
      24.  * Définit le secteur associé au domaine depuis lequel on arrive.
      25.  *
      26.  * Si on ne trouve pas de langu on conssidére la langue du domaine principal.
      27.  *
      28.  */
      29. function domlang_get_secteur($lang = null) {
      30.         if (!$lang) {
      31.                 $lang = $GLOBALS['spip_lang'];
      32.         }
      33.     $id_rubrique = sql_getfetsel('id_rubrique','spip_rubriques', array('id_parent =0','lang ='.sql_quote($lang)));
      34.     return $id_rubrique;
      35. }

      Télécharger

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

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

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

    Répondre à ce message

  • Le 17 septembre 2017 à 23:02, par Loiseau2nuit En réponse à : Plugin Domlang : Domaines par secteur de langue

    #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 ;)

    • Le 22 septembre 2017 à 17:26, par Sandrine En réponse à : Plugin Domlang : Domaines par secteur de langue

      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

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • Mots arborescents

    12 octobre 2015 – 15 commentaires

    Ce plugin permet de gérer une arborescence de mots-clés. La configuration d’un groupe de mots dispose d’une nouvelle option pour autoriser pour ce groupe les arborescences de mots-clés. Dans ces groupes, des mots enfants peuvent être créés pour (...)

  • ORR v2

    21 mai 2013 – 111 commentaires

    ORR, le plugin d’Organisation des Réservations et des Ressources passe en version 2, avec quelques nouveautés attendues. Je ne reprendrai pas les explications données dans la version 1. Les nouveautés : 1. Gestion des autorisations Le principe (...)

  • Social tags

    8 septembre 2008 – 448 commentaires

    Le plugin Social Tags permet d’ajouter des icônes de partage de liens vers les sites tels que Digg, Facebook, Delicious.... Une fois le plugin installé et activé (voir doc.), le choix des sites se fait via un menu de configuration. Insertion (...)

  • Mailshot

    16 janvier 2013 – 309 commentaires

    Ce plugin prend en charge l’envoi en nombre d’info-lettres par email. Mailshot permet l’envoi en nombre d’emails au moyen d’un SMTP (ou d’un service externe) dédié à cet effet. Il permet de limiter la cadence d’envoi. Enfin, ce plugin implémente la (...)

  • Visualiser un PDF dans un article

    13 juin – commentaires

    SoyezCréateurs utilise un modèle pour afficher un PDF dans le corps d’un article Un peu d’histoire Avant, les navigateurs n’incluaient pas de lecteur PDF nativement ce qui avait conduit à la création du plugin Lecteur pdf javascript pdf.js. Mais, (...)