Changeset 118189 in spip-zone for _plugins_/noizetier_layout/trunk/saisies
- Timestamp:
- Oct 17, 2019, 11:31:10 PM (15 months ago)
- Location:
- _plugins_/noizetier_layout/trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/noizetier_layout/trunk
- Property subgit:lock:a9a242b1e7b5b7eb008acaa911e0ec9118c48857 deleted
-
Property
subgit:lock:225580721580a21740a8afb4161b391682a5bcd4
set to
2019-10-18T01:33:52.257
-
_plugins_/noizetier_layout/trunk/saisies/medias_checkbox.php
r118170 r118189 1 1 <?php 2 3 2 /** 4 3 * Fonctions spécifiques à une saisie 5 4 * 6 5 * @package SPIP\Saisies\checkbox 7 **/6 */ 8 7 9 8 … … 22 21 */ 23 22 function medias_checkbox_valeurs_acceptables($valeur, $description) { 24 include_spip('saisies/selection_multiple'); 25 return selection_multiple_valeurs_acceptables($valeur, $description); 23 24 $acceptable = true; 25 26 if (!is_array($valeur)) { 27 if ($valeur) { 28 $valeur = explode(' ', $valeur); 29 } else { 30 $valeur = array(); 31 } 32 } else { 33 $valeur = array_values($valeur); 34 } 35 if (isset($valeur['choix_alternatif']) and isset($description['options']['choix_alternatif']) and $description['options']['choix_alternatif'] == 'on') { 36 unset ($valeur['choix_alternatif']); 37 } 38 if (saisies_verifier_gel_saisie($description) and isset($description['options']['defaut'])) { 39 // Si valeur gelée, on vérifie qu'il n'y ni plus ni moins dans ce qui a été postée 40 $defaut = saisies_valeur2tableau($description['options']['defaut']); 41 $intersection = array_intersect($defaut, $valeur); 42 // L'intersection doit avoir le même nombre de valeur que le défaut. S'il a moins, c'est qu'on supprimé des valeurs, ou renommé 43 // L'intersection doit avoir le même nombre de valeur que posté. S'il y en a moins, c'est qu'on a posté de nouvelle valeur 44 // Sinon c'est bon 45 if (count($intersection) != count($defaut)) { 46 $acceptable = false; 47 } elseif (count($intersection) != count($valeur)) { 48 $acceptable = false; 49 } else { 50 $acceptable = true; 51 } 52 } else { 53 // A-t-on essayé des poster des valeurs supplémentaires? 54 // Ajouter les variantes médias aux datas 55 $data = saisies_aplatir_tableau(saisies_trouver_data($description, true)); 56 if (!empty($description['options']['medias'])) { 57 include_spip('inc/noizetier_layout'); 58 $medias = array_filter(array_keys(noizetier_layout_decrire_grille('medias'))); 59 foreach ($data as $classe => $label) { 60 foreach ($medias as $media) { 61 $classe_media = noizetier_layout_creer_classe_media($classe, $media); 62 $data[$classe_media] = $label; 63 } 64 } 65 } 66 $choix_possibles = array_keys($data, true); 67 if (isset($description['options']['disable_choix'])) { 68 $disable_choix = explode(',', $description['options']['disable_choix']); 69 $choix_possibles = array_diff($choix_possibles, $disable_choix); 70 } 71 $diff = array_diff($valeur, $choix_possibles); 72 if (count($diff)) { 73 $acceptable = false; 74 // var_dump($valeur); 75 } 76 } 77 78 return $acceptable; 26 79 } -
_plugins_/noizetier_layout/trunk/saisies/medias_radio.php
r118170 r118189 1 1 <?php 2 3 2 /** 4 3 * Fonctions spécifiques à une saisie 5 4 * 6 5 * @package SPIP\Saisies\checkbox 7 **/6 */ 8 7 9 8 … … 22 21 */ 23 22 function medias_radio_valeurs_acceptables($valeur, $description) { 24 include_spip('saisies/ selection');25 return selection_valeurs_acceptables($valeur, $description);23 include_spip('saisies/medias_selection'); 24 return medias_selection_valeurs_acceptables($valeur, $description); 26 25 } 27 -
_plugins_/noizetier_layout/trunk/saisies/medias_selection.php
r118170 r118189 1 1 <?php 2 3 2 /** 4 3 * Fonctions spécifiques à une saisie 5 4 * 6 5 * @package SPIP\Saisies\checkbox 7 **/6 */ 8 7 9 8 … … 17 16 * Vérifie que la valeur postée 18 17 * correspond aux valeurs proposées lors de la config de valeur 19 * @param string $valeur la valeur postée18 * @param string|array $valeur la valeur postée 20 19 * @param array $description la description de la saisie 21 20 * @return bool true si valeur ok, false sinon, 22 21 */ 23 22 function medias_selection_valeurs_acceptables($valeur, $description) { 24 include_spip('saisies/selection'); 25 return selection_valeurs_acceptables($valeur, $description); 23 24 $acceptable = false; 25 $options = $description['options']; 26 27 // La valeur peut être un tableau avec les valeurs pour chaque média. 28 $valeurs = is_array($valeur) ? array_filter($valeur) : array($valeur); 29 30 foreach ($valeurs as $k => $valeur) { 31 if ($valeur == '' and !isset($options['obligatoire'])) { 32 $acceptable = true; 33 } 34 if (saisies_verifier_gel_saisie($description) and isset($options['defaut'])) { 35 $acceptable = ($valeur == $options['defaut']); 36 } else { 37 $data = saisies_trouver_data($description, true); 38 $data = saisies_aplatir_tableau($data); 39 $data = array_keys($data); 40 // Ajouter les variantes médias aux datas 41 if (!empty($description['options']['medias'])) { 42 include_spip('inc/noizetier_layout'); 43 $medias = array_filter(array_keys(noizetier_layout_decrire_grille('medias'))); 44 foreach ($data as $classe) { 45 foreach ($medias as $media) { 46 $data[] = noizetier_layout_creer_classe_media($classe, $media); 47 } 48 } 49 } 50 if (isset($options['disable_choix'])) { 51 $disable_choix = explode(',', $options['disable_choix']); 52 $data = array_diff($data, $disable_choix); 53 } 54 $acceptable = (in_array($valeur, $data)); 55 } 56 if (!$acceptable) { 57 break; 58 } 59 } 60 61 return $acceptable; 26 62 }
Note: See TracChangeset
for help on using the changeset viewer.