Plugin Multidomaines

Le plug-in Multidomaines permet d’associer un nom de domaine ou un sous-domaine a un secteur Spip. Les balises rajoutées permettent de pointer un lien absolu aussi facilement qu’avec les balises originales.

ATTENTION ! Le plugin n’est pas compatible avec la version de Spip 2.0, il nécessite la ressaisie complète des informations.

Pourquoi multidomaines ?

Multidomaines est un plug-in de mutualisation des données entre plusieurs domaines. Il offre la possibilité de faire plusieurs sites avec les mêmes données et/ou un site internet sur plusieurs domaines différents.

Comment installer Multidomaines ?

Pour pouvoir utiliser Multidomaines, vous devez pouvoir faire pointer plusieurs noms de domaines et/ou sous domaines vers le même dossier. Ceci n’est possible que chez quelques hébergeurs mutualisés. Les hébergements dédiés ne devraient pas avoir de problèmes pour configurer la destination des domaines. Référez-vous à l’assistance de votre hébergeur.

Après avoir installé et activé le plug-in, vous devez simplement configurer les chemins dans la configuration du plug-in. Celle-ci se trouve dans le menu configuration.

Configuration du plugin
La page de configuration vous permets de renseigner : l’url et l’adresse des squelettes de chaque sites.

Cela donnera une architecture de dossier comme ceci.

L’URL par défaut

Cette URL sera l’URL utilisée par défaut si le secteur n’a pas de domaine. Elle sera aussi utilisée pour les URL qui ne dépendent pas d’un secteur. (auteur, mot, page).

Dossier squelettes

Il permet de savoir où sont stockés les squelettes. Multidomaines permet de différencier les dossiers des squelettes selon le domaine.

par exemple : pour le domaine www.exemple.org accédé en SSL :

Sans indication spécifique, multidomaines rajoutera dans la liste des chemins des squelettes :
-  squelettes/www.exemple.org.443/
-  squelettes/www.exemple.443/
-  squelettes/exemple.org.443/
-  squelettes/exemple.443/
-  squelettes/www.exemple.org/
-  squelettes/www.exemple/
-  squelettes/exemple.org/
-  squelettes/exemple/

ainsi vous pouvez séparer des squelettes par nom de domaines et ports de protocole. pour rappel :
-  port HTTP standard : 80
-  port HTTP sécurisé par SSL : 443 (https)

Vous pouvez aussi déclarer les squelettes spécifiquement via la formulaire et désactiver le comportement par défaut.

La balise #ID_SECTEUR_COURANT

La balise renvoie l’id du secteur courant si l’URL est associée à au moins un secteur.

!!! Attention : Si au moins deux secteurs ont le même nom de domaine, le résultat de la balise #ID_SECTEUR_COURANT renverra l’id d’un des secteurs de façon arbitraire !!!

La balise #URL_SECTEUR

La balise renvoie l’URL du secteur en cours. Si le secteur n’a pas d’URL, elle renvoie l’URL du site entré dans les options du plug-in.

utilisation :

#URL_SECTEUR
récupère l'URL du secteur de la rubrique du contexte
 
#URL_SECTEUR{#ID_RUBRIQUE}
identique au précèdent
 
#URL_SECTEUR{50}
récupère l'URL du secteur  de la rubrique 50
 
#URL_SECTEUR{#ID_SECTEUR_COURANT}
récupère l'URL de la rubrique correspondant au domaine courant

Les balises #URL_*_ABSOLU

Les balises fonctionnent comme les balises d’URL de Spip. Elle renvoie l’URL absolue associée à la page demandée.

Il en existe 7 :

#URL_PAGE_ABSOLU{page}
#URL_PAGE_ABSOLU{page,paramètres}
 
#URL_ARTICLE_ABSOLU
#URL_ARTICLE_ABSOLU{id_article}
 
#URL_RUBRIQUE_ABSOLU
#URL_RUBRIQUE_ABSOLU{id_rubrique}
 
#URL_AUTEUR_ABSOLU
#URL_AUTEUR_ABSOLU{id_auteur}
 
#URL_MOT_ABSOLU
#URL_MOT_ABSOLU{id_mot}
 
#URL_BREVE_ABSOLU
#URL_BREVE_ABSOLU{id_breve}
 
#URL_FORUM_ABSOLU
#URL_FORUM_ABSOLU{id_forum}
 
#URL_DOCUMENT_ABSOLU
#URL_DOCUMENT_ABSOLU{id_forum}

#URL_PAGE_ABSOLU exclu, les balises #URL_*_ABSOLU peuvent être utilisées de la même manière que les balises #URL_*.

#URL_MOT_ABSOLU
récupère id_mot dans le contexte
 
#URL_AUTEUR_ABSOLU{1}
récupère l'id_auteur grâce à l'argument 1
 
#URL_ARTICLE_ABSOLU{#ID_ARTICLE}
récupère l'id_article grâce à la balise dynamique placée en argument.

La balise #NOM_SITE_MULTIDOMAINE

Cette balise renvoie le titre du secteur en cours dans le cas d’un domaine spécifique, ou bien le nom du site sinon.
On peut préciser l’id_rubrique en paramètre : #NOM_SITE_MULTIDOMAINE{id_rubrique}, sinon elle est calculée depuis le contexte.
A utiliser dans le head par exemple, dans la balise <title>, à la place de #NOM_SITE_SPIP.

Multidomaines polyglotte

Actuellement, Multidomaines ne gère pas de domaine par langue.

Voici un début de solution pour pouvoir l’utiliser Multidomaines pour faire du multilinguisme par domaine.

Solution 1 : Les secteurs dédiés

Vous pouvez imposer une langue et un domaine à un secteur. Lier les articles de langue différente, Multidomaines gérera automatiquement le lien entre les domaines grâce à la balise #URL_ARTICLE_ABSOLU.

Solution 2 : Les squelettes contrôleurs

La seconde façon d’imposer la langue serait d’utiliser des squelettes qui contrôleront la langue.

par exemple :

Il existe plusieurs domaines pour le site exemple. exemple.com exemple.es et exemple.fr.

Pour imposer la langue, vous pouvez tirer avantage de la liste des chemins des squelettes. Par exemple :

dans squelettes/md/article.html. {ne laissez pas les squelettes à la racine}
<BOUCLE_article(ARTICLES){id_article}{lang}{0,1}>...</BOUCLE_article>
dans squelettes/exemple.com/article.html
<INCLURE{fond=md/article.html}{id_article}{lang}>
dans squelettes/exemple.es/article.html
<INCLURE{fond=md/article.html}{id_article}{lang=es}>
dans squelettes/exemple.fr/article.html
<INCLURE{fond=md/article.html}{id_article}{lang=fr}>

Attention! Dans ce cas précis, l’utilisation des balises absolue ne sera pas utile. Vous devez utiliser les balises d’URL standard de SPIP en les préfixant de l’URL du site.

  1. http://www.exemple.fr/#URL_ARTICLE{5}

FAQ

Pourquoi n’avoir pas surchargé les balises d’URL de Spip ?
-  Les balises d’URL de SPIP sont des URL relatives. Les balises de Multidomaines sont des URL absolues. Si Multidomaines surchargeait les balises d’URL, le filtre url_absolu pourrait renvoyer des URL invalides à l’instar des squelettes où sont écrit en dur par exemple : #URL_SITE_SPIP/#ID_RUBRIQUE{1}.

Comment vérifier que le secteur est le bon ?
-  Dans l’absolu, vous voudriez surement pouvoir réagir si le domaine n’est pas celui attribué au secteur. Pour ça, il existe plusieurs petites solutions.

Dans un environnement d'exécution où il existe un id_rubrique dans le contexte.
[(#URL_SECTEUR|=={#URL_SECTEUR{#ID_SECTEUR_COURANT}}|non)
#HTTP_HEADER{Status: 301 Moved Permanently}
#HTTP_HEADER{Location:#URL_SECTEUR#SELF}
]
Attention, var_mode n'est pas transmis !

Avec un squelette basé sur Zcore, on pourrait mettre en place un squelette article.html avec ce contenu :

<BOUCLE_principale_article(ARTICLES){id_article}>
  [(#URL_SECTEUR|=={#URL_SECTEUR{#ID_SECTEUR_COURANT}}|non)
  #HTTP_HEADER{Status: 301 Moved Permanently}
  #HTTP_HEADER{Location:#URL_SECTEUR#SELF}
  ]
  [(#URL_SECTEUR|=={#URL_SECTEUR{#ID_SECTEUR_COURANT}}|oui)
  <INCLURE{fond=structure}{env}{id_rubrique=#ENV{id_rubrique,#ID_RUBRIQUE}}{id_secteur=#ID_SECTEUR}{type=article}{composition=#COMPOSITION} />
  ]
</BOUCLE_principale_article>

Évolutions


-  V2.2.0 : Pour afficher les rubriques de second rands, utiliser le fichier mes_options.php avec : define('_MULTIDOMAINE_RUBRIQUE', '1');
-  V2.3.0 : Rajout de l’utilisation du pipelines pres_liens qui va modifier les urls [->rub333] et [->art2019] avec le bon domaine du secteur. Vous pouvez via le define define('_SECTEUR_URL', '1'); garder les urls courte pour les secteurs et non avoir l’url complète.

Feuille de route


-  Faciliter le domaine par langue.
-  Créer la balise #CHEMIN_ABSOLU
-  Créer le filtre |vrai_url_absolue
-  gérer l’emplacement des répertoires vignettes, images, cache, upload, et autre, ainsi que leurs domaines associés

Fichier exemple

Le plugin intègre un site exemple, vous pouvez repartir de cela, ce dossier sera amélioré par la suite bien sûr.

Téléchargements

Pour télécharger le plug-in, merci de cliquer sur l’icône en haut de l’article

Compatibilité


Squelettes Z
Correction des liens internes

Incompatibilité


Plugin mutualisation

Discussion

25 discussions

  • 4

    Je ne comprend pas bien comment utiliser ce plugin.
    Un des secteurs du site est réservé aux adhérents de l’association et je souhaite en faire un sous domaine.
    J’ai donc créé un nom de sous domaine chez l’hébergeur et celui-ci (DRI) a généré automatiquement un dossier “/www/sousdomaine.domaine.org” en me demandant d’y charger mes pages.
    Dans ce cas, on duplique le site, non ?
    Merci de m’éclairer car je voudrais bien utiliser le plugin.

    • Bonjour,

      Justement, il faut que les 2 domaines ou sous-domaines pointent sur le même dossier pour commencer.

      Ensuite cela se passe dans la configuration du plugins.

    • Bonsoir,
      Merci pour la réponse rapide.
      Mais l’hébergeur crée un sous-dossier pour chaque sous-domaine et je n’ai pas la main là-dessus.
      Dommage parce que le plugin me paraissait très intéressant.
      Merci encore.

    • Bonsoir,

      Quel hébergeur ?
      Quand tu créé le sous domaine il te laisse pas choisir le répertoire du site ? Rien pour ça ?

    • L’hébergeur est DRI.
      Non, il n’y a pas le choix, chaque sous-domaine a son sous-dossier.

    Reply to this message

  • 1

    Bonjour j’aimerai justement faire un site multidomaine polyglotte, ej suis donc très heureux de trouver ce plugin; et la solution 1 me semble celle qui me conviens; mais j’aimerai savoir si je peux trouver quelquepart plus de précision sur Les secteurs dédiés.

    Il est dit:
    “Vous pouvez imposer une langue et un domaine à un secteur. Lier les articles de langue différente, Multidomaines gérera automatiquement le lien entre les domaines grâce à la balise #URL_ARTICLE_ABSOLU.”

    -  J’aimerai savoir comment l’on peux imposer une langue à un secteur ? Est ce via le plugin ou via les options multilingue de SPIP.
    - Comment imposer la langue à un domaine, via le plugin j’imagine, mais je ne vois pas trop concrètement comment faire ?
    -  Et au niveau du lien entre les articles; est ce que vous entendez par lien, le lien de traduction SPIP? Et si oui Quid du #MENU_LANG, va t’il fonctionner ? je ne comprend pas bien ou je dois utiliser la balise #URL_ARTICLE_ABSOLU.

    Cordialement.

    • Bonjour,

      En fait la langue se place sur la rubrique racine.
      Vous allez avoir une rubrique racine = un domaine

      Ensuite il faut voir comment vous souhaitez faire et voir comment se comporte le plugins, je ne fais pas de site multilingue en multidomaine.

    Reply to this message

  • 7

    Bonjour,
    J’ai réalisé un site multilingue (FR et EN) par secteur.

    J’ai un nom de domaine nomdomainefrancais.fr pour le site en FR et nomdomaineangalais.com pour le site en EN. Jusque là tout fonctionne nickel. Là où cela m’embête c’est que si un visiteur tape cette URL nomdomainefrancais.fr/en il a accès au contenu en anglais et inversement si il tape nomdomaineangalais.com/fr il a accès au contenu en français.

    Pour ma part je souhaiterais que le contenu français ne soit accessible que par nomdomainefrancais.fr et que le contenu anglais que par nomdomaineangalais.com.

    Ce plugin permet il de faire en sorte que toutes les urls contenant nomdomainefrancais.fr/en/xxxx soient envoyées vers nomdomaineangalais.com/en/xxxx et que les urls contenant nomdomaineangalais.com/fr/xxxx soient envoyées vers nomdomainefrancais.fr/fr/xxxx

    Reply to this message

  • 2

    Bonjour,

    je teste les balises du plugin (version 2.3.3) - SPIP 3.0.20 [22255].

    #URL_AUTEUR_ABSOLU{1} me donne “http://monsite.frwebmaster” (manque le slash) (.

    Pour les premières, çà marche (ex : #URL_ARTICLE_ABSOLU{2} = http://disques.monsite.fr/les-disques

    jp

    Reply to this message

  • 7

    Bonjour,

    J’ai bien fait comme la procédure l’indique (capture), mais http://www.domaine-pepiniere.fr/ ne pointe pas vers le squelette domainedelapepiniere.
    J’ai bien créé un multidomaines pointant vers le dossier www (ovh).

    Merci de votre aide.

    Gil

    Reply to this message

  • 1

    Bonjour,

    J’ai installé le plugin et configuré les dns.
    Le site est sur un de mes dédiés.

    J’ai associé un sous domaine à un répertoire.

    Lorsque je tape l’url, au lieu de pointer vers le répertoire concerné, le navigateur affiche la page par défaut du serveur.

    J’ai installé le plugin sur un autre serveur, même config spip, ça marche très bien.

    Une idée du bug ? Y a une config Apache à modifier ?

    A vous lire,

    cordialement,

    Philippe

    Reply to this message

  • 1
    Betrandbbbb

    Me revoilà !
    Toujours satisfait de ce plugin, je constate cependant qu’il ne semble pas compatible avec le plugin Composition. Il serait intéressant de voir si on ne peut pas détecter la présence de Composition et le choix d’une composition autre que celle par défaut pour l’article ou la rubrique. Si un choix est fait dans composition, il faudrait éviter qu’il soit écrasé par le pipeline de multidomaines. Si le choix est laissé par défaut, alors multidomaine imposerait son choix.
    Composition et Multidomaines n’interviennent, semble-t-il, pas au même niveau (pipeline styliser pour Compo., je n’ai par contre pas pigé pour Multi.) Je ne suis pas contre une petite orientation préliminaire sur le fonctionnement de Multi à ce niveau qui me permettrait de mieux me pencher sur le sujet ! Merci !

    • Betrandbbbb

      Fonctionne maintenant avec le plugin Composition 3.3.9 mis à jour rentre temps !

    Reply to this message

  • 13
    bertrandbbb

    Merci pour ce plugin très très intéressant !
    J’ai une remarque / question : j’ai toujours eu un site fonctionnant sous www.nom.org
    Après application de ce plugin, j’ai créé un sous domaine qu’on nommera pour l’exemple zone.nom.org et qui pointe vers un secteur/rubrique déjà existant.
    A ce secteur rubrique, j’avais précédemment ajouté un “texte explicatif” avec des liens de la forme FAQ. Problème : ces liens pointent vers une rubrique située dans un autre secteur hors les liens générés sont en zone.nom.org ce qui ne devrait pas être le cas (ils sont dans un secteur répondant au traditionnel www.nom.org). Certes, une redirection rétablit la chose... mais vous avouerez qu’intellectuellement, ce n’est pas 100% satisfaisant ! ;-)
    Merci d’avance pour votre réponse / explication / solution !

    • bertrandbbb

      arrggg ! mon exemple de lien a été interprété :D et transformé en FAQ :-)
      Il s’agit de la syntaxe traditionnelle de spip crochet ->rub50 crochet que je souhaitais indiquer.

      B.

    • Bonjour

      Une url du site ?

    • bertrandbbb

      Pourquoi pas :-)
      Voilà la page concernée :
      http://paces.remede.org/documents/-PACES-.html

      Et pour les liens, je parle de ceux de la première phrase qui n’est pas en gras :
      “Bienvenue sur la section remede.org dédiée à la première année commune aux études de médecine, études de pharmacie, études de sage-femme et études de chirurgie dentaire.”

      ils sont pourtant bien codés texte->rubXXX

      Merci pour le coup de main !

      B.

    • Tuas utiliser les balise de secteurs ?

    • bertrandbbb

      Non, je ne vois pas ce que je devrais en faire ? C’est spip qui doit générer mes liens inclus dans le “texte explicatif” et, a priori, je n’ai pas de prise sur ce qu’il fait dans ce cadre là ?

      Ma page html est englobée par une boucle Rubrique et mon texte correspond juste au #TEXTE rentré dans le back office pour cette rubrique.

      B.

    • Pour faire ton squelettes tu as regarder l’exemple dans le plugins ?

    • bertrandbbb

      Non mais je vais le faire ! Ca fonctionnait déjà tout seul alors je n’ai pas senti le besoin !

    • bertrandbbb

      Alors alors ... j’ai observé le contenu de www.TOTO.com (mais je ne pige pas tout car structure.html n’y figure pas ?).
      Je ne vois pas vraiment de différence avec ce que je fais, sauf peut être le paramètre id_secteur qui est passé à la boucle (j’y reviens plus bas)

      Voilà ce que je fais sur la page concerné :

      #CACHE{3600}
      <BOUCLE_rubriquesR(RUBRIQUES){id_rubrique}>
       
      [(#URL_SECTEUR|=={#URL_SECTEUR{#ID_SECTEUR_COURANT}}|non)
      #HTTP_HEADER{Status: 301 Moved Permanently}
      #HTTP_HEADER{Location:#URL_SECTEUR#SELF}
      ]
       
      [...]
       
      [<p class="descriptifrub"><strong>(#DESCRIPTIF)</strong></p>]
       
      [<div class="texterub">(#TEXTE)</div>]

      J’ai tenté de rajouter l’id_secteur à la boucle

      <BOUCLE_rubriquesR(RUBRIQUES){id_rubrique}{id_secteur=157}>

      Mais ça me donne la même chose en ligne ...

      Bref, je sèche !
      Merci pour le coup de main !

    • Tu travail avec le squelettes z ?

    • bertrandbbb

      Non, il faut ?

    • Essaie de mettre le toto.com et voir ce que ça donne.

    • bertrandbbb

      Je ne vois pas ce que ça peut faire car de toute façon, comme dit plus haut, le structure.html n’est pas inclus dans le zip ?

    • bertrandbbb

      Le problème est résolu à travers la mise à jour 2.3.0 pour laquelle j’ai proposé une fonction de correction des url aux développeurs !
      Plugin vraiment parfait maintenant !

    Reply to this message

  • 6

    Hello !

    J’ai installé le plugin sur une base SPIP 3.0.16 mais le 2eme nom de domaine installé redirige uniquement sur l’index du 1er nom de domaine.. Je ne sais pas comment faire pour modifier ça !

    • Bonjour

      Vous avez modifier les squelettes afin de prendre en compte le second domaine ?

    • Re !
      A l’heure actuelle, j’ai les squelettes du 1er site (avec le nom de domaine lié à l’hébergement initial) dans /squelettes et j’ai juste testé avec un sommaire.html dans un sous-domaine /squelettes/2emesite

    • Euh non, il faut pas de sous dossier pour faire le second design.
      Regarde le squelettes test dans le plugins.

    • Tu veux dire /squelettes-zpip dans l’archive ?
      Pour repartir de zéro afin que je comprenne bien :
      J’ai un site ancien sous SPIP 3.0.16, le contenu de ce site se trouve dans le secteur 1
      Je crée le contenu d’un 2eme site dans le secteur 2, puis je redirige le nom de domaine vers le répertoire chez mon hébergeur.
      Ensuite comment dois je configurer le plugin pour que cela fonctionne et où mettre les squelettes des 2 sites ? (on peut continuer en privé si tu préfères).

    • Tu as site1.com et site2.com
      Tu as donc squelettes/site1.com et squelettes/site2.com ?

    • Ah non justement ça doit venir de là.. a l’heure actuelle j’ai les squelettes du site1 dans /squelettes et du site2 dans /squelettes/sq_site2

      J’essaye avec ta recommandation !

    Reply to this message

  • 1

    Pour info, le plugin Correction des liens interne prend en compte la configuration multi-domaines pour la ré-écriture des liens absolus en raccourcis SPIP.

    Reply to this message

Add a comment

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite / PostgreSQL
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparait.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Who are you?
[Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom