Changeset 75034 in spip-zone


Ignore:
Timestamp:
Aug 28, 2013, 10:04:07 AM (8 years ago)
Author:
kent1@…
Message:

Revoir le pipeline vérifier qui n'envoyait pas l'id_auteur dans les fonctions de vérification de la signature et email au moins

On en profite pour revoir la doc dans le code et celle des fonctions de vérification

Pour éviter une erreur de boucle si absence du plugin pages uniques on ajoute la conf du règlement via un inclure

Version 3.2.14

Location:
_plugins_/inscription/trunk
Files:
1 added
7 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/inscription/trunk/formulaires/configurer_inscription3.html

    r73522 r75034  
    9393                                [(#REM) - CHAMPS PRESENTS DANS LES CHAMPS EXTRAS? - ]
    9494                                #INCLURE{fond=fonds/inscription3_cextras,env}
    95                                
     95
    9696                                [(#REM) - GREFFONS - ]
    9797                                #PIPELINE{i3_cfg_form}
     
    105105                                                                label_case=<:inscription3:label_reglement_explication:>})]
    106106                                                        <BOUCLE_si_page(CONDITION){si #PLUGIN{pages}|oui}>
    107                                                         <BOUCLE_page_reglement(ARTICLES){si #ENV{reglement}|=={on}}{page=reglement}{!par date}{0,1}>
    108                                                         <li>
    109                                                                 <p class="explication">
    110                                                                         <:inscription3:explication_reglement_article{titre=#TITRE,url=#URL_ARTICLE}:>
    111                                                                 </p>
    112                                                         </li>
    113                                                         </BOUCLE_page_reglement>
    114                                                         </B_page_reglement>
    115                                                         [(#SAISIE{selecteur_article,
    116                                                                 reglement_article,
    117                                                                 option_intro=<:inscription3:option_choisissez:>,
    118                                                                 recursif=oui,
    119                                                                 label=<:inscription3:label_reglement_article:>})]
    120                                                         <//B_page_reglement>
     107                                                        <INCLURE{fond=formulaires/configurer_inscription3_reglement,env} />
    121108                                                        </BOUCLE_si_page>
    122109                                                        </B_si_page>
  • _plugins_/inscription/trunk/inscription3_pipelines.php

    r74793 r75034  
    22/**
    33 * Plugin Inscription3 pour SPIP
    4  * © 2007-2012 - cmtmt, BoOz, kent1
     4 * © 2007-2013 - cmtmt, BoOz, kent1
    55 * Licence GPL v3
    66 *
    7  * Fonctions d'insertion dans les pipelines
     7 * Utilisations de pipelines
     8 *
     9 * @package SPIP\Mots\Pipelines
    810 */
    911
     
    298300 * Vérifie des valeurs spécifiques dans le formulaire d'inscription
    299301 *
    300  * @param array $flux Le contexte d'environnement du pipeline
    301  * @return array $flux Le contexte d'environnement modifié
     302 * @pipeline formulaire_verifier
     303 * @param array $flux
     304 *              Le contexte d'environnement du pipeline
     305 * @return array $flux
     306 *              Le contexte d'environnement modifié
    302307 */
    303308function inscription3_formulaire_verifier($flux){
    304309        include_spip('inc/config');
    305         if ($flux['args']['form']=='configurer_inscription3'){
     310        if ($flux['args']['form'] == 'configurer_inscription3'){
    306311                /**
    307312                 * On supprime l'ancienne configuration pour avoir la nouvelle dans l'ordre
     
    310315                effacer_meta('inscription3');
    311316        }
    312         if ($flux['args']['form']=='oubli'){
     317        if($flux['args']['form']=='oubli'){
    313318                $erreurs = $flux['args']['erreurs'];
    314319                if(!$erreurs OR (count($erreurs) == 0)){
     
    344349
    345350                if($flux['args']['form'] == 'inscription'){
    346                         if(lire_config('inscription3/pass_obligatoire') == 'on' && lire_config('inscription3/pass') == 'on'){
    347                                 if(!_request('pass') OR !_request('password1'))
    348                                         $erreurs['pass'] = _T('info_obligatoire');
    349                         }
     351                        if(lire_config('inscription3/pass_obligatoire') == 'on' && lire_config('inscription3/pass') == 'on' && (!_request('pass') OR !_request('password1')))
     352                                $erreurs['pass'] = _T('info_obligatoire');
    350353                        else if(lire_config('inscription3/pass') == 'on'){
    351                                 if(_request('pass') != _request('password1')){
     354                                if(_request('pass') != _request('password1'))
    352355                                        $erreurs['pass'] = _T('info_passes_identiques');
    353                                 }else if(strlen(_request('pass')) > 0){
     356                                else if(strlen(_request('pass')) > 0){
    354357                                        $pass_min = !defined('_PASS_MIN') ? 6 : _PASS_MIN;
    355358                                        if (strlen(_request('pass')) < $pass_min)
     
    357360                                }
    358361                        }
    359                                
    360                         if($erreurs['reglement']){
     362
     363                        if($erreurs['reglement'])
    361364                                $erreurs['reglement'] = _T('inscription3:erreur_reglement_obligatoire');
    362                         }
    363                 }
    364                
     365                }
     366
    365367                if(count($erreurs))
    366368                        $erreurs_obligatoires = true;
    367        
     369
    368370            $valeurs = array();
    369        
     371
    370372            $verifier = charger_fonction('verifier','inc',true);
    371                
     373
    372374            if($verifier){
    373375                /**
    374376                         * Vérification des champs de champs extras
    375377                         */
     378                        $options = array();
     379                        if($flux['args']['form'] == 'editer_auteur' && intval(_request('id_auteur'))){
     380                                $infos_auteurs = sql_fetsel('*','spip_auteurs','id_auteur='.intval(_request('id_auteur')));
     381                                if(intval($infos_auteurs['id_auteur']) > 0)
     382                                        $options['id_auteur'] = $infos_auteurs['id_auteur'];
     383                        }
     384
    376385                        $champs_a_verifier = pipeline('i3_verifications_specifiques',array());
    377386                        //gere la correspondance champs -> _request(champs)
     
    382391                                 */
    383392                                if($flux['args']['form'] == 'editer_auteur' && intval(_request('id_auteur')) > 0 && in_array($type['type'],array('email','signature'))){
    384                                         $infos_auteurs = sql_fetsel('*','spip_auteurs','id_auteur='.intval(_request('id_auteur')));
    385                                         if($type['type'] == 'email' && isset($type['options']['disponible'])){
    386                                                 if($infos_auteurs[$clef] == _request($clef))
    387                                                         unset($type['options']['disponible']);
    388                                         }else if($type['type'] == 'signature'){
    389                                                 if($infos_auteurs[$clef] == _request($clef))
    390                                                         continue;
    391                                         }
     393                                        if($type['type'] == 'email' && isset($type['options']['disponible']) && $infos_auteurs[$clef] == _request($clef))
     394                                                unset($type['options']['disponible']);
     395                                        else if(($type['type'] == 'signature') && ($infos_auteurs[$clef] == _request($clef)))
     396                                                continue;
    392397                                }
    393398                                if(!isset($erreurs[$clef]) && _request($clef)){
    394399                                        $valeurs[$clef] = trim(_request($clef));
    395                                         $type['options'] = array_merge(is_array($type['options']) ? $type['options'] : array(),$_GET);
     400                                        $type['options'] = array_merge(array_merge(is_array($type['options']) ? $type['options'] : array(),$_GET),$options);
    396401                                        $erreurs[$clef] = $verifier($valeurs[$clef],$type['type'],$type['options']);
    397                                         if($erreurs[$clef] == null){
     402                                        if($erreurs[$clef] == null)
    398403                                                unset($erreurs[$clef]);
    399                                         }
    400404                                }
    401405                        }
     
    409413                                include_spip('inc/autoriser');
    410414                                include_spip('inc/saisies');
    411                                
     415
    412416                                $saisies = saisies_lister_avec_sql($saisies);
    413                
     417
    414418                                // restreindre la vue selon les autorisations
    415419                                $id_objet = $flux['args']['args'][0]; // ? vraiment toujours ?
     
    417421                                        'id' => $id_objet,
    418422                                        'contexte' => array()))); // nous ne connaissons pas le contexte dans ce pipeline
    419                
     423
    420424                                foreach ($saisies as $saisie) {
    421425                                        $nom = $saisie['options']['nom'];
     
    426430                                                $options = isset($saisie['verifier']['options']) ? $saisie['verifier']['options'] : array();
    427431                                                $normaliser = null;
    428                                                 if ($erreur = $verifier(_request($nom), $verif, $options, $normaliser)) {
     432                                                if ($erreur = $verifier(_request($nom), $verif, $options, $normaliser))
    429433                                                        $erreurs[$nom] = $erreur;
    430                                                 // si une valeur de normalisation a ete transmis, la prendre.
    431                                                 } elseif (!is_null($normaliser)) {
     434                                                // si une valeur de normalisation a ete transmis, la prendre. 
     435                                                elseif (!is_null($normaliser))
    432436                                                        set_request($nom, $normaliser);
    433                                                 }
    434437                                        }
    435438                                }
     
    444447                        $mois = trim(_request('naissance_mois'));
    445448                        $jour = trim(_request('naissance_jour'));
    446                         if((!$annee || !$mois || !$jour) && $config_i3['naissance_obligatoire'] != 'on'){
    447                                 if(trim(_request('naissance')) == '0000-00-00')
    448                                         unset($erreurs['naissance']);
    449                         }
     449                        if((!$annee || !$mois || !$jour) && $config_i3['naissance_obligatoire'] != 'on' && (trim(_request('naissance')) == '0000-00-00'))
     450                                unset($erreurs['naissance']);
    450451                }
    451452                if(!$erreurs['naissance'] && _request('naissance') && (_request('naissance') != '0000-00-00')){
     
    457458                                $erreurs['naissance'] = _T('inscription3:erreur_naissance_plus_110');
    458459                }
    459                
     460
    460461                $args = array_merge($flux['args'],array('champs' => $valeurs));
    461                
     462
    462463                /**
    463464                 * Offrir aux autres plugins la possibilite de verifier les donnees
     
    469470                        )
    470471                );
    471                
     472
    472473                /**
    473474                 * Message d'erreur generalise
  • _plugins_/inscription/trunk/paquet.xml

    r73656 r75034  
    22        prefix="inscription3"
    33        categorie="auteur"
    4         version="3.2.13"
     4        version="3.2.14"
    55        etat="test"
    66        compatibilite="[3.0.0;3.0.99]"
     
    1717        <auteur>BoOz and co</auteur>
    1818
    19         <copyright>2007-2012</copyright>
     19        <copyright>2007-2013</copyright>
    2020
    2121        <licence lien="http://www.gnu.org/licenses/gpl-3.0.html">GPL 3</licence>
  • _plugins_/inscription/trunk/verifier/login.php

    r69598 r75034  
    66 * Fonction de validation d'un login
    77 *
    8  * @return false|string retourne false si pas de valeurs ou si la valeur est correcte, un message d'erreur dans le cas contraire
    9  * @param string $valeur Le login testé
    10  * @param int $id_auteur[optional]
     8 * @param string $valeur
     9 *              Le login testé
     10 * @param array $options [optional]
     11 *              Le tableau des options
     12 * @return false|string
     13 *              Retourne false si pas de valeurs ou si la valeur est correcte, un message d'erreur dans le cas contraire
    1114 */
    1215function inc_inscription3_valide_login_dist($valeur,$options=array()) {
    13         if(!$valeur){
     16        if(!$valeur)
    1417                return false;
    15         }
    1618        else{
    1719                // Vérifier si le login est déjà utilisé
    18                 if (sql_getfetsel("id_auteur","spip_auteurs","id_auteur !='".intval($options['id_auteur'])."' AND login = '$valeur'")) {
     20                if (sql_getfetsel("id_auteur","spip_auteurs","id_auteur !='".intval($options['id_auteur'])."' AND login = '$valeur'"))
    1921                        return _T('inscription3:erreur_login_deja_utilise');
    20                 }
    2122                // Vérifier si le login est trop court
    22                 if (strlen($valeur) < _LOGIN_TROP_COURT){
     23                if (strlen($valeur) < _LOGIN_TROP_COURT)
    2324                        return _T('info_login_trop_court');
    24                 }
    2525        }
    2626        return;
  • _plugins_/inscription/trunk/verifier/signature.php

    r69598 r75034  
    66 * Fonction de validation d'une signature (nom d'inscription)
    77 *
    8  * @return false|string retourne false si pas de valeurs ou si la valeur est correcte, un message d'erreur dans le cas contraire
    9  * @param string $valeur Le login testé
    10  * @param int $id_auteur[optional]
     8 * @param string $valeur
     9 *              Le login testé
     10 * @param array $options [optional]
     11 *              Le tableau des options
     12 * @return false|string
     13 *              Retourne false si pas de valeurs ou si la valeur est correcte, un message d'erreur dans le cas contraire
    1114 */
    1215function verifier_signature_dist($valeur,$options=array()) {
    13         if(!$valeur){
     16        if(!$valeur)
    1417                return false;
    15         }
    1618        else{
    1719                // Vérifier si le nom est déjà utilisé
    18                 if (sql_getfetsel("id_auteur","spip_auteurs","id_auteur !='".intval($options['id_auteur'])."' AND nom = '$valeur'")) {
     20                if (sql_getfetsel("id_auteur","spip_auteurs","id_auteur !='".intval($options['id_auteur'])."' AND nom = '$valeur'"))
    1921                        return _T('inscription3:erreur_signature_deja_utilise');
    20                 }
    2122        }
    2223        return;
  • _plugins_/inscription/trunk/verifier/statut.php

    r69598 r75034  
    66 * Fonction de validation du statut
    77 *
    8  * @return false|string retourne false si pas de valeurs ou si la valeur est correcte, un message d'erreur dans le cas contraire
    9  * @param string $valeur Le statut testé
     8 * @param string $valeur
     9 *              Le statut testé
    1010 * @param array $options [optional]
     11 *              Le tableau des options
     12 * @return false|string
     13 *              retourne false si pas de valeurs ou si la valeur est correcte, un message d'erreur dans le cas contraire
    1114 */
    1215function verifier_statut_dist($valeur,$options=array()) {
    1316        global $liste_des_statuts;
    1417
    15         if(!$valeur){
     18        if(!$valeur)
    1619                return false;
    17         }
    1820        else{
    19                 if(in_array($valeur,$liste_des_statuts)){
     21                if(in_array($valeur,$liste_des_statuts))
    2022                        return false;
    21                 }
    22                 else{
     23                else
    2324                        return _T('inscription3:erreur_statut_valide');
    24                 }
    2525        }
    2626}
  • _plugins_/inscription/trunk/verifier/telephone.php

    r69598 r75034  
    1111 */
    1212function verifier_telephone_dist($valeur,$options=array()){
    13         if(!$valeur){
     13        if(!$valeur)
    1414                return false;
    15         }
    1615        else{
    17                 if((!lire_config('inscription3/validation_numero_international') == 'on') && preg_match('/^[0-9\+\. \-]+$/',$valeur) && (strlen(str_replace(array(' ','.','+'),'',$valeur)) > 6)){
     16                if((!lire_config('inscription3/validation_numero_international') == 'on') && preg_match('/^[0-9\+\. \-]+$/',$valeur) && (strlen(str_replace(array(' ','.','+'),'',$valeur)) > 6))
    1817                        return false;
    19                 }
    2018                else if(lire_config('inscription3/validation_numero_international') == 'on'){
    21                         if(preg_match('/^\+[0-9]{2,3}[0-9\s\.]{6}[0-9\s\.]+$/',$valeur)){
     19                        if(preg_match('/^\+[0-9]{2,3}[0-9\s\.]{6}[0-9\s\.]+$/',$valeur))
    2220                                return false;
    23                         }else{
     21                        else
    2422                                return _T('inscription3:erreur_numero_valide_international');
    25                         }
    2623                }
    2724                return _T('inscription3:erreur_numero_valide');
Note: See TracChangeset for help on using the changeset viewer.