Changeset 32274 in spip-zone


Ignore:
Timestamp:
Oct 22, 2009, 7:24:15 AM (11 years ago)
Author:
alexis.pellicier@…
Message:

Introduction d'un systeme de validation de saisie

Location:
_plugins_/crayons
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/crayons/action/crayons_store.php

    r31408 r32274  
    112112
    113113                                        $modifs[] = array($type, $modele, $id, $content, $wid);
     114                                       
     115                                        /* aiguillage pour verification de la saisie
     116                                        Pour traitement ulterieur les fonctions de verifications doivent renvoyer $invalides :
     117                                         $invalides[wid_champ]['msg'] -> message de saisie invalide
     118                                         $invalides[wid_champ]['retour'] -> caracteres invalides */
     119                                        $f = 'verifier_'.$type.'_'.$modele;
     120                                        if (function_exists($f)) {
     121                                                 if (count( $invalides = $f($modifs) )) {
     122                                                        $return['$invalides'] = $invalides;
     123                                                 }
     124                                                 
     125                                         }
    114126                                }
    115127                        }
     
    122134                $return['$annuler'] = true;
    123135        }
     136       
     137        // un champ invalide ... ou rien ==> on ne fait rien !
     138        if ($return['$invalides'])
     139                return $return;
    124140
    125141        // une quelconque erreur ... ou rien ==> on ne fait rien !
     
    221237        }
    222238
    223         // il manque une fonction de mise à jour ==> on ne fait rien !
     239        // il manque une fonction de mise a jour ==> on ne fait rien !
    224240        if ($return['$erreur'])
    225241            return $return;
    226242
    227         // hop ! mises à jour table par table et id par id
     243        // hop ! mises a jour table par table et id par id
    228244        foreach ($updates as $type => $idschamps)
    229245        foreach ($idschamps as $fun => $ids) {
     
    236252                        //Renvoyer erreur si update base distante echoue, on ne regarde pas les updates base local car ils ne revoient rien
    237253                        list($distant,$table) = distant_table($type);
    238                         $distant AND !$updok ? $return['$erreur'] = "$type: " . _U('update_impossible'):pass;
     254                        $distant AND !$updok ? $return['$erreur'] = "$type: " . _U('crayons:update_impossible'):pass;
    239255            }
    240256        }
     
    344360// TODO:
    345361// Ce modele est cense enregistrer les tags sous forme de ??
    346 // une ligne dans un champ spip_articles.tags, et/ou des mots-clés...
     362// une ligne dans un champ spip_articles.tags, et/ou des mots-cles...
    347363function modeles_tags($id, $c) {
    348364        var_dump($id); #id_article
  • _plugins_/crayons/crayons.css

    r26446 r32274  
    8080}
    8181
     82.crayon-invalide {
     83        display: block;
     84        background-color: #ff8888;
     85        border: 1px dashed #ff0000;
     86 }
     87.crayon-invalide p {
     88        margin:0;
     89        padding: 1%;
     90        font-style: italic;
     91        font-size: 80%;
     92 }
    8293/* resizer */
    8394.resizehandle {
  • _plugins_/crayons/js/crayons.js

    r28985 r32274  
    228228                                .find("em.crayon-searching")
    229229                                        .remove();
     230                               
     231                                //Remise a zero des warnings invalides (unwrap)
     232                                crayon
     233                                .find("span.crayon-invalide p")
     234                                          .remove();
     235                                crayon
     236                                .find("span.crayon-invalide")
     237                                          .each(function(){
     238                                              $(this).replaceWith( this.childNodes );
     239                                                }
     240                                            );
     241                               
     242                                if(d.$invalides) {
     243                                        for (invalide in d.$invalides) {
     244                                                //Affichage des warnings invalides
     245                                                d.$invalides[invalide]['retour']?retour=d.$invalides[invalide]['retour']:retour='';
     246                                                d.$invalides[invalide]['msg']?msg=d.$invalides[invalide]['msg']:msg='';
     247                                                crayon
     248                                                    .find("*[name='content_"+invalide+"']")
     249                                                        .wrap("<span class=\"crayon-invalide\"></span>")
     250                                                    .parent()
     251                                                    .append("<p>"
     252                                                                + retour
     253                                                                + " "
     254                                                                + msg
     255                                                                + "</p>"
     256                                                        );
     257                                                }
     258
     259                                }
     260                                 
    230261                                if (d.$erreur > '') {
    231262                                        if (d.$annuler) {
     
    237268                                        } else {
    238269                                                        uniAlert(d.$erreur+'\n'+configCrayons.txt.error);
    239                                                         crayon
    240                                                         .find('form')
    241                                                                 .css('opacity', 1.0)
    242                                                                 .find(".crayon-boutons,.resizehandle")
    243                                                                         .show()
    244                                                                 .end()
    245                                                                 .find('.crayon-searching')
    246                                                                         .remove();
    247                                         }
    248                                         return false;
     270                                        }
     271                                }
     272                               
     273                                if (d.erreur > '' || d.$invalides) {
     274                                        crayon
     275                                        .find('form')
     276                                                .css('opacity', 1.0)
     277                                                .find(".crayon-boutons,.resizehandle")
     278                                                        .show()
     279                                                .end()
     280                                                .find('.crayon-searching')
     281                                                        .remove();
     282                                                return false;
    249283                                }
    250284                                // Desactive celui pour qui on vient de recevoir les nouvelles donnees
  • _plugins_/crayons/lang/crayons_fr.php

    r29355 r32274  
    3333        'svp_copier_coller' => 'D&eacute;sol&eacute;, copiez/collez vos changements et recommencez',
    3434
     35        // U
     36        'update_impossible' => 'La mise &agrave; jour &agrave; &eacute;chou&eacute;e.',
     37       
    3538        // V
    3639        'veuillez_patienter' => 'Veuillez patienter...'
  • _plugins_/crayons/tetecrayons.php

    r31469 r32274  
    181181
    182182        // crayon sur une base distante 'nua:article-intro-5'
    183         // on ne sait pas encore les gerer, mais au moins on les detecte
    184183        if ($distant = $p->boucles[$i_boucle]->sql_serveur)
    185184                $type = $distant.'__'.$type;
Note: See TracChangeset for help on using the changeset viewer.