[spip-dev] 1 petite Question squelette

Hello,

est il possible (et comment ?) dans un squelette d'injecter une variable
facilement ?

ex dans le skeleton:

Alexandre Hélias [LNG] a écrit :

Hello,

est il possible (et comment ?) dans un squelette d'injecter une variable
facilement ?

ex dans le skeleton:

#########

<?php $id_article=42; ?>

<BOUCLE_zz(ARTICLE){id_article}>
#TITRE
</BOUCLE_zz>

#########

comment est il possible d'affecter ce {id_article} ??
Merci d'avance

Alex

Par l'url ...

justement je ne passe pas par l'url..
j'ai essayé de charger $_REQUEST avant de poster ma question.

autre test:

<?php $zeid = 1; ?>

<BOUCLE_article(ARTICLES){id_article=<?php echo $zeid; ?>}>
#TITRE
</BOUCLE_article>

renvoit :

}> // function
}> BOUCLE_articlehtml_361b065f95c01231671fda3b299be9bc(&$Cache, &$Pile,
}> &$doublons, &$Numrows, $SP) { $old_lang = $GLOBALS['spip_lang']; //
}> REQUETE $result = spip_abstract_select( array("articles.titre",
}> "articles.lang", "articles.id_article"), # SELECT array("articles AS
}> articles"), # FROM array("articles.statut='publie'"), # WHERE '', #
}> GROUP '', # ORDER '', # LIMIT '', # sous 1, # compte 'articles', #
}> table '_article', # boucle ''); # serveur $t0 = ""; $SP++; // RESULTATS
}> while ($Pile[$SP] = @spip_abstract_fetch($result,"")) { if
}> (!$GLOBALS["forcer_lang"]) if ($x = $Pile[$SP]["lang"])
}> $GLOBALS['spip_lang'] = $x; // lang_select
}> $Cache['id_article'][$Pile[$SP]['id_article']] = 1; // invalideurs $t0
}> .= (' ' . /* #TITRE */ interdire_scripts(typo($Pile[$SP]['titre'])) . '
}> '); } $GLOBALS['spip_lang'] = $old_lang;
}> @spip_abstract_free($result,''); return $t0; } // // Fonction
}> principale du squelette SQUEL/ixarm/xha_spipsux.html // function
}> html_361b065f95c01231671fda3b299be9bc ($Cache, $Pile,
}> $doublons=array(), $Numrows='', $SP=0) { $t0 = (' ' .
}> BOUCLE_articlehtml_361b065f95c01231671fda3b299be9bc($Cache, $Pile,
}> $doublons, $Numrows, $SP) . ' '); return array( 'texte' => $t0,
}> 'squelette' => 'html_361b065f95c01231671fda3b299be9bc', 'process_ins'
}> => ((strpos($t0,'<'.'?')=== false) ? 'html' : 'php'), 'invalideurs' =>
}> $Cache ); } ?>

autre test:

<?php $zeid = 1; ?>

<BOUCLE_article(ARTICLES){id_article=<?php echo $zeid; ?>}>
#TITRE
</BOUCLE_article>

Marchera jamais. Le PHP est exécuté après les boucles.
Tu peux essayer de mettre $id_article = 1 dans le fichier article.php3,
pas dans le squelette. Je ne sais pas si ça marche avec le nouveau
compilateur.

// Fonction
}> principale du squelette SQUEL/ixarm/xha_spipsux.html

Faut pas s'énerver :wink:

a+

Antoine.

Antoine wrote:

Le vendredi 29 octobre 2004 à 18:34 +0200, Alexandre Hélias [LNG] a
écrit :

autre test:

<?php $zeid = 1; ?>

<BOUCLE_article(ARTICLES){id_article=<?php echo $zeid; ?>}>
#TITRE
</BOUCLE_article>

Marchera jamais. Le PHP est exécuté après les boucles.
Tu peux essayer de mettre $id_article = 1 dans le fichier article.php3,
pas dans le squelette. Je ne sais pas si ça marche avec le nouveau
compilateur.

// Fonction
}> principale du squelette SQUEL/ixarm/xha_spipsux.html

Faut pas s'énerver :wink:

a+

Antoine.

Y'a pas un truc style "...?var=^nomvariablephp" dans le nouveau compilo?
Et aussi {critère=%nomvariablephp}

David

C'est fondamentalement exclu parce qu'il peut y avoir collision entre ta variable
et celles utilisées par le compilateur, et donc ce n'est pas fiable.
La seule dérogation possible sont les variables dans l'URL parce que c'est une structure à part.

      Emmanuel

Déesse A. wrote:

Déesse A. a écrit :

Y'a pas un truc style "...?var=^nomvariablephp" dans le nouveau compilo?
Et aussi {critère=%nomvariablephp}
   
C'est fondamentalement exclu parce qu'il peut y avoir collision entre ta variable
et celles utilisées par le compilateur, et donc ce n'est pas fiable.
La seule dérogation possible sont les variables dans l'URL parce que c'est une structure à part.

le compilateur n'utilises pas des variables prefixés?
Sinon, tu crées un joli tableau en global $COMPILO['nomvariablephp']
Et ensuite le compilo accedes à ce tableau sans faire des pirouettes avec les urls.
Existe-t-il une documentation technique du compilo, j'ai bien vu le wiki de spip-contrib, mais je voudrais du plus technique.

M.

Y'a pas un truc style "...?var=^nomvariablephp" dans le nouveau compilo?
Et aussi {critère=%nomvariablephp}

C'est fondamentalement exclu parce qu'il peut y avoir collision entre ta variable
et celles utilisées par le compilateur, et donc ce n'est pas fiable.
La seule dérogation possible sont les variables dans l'URL parce que c'est une structure à part.

le compilateur n'utilises pas des variables prefixés?

Pas pour l'instant en tout cas

Sinon, tu crées un joli tableau en global $COMPILO['nomvariablephp']

La globalité est LAIDE par définition, car elle empeche tout programme de se rappeler récursivement.

Et ensuite le compilo accedes à ce tableau sans faire des pirouettes avec les urls.
Existe-t-il une documentation technique du compilo, j'ai bien vu le wiki de spip-contrib, mais je voudrais du plus technique.

Il n'y en a pas et je déconseille de se fier au code existant: tout cela peut encore bouger
et à la limite ce compilateur pourra un jour être écrit dans un autre langage.
S'il y a des choses qui manquent dans ce qu'on peut faire avec un squelette, il faut formuler
une demande d'extension profitable à tout le monde, pas des tuyaux techniques pour faire des bidouilles dans son coin. Ce n'est que comme ça que le projet peut avancer.

      Emmanuel

Sinon, tu crées un joli tableau en global $COMPILO['nomvariablephp']

La globalité est LAIDE par définition, car elle empeche tout programme de se rappeler récursivement.

heureux de te l'entendre dire. Si c'est un point de départ pour nettoyer Spip, le compilo est une révolution.
D'un autre coté, la différence entre $_GET['toto'] et $GLOBALS['COMPILO']['toto'] n'est pas trés grande.

Il n'y en a pas et je déconseille de se fier au code existant: tout cela peut encore bouger

Au moins la stratégie, le point de vue, pour faciliter la compréhension.

et à la limite ce compilateur pourra un jour être écrit dans un autre langage.

Tu penses à quoi? un make && make install pour les squelettes?

S'il y a des choses qui manquent dans ce qu'on peut faire avec un squelette, il faut formuler
une demande d'extension profitable à tout le monde, pas des tuyaux techniques pour faire des bidouilles dans son coin. Ce n'est que comme ça que le projet peut avancer.

Beinh, je voulais un point de départ pour comprendre et ensuite contribuer.

M.