Skip to content
  • cerdic's avatar
    On ajoute aux boucles un index command dans \$Numrows, ce qui permet de faire... · 01d75113
    cerdic a rédigé
    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
    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.
    01d75113