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
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

updated on 25 April 2019

Discussion

21 discussions

  • 7

    Bonjour,
    enfin un plugin qui correspond à mes besoins, mais pas de chance ou mauvaise manip sur le site
    Dés l’activation du pluging, voici les messages sur la partie ecrire:

    Warning: Invalid argument supplied for foreach() in /homez.540/guillot/www/plugins/auto/multidomaines/v2.1.0/multidomaines_options.php on line 8
    
    Fatal error: Call to undefined function cextras_api_upgrade() in /homez.540/guillot/www/plugins/auto/multidomaines/v2.1.0/multidomaines_administrations.php on line 10

    Config:
    -  Hébergement: OVH perso
    -  SPIP 3.0.2 [19586]
    Plugins::
    -  Arclite vert 0.9.2 stable;
    -  Le Couteau Suisse 1.8.76 - stable
    -  Menus 1.2.1 - dev
    -  NivoSlider 2.0.0 - test
    -  Saisies pour formulaires 1.25.10 - test
    -  SkelEditor 2.7.2 - test
    -  Zpip-dist v1 1.7.19 - stable

    Seule solution supprimer répertoire du plugin par FTP pour revenir à un état stable.

    Merci de m’indiquer comment je peux solutionner ce problème pour tester cette solution.

    • Bonjour

      Tu as retirer le plugins complétement ?
      Est ce que tu as toujours l’erreur une fois que tu as configurer le formulaire ?

    • je n’ai que ces messages d’erreur et aucun accès à l’espace privé, de plus des messages apparaissent sur l’espace public, jusqu’à la suppression du dossier dans plugins/auto/
      etrange!!!

    • Est ce que tu vides les caches ?
      As tu la bonne version du plugins car je la voit pas sur le serveur ?

      Enfin je pense que ovh ne le supporte pas car il tourne très bien sur mes sites.

    • Les caches sont vidés avant et même /tmp/ en FTP,
      car après je n’ai plus d’accès à l’espace privé et dans l’espace public, le message est : “500 Internal Server Error”

      Pour l’installer, je copie le lien: http://files.spip.org/spip-zone/multidomaines.zip et je le colle dans l’installation de plugins de spip 3.0 et j’active et patatra.

      Pour OVH, j’ai fais les modifs sur le htaccess:
      SetEnv PHP_VER 5
      SetEnv REGISTER_GLOBALS 0

      Toujours pas de direction à suivre !!! de mon coté

    • Les correctifs sont bons, ils permettent l’installation du plugin sans message d’erreur et le paramétrage dans CFG, je continue...

    • Bonjour,
      je reviens vers toi pour te poser une question:
      je mets quoi dans mon sousdossier /squelettes/www.fuchsia-guillot.com/ ?
      par avance, merci

    • Salut

      Il faut mettre dedans tous ce qui concerne ce site.
      Sur le projet que je dev, j’ai fait cela:
      -  squelettes/ = pour tous les sites/
      -  squelettes/www.fuchsia-guillot.com/ = ce qui concerne ce site uniquement

      Le plugins lis la dist puis le squelettes et termine par le dossier du site en question.

    Reply to this message

Comment on this article

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