Skip to content
Extraits de code Groupes Projets

fix(147): Traitement `email` : faire fonctionner correctement l'option `masquer_champs_vides`

Fermé Maïeul requested to merge gh-fdf4c590/148/unknown/refs/pull/148/head into master

Cette option a été introduite par moi (!) en 11ad7c44.

J'ai testé en reprenant le code d'alors... et ca ne marchait déjà pas.

En fait je ne vois pas comment cela aurait pu marcher, puisque saisie affiche Sans réponse si aucune valeur n'est passé pour une saisie.

Ce sont bien les saisies qu'il faut filtrer, pas les valeurs.

fix #147 (closed)

Rapports de requête de fusion

L'approbation est facultative

Fermée par avatar (mars 14, 2025 2:56am UTC)

Détails de la fusion

  • Les modifications n'ont pas été fusionnées dans master.

Activité

Filtrer l'activité
  • Approbations
  • Assignés et relecteurs
  • Commentaires (des bots)
  • Commentaires (des utilisateurs)
  • Branches et validations
  • Modifications
  • Labels
  • État de verrouillage
  • Mentions
  • État de la demande de fusion
  • Suivi
  • @maieul a ajouté 2 révisions : 4cfa566c67e91627d8b677a0fd2423c7ae51957a 316c758afda4f45662930be5aed757f4cf5ad5f6

  • @rastapopoulos a approuvé cette PR (316c758afda4f45662930be5aed757f4cf5ad5f6)

  • @maieul a force-pushed 2 révisions : 316c758afda4f45662930be5aed757f4cf5ad5f6 b7b03c349e23f880beeb4ce11407b59b4f1b80a3

  • Bonjour Il restait un souci avec les champs imbriqués (par ex. plusieurs fieldset) et de type 'date'. Ceci fonctionne, mais peut sans doute être amélioré :

    	// Récuperer les valeurs saisies
    	
    	
    	list($valeurs,$valeurs_libellees) = formidable_tableau_valeurs_saisies($saisies);
    	
    	
    	// Traiter le masquage des champs vides si demandé
    	// 1-Supprimer	les champs vides de la liste
    	// 2-Ajouter les conteneurs avec au moins un champ non-vide
    	
    	if (isset($options['masquer_champs_vides']) and $options['masquer_champs_vides'] == 'on') 
    		{
    		$valeurs_libellees = array_filter($valeurs_libellees);
    		$valeurs = array_filter($valeurs);	
    		
    		// Cas particulier rencontré avec les champs de type 'date'
    		// nettoyer les incohérences avec les champs sans réponse mais avec une valeur associée 
    		foreach ($valeurs as $key => $value){
    				if(($valeurs_libellees[$key] === "sans reponse") && ($value != ''))
    				{unset($valeurs[$key]);}
    				}
    				
    		// liste des clés à ne pas vérifier, il en manque sûrement		
    		$cles = array('options', 'verifier', 'saisie', 'identifiant');
    		
    		//Vérifier si le champ doit être affiché car il contient des saisies valides
    		function valider_champs($saisie = array(), &$valeurs = array()) {
    			global $cles;	
    			foreach($saisie as $key => $value) {
    		// $saisie est une saisie valide si une valeur est assignée ->	 $retour='true'					
    				if ($key === "options" ){
    							$retour = $retour || (isset($valeurs[$saisie["options"]["nom"]]));			
    						}	
    											
    		// Appel récursif de la fonction pour lire un autre niveau de profondeur, en évitant les itérations inutiles.
    				if((is_array($value)) && (!in_array($key, $cles, true))){	
    					$retour_fct = valider_champs($value, $valeurs);	
    					}
    				$retour = $retour || $retour_fct;	
    				}
    				
    			if ($retour && (isset($saisie["options"]["nom"]))){
    			// Assigne une valeur au conteneur - fieldset - pour afficher le champ
    				if(!isset($valeurs[$saisie["options"]["nom"]])) {
    				$valeurs[$saisie["options"]["nom"]] = true; 
    					}
    				}
    			return $retour;
    		}
    	
    		valider_champs($saisies, $valeurs);		
    	
    		$saisies_vides = array_diff(array_keys($valeurs_libellees), array_keys($valeurs));	
    			foreach ($saisies_vides as $saisie_vide) {
    				$saisies_fond_notification = saisies_supprimer($saisies_fond_notification, $saisie_vide);
    				}	
    	}//Fin traitement des saisies vides
  • @philbzh a fermé cette PR

  • Auteur Maintainer

    je rouvre la PR.

    Mouais, on va essayer de faire plus propre en implémentant une fonction dans saisies.

    A suivre donc, mais ca ne sera pas pour tout de suite, je préfère prevenir.

  • @maieul a force-pushed 2 révisions : b7b03c349e23f880beeb4ce11407b59b4f1b80a3 6ce7a2de

Veuillez vous inscrire ou vous connecter pour répondre
Chargement en cours