Fil | 5 Mar 12:37
Favicon
Gravatar

! Inclure avec tout le contexte : critère {env}


New Revision: 8825

introduction de la notation <INCLURE{fond=truc}{env}> qui passe tout
l'environnement de la page incluante a la page incluse ; au passage j'ai
nettoye plusieurs facilites dans le debugueur, la pagination etc, qui
devenaient des bugs si on creusait un peu (notamment : avec #INCLURE le
contexte affiche par le debugueur etait celui de la page incluante)

Ca fonctionne aussi avec #INCLURE.

Si on précise des variables, ça les prend de préférence à celles du contexte
par défaut ; par exemple

        <INCLURE{fond=gribouille/rubrique}{env}{lang=en}>

incluera gribouille/rubrique en lui passant les {id_rubrique} et
{debut_pages} du contexte incluant (de l'URL, autrement dit), mais en
forçant la langue anglaise même si l'url a un ?lang=fr.

-- Fil

Nicolas Hoizey | 5 Mar 13:19
Gravatar

Re: ! Inclure avec tout le contexte : critère {env}

> introduction de la notation <INCLURE{fond=truc}{env}> qui passe tout
> l'environnement de la page incluante a la page incluse ;

Y compris la pile de doublons, par exemple ?

-Nicolas

--

-- 
Nicolas "Brush" HOIZEY
Clever Age   : http://www.clever-age.com/
Gastero Prod : http://www.gasteroprod.com/
Photos : http://www.flickr.com/gp/38608514 <at> N00/M1c002

Fil | 5 Mar 13:44
Favicon
Gravatar

Re: ! Inclure avec tout le contexte : critère {env}

> > introduction de la notation <INCLURE{fond=truc}{env}> qui passe tout
> > l'environnement de la page incluante a la page incluse ;
> 
> Y compris la pile de doublons, par exemple ?

Non, ça ne transmet que ce qui est dans le #ENV de la page incluante (son
$Pile[0]).

-- Fil

Nicolas Hoizey | 5 Mar 13:47
Gravatar

Re: ! Inclure avec tout le contexte : critère {env}

>> Y compris la pile de doublons, par exemple ?
>
> Non, ça ne transmet que ce qui est dans le #ENV de la page  
> incluante (son
> $Pile[0]).

OK, merci.

-Nicolas

--

-- 
Nicolas "Brush" HOIZEY
Clever Age   : http://www.clever-age.com/
Gastero Prod : http://www.gasteroprod.com/
Photos : http://www.flickr.com/gp/38608514 <at> N00/M1c002

Olivier G. | 5 Mar 14:21

RE: ! [spip-dev] Inclure avec tout le contexte : critère {env}

> > introduction de la notation <INCLURE{fond=truc}{env}> qui 
> passe tout 
> > l'environnement de la page incluante a la page incluse ;

Et le cache du squelette inclus est généré pour chaque tableau de paramètres
?

> Y compris la pile de doublons, par exemple ?

9a serait catastrophique, mais on pourrait envisager une écriture
<INCLURE{fond=truc}{env}{articles:doublons [nomme]}> ? Articles permet
d'indiquer de quel type de contenu on se passe le doublons.

Fil | 5 Mar 14:29
Favicon
Gravatar

Re: ! Inclure avec tout le contexte : critère {env}

> > > introduction de la notation <INCLURE{fond=truc}{env}> qui passe tout
> > > l'environnement de la page incluante a la page incluse ;
> 
> Et le cache du squelette inclus est généré pour chaque tableau de paramètres ?

Pour <INCLURE{env}> bien sûr, c'est le prix à payer ; pour Gribouille
j'utilise #INCLURE{env} : jje mets dans squelettes/ deux fichiers :

article-607.html
        [(#INCLURE{fond=gribouille/article}{env})]

rubrique-607.html
        [(#INCLURE{fond=gribouille/rubrique}{env})]

et le répertoire gribouille doit se trouver dans le chemin (par exemple
nstallé comme sous-répertoire de squelettes/ )

> > Y compris la pile de doublons, par exemple ?
> 
> 9a serait catastrophique, mais on pourrait envisager une écriture
> <INCLURE{fond=truc}{env}{articles:doublons [nomme]}> ? Articles permet
> d'indiquer de quel type de contenu on se passe le doublons.

Les doublons et l'INCLURE c'est une autre affaire, à traiter séparément. Y
a-t-il un ticket ?

-- Fil

Cedric | 5 Mar 15:48

Re: ! [spip-dev] Inclure avec tout le contexte : critère {env}

Fil a écrit :
> New Revision: 8825
>
> introduction de la notation <INCLURE{fond=truc}{env}> qui passe tout
> l'environnement de la page incluante a la page incluse ; au passage j'ai
> nettoye plusieurs facilites dans le debugueur, la pagination etc, qui
> devenaient des bugs si on creusait un peu (notamment : avec #INCLURE le
> contexte affiche par le debugueur etait celui de la page incluante)
>
> Ca fonctionne aussi avec #INCLURE.
>   
Par contre une boucle paginée dans un squelette inclus fonctionnait sans 
difficulté en faisant simplement
<INCLURE{fond=..}{self=#SELF}>
ou même simplement sans cache

Ce qui ne sera plus le cas, il faudra explicitement passer {debut_xx} ou 
{env} dans le INCLURE.
D'où une cassure de compatibilité des squelettes existant.
C'est anecdotique quand on a une seule boucle paginée, moins quand on a 
des inclusions en cascades et des boucles paginées au 2eme ou 3eme 
niveau d'inclusion.
Cedric

Fil | 5 Mar 17:24
Favicon
Gravatar

Re: ! Inclure avec tout le contexte : critère {env}

> Par contre une boucle paginée dans un squelette inclus fonctionnait sans 
> difficulté en faisant simplement
> <INCLURE{fond=..}{self=#SELF}>
> ou même simplement sans cache

C'est {self=#SELF} qui est obsolète ; on pourrait le mapper sur {env} pour
restaurer cette compatibilité ascendante.

> des inclusions en cascades et des boucles paginées au 2eme ou 3eme 
> niveau d'inclusion.

Il est fou :)

-- Fil

Cedric | 5 Mar 17:37

Re: ! [spip-dev] Inclure avec tout le contexte : critère {env}

Fil a écrit :
>> Par contre une boucle paginée dans un squelette inclus fonctionnait sans 
>> difficulté en faisant simplement
>> <INCLURE{fond=..}{self=#SELF}>
>> ou même simplement sans cache
>>     
>
> C'est {self=#SELF} qui est obsolète ; on pourrait le mapper sur {env} pour
> restaurer cette compatibilité ascendante.
>   
ah oui ça serait bien je pense, ça sauverais les squelettes.
>> des inclusions en cascades et des boucles paginées au 2eme ou 3eme 
>> niveau d'inclusion.
>>     
>
> Il est fou :)
>   
heu ... quoi ? il est compliqué mon squelette ?
Cédric
izo | 5 Mar 17:42

Re: ! Inclure avec tout le contexte : critère {env}

Oui , il est compliqué :)
Le 5 mars 07 à 17:37, Cedric a écrit :

Fil a écrit :
>> Par contre une boucle paginée dans un squelette inclus  
>> fonctionnait sans
>> difficulté en faisant simplement
>> <INCLURE{fond=..}{self=#SELF}>
>> ou même simplement sans cache
>>
>
> C'est {self=#SELF} qui est obsolète ; on pourrait le mapper sur  
> {env} pour
> restaurer cette compatibilité ascendante.
>
ah oui ça serait bien je pense, ça sauverais les squelettes.
>> des inclusions en cascades et des boucles paginées au 2eme ou 3eme
>> niveau d'inclusion.
>>
>
> Il est fou :)
>
heu ... quoi ? il est compliqué mon squelette ?
Cédric
_______________________________________________
liste: http://listes.rezo.net/mailman/listinfo/spip-dev
doc: http://www.spip.net/
dev: http://trac.rezo.net/trac/spip/
irc://irc.freenode.net/spip

(Continue reading)

toutati | 5 Mar 21:34
Favicon

Re: ! Inclure avec tout le contexte : critère {env}

izo a écrit :
> Oui , il est compliqué :)
> Le 5 mars 07 à 17:37, Cedric a écrit :
> 
> Fil a écrit :
>>> Par contre une boucle paginée dans un squelette inclus  
>>> fonctionnait sans
>>> difficulté en faisant simplement
>>> <INCLURE{fond=..}{self=#SELF}>
>>> ou même simplement sans cache
>>>
>> C'est {self=#SELF} qui est obsolète ; on pourrait le mapper sur  
>> {env} pour
>> restaurer cette compatibilité ascendante.
>>
> ah oui ça serait bien je pense, ça sauverais les squelettes.
>>> des inclusions en cascades et des boucles paginées au 2eme ou 3eme
>>> niveau d'inclusion.
>>>
>> Il est fou :)
>>
> heu ... quoi ? il est compliqué mon squelette ?
> Cédric

Aaah! ç'est déjà beaucoup mieux !
Mais dîtes moi, j'ai dut passer des critères par mes_fonctions pour 
gérer un modele qui est multi criteres et qui du coup fait des gros SET 
[(#SET{mode,[(#ENV|mode|sinon{#ENV{mode,gauche}})]})] qui passent.
Mais comment fait on pour mettre en cache un #INSERT_HEAD avec une css 
dynamique mais qui reste du coup statique sauf quand je recalcule...
(Continue reading)

Fil | 5 Mar 22:04
Favicon
Gravatar

Re: ! Inclure avec tout le contexte : critère {env}

> Mais dîtes moi, j'ai dut passer des critères par mes_fonctions pour 
> gérer un modele qui est multi criteres et qui du coup fait des gros SET 
> [(#SET{mode,[(#ENV|mode|sinon{#ENV{mode,gauche}})]})] qui passent.
> Mais comment fait on pour mettre en cache un #INSERT_HEAD avec une css 
> dynamique mais qui reste du coup statique sauf quand je recalcule...
> Mais je mélange peut être les pinceaux...

S'il est dynamique, évite de le mettre dans un inclure partagé, ou donne à
cet inclure un #CACHE{0} ?

-- Fil

toutati | 5 Mar 23:01
Favicon

Re: ! Inclure avec tout le contexte : critère {env}

Fil a écrit :
>> Mais dîtes moi, j'ai dut passer des critères par mes_fonctions pour 
>> gérer un modele qui est multi criteres et qui du coup fait des gros SET 
>> [(#SET{mode,[(#ENV|mode|sinon{#ENV{mode,gauche}})]})] qui passent.
>> Mais comment fait on pour mettre en cache un #INSERT_HEAD avec une css 
>> dynamique mais qui reste du coup statique sauf quand je recalcule...
>> Mais je mélange peut être les pinceaux...
> 
> S'il est dynamique, évite de le mettre dans un inclure partagé, ou donne à
> cet inclure un #CACHE{0} ?

Voui, en fait ma question était incomplète,
je souhaite me servir d'une css dynamique via le pipeline insert_head. 
Or, je ne peux me servir que du php

$flux .=
if (isset($_GET['mode'])) $mode="&amp;mode=".$_GET['mode'];
$flux .= "<link rel='stylesheet' 
href='".generer_url_public('walmacss')."".$mode."

mais ça reste statique, sauf au recalcul, aussi comment mettre le cache 
à zéro là dessus? est ce seulement envisageable?

'rci bien
touti
Fil | 5 Mar 23:47
Favicon
Gravatar

Re: ! Inclure avec tout le contexte : critère {env}

> >> Mais dîtes moi, j'ai dut passer des critères par mes_fonctions pour 
> >> gérer un modele qui est multi criteres et qui du coup fait des gros SET 
> >> [(#SET{mode,[(#ENV|mode|sinon{#ENV{mode,gauche}})]})] qui passent.
> >> Mais comment fait on pour mettre en cache un #INSERT_HEAD avec une css 
> >> dynamique mais qui reste du coup statique sauf quand je recalcule...
> >> Mais je mélange peut être les pinceaux...
> > 
> > S'il est dynamique, évite de le mettre dans un inclure partagé, ou donne à
> > cet inclure un #CACHE{0} ?
> 
> Voui, en fait ma question était incomplète,
> je souhaite me servir d'une css dynamique via le pipeline insert_head. 

Si celui-ci ne te convient pas, il faut peut-être changer de pipeline :)

Il y en  un (affichage_final) qui intervient tout à la fin, quand la page
est terminée, prête à être envoyée ;tu peux te brancher là, comme ça pas de
cache, ton php tourne à chaque hit.

C'est là que les crayons s'installent, par exemple ; il est fortement
recommandé de ne pas trop surcharger ce pipeline, notamment éviter d'y
mettre de gros preg_replace ou des accès à la base ; mais des trucs rapides
c'est ok.

-- Fil

toutati | 5 Mar 23:57
Favicon

Re: ! Inclure avec tout le contexte : critère {env}

Fil a écrit :
>>>> Mais dîtes moi, j'ai dut passer des critères par mes_fonctions pour 
>>>> gérer un modele qui est multi criteres et qui du coup fait des gros SET 
>>>> [(#SET{mode,[(#ENV|mode|sinon{#ENV{mode,gauche}})]})] qui passent.
>>>> Mais comment fait on pour mettre en cache un #INSERT_HEAD avec une css 
>>>> dynamique mais qui reste du coup statique sauf quand je recalcule...
>>>> Mais je mélange peut être les pinceaux...
>>> S'il est dynamique, évite de le mettre dans un inclure partagé, ou donne à
>>> cet inclure un #CACHE{0} ?
>> Voui, en fait ma question était incomplète,
>> je souhaite me servir d'une css dynamique via le pipeline insert_head. 
> 
> Si celui-ci ne te convient pas, il faut peut-être changer de pipeline :)
> 
> Il y en  un (affichage_final) qui intervient tout à la fin, quand la page
> est terminée, prête à être envoyée ;tu peux te brancher là, comme ça pas de
> cache, ton php tourne à chaque hit.

yep, ça marche mais ç'est tellement final, que c'est après </html> !
donc autant que je le mette en dur dans mon modele dans ce cas, au mieux 
ce serait avant le </head>
Je vais chercher sur les autres plugins, si une idée merci de me dire
++
alm
> 
> C'est là que les crayons s'installent, par exemple ; il est fortement
> recommandé de ne pas trop surcharger ce pipeline, notamment éviter d'y
> mettre de gros preg_replace ou des accès à la base ; mais des trucs rapides
> c'est ok.
> 
(Continue reading)

Fil | 6 Mar 00:08
Favicon
Gravatar

Re: ! Inclure avec tout le contexte : critère {env}

> yep, ça marche mais ç'est tellement final, que c'est après </html> !

tu as le droit de faire quelque chose comme :
         str_replace('</head>', 'tontruc'.'</head>', $flux)

(pas obligée d'ajouter ton code "à la fin").

-- Fil

toutati | 6 Mar 00:36
Favicon

Re: ! Inclure avec tout le contexte : critère {env}

Fil a écrit :
>> yep, ça marche mais ç'est tellement final, que c'est après </html> !
> 
> tu as le droit de faire quelque chose comme :
>          str_replace('</head>', 'tontruc'.'</head>', $flux)
> 
> (pas obligée d'ajouter ton code "à la fin").
> 
> -- Fil

nickel

$flux .= str_replace("</head>", montruc()."</head>", $flux);
	return $flux;

Nicolas Hoizey | 6 Mar 09:32
Gravatar

Re: ! Inclure avec tout le contexte : critère {env}

> $flux .= str_replace("</head>", montruc()."</head>", $flux);
> 	return $flux;

Attention, le ".=" au lieu d'un simple "=" fait que tu doubles le flux !

-Nicolas

--

-- 
Nicolas "Brush" HOIZEY
Clever Age   : http://www.clever-age.com/
Gastero Prod : http://www.gasteroprod.com/
Photos : http://www.flickr.com/gp/38608514 <at> N00/M1c002

toutati | 6 Mar 15:55
Favicon

Re: ! Inclure avec tout le contexte : critère {env}

Nicolas Hoizey a écrit :
>> $flux .= str_replace("</head>", montruc()."</head>", $flux);
>> 	return $flux;
> 
> Attention, le ".=" au lieu d'un simple "=" fait que tu doubles le flux !
> 
> 
> -Nicolas
> 

Arf, oui bien sur! merci ça m'a évité de chercher trop longtemps! et ça 
marche très bien

Bon bon, ça avance lentement mon affaire,
maintenant je souhaiterais récupérer les arguments du modele qui sont 
inclus dans le texte de l'article pour modifier mon appel,

par exemple le mode
<galerie48|walma|mode=vignettes>

il y a bien le global $contexte qui me renvoie l'id_article, mais celui 
de la page (id_article=77), pas du modele bien sur
je ne sais vraiment pas trop quelle méthode appliquer pour analyser le 
modele inclus et en sortir les parametres...
merci de vos idées!
touti
spipcarto | 5 Mar 17:32

Re: ! [spip-dev] Inclure avec tout le contexte : critère {env}

Fil a écrit :
> New Revision: 8825
>
> introduction de la notation <INCLURE{fond=truc}{env}> qui passe tout
> l'environnement de la page incluante a la page incluse ; au passage j'ai
> nettoye plusieurs facilites dans le debugueur, la pagination etc, qui
> devenaient des bugs si on creusait un peu (notamment : avec #INCLURE le
> contexte affiche par le debugueur etait celui de la page incluante)
>   
cool !

Est-il prevu que ca redescende en branche 1.9.2 ou non ?

merci.

@++

Vincent ROBERT | 9 Mar 00:29

Re: ! Inclure avec tout le contexte : critère {env}

Fil a écrit :
> New Revision: 8825
> 
> introduction de la notation <INCLURE{fond=truc}{env}> qui passe tout
> l'environnement de la page incluante a la page incluse ; au passage j'ai
> nettoye plusieurs facilites dans le debugueur, la pagination etc, qui
> devenaient des bugs si on creusait un peu (notamment : avec #INCLURE le
> contexte affiche par le debugueur etait celui de la page incluante)

C'est vraiment super parce que la méthode env=#ENV été un peu violente (une histoire 
tableau sérialisé. m'a t'on expliqué.)

Thanks.

cent20


Gmane