Valider 5a9d92dc rédigé par Maïeul's avatar Maïeul
Parcourir les fichiers

Perf

- par securité, `saisies_chaine2tableau()` est appelé dans les squelettes des
saisies concernée, car permet de s'assurer d'avoir systématiquement un
array. En effet, si la valeur qu'on recoit est `null`, alors `saisies_chaine2tableau()` renvoi un `array` qu'en même, utile pour les test sur les valeurs par défaut. On pourrait s'en passer en utilisant |in_any à la place de |in_array, mais en terme de perf on aurait une tentative de unserialize, et c'est kiff-kiff->jouons la sécurité de ne rien casser.
- on garde cette sécurité pour les options autre que `data` et assimilés, car `saisies_chaine2tableau()` ne fait en soit rien de
bien méchant si on a deja un tableau
- par contre inutile de passer ce tableau systématiquement par
`_T_ou_typo()`, qui, elle,  utilise une regexp un peu lourde + fait appel à
typo systématiquement
- pour s'assurer d'avoir le formatage correct lorsqu'on passe des
chaines dans data, on fait l'appel à `T_ou_typo()` sur `data` dans
`saisies_generer_vue()` et dans `saisies_generer_html()`.
parent a78842ff
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+5 −6
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -132,9 +132,9 @@ function saisies_generer_html($champ, $env = array()) {
	// Peut-être des transformations à faire sur les options textuelles
	$options = isset($champ['options']) ? $champ['options'] : array();
	foreach ($options as $option => $valeur) {
		if ($option == 'datas' or $option == 'data') {
			// exploser une chaine datas en tableau (applique _T_ou_typo sur chaque valeur)
			$options[$option] = saisies_chaine2tableau($valeur);
		if (substr($option, 0, 4) === 'data' and !is_array($valeur)) {//data, ou datas, ou data_rows, ou data_cols
			// exploser une chaine datas en tableau
			$options[$option] = _T_ou_typo(saisies_chaine2tableau($valeur), 'multi');
		} else {
			$options[$option] = _T_ou_typo($valeur, 'multi');
		}
@@ -251,9 +251,8 @@ function saisies_generer_vue($saisie, $env = array(), $env_obligatoire = array()
	// Peut-être des transformations à faire sur les options textuelles
	$options = $saisie['options'];
	foreach ($options as $option => $valeur) {
		if ($option == 'datas' or $option == 'data') {
			// exploser une chaine datas en tableau (applique _T_ou_typo sur chaque valeur)
			$options[$option] = saisies_chaine2tableau($valeur);
		if (substr($option, 0, 4) === 'data' and !is_array($valeur)) {//data, ou datas, ou data_rows, ou data_cols
			$options[$option] = _T_ou_typo(saisies_chaine2tableau($valeur), 'multi');
		} else {
			$options[$option] = _T_ou_typo($valeur, 'multi');
		}
+1 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -78,8 +78,7 @@ function saisies_chaine2tableau($chaine, $separateur = "\n") {
		return $tableau;
	}
	elseif (is_array($chaine)) {
		// Si c'est déjà un tableau on lui applique _T_ou_typo (qui fonctionne de manière récursive avant de le renvoyer
		return _T_ou_typo($chaine, 'multi');
		return $chaine;
	}
	else {
		return array();
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
[(#REM) data peut être une chaine qu'on sait décomposer ]
#SET{data, #ENV*{data, #ENV*{datas}}|saisies_chaine2tableau|saisies_aplatir_tableau}
#SET{data, #ENV*{data, #ENV*{datas}}|saisies_aplatir_tableau}
#SET{valeur, #ENV{valeur}|saisies_valeur2tableau{#GET{data}}}
<B_choix>
<ul class="spip">
+2 −5
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<BOUCLE_test_export(CONDITION){si #ENV{valeur_uniquement}}>
[(#REM) dans le cas d'un export des réponses, on construit des données structurées,exploitables par un script ]

[(#REM) data peut être une chaine qu'on sait décomposer ]
#SET{data_cols, #ENV*{data_cols}|saisies_chaine2tableau}
#SET{data_rows, #ENV*{data_rows}|saisies_chaine2tableau}

[(#REM) valeur doit être un tableau ! ]
#SET{valeur, #ENV{valeur_forcee, #ENV{valeur}}|saisies_valeur2tableau}

#SET{separateur,'|'}

<BOUCLE_lignes (DATA) {source table,#GET{data_rows}}{'<br>'}>
<BOUCLE_lignes (DATA) {source table,#ENV{data_rows}}{'<br>'}>
	#SET{choix,#ARRAY}
	#SET{libelles, #VALEUR|explode{'|'}}
	<B_colonnes>
	<BOUCLE_colonnes (DATA) {source table,#GET{data_cols}}>
	<BOUCLE_colonnes (DATA) {source table,#ENV{data_cols}}>
		#SET{coche, #CLE|=={#GET{valeur/#_lignes:CLE}}}
		[(#ENV{multiple}|et{#ENV{multiple}|!={non}}|oui)
			#SET{coche, #CLE|in_array{#GET{valeur/#_lignes:CLE, #ARRAY}}}
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
[(#REM) data peut être une chaine qu'on sait décomposer ]
#SET{data, #ENV*{data, #ENV*{datas}}|saisies_chaine2tableau|saisies_aplatir_tableau}
#SET{data, #ENV*{data, #ENV*{datas}}|saisies_aplatir_tableau}
[(#ENV{cle_ou_valeur,valeur}|=={cle}|?{
	[<p>(#ENV{valeur})</p>],
	[<p>(#GET{data/#ENV{valeur}})</p>]
Chargement en cours