Samx Here
n1udSecurity


Server : Apache
System : Linux ks5.tuic.fr 6.1.0-18-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.76-1 (2024-02-01) x86_64
User : pragmatice ( 1003)
PHP Version : 8.2.24
Disable Function : NONE
Directory :  /home/pragmatice/public_html/lesite/plugins/saisies/saisies/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/pragmatice/public_html/lesite/plugins/saisies/saisies/selection_multiple.php
<?php

/**
 * Fonctions spécifiques à une saisie
 *
 * @package SPIP\Saisies\selection_multiple
**/


// Sécurité
if (!defined('_ECRIRE_INC_VERSION')) {
	return;
}


/**
 * Vérifie que la valeur postée
 * correspond aux valeurs proposées lors de la config de valeur
 * @param string $valeur la valeur postée
 * @param array $description la description de la saisie
 * @return bool true si valeur ok, false sinon,
**/
function selection_multiple_valeurs_acceptables($valeur, $description) {
	if (!is_array($valeur)) {
		if ($valeur) {
			$valeur = explode(" ", $valeur);
		} else {
			$valeur = array();
		}
	}
	$data = saisies_aplatir_tableau(saisies_trouver_data($description, true));
	if (isset($valeur['choix_alternatif']) and isset($description['options']['choix_alternatif']) and $description['options']['choix_alternatif'] == 'on') {
		unset ($valeur['choix_alternatif']);
	}
	if (saisies_verifier_gel_saisie($description) and isset($description['options']['defaut'])) {
		// Si valeur gelée, on vérifie qu'il n'y ni plus ni moins dans ce qui a été postée
		$defaut = saisies_valeur2tableau($description['options']['defaut']);
		$intersection = array_intersect($defaut, $valeur);
		// 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é
		// 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
		// Sinon c'est bon
		if (count($intersection) != count($defaut)) {
			return false;
		} elseif (count($intersection) != count($valeur)) {
			return false;
		} else {
			return true;
		}
	} else {
		//A-t-on essayé des poster des valeurs supplémentaires?
		$choix_possibles = array_keys($data, true);
		if (isset($description['options']['disable_choix'])) {
			include_spip('inc/saisies');
			$disable_choix = saisies_normaliser_disable_choix($description['options']['disable_choix']);
			$choix_possibles = array_diff($choix_possibles, $disable_choix);
		}
		$diff = array_diff($valeur, $choix_possibles);
		if (count($diff)) {
			return false;
		}
	}
	return true;
}


SAMX