[Contourné] Accéder à un champ de l'objet courant

Une inclusion reçoit un argument ‹ champ › dans son environnement, qui contient le nom d’un champ d’un objet.
Cette inclusion fait une boucle simple sur ces objets.
Je me sens démuni : quel est le/le meilleur/ moyen pour, à l’intérieur de cette boucle, accéder à la valeur de ce champ pour l’objet courant ?

#CHAMP_SQL #CHAMP_SQL - SPIP est sympa mais « c’est obligatoirement une constante qui doit servir de paramètre ».

Bon je vais faire autrement… mais la question demeure, à titre d’énigme (voire de jeu… si ya amateur)

Ça m’a questionné, et y a pas de solution sans réécrire la balise #INFO_

<BOUCLE_a(ARTICLES){par hasard}{0,1}>
id: #ID_ARTICLE<br />
titre: #TITRE<br />
info #ENV{champ}: #INFO_CHAMP{article,#ID_ARTICLE,#ENV{champ}}<br />
<hr />
</BOUCLE_a>
function balise_INFO_CHAMP($p) {
	$type_objet = interprete_argument_balise(1, $p);
	$id_objet = interprete_argument_balise(2, $p);
	$champ = interprete_argument_balise(3, $p);
	if (!$type_objet || !$id_objet || !$champ) {
		$msg = _T('zbug_balise_sans_argument', ['balise' => ' ' . zbug_presenter_champ($p)]);
		erreur_squelette($msg, $p);
		$p->interdire_scripts = true;

		return $p;
	}

	$_params = '[';
	$nb_params = is_countable($p->param[0]) ? count($p->param[0]) : 0; // 1ère valeur vide donc 1 en plus
	for ($i = 4; $i < $nb_params; $i++) {
		$_params .= interprete_argument_balise($i, $p) . ',';
	}
	$_params .= ']';

	$p->code = "generer_objet_info($id_objet, $type_objet, $champ, " . ($p->etoile ? _q($p->etoile) : "''") . ", $_params)";
	$p->interdire_scripts = true;

	return $p;
}

À noter donc que ça crée une requête SQL en plus à utiliser ce #INFO_CHAMP (tout comme #INFO_xx)

1 « J'aime »

Woaow, bravo Mathieu !