URL_SITE_SPIP

Bonjour la liste,

J’aurais une petite question concernant la balise #URL_SITE_SPIP.
J’ai mon domaine qui pointe sur mon site spip. Là pas de problème.
Par contre, j’ai un sous-domaine qui pointe sur mon site spip mais avec un jeu de squelette différent.
Je voudrais que lorsque j’utilise la balise #URL_SITE_SPIP, j’obtienne sous-domaine.domaine.tld et non pas domaine.tld.
Est-ce que je dois « redéclarer » cette balise ?
Merci d’avance pour vos réponses

Salut,

La balise #URL_SITE_SPIP est déclarée ICI :

Configuration du site > Adresse (URL) du site public

++

Castillo974. (Ile de La Réunion)

De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net] De la part de kwaker21
Envoyé : mercredi 27 février 2008 12:39
À : spip@rezo.net
Objet : [Spip] URL_SITE_SPIP

Bonjour la liste,

J’aurais une petite question concernant la balise #URL_SITE_SPIP.
J’ai mon domaine qui pointe sur mon site spip. Là pas de problème.
Par contre, j’ai un sous-domaine qui pointe sur mon site spip mais avec un jeu de squelette différent.
Je voudrais que lorsque j’utilise la balise #URL_SITE_SPIP, j’obtienne sous-domaine.domaine.tld et non pas domaine.tld.
Est-ce que je dois « redéclarer » cette balise ?
Merci d’avance pour vos réponses

Merci Aurélien pour ta réponse.
Mais je pense ne pas avoir été suffisamment clair dans ma question.

J’ai installé spip et j’ai donc comme Adresse (URL) du site public http://www.domaine.tld.
Lorsque je tape dans mon navigateur cette url (http://www.domaine.tld), je tombe bien sur mon site spip.
Jusque là tout va bien (et heureusement :wink: ).
Ensuite, j’ai créé un sous-domaine (http://xxxx.domaine.tld) que j’ai fais pointé sur mon site spip (et je tombe bien sur mon site lorsque je tape dans mon navigateur l’url http://xxxx.domaine.tld ).
Après, dans le fichier mes_options.php, j’ai écris le code suivant qui me permet de sélectionner un jeu de squelettes en fonction de l’url (http://xxx.domaine.tld ou http://www.domaine.tld)

if($_SERVER[‹ HTTP_HOST ›] == ‹ xxx.domaine.tld ›) {
$GLOBAL[‹ squelettes ›] = ‹ squelettesxxx ›;
}
else {
$GLOBAL[‹ squelettes ›] = ‹ squelettes ›;
}

Avec l’url http://xxx.domaine.tld, j’ai bien le jeu de squelettes « squelettesxxx » et l’autre jeu dans les autres cas.
Par contre, la balise #URL_SITE_SPIP retourne http://www.domaine.tld quel que soit le jeu de squelettes utilisé.
Ce que j’aurais voulu c’est :

si url « d’arrivée sur le site » = http://www.domaine.tld alors #URL_SITE_SPIP = http://www.domaine.tld
et
si url « d’arrivée sur le site » = http://xxx.domaine.tld alors #URL_SITE_SPIP = http://xxx.domaine.tld

Est-ce possible de « surcharger » cette balise #URL_SITE_SPIP ? Si oui, comment ? Sinon, est-ce que je dois passer par la création d’une autre balise (par exemple #URL_MON_SITE_SPIP) ? Et là, je ne sais pas du tout comment m’y prendre.
Merci beaucoup pour vos réponses.

kwaker21

Le 27/02/08, Aurélien CROÜS <aurelien.crous@wanadoo.fr> a écrit :

Salut,

La balise #URL_SITE_SPIP est déclarée ICI :

Configuration du site > Adresse (URL) du site public

++

Castillo974. (Ile de La Réunion)

De : spip-bounces@rezo.net [mailto:spip-bounces@rezo.net] De la part de kwaker21
Envoyé : mercredi 27 février 2008 12:39
À : spip@rezo.net
Objet : [Spip] URL_SITE_SPIP

Bonjour la liste,

J’aurais une petite question concernant la balise #URL_SITE_SPIP.
J’ai mon domaine qui pointe sur mon site spip. Là pas de problème.
Par contre, j’ai un sous-domaine qui pointe sur mon site spip mais avec un jeu de squelette différent.
Je voudrais que lorsque j’utilise la balise #URL_SITE_SPIP, j’obtienne sous-domaine.domaine.tld et non pas domaine.tld.
Est-ce que je dois « redéclarer » cette balise ?
Merci d’avance pour vos réponses

kwaker21 a écrit :

Est-ce possible de "surcharger" cette balise #URL_SITE_SPIP ? Si oui, comment ? Sinon, est-ce que je dois passer par la création d'une autre balise (par exemple #URL_MON_SITE_SPIP) ? Et là, je ne sais pas du tout comment m'y prendre.
Merci beaucoup pour vos réponses.

Hum... pas évident de trancher là...

soit du crées (et surcharges) une fonction du même nom (mois le "_dist" du nom de la fonction originale dans ecrire/public/balises.php) :
function balise_URL_SITE_SPIP($p){... return $p;}

soit tu en crée comme tu dis une nouvelle

qui devrait être grosso modo dans ce genre :

function balise_URL_DOMAINE_SPIP($p){
  $p->code = "'rtrim($_SERVER[\'http_host\'],\'/\')'";
  return $p;
}

Il y a peut être des solutions plus élégantes, je ne sais pas...

MM.

kwaker21 a écrit :

Merci Aurélien pour ta réponse.
Mais je pense ne pas avoir été suffisamment clair dans ma question.

J'ai installé spip et j'ai donc comme Adresse (URL) du site public
http://www.domaine.tld.
Lorsque je tape dans mon navigateur cette url (http://www.domaine.tld), je
tombe bien sur mon site spip.
Jusque là tout va bien (et heureusement :wink: ).
Ensuite, j'ai créé un sous-domaine (http://xxxx.domaine.tld) que j'ai fais
pointé sur mon site spip (et je tombe bien sur mon site lorsque je tape dans
mon navigateur l'url http://xxxx.domaine.tld ).
Après, dans le fichier mes_options.php, j'ai écris le code suivant qui me
permet de sélectionner un jeu de squelettes en fonction de l'url (
http://xxx.domaine.tld ou http://www.domaine.tld)

Bonjour

Peut être que tu peux envisager de mutualiser tes sites, mais, au lieu d'avoir des bases différentes, ils pourraient partager la même base.

Regarde la doc sur le plugin "mutualisation facile", c'est vraiment simple.

A bientôt
Grégoire

Merci Grégoire mais non pas de mutualisation. Ca ne répond pas à mon besoin car j’ai besoin d’avoir une seule base spip pour l’identification (pas plusieurs bases spip dans une base mysql).
Je souhaite que les personnes enregistrées sur http://www.domaine.tld soient reconnues sur le site http://xxx.domaine.tld.

Le 27/02/08, Grégoire <gobmouch@online.fr> a écrit :

kwaker21 a écrit :

Merci Aurélien pour ta réponse.
Mais je pense ne pas avoir été suffisamment clair dans ma question.

J’ai installé spip et j’ai donc comme Adresse (URL) du site public
http://www.domaine.tld.
Lorsque je tape dans mon navigateur cette url (http://www.domaine.tld), je
tombe bien sur mon site spip.
Jusque là tout va bien (et heureusement :wink: ).
Ensuite, j’ai créé un sous-domaine (http://xxxx.domaine.tld) que j’ai fais
pointé sur mon site spip (et je tombe bien sur mon site lorsque je tape dans
mon navigateur l’url http://xxxx.domaine.tld ).
Après, dans le fichier mes_options.php, j’ai écris le code suivant qui me
permet de sélectionner un jeu de squelettes en fonction de l’url (
http://xxx.domaine.tld ou http://www.domaine.tld)

Bonjour

Peut être que tu peux envisager de mutualiser tes sites, mais, au
lieu d’avoir des bases différentes, ils pourraient partager la même
base.

Regarde la doc sur le plugin « mutualisation facile », c’est vraiment
simple.

A bientôt
Grégoire


liste spip
spip@rezo.net - désabonnement : spip-off@rezo.net
Infos et archives : http://listes.rezo.net/mailman/listinfo/spip
Documentation de SPIP : http://www.spip.net/
irc://irc.freenode.net/spip
FAQ : http://www.spip.net/fr_article1054.html

Matthieu Marcillaud wrote:

soit du crées (et surcharges) une fonction du même nom (mois le "_dist" du nom de la fonction originale dans ecrire/public/balises.php) :
function balise_URL_SITE_SPIP($p){... return $p;}

un truc un peu générique dans mes_options.php
($url_path['path'] au cas où adresse_site indique un sous-répertoire)

function balise_URL_SITE_SPIP($p) {
   $url_path = parse_url($GLOBALS['meta']['adresse_site']);
   $site_url = 'http://' .
               $_SERVER['HTTP_HOST'] .
               $url_path['path'];
   $p->code = "sinon(\$site_url,'.')";
   $p->code = "htmlspecialchars(".$p->code.")";
   $p->interdire_scripts = false;
   return $p;
}

en php5 on devrait pouvoir faire :
function balise_URL_SITE_SPIP($p) {
   $site_url = 'http://' .
               $_SERVER['HTTP_HOST'] .
               parse_url($GLOBALS['meta']['adresse_site'], PHP_URL_PATH);
   $p->code = "sinon(\$site_url,'.')";
   $p->code = "htmlspecialchars(".$p->code.")";
   $p->interdire_scripts = false;
   return $p;
}

mais est-ce vraiment plus élégant ?

Bonjour,

Je suis confronté à un problème...

J'utilise l'inclusion de squelette pour intégrer un pied de page commun à toutes mes pages.

Soit A, B et C, des pages avec une instruction d'inclusion d'un fichier PIED-DE-PAGE
Donc dans les fichiers A, B et C, j'ai le code : <INCLURE{fond=PIED-DE-PAGE}>
Les pages A, B et C ont une durée de cache très longue (1 semaine)

Imaginez que je modifie le fichier inclus PIED-DE-PAGE (en réalité, je modifie le texte d'un article affiché par la boucle présente dans le fichier PIED-DE-PAGE).

Résultats :

J'affiche la page A : je ne vois pas la modification de mon pied de page.
Je recalcule A : mon pied de page a bien été mis à jour

J'affiche la page B, et je m'attend à voir mon pied de page modifié : et bien non. Je dois recalculer la page B également...

Idem pour la page C.

En conclusion, je dois recalculer l'ensemble des pages de mon site pour voir apparaître la modification apportée sur le contenu d'un fichier inclus !

L'intérêt de l'inclusion est limitée, alors.

J'aurais aimé que le fait de réactualiser une des pages qui inclue mon PIED-DE-PAGE fasse que le pied de page apparaisse comme mis à jour sur l'ensemble des page qui l'inclut...

Ou alors, faut que je vide la cache. A noter que l'emploi de la balise #INCLUDE ne change rien.

J'en déduit que Spip créé autant de cache d'un fichier inclus que de fichier lançant l'inclusion, non ?

Si spip créait un fichier cache unique CACHE-PIED-DE-PAGE, cela fonctionnerait comme je le souhaiterais.
Mais là, il doit plutôt créer, pour reprendre mon exemples, des fichiers caches CACHE-PIED-DE-PAGE_de_la_page_A, CACHE-PIED-DE-PAGE_de_la_page_B et CACHE-PIED-DE-PAGE_de_la_page_C.

J'ai loupé quelque chose ?

Merci pour vos lumières !!

kwaker21 a écrit :

Merci Grégoire mais non pas de mutualisation. Ca ne répond pas à mon besoin
car j'ai besoin d'avoir une seule base spip pour l'identification (pas
plusieurs bases spip dans une base mysql).
Je souhaite que les personnes enregistrées sur http://www.domaine.tld soient
reconnues sur le site http://xxx.domaine.tld.
[...]

Oui, j'avais bien compris, une seule base, données partagées.

Je pense que c'est faisable par une mutualisation, mais visiblement d'autres t'ont donné des pistes, sûrement meilleurs.

A bientôt
Grégoire

YMDK a écrit :

Bonjour,

Je suis confronté à un problème...

J'utilise l'inclusion de squelette pour intégrer un pied de page commun à toutes mes pages.

Soit A, B et C, des pages avec une instruction d'inclusion d'un fichier PIED-DE-PAGE
Donc dans les fichiers A, B et C, j'ai le code : <INCLURE{fond=PIED-DE-PAGE}>
Les pages A, B et C ont une durée de cache très longue (1 semaine)

Imaginez que je modifie le fichier inclus PIED-DE-PAGE (en réalité, je modifie le texte d'un article affiché par la boucle présente dans le fichier PIED-DE-PAGE).

Résultats :

J'affiche la page A : je ne vois pas la modification de mon pied de page.
Je recalcule A : mon pied de page a bien été mis à jour

J'affiche la page B, et je m'attend à voir mon pied de page modifié : et bien non. Je dois recalculer la page B également...

Idem pour la page C.

En conclusion, je dois recalculer l'ensemble des pages de mon site pour voir apparaître la modification apportée sur le contenu d'un fichier inclus !

L'intérêt de l'inclusion est limitée, alors.

J'aurais aimé que le fait de réactualiser une des pages qui inclue mon PIED-DE-PAGE fasse que le pied de page apparaisse comme mis à jour sur l'ensemble des page qui l'inclut...

Ou alors, faut que je vide la cache. A noter que l'emploi de la balise #INCLUDE ne change rien.

J'en déduit que Spip créé autant de cache d'un fichier inclus que de fichier lançant l'inclusion, non ?

Si spip créait un fichier cache unique CACHE-PIED-DE-PAGE, cela fonctionnerait comme je le souhaiterais.
Mais là, il doit plutôt créer, pour reprendre mon exemples, des fichiers caches CACHE-PIED-DE-PAGE_de_la_page_A, CACHE-PIED-DE-PAGE_de_la_page_B et CACHE-PIED-DE-PAGE_de_la_page_C.

J'ai loupé quelque chose ?

sans doute oui.
Le comportement que tu decris est celui des #INCLURE, pas des <INCLURE>
Maintenant, le cache navigateur, lui, ne sait pas que la page a changé, le probleme est sans doute la.

Ceci dit, maintenant, le cache est invalidé à chaque modif, alors... le probleme ne se pose plus : tu modifies ton article, tous les caches sont recalculés.

@++

Bonsoir Stéphane,

Stephane a écrit :

sans doute oui.
Le comportement que tu decris est celui des #INCLURE, pas des <INCLURE>
  
Non, j'utilise bien <INCLURE> comme mentionné dans mon mail

Maintenant, le cache navigateur, lui, ne sait pas que la page a changé, le probleme est sans doute la.
  
Non plus, j'utilise Firefox et la Web Developper Bar dans laquelle je désactive le cache de Firefox.
Je refais des investigations..

Merci.

YMDK a écrit :

Bonjour,

Je suis confronté à un problème...

J'utilise l'inclusion de squelette pour intégrer un pied de page commun à toutes mes pages.

Soit A, B et C, des pages avec une instruction d'inclusion d'un fichier PIED-DE-PAGE
Donc dans les fichiers A, B et C, j'ai le code : <INCLURE{fond=PIED-DE-PAGE}>
Les pages A, B et C ont une durée de cache très longue (1 semaine)

Imaginez que je modifie le fichier inclus PIED-DE-PAGE (en réalité, je modifie le texte d'un article affiché par la boucle présente dans le fichier PIED-DE-PAGE).

Résultats :

J'affiche la page A : je ne vois pas la modification de mon pied de page.
Je recalcule A : mon pied de page a bien été mis à jour

J'affiche la page B, et je m'attend à voir mon pied de page modifié : et bien non. Je dois recalculer la page B également...

Idem pour la page C.

En conclusion, je dois recalculer l'ensemble des pages de mon site pour voir apparaître la modification apportée sur le contenu d'un fichier inclus !

L'intérêt de l'inclusion est limitée, alors.

J'aurais aimé que le fait de réactualiser une des pages qui inclue mon PIED-DE-PAGE fasse que le pied de page apparaisse comme mis à jour sur l'ensemble des page qui l'inclut...

Ou alors, faut que je vide la cache. A noter que l'emploi de la balise #INCLUDE ne change rien.

J'en déduit que Spip créé autant de cache d'un fichier inclus que de fichier lançant l'inclusion, non ?

Si spip créait un fichier cache unique CACHE-PIED-DE-PAGE, cela fonctionnerait comme je le souhaiterais.
Mais là, il doit plutôt créer, pour reprendre mon exemples, des fichiers caches CACHE-PIED-DE-PAGE_de_la_page_A, CACHE-PIED-DE-PAGE_de_la_page_B et CACHE-PIED-DE-PAGE_de_la_page_C.

J'ai loupé quelque chose ?
  

Bonjour la liste,

Hello,

J'aurais une petite question concernant la balise #URL_SITE_SPIP.
J'ai mon domaine qui pointe sur mon site spip. Là pas de problème.
Par contre, j'ai un sous-domaine qui pointe sur mon site spip mais avec un
jeu de squelette différent.
Je voudrais que lorsque j'utilise la balise #URL_SITE_SPIP, j'obtienne
sous-domaine.domaine.tld et non pas domaine.tld.
Est-ce que je dois "redéclarer" cette balise ?
Merci d'avance pour vos réponses

Un moyen de s'en tirer est d'utiliser du php et de mettre dans tes
squelettes, à la place de #URL_SITE_SPIP,

<?php echo url_de_base() ?>

(la doc de url_de_base explique le principe, qui est exactement ce que
tu veux faire, i.e. obtenir l'équivalent de #URL_SITE_SPIP à partir de
l'URL). Si tu mets ça dans un modele, tu pourras même utiliser

[(#MODELE{url_de_base}|filtre1|...)]

Je ne suis pas sûr que ce soit plus propre que les autres solutions que
tu as déjà reçues, mais en tout cas la partie crade fait partie du noyau
de SPIP et pas du squelette ;->

HTH,

  /vincent

--
Vincent Beffara
UMPA - ENS-Lyon
46 allée d'Italie
69364 Lyon Cedex 07
Tél : 04 72 72 85 25

denisb a écrit :

Matthieu Marcillaud wrote:

soit du crées (et surcharges) une fonction du même nom (mois le "_dist" du nom de la fonction originale dans ecrire/public/balises.php) :
function balise_URL_SITE_SPIP($p){... return $p;}

un truc un peu générique dans mes_options.php
($url_path['path'] au cas où adresse_site indique un sous-répertoire)

function balise_URL_SITE_SPIP($p) {
   $url_path = parse_url($GLOBALS['meta']['adresse_site']);
   $site_url = 'http://' .
               $_SERVER['HTTP_HOST'] .
               $url_path['path'];
   $p->code = "sinon(\$site_url,'.')";
   $p->code = "htmlspecialchars(".$p->code.")";
   $p->interdire_scripts = false;
   return $p;
}

en php5 on devrait pouvoir faire :
function balise_URL_SITE_SPIP($p) {
   $site_url = 'http://' .
               $_SERVER['HTTP_HOST'] .
               parse_url($GLOBALS['meta']['adresse_site'], PHP_URL_PATH);
   $p->code = "sinon(\$site_url,'.')";
   $p->code = "htmlspecialchars(".$p->code.")";
   $p->interdire_scripts = false;
   return $p;
}

mais est-ce vraiment plus élégant ?

Merci pour ces réponses.
Ca fonctionne ! Mais en supprimant la ligne :

   $p->code = "sinon(\$site_url,'.')";

kwaker21 wrote:

Ca fonctionne ! Mais en supprimant la ligne :
   $p->code = "sinon(\$site_url,'.')";

argh...
$p->code = "sinon('$site_url','.')";

là, ça devrait le faire