Plugin Multidomaines 1.x

Ou comment associer un domaine à un secteur...

ATTENTION ! ceci est la version pour Spip 2.
Pour SPIP 3, utilisez la nouvelle version.
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.

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.

Le plug-in a besoin de Champs Extras 2 pour fonctionner correctement

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.

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 :

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)

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 que le 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é à 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_PAGE_ABSOLU exclu, les balises #URL_*_ABSOLU peuvent être utiliser 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é en argument.

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.

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 !

Téléchargements

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

  • Version 1.1.0 pour version spip 2.X

Compatibilité

Plugin Bandeau
Squelettes Z

Incompatibilité

Plugin mutualisation
Couteau kiss

Discussion

23 discussions

  • 1
    Armetiz

    Tres bonne initiative ce plugin.
    En le voyant j’ai eu les yeux qui ont commencer à briller, jusqu’à voir que le multilanguisme n’est pas géré.

    J’explique mon cas qui malgré tout reste simple.
    Nous disposons d’un site multilangue. Nous avons souhaité utiliser les noms de domaine pour pouvoir acceder directement à une langue du site.

    Exemple :
    -  domain.com -> langue principal du site
    -  domaine.fr -> langue francaise
    -  domaine.uk -> langue anglaise ...
    -  etc

    Le plugin aurai pu résoudre mon problème ; mais soucis, une rubrique n’accepte qu’un seul domaine. Et cela ne fonctionne pas ;)
    Nous n’avons pas de structure de fichier spécifique, mais un seul répertoire contenant le squelette du site.

    De plus, comment gerez-vous les sous domaine type
    domaine.fr et www.domaine.fr qui pointe au même endroit.

    Merci ;)

    • bennetteson

      Regarde la section Multidomaines polyglotte qui est la solution la plus immédiate.

      Le besoin que tu as énoncé m’est connu. Je travail justement à la version nouvelle version du plugin qui aura un capacité d’internationalisation très poussé qui me sera utile sur un site en cours de développement.

      La nouvelle version sera prête d’ici le 10 septembre.

    Répondre à ce message

  • 1

    Je trouve dommage que la syntaxe pour spécifier le protocole (http/https) soit la même que pour les domaines. (c’est très empirique pour reconnaître le protocole... par exemple qu’est-ce qui se passe si je veux avoir un sous-domaine qui s’appelle http...). Pourquoi ne pas simplement utiliser un séparateur différent, par exemple deux-points ?

    • bennetteson

      Je suis complètement d’accord avec toi. Si ce n’est que le caractère «  :  » peut poser des problèmes sur les différents systèmes d’exploitation. Comme je pense que c’est vraiment important, j’ai mis à jour ma contribution ce matin. Maintenant le port du serveur sera concaténé à la fin du nom du dossier.

    Répondre à ce message

  • 1

    Salut, ça a l’air très pratique ce plugin pour concevoir des squelettes multidomaines !

    -  une question : est-ce qu’on peut étendre facilement le plugin pour la gestion des documents en multidomaine ?
    c’est à dire disposer aussi des balises URL_DOCUMENT_ABSOLU...

    -  ce serait bien de pouvoir gérer l’emplacement des répertoires vignettes, images, cache, upload, ...

    • bennetteson

      Merci pour tes remarques. Elles ont été prise en compte et mise dans la feuille de route.

    Répondre à ce message

Ajouter un commentaire

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
  • 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 apparaît.

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.

Qui êtes-vous ?
[Se connecter]

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