Valider a37dbca2 rédigé par marcimat@rezo.net's avatar marcimat@rezo.net
Parcourir les fichiers

Ticket #4300, Suite du critère `{id_?}` : On introduit un moyen d’ajouter des...

Ticket #4300, Suite du critère `{id_?}` : On introduit un moyen d’ajouter des commentaires utiles au mode debug.
Ces commentaires sont ajoutés dans le commentaire déjà existant qui précède le code php de la boucle (qui indiquait déjà le nom de la boucle et ses critères).

On utilise cela dans le critère id pour lister, en mode debug, les champs utilisés par le critère.
Ça permet de vérifier la magie. Et potentiellement de servir à d’autres critères.

À toutes fins utiles, on ajoute aussi un modificateur, avec la liste des champs dedans.
parent e2d4e467
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+1 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -1245,6 +1245,7 @@ function public_compiler_dist($squelette, $nom, $gram, $sourcefile, $connect = '
					$boucle->type_requete .
					" " .
					str_replace('*/', '* /', public_decompiler($boucle, $gram, 0, 'criteres')) .
					($boucle->debug ? "\n *\n * " . implode("\n * ", $boucle->debug) . "\n" : '') .
					" */\n";
			} else {
				$decomp = ("\n/*\n" .
+8 −3
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -1603,13 +1603,18 @@ function critere_where_dist($idb, &$boucles, $crit) {
 * @return void
 */
function critere_id__dist($idb, &$boucles, $crit) {
	/** @var Boucle $boucle */
	$boucle = $boucles[$idb];

	$champs = lister_champs_selection_conditionnelle(
		$boucles[$idb]->show['table'],
		$boucles[$idb]->show,
		$boucles[$idb]->sql_serveur
		$boucle->show['table'],
		$boucle->show,
		$boucle->sql_serveur
	);

	$boucle->debug[] = "id_ : " . implode(', ', $champs);
	$boucle->modificateur['id_'] = $champs;

	// créer un critère {id_xxx?} de chaque champ retenu
	foreach ($champs as $champ) {
		$critere_id_table = new Critere;
+5 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -543,6 +543,11 @@ class Boucle {
	 */
	public $iterateur = ''; // type d'iterateur

	/**
	 * @var array $debug Textes qui seront insérés dans l’entête de boucle du mode debug
	 */
	public $debug = [];

	// obsoletes, conserves provisoirement pour compatibilite
	public $tout = false;
	public $plat = false;