inclure et SPIP 2.0.0 beta2 [12888]

Bonsoir,
maintenant que l'image aleatoire est reglee,(voir le tiket plus haut)
j'ai toujours ce probleme d'inclure:

<#INCLURE{fond=inc-menu}{id_rubrique}>
(le fichier "inc-menu.html" etant dans un dossier "inc" dans mon dossier "squelettes")

la commande ne me renvoie rien, ou plutot un message d'erreur:

Warning: ksort() expects parameter 1 to be array, null given in /mnt/pingouin/00sites/10-03-2008-www/www/spip2beta/ecrire/public/assembler.php(533) : eval()'d code on line 340

Warning: Invalid argument supplied for foreach() in /mnt/pingouin/00sites/10-03-2008-www/www/spip2beta/ecrire/public/assembler.php(533) : eval()'d code on line 341

et lorsque je met le code de la page inclus a la plce de l'inclure,
  cela fonctionne....

pourtant les autres inclure (dont les pages sont dans ce dossier "inc"),
fonctionnent bien.
(je glisse le fichier inc-menu.html en joint.)

une idee?

merci,
amicalement,
Jmarc Dufour

inc-menu.html (2.69 KB)

Salut,

l'erreur php te dit exactement ce qui va pas: la variable $menu[$i] n'est pas un tableau.

Alors, pourqoi?
parce que global $menu; retourne rien du tout

Alors pourquoi?
parce que ton inclure est mis en cache séparément du reste de ton squelette et que donc, au moment du calcul du inclure, le global n'est pas déclaré.

Alors que faire?
NE PAS METTRE DE PHP DANS TES SQUELETTES
surtout si tu ne sais pas ce que tu fais. Et pis, si tu sais ce que tu fais, alors tu peux faire des filtres et des balises et des choses propres.

Mais je veux vraiment faire un hack php, ça a l'air cool!
si tu utilise #INCLURE au lieu de <INCLURE> le squelette n'est pas mis en cache, peut être ça résoudra ton problème.

Pierre

jmarco wrote:

Bonsoir,
maintenant que l'image aleatoire est reglee,(voir le tiket plus haut)
j'ai toujours ce probleme d'inclure:

<#INCLURE{fond=inc-menu}{id_rubrique}>
(le fichier "inc-menu.html" etant dans un dossier "inc" dans mon dossier
"squelettes")

la commande ne me renvoie rien, ou plutot un message d'erreur:

Warning: ksort() expects parameter 1 to be array, null given in
/mnt/pingouin/00sites/10-03-2008-www/www/spip2beta/ecrire/public/assembler.php(533)
: eval()'d code on line 340

Warning: Invalid argument supplied for foreach() in
/mnt/pingouin/00sites/10-03-2008-www/www/spip2beta/ecrire/public/assembler.php(533)
: eval()'d code on line 341

et lorsque je met le code de la page inclus a la plce de l'inclure,
cela fonctionne....

pourtant les autres inclure (dont les pages sont dans ce dossier "inc"),
fonctionnent bien.
(je glisse le fichier inc-menu.html en joint.)

une idee?

merci,
amicalement,
Jmarc Dufour

Mais je veux vraiment faire un hack php, ça a l'air cool!
si tu utilise #INCLURE au lieu de <INCLURE> le squelette n'est pas mis en cache, peut être ça résoudra ton problème.

Mortimer tu mens!!! et c'est pas bô de mentir ... :stuck_out_tongue: (du moins je crois :wink: )

Si c'est mis en cache ... mais pas dans le squelette global :

<INCLURE{fond=truc}> est inclu dans le même cache que le squelette appelant
[(#INCLURE{fond=truc})] dispose quand à lui de son propre cache... réglable donc individuellement ... pour ne pas le mettre en cache #CACHE{0} sera donc nécessaire ... isn't it?

kent1

Pierre

jmarco wrote:

Bonsoir,
maintenant que l'image aleatoire est reglee,(voir le tiket plus haut)
j'ai toujours ce probleme d'inclure:

<#INCLURE{fond=inc-menu}{id_rubrique}>
(le fichier "inc-menu.html" etant dans un dossier "inc" dans mon dossier
"squelettes")

la commande ne me renvoie rien, ou plutot un message d'erreur:

Warning: ksort() expects parameter 1 to be array, null given in
/mnt/pingouin/00sites/10-03-2008-www/www/spip2beta/ecrire/public/assembler.php(533)
: eval()'d code on line 340

Warning: Invalid argument supplied for foreach() in
/mnt/pingouin/00sites/10-03-2008-www/www/spip2beta/ecrire/public/assembler.php(533)
: eval()'d code on line 341

et lorsque je met le code de la page inclus a la plce de l'inclure,
cela fonctionne....

pourtant les autres inclure (dont les pages sont dans ce dossier "inc"),
fonctionnent bien.
(je glisse le fichier inc-menu.html en joint.)

une idee?

merci,
amicalement,
Jmarc Dufour

_______________________________________________
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 ou http://embed.mibbit.com/?server=irc.freenode.net&channel=%23spip

Le 8 oct. 08 à 04:54, Drouet quentin a écrit :

<#INCLURE{fond=inc-menu}{id_rubrique}>

il faut choisir entre <INCLURE et [(#INCLURE

(le fichier "inc-menu.html" etant dans un dossier "inc" dans mon dossier
"squelettes")

la commande ne me renvoie rien, ou plutot un message d'erreur:

si inc-menu est dans inc alors il faut écrire <INCLURE{fond=inc/inc-menu}{id_rubrique}>

pierre

Bonjour a tous,
et merci d'avance,

Pierre Fiches a écrit :

Le 8 oct. 08 à 04:54, Drouet quentin a écrit :

<#INCLURE{fond=inc-menu}{id_rubrique}>

il faut choisir entre <INCLURE et [(#INCLURE

...ne vous disputez pas, j'ai fait une faute de frappe.. :wink:

(le fichier "inc-menu.html" etant dans un dossier "inc" dans mon dossier
"squelettes")

la commande ne me renvoie rien, ou plutot un message d'erreur:

si inc-menu est dans inc alors il faut écrire <INCLURE{fond=inc/inc-menu}{id_rubrique}>

oui, j'avais bien declare le dossier "inc" dans config/mes options.php ,

  $GLOBALS['dossier_squelettes'] = "squelettes/sculpteurs3:squelettes/sculpteurs3/inc:squelettes/sculpteurs3/javascript:squelettes/SpipClear";

mais ca ne fonctionne toujours pas :frowning: et toujours le meme message d'erreur.
Ce menu vient de cette contrib: Menu hierarchique, rubriques/articles classés - SPIP-Contrib

merci encore
Jmarc

Drouet quentin wrote:

Mortimer tu mens!!! et c'est pas bô de mentir ... :stuck_out_tongue: (du moins je crois
:wink: )

vraiment? t sûr de toi avant de faire de telles accusations? vraiment sûr? :stuck_out_tongue:

Si c'est mis en cache ... mais pas dans le squelette global :

<INCLURE{fond=truc}> est inclu dans le même cache que le squelette appelant
[(#INCLURE{fond=truc})] dispose quand à lui de son propre cache...
réglable donc individuellement ... pour ne pas le mettre en cache
#CACHE{0} sera donc nécessaire ... isn't it?

et paf.. nope c'est pas ça... #INCLURE est inclus direct dans le squelette alors que <INCLURE> a sont propre cache.

t'aurais pu verifier simplement en lisant la doc:

ou alors un peu plus difficilement en testant et regardant ce qui est mis en cache...

Pierre