Skip to content

On ajoute aux boucles un index command dans \$Numrows, ce qui permet de faire remonter le tableau servant a generer la requete SQL a l'appelant

cerdic a demandé de fusionner gh-3abd0771/76/unknown/refs/pull/76/head vers master

L'interet est de pouvoir acceder a la requete dans la partie alternative de la boucle pour faire quelque chose comme

<BOUCLE_test(ARTICLES){id_article>0}{par titre}/>
[(#REQUETE_BOUCLE|exporter_donnees_dans_un_fichier_format{csv})]
<//B_test>

avec une definition de balise


/**
 * Compile la balise `#REQUETE_BOUCLE` qui retourne le tableau $command
 * servant a generer la requete de la boucle
 *
 * @param Champ $p
 *     Pile au niveau de la balise
 * @return Champ
 *     Pile complétée par le code à générer
 **/
function balise_REQUETE_BOUCLE_dist($p) {
	$b = index_boucle_mere($p);
	if ($b === '') {
		$msg = array('zbug_champ_hors_boucle', array('champ' => zbug_presenter_champ($p)));
		erreur_squelette($msg, $p);
	} else {
		$p->code = "\$Numrows['$b']['command']";
		$p->boucles[$b]->numrows = true;
		$p->interdire_scripts = false;

		return $p;
	}

	return $p;
}

Il est ainsi possible de definir des fonctions php qui vont travailler sur le même jeu de donnees que la boucle utilisee dans le squelette, pour par exemple ici, generer un export complet au format csv, ou tout autre type de traitement des donnees.

Rapports de requête de fusion