Browse Source

Vérification saisies_option_data : ne pas utiliser saisies_chaine2tableau(), car en pratique le résultat est quasi inutilisable pour la vérif. Donc quitte à parser autrement dans la vérif, autant ne faire qu'un passage.

A noter que vu la faible importance des corrections des 2 précédents
commits, on ne va pas releaser.
pull/62/head
Maïeul 2 years ago
parent
commit
2d2aa6d0e6
  1. 17
      verifier/saisies_option_data.php

17
verifier/saisies_option_data.php

@ -25,9 +25,6 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* Retourne une chaine vide si c'est valide, sinon une chaine expliquant l'erreur.
*/
function verifier_saisies_option_data_dist($valeur, $options = array()) {
include_spip('inc/saisies');
$tableau = saisies_chaine2tableau($valeur);
$tableau_plat = saisies_aplatir_tableau($tableau);
// Le pb des clés implicites : on veut les interdire, car, bien que cela soit supporté historiquement par saisies_chaine2tableau, elles ne permettent pas d'assurer la cohésion dans le temps des données.
// Voir discussion sur https://git.spip.net/spip-contrib-extensions/saisies/issues/54
@ -58,14 +55,18 @@ function verifier_saisies_option_data_dist($valeur, $options = array()) {
// Les sous groupes sont-ils interdits?
if (
isset($options['interdire_sous_groupes'])
and $options['interdire_sous_groupes']
and $tableau_plat !== $tableau) {
return _T('saisies:verifier_saisies_option_data_sous_groupes_interdits');
isset($options['interdire_sous_groupes'])
and $options['interdire_sous_groupes']
) {
foreach($lignes as $ligne) {
if (substr($ligne,0,1) === '*') {
return _T('saisies:verifier_saisies_option_data_sous_groupes_interdits');
}
}
}
// Y-a-il des clés en double ?
// Idem on ne peut pas partir de $tableau car celui-ci a deja dédoublé
// On ne peut pas partir de $tableau_plat = saisies_aplatir_tableau(saisies_chaine2tableau($saisies)) car dans un $array php les clés sont déjà dédoublés
preg_match_all('#^(.*)\|#m',$valeur,$les_cles);
$les_cles = $les_cles[1];
if ($les_cles != array_unique($les_cles)) {

Loading…
Cancel
Save