Skip to content
Extraits de code Groupes Projets
Valider 9ccabb51 rédigé par rastapopoulos@spip.org's avatar rastapopoulos@spip.org
Parcourir les fichiers

Une page d'aide permettant de générer les références comme pour le plugin Saisies.

Et une nouvelle vérification nommée "comparaison_champ" qui permet de comparer une valeur avec un champ du _request(). Je ne sais pas si c'est la meilleure manière de faire, donc pour l'instant je n'ai pas décris le YAML, c'est à tester...
parent 660229b6
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
* text=auto !eol * text=auto !eol
aide/verifier.html -text
aide/verifier_fonctions.php -text
images/icones-infos.txt -text images/icones-infos.txt -text
images/verifier-128.png -text images/verifier-128.png -text
inc/is_email.php -text inc/is_email.php -text
...@@ -15,6 +17,7 @@ lang/verifier_pt_br.php -text ...@@ -15,6 +17,7 @@ lang/verifier_pt_br.php -text
/plugin.xml -text /plugin.xml -text
test/verifier.html -text test/verifier.html -text
verifier/code_postal.php -text verifier/code_postal.php -text
verifier/comparaison_champ.php -text
verifier/date.php -text verifier/date.php -text
verifier/date.yaml -text verifier/date.yaml -text
verifier/decimal.php -text verifier/decimal.php -text
......
#SET{infos,#VAL|verifier_generer_aide}
#SET{verifications,#GET{infos}|table_valeur{verifications}}
#SET{options,#GET{infos}|table_valeur{options}}
[(#ENV{format}|=={brut}|oui)<textarea style="width:100%; height:100%;">]
Sauter à : <a href="#liste_verifications">Toutes les vérifications</a>, <a href="#liste_options_verifications">Toutes les options</a>
<h2 class="h2 spip">Utilisation des options</h2>
<B_options_tableau>
<div style="overflow:auto;">
<table class="spip">
<thead>
<tr class="first_row">
<th>Options \ Vérifications</th>
<BOUCLE_verifications_tableau_th(POUR){tableau #GET{verifications}}>
<th><a href="#verification_#CLE">#CLE</a></th>
</BOUCLE_verifications_tableau_th>
</tr>
</thead>
<tbody>
<BOUCLE_options_tableau(POUR){tableau #GET{options}}>
<tr class="tr_liste [(#COMPTEUR_BOUCLE|alterner{row_odd,row_even})]">
<th><a href="#option_#CLE">#CLE</a></th>
<BOUCLE_verifications_tableau(POUR){tableau #GET{verifications}}>
<td>[(#CLE|in_array{[(#_options_tableau:VALEUR|table_valeur{utilisee_par})]}|?{'X','-'})]</td>
</BOUCLE_verifications_tableau>
</tr>
</BOUCLE_options_tableau>
</tbody>
</table>
</div>
</B_options_tableau>
<h2 class="h2 spip" id="liste_verifications">Toutes les vérifications</h2>
<BOUCLE_verifications(POUR){tableau #GET{verifications}}>
<h3 class="h3 spip" id="verification_#CLE">[(#VALEUR|table_valeur{titre})] (#CLE)</h3>
<p class="description">
<strong>Description :</strong> [(#VALEUR|table_valeur{description})]
</p>
<p class="options">
<strong>Options :</strong>
<BOUCLE_options_verification(POUR){tableau #VALEUR|table_valeur{options}}{", "}><a href="#option_#CLE">#CLE</a></BOUCLE_options_verification>
</p>
</BOUCLE_verifications>
<h2 class="h2 spip" id="liste_options_verifications">Toutes les options</h2>
<BOUCLE_options(POUR){tableau #GET{options}}>
[(#SET{label, [(#VALEUR|table_valeur{label}|sinon{[(#VALEUR|table_valeur{label_case})]})]})]
<h3 class="h3 spip" id="option_#CLE">[(#GET{label}|?{#GET{label} [ ((#CLE))], #CLE})]</h3>
[<p class="description">
<strong>Description :</strong> (#VALEUR|table_valeur{explication}|sinon{[(#VALEUR|table_valeur{label}|?{[(#VALEUR|table_valeur{label_case})]})]})
</p>]
<B_utilisee_par>
<p class="utilisee_par">
<strong>Utilisée par :</strong>
<BOUCLE_utilisee_par(POUR){tableau #VALEUR|table_valeur{utilisee_par}}{", "}><a href="#verification_#VALEUR">#VALEUR</a></BOUCLE_utilisee_par>
</p>
</B_utilisee_par>
<B_choix>
<p class="choix_possibles">
<strong>Choix possibles :</strong>
<ul class="spip">
<BOUCLE_choix(POUR){tableau #VALEUR|table_valeur{datas}}>
<li>"#CLE" : #VALEUR</li>
</BOUCLE_choix>
</ul>
</p>
</B_choix>
</BOUCLE_options>
[(#ENV{format}|=={brut}|oui)</textarea>]
<?php
// Sécurité
if (!defined('_ECRIRE_INC_VERSION')) return;
include_spip('inc/verifier');
include_spip('inc/saisies');
/*
* Génère une page d'aide listant toutes les saisies et leurs options
*/
function verifier_generer_aide(){
// On a déjà la liste par saisie
$verifications = verifier_lister_disponibles();
// On construit une liste par options
$options = array();
foreach ($verifications as $type_verif=>$verification){
$options_verification = saisies_lister_par_nom($verification['options'], false);
foreach ($options_verification as $nom=>$option){
// Si l'option n'existe pas encore
if (!isset($options[$nom])){
$options[$nom] = _T_ou_typo($option['options']);
}
// On ajoute toujours par qui c'est utilisé
$options[$nom]['utilisee_par'][] = $type_verif;
}
ksort($options_verification);
$verifications[$type_verif]['options'] = $options_verification;
}
ksort($options);
return array(
'verifications' => $verifications,
'options' => $options
);
}
?>
...@@ -7,6 +7,12 @@ $GLOBALS[$GLOBALS['idx_lang']] = array( ...@@ -7,6 +7,12 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
// E // E
'erreur_code_postal' => 'Ce code postal est incorrect.', 'erreur_code_postal' => 'Ce code postal est incorrect.',
'erreur_comparaison_egal' => 'La valeur doit être égale au champ "@nom_champ@"',
'erreur_comparaison_egal_type' => 'La valeur doit être égale et de même type que le champ "@nom_champ@"',
'erreur_comparaison_grand' => 'La valeur doit être supérieure au champ "@nom_champ@"',
'erreur_comparaison_grand_egal' => 'La valeur doit être supérieure ou égale au champ "@nom_champ@"',
'erreur_comparaison_petit' => 'La valeur doit être inférieure au champ "@nom_champ@"',
'erreur_comparaison_petit_egal' => 'La valeur doit être inférieure ou égale au champ "@nom_champ@"',
'erreur_date' => 'La date n\'est pas valide.', 'erreur_date' => 'La date n\'est pas valide.',
'erreur_date_format' => 'Le format de la date n\'est pas accepté.', 'erreur_date_format' => 'Le format de la date n\'est pas accepté.',
'erreur_decimal' => 'La valeur doit être un nombre décimal.', 'erreur_decimal' => 'La valeur doit être un nombre décimal.',
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
[en]Control API [en]Control API
</multi> </multi>
</nom> </nom>
<auteur>RastaPopoulos</auteur> <auteur>[Les Développements Durables->http://www.ldd.fr]</auteur>
<icon>images/verifier-128.png</icon> <icon>images/verifier-128.png</icon>
<licence>GPL v3</licence> <licence>GPL v3</licence>
<version>0.1.9</version> <version>0.1.9</version>
......
<?php
// Sécurité
if (!defined("_ECRIRE_INC_VERSION")) return;
/**
* Compare la valeur avec un autre champ du _request().
*
* @param string $valeur La valeur à vérifier.
* @param array $option Un éventuel tableau d'options.
* @return string Retourne une chaine vide si c'est valide, sinon une chaine expliquant l'erreur.
*/
function verifier_comparaison_champ_dist($valeur, $options=array()){
include_spip('inc/filtres');
// On vérifie qu'on a bien un champ à comparer
if (!$champ = $options['champ'] or !is_scalar($champ)) return true;
else $valeur_champ = _request($champ);
// On cherche le nom du champ
$nom_champ = $options['nom_champ'] ? $options['nom_champ'] : $champ;
switch ($options['comparaison']){
case 'petit':
return $valeur < $valeur_champ ? '' : _T('verifier:erreur_comparaison_petit', array('nom_champ'=>$nom_champ));
break;
case 'petit_egal':
return $valeur <= $valeur_champ ? '' : _T('verifier:erreur_comparaison_petit_egal', array('nom_champ'=>$nom_champ));
break;
case 'grand':
return $valeur > $valeur_champ ? '' : _T('verifier:erreur_comparaison_grand', array('nom_champ'=>$nom_champ));
break;
case 'grand_egal':
return $valeur >= $valeur_champ ? '' : _T('verifier:erreur_comparaison_grand_egal', array('nom_champ'=>$nom_champ));
break;
case 'egal_type':
return $valeur === $valeur_champ ? '' : _T('verifier:erreur_comparaison_egal_type', array('nom_champ'=>$nom_champ));
break;
case 'egal':
case default:
return $valeur == $valeur_champ ? '' : _T('verifier:erreur_comparaison_egal', array('nom_champ'=>$nom_champ));
break;
}
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter