WP File Manager
Current Path:
/
home
/
argothem
/
www
/
organecyberpresse
/
plugins
/
auto
/
verifier
/
v3.8.0
/
inc
/
Name
Action
..
is_email.php
Edit
verifier.php
Edit
Editing: verifier.php
<?php /** * Fonctions de l'API de vérification * * @plugin verifier * @copyright 2018 * @author Les Développements Durables * @licence GNU/GPL */ // Sécurité if (!defined('_ECRIRE_INC_VERSION')) { return; } /** * Fonction de base de l'API de vérification. * * @param mixed $valeur La valeur a verifier. * @param string $type Le type de verification a appliquer. * @param array $options Un eventuel tableau d'options suivant le type. * @param array $valeur_normalisee * Si des options de verification modifient la valeur entrante (normalisent), * alors la valeur modifie sera stockee dans cette variable. * @return string Retourne une chaine vide si c'est valide, sinon une chaine expliquant l'erreur. */ function inc_verifier_dist($valeur, $type, $options = null, &$valeur_normalisee = null) { $erreur = []; // On vérifie que les options sont bien un tableau if (!is_array($options)) { $options = []; } $valeur_vide = (is_null($valeur) || (is_string($valeur) && $valeur == '')); // Si la valeur est vide, il n'y a rien a verifier donc c'est bon if ( $valeur_vide && empty($options['normaliser']) ) { return ''; } // On cherche si une fonction correspondant au type existe if ($verifier = charger_fonction($type, 'verifier', true)) { $erreur = $verifier($valeur, $options, $valeur_normalisee); } // On passe le tout dans le pipeline du meme nom $erreur = pipeline( 'verifier', [ 'args' => [ 'valeur' => $valeur, 'valeur_normalisee' => &$valeur_normalisee, 'type' => $type, 'options' => $options, ], 'data' => $erreur ] ); // Si la valeur est vide, on garde juste la normalisation if ($valeur_vide) { $erreur = ''; } return $erreur; } /** * Liste toutes les vérifications possibles * * @param string $repertoire * Dans quel repertoire chercher les yaml. * * @return array Retourne un tableau listant les vérifications et leurs options */ function verifier_lister_disponibles($repertoire = 'verifier') { static $verifications = []; if (!isset($verifications[$repertoire])) { $verifications[$repertoire] = []; $liste = find_all_in_path("$repertoire/", '.+[.]yaml$'); if (count($liste)) { foreach ($liste as $fichier => $chemin) { $type = preg_replace(',[.]yaml$,i', '', $fichier); $dossier = str_replace($fichier, '', $chemin); // On ne garde que les vérifications qui ont bien la fonction ! if ( charger_fonction($type, $repertoire, true) && ( is_array($verif = verifier_charger_infos($type, $repertoire)) ) ) { $verifications[$repertoire][$type] = $verif; } } } } return $verifications[$repertoire]; } /** * Fonction de callback pour uasort() * Afin de trier selon le titre * @param array $array1 premier élèment * @param array $array2 second élèment * @return int 1,0,-1 **/ function verifier_trier_par_titre($array1, $array2) { if (isset($array1['titre']) && isset($array2['titre'])) { if ($array1['titre'] == $array2['titre']) { return 0; } elseif ($array1['titre'] > $array2['titre']) { return 1; } else { return -1; } } else { return 0; } } /** * Charger les informations contenues dans le yaml d'une vérification * * @note * Cette fonction nécessite le plugin Yaml * ET un des plugins fournissant _T_ou_typo() : Bonux ou Saisies. * * @param string $type_verif * Le type de la vérification * * @param string $repertoire * Dans quel repertoire chercher les yaml. * * @return array Un tableau contenant le YAML décodé */ function verifier_charger_infos($type_verif, $repertoire = 'verifier') { $verif = []; include_spip('inc/utils'); // pour test_plugin_actif() if (test_plugin_actif('yaml')) { include_spip('inc/yaml'); include_spip('inc/filtres'); // pour appliquer_filtre() $fichier = find_in_path("$repertoire/$type_verif.yaml"); $verif = yaml_decode_file($fichier); if (is_array($verif)) { $verif['titre'] = ($verif['titre'] ?? '') ? appliquer_filtre($verif['titre'], '_T_ou_typo', true) : $type_verif; $verif['description'] = ($verif['description'] ?? '') ? appliquer_filtre($verif['description'], '_T_ou_typo', true) : ''; $verif['icone'] = ($verif['icone'] ?? '') ? appliquer_filtre($verif['icone'], '_T_ou_typo', true) : ''; } } return $verif; }