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

  • Hello,

    Peut-on faire la même chose suivant un mot clé ?

    Exemple :
    -  www.localite_1.be vers le mot clé 1
    -  www.localite_2.be vers le mot clé 2
    -  www.localite_3.be vers le mot clé 3
    -  ...

    Amitié
    Paulbe

    Répondre à ce message

  • 4

    Après divers tests il me semble qu’il est indispensable de préciser le numéro du secteur dans les squelettes de chaque nom de domaine ??
    Si on utilise un squelette par défaut, il affiche tout sur quelque domaine que nous soyons ??
    Merci pour vos précisions.

    • Même problème.
      Spip 2.1

    • Dès que j’utilise la balise #URL_SECTEUR j’ai une erreur du type :

      Parse error: syntax error, unexpected T_OBJECT_OPERATOR in ....../plugins/multidomaines/balise/url_secteur.php on line 7

    • A la place de #URL-SECTEUR du coup j’utilise #HOST dans a boucle.
      Pour pouvoir utiliser le plugin correctement j’ai du me configurer les squelettes qui vont bien.
      Ce qui serait génial serait de pouvoiçr coupler tout ça avec un plugin du style de celui de zengarden (choix de template).
      Aussi je vais essayer de tester le couplage avec plugin SEO. je vous tiens au courant s’il n’y a pas de bugs dan l’interaction etc ...

    • Meme chose, j’ai une version différente des squelettes pour chaque domaine.

      (J’ai bien tenté de stocker l’ID du secteur dans une variable #TMP , déclarée dans un mini-squelette config-inc.html... mais la variable est perdue à l’include.)

      Le plugin fonctionne avec Metas, et surtout avec Acces Restreint !

      Ce qui permet de gérer plusieurs sites complètement indépendamment les uns des autres sur une seule base Spip !

    Répondre à ce message

  • 2
    NicolasM

    Excellent plugin !
    Est-il ou sera-t-il compatible avec Spip 2.1 ?

    • +1 pour la question

    • NicolasM

      Je viens de tester sous Spip 2.1 :
      Tout semble fonctionner.

      Si je rencontre des problèmes je vous tiens au courant.
      Encore une fois, beau plugin.

    Répondre à ce message

  • 1

    Re, je viens de me rendre compte que le plugin différencie « nomdedomaine.com » et « www.nomdedomaine.com », ce qui semble logique. Y’a til une façon de faire pointer le meme squelette pour ces deux domaines, ou sommes nous obligé de dupliquer le dossier squelette et le renommer ? Ou bien peut etre en utilisant un rewrite, par contre, je ne connais pas trop les commande de rewrite pr redirigé automatiquement.

    MErci

    • je me réponds, finalement, j’ai pu faire un rewriterule dans le htaccess.

    Répondre à ce message

  • 4

    Est-ce que certaines personnes ont réussie à installer le plugin sur un mutu OVH (traitant le multidomaine donc la redirection vers les dossiers) ?

    Là je test sur un site sur lequel il y a spip 2.0.8 ? Normalement c’est compatible ?

    En fait je ne m’en sors pas, j’ai beau un peu tout essayer mais ça ne fonctionne pas. Le tuto n’est vraiment pas très clair je trouve (désolé !!) !

    Est-ce qu’il faut faire des manips particulières sur les squelettes ?
    De mon côté lorsque j’intègre #URL_SECTEUR ça me plante tout !

    • oui oui ça marche sur ovh avec redirec ds les repertoire,
      il faut juste redirigé tout tes domaine et sousdoamine vers le meme repertoire, celui de spip. Le plugin aiguille automatiquement vers le squelette dont le nom du dossier est l’adresse url du domaine.

    • Est-ce que cela signifie que le nom du secteur doit obligatoirement être celui du sous-domaine.
      Par exemple, le sous-domaine vers « Secteur1 » est obligatoirement « secteur1.mondomaine.net » ?

      C’est une petite limitation (insignifiante), mais comme un caillou dans ma chaussure... :)

    • pas du tout , tu donne le nom de rubrique/secteur que tu veux, il faut juste que qd tu modifie ta rubrique à la racine du site ( ce que spip appel secteur), tu mette l’adresse de ton sous domaine ds la champ url tout en bas.

    • Cool :) Merci pour cette réponse...

      Autre question : est-ce qu’il est prévu qu’il soit compatible avec SPIP 2.1 ?

    Répondre à ce message

  • 2

    J’essaie de faire fonctionner le plugin et je n’ai pas fait les bonnes manip au départ et je pense que les changements d’url et dossier squelette que j’indique à présent ne sont pas pris en compte.
    A quel endroit puis-je viser le fichier indiquant les chemins des squelettes ? dans mysql ou ailleurs .
    merci

    • a priori si j’ai bien compris ta question, pas besoin dindiquer ou chercher les squellettes, si ce n’est ds la configuration de multidomaine, comme indiqué sur le tuto. Il suffit ensuite de créer un dossier par domaine portant le nom du domaine. Ensuite lorsque l’on accede au site via un domaine, le plugin aiguille directement sur le bon dossier squellette.

    • Eh bien en fait c’est dans l’espace de configuration du plugin que je m’étais planté au départ en indiquant un mauvais répertoire squelette et visiblement malgré correction c’est ce dernier qui continue à être pris en compte, au détriment du bon fonctionnement du plugin. Je ne l’ai pas encore vu en état fonctionnel.

      Sinon, jusqu’à quelle version de spip es t-on assuré du bon fonctionnement du plugin ?

    Répondre à ce message

  • 1

    Bonjour, je ne sais pas si vous avez eu du mal à faire fonctionner ce plugin, mais de mon coté j’ai bien galéré mais je ne sais pas s’il est totalement fonctionnel car je ne sais pas ce que les url des rubriques est censé faire.
    Je pensais qu’en associant un domaine ou sous domaine à une rubrique, le fait de l’afficher lui ou ses sous rubrique ou article redirige automatiquement vers le sous domaine , ou bien que les liens crées se font avec le sous domaine en prefixe.

    Voila sinon pour ceux qui on eu le meme pb que moi, qd j’ai installé le plugin, je ne pouvais plus modifer mes rubriques car le plugin n’est pas parvenu à trouver le champ « host », qu’il aurai du crée tout seul grace a champs extra, on dirai. Du coup pr résoudre le pb, je l’ai rajouter manuellement avec phpadmin, un varchar de 200 octets.

    Ensuite e neffet ; il n’y a qu’a créer des dossier de squelette comme indiqué ds le tuto puis de pointer les domaine vers le repertoire de spip. L’astuce c’est que chaque squelette est affecté de la valeur de la rubrique mere du site en question.

    Si vs avez d’autre expérience à partager je suis preneur...

    • ah c’est bon, je me répond, les secteur doivent etre à la racine du site même si on peut attribuer des url qux sous rubriques.
      C’est pour cela que #URL_SECTEUR me renvoyait par l’url de la sous rubrique mais celui par defaut.

    Répondre à ce message

  • Salut,

    je vois bien comment entrer l’URL par défaut, et ensuite ... je ne sais pas où entrer les autres domaines associés aux secteurs.

    Quelqu’un peut-il détailler un peu le mode d’emploi, ça serait super sympa !

    Ma config : plugins/champs_extras2 sous Spip 2.0.10

    Répondre à ce message

  • 1

    Salut !

    je suis en train de bosser aussi sur un site multilingue et ce plugin a l’air bougrement intéressant :-) !

    Je me permet une suggestion : que les urls qui ne dépendent pas d’un secteur (auteur, mot, page) soient aussi accessible par le domaine d’une langue, avec la bonne langue.

    Par exemple :
    -  fr.domaine.com/auteur1 affiche la page de l’auteur 1 en passant au squelette le paramètre lang=fr et le squelette affiche les infos de l’auteur ainsi que tous les textes en français (avec les balises multi et les chaines de langues)
    -  en.domaine.com/auteur1 affiche la page de l’auteur 1 en passant au squelette le paramètre lang=en et le squelette affiche les infos de l’auteur ainsi que tous les textes en anglais.

    Qu’en pensez-vous ?

    • Hello,

      j’ai trouvé une possibilité de faire ça : en mettant ce code dans le fichier mes_options.php

      switch ( $_SERVER['SERVER_NAME'] ) {
      	case 'en.monsite.tld' :
      		$_GET['lang'] = 'en' ;
      		break ;
      	case 'fr.monsite.tld' :
      		$_GET['lang'] = 'fr' ;
      		break ;
      }

      Il suffit pour chaque domaine ou sous-domaine attribué à une langue de déclarer la bonne variable de lang ensuite.

      A +

    Répondre à ce message

  • 3
    Valéry

    Bonjour,

    Excellente initiative que ce plugin toutefois je ne comprends pas bien son foncitonnement. Quelle est la technique utilisée ?

    j’imagine qu’il faut renseigner le champs label host dans exec=rubriques_edit

    Quelle est la syntaxe à adopter ?

    Y-a-t-il autre chose à activer ?

    Si je comprends bien les balises de lien ont pour vocation de permettre de générer des liens internes au site qui prennent en compte le bon domaine ?

    Quelqu’un qui arrive de l’extérieur vers un article avec le mauvais domaine est-il redirigé vers le bon domaine ou faut-il en plus à cet effet agir sur le htaccess ?

    • bennetteson

      Bonjour,

      pour répondre à vos questions :

      Quelle est la technique utilisée ?

      Je ne peut pas vraiment m’attarder sur ce point.
      Le plugin, même si il n’utilise que peu de code, est assez complexe et englobe beaucoup de techniques différentes. Si vous précisez votre question je me ferait un plaisir d’y répondre.

      Quelle est la syntaxe à adopter ?

      La syntaxe à adopter pour les url de secteur est la suivante :
      https://sous-dmomaine.domaine.com/

      Une erreur de label c’est glissé dans la version actuel, elle vient d’être corrigé. voici le label et la précision qui devait apparaitre :
      -  label => Url du secteur
      -  precisions => l’url doit être valide,ne contenir qu’un domaine et se terminer par un slash. ex : https://sous-dmomaine.domaine.com/

      Y-a-t-il autre chose à activer ?

      Oui, pour que le plugin fonctionne, le plugin Champs Extras 2 doit être activé et fonctionnel.

      Si je comprends bien les balises de lien ont pour vocation de permettre de générer des liens internes au site qui prennent en compte le bon domaine ?

      Oui exactement.

      Quelqu’un qui arrive de l’extérieur vers un article avec le mauvais domaine est-il redirigé vers le bon domaine ou faut-il en plus à cet effet agir sur le htaccess ?

      Non, le plugin n’a pas la vocation de rediriger automatiquement l’utilisateur vers le bon nom de domaine. Vous pouvez vous référer à la section FAQ de l’article pour avoir un exemple de redirection.

    • Valéry

      Merci pour ces précisions.

      Je comprends mieux à présent. En réalité on « simule » le multidomaine en jouant sur l’ensemble des URL internes du site à l’aide des nouvelles balises et des domaines enregistrés en base.

      En revanche on doit jouer sur les htaccess et avec la redirection 301 pour les visiteurs venant de l’extérieur.

      J’ai testé rapidement sur l’un de mes sites et a priori le principe fonctionne bien. Je vais faire pointer les domaines des autres langues sur le répertoire du site pour mettre en oeuvre le plugin (actuellement c’est une simple redirection vers le bon secteur mais on garde le domaine principal). Je vous ferai un retour d’expérience.

      Je ne comprends pas bien le fonctionnement des sous dossier squelette : dois-je comprendre que si par exemple un secteur de domaine www.toto.org doit avoir un squelette différent du domaine principal, il faut placer ce squelette dans un sous répertoire squelettes/www.toto.org/ ?

      Dans ce cas que se passe-t-il si un squelette manque de ce répertoire ? SPIP va-t-il le chercher dans squelettes ou dans squelettes-dist ?

    • bennetteson

      Le plugin Multidomaines ajoutera les dossiers suivant à la liste des chemins :
      -  squelettes/www.toto.org.80/
      -  squelettes/www.toto.80/
      -  squelettes/toto.org.80/
      -  squelettes/toto.80/
      -  squelettes/www.toto.org/
      -  squelettes/www.toto/
      -  squelettes/toto.org/
      -  squelettes/toto/

      (se dossier ’squelettes’ peut être changé)

      Puis Spip reprend sont fonctionnement normal :
      -  squelettes/
      -  plugins/*/
      -  / (racine du site)
      -  squelettes-dist/
      -  ecrire/

    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