Changeset 77175 in spip-zone for _plugins_/pages


Ignore:
Timestamp:
Oct 12, 2013, 8:52:17 AM (6 years ago)
Author:
tcharlss@…
Message:

Vérifications supplémentaires sur la saisie du champ "page" + messages d'erreur adéquats :

  • nombre de caractères
  • caractères alphanumériques ou "_"
  • doublons
Location:
_plugins_/pages/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/pages/trunk/lang/pages_fr.php

    r76263 r77175  
    77
    88        // A
    9         'aucune_page' => 'Il n’y a aucune page pour l’instant.',
     9        'aucune_page' => 'Il n\'y a aucune page pour l\'instant.',
    1010
    1111        // C
     
    1414        'creer_page' => 'Créer une nouvelle page',
    1515
     16        // E
     17        'erreur_champ_page_doublon' => 'Cet identifiant existe déjà',
     18        'erreur_champ_page_format' => 'Charactères alphanumériques en minuscules ou "_" uniquement',
     19        'erreur_champ_page_taille' => '255 charactères maximum',
     20
     21        // L
     22        'label_champ_page' => 'Page :',
     23
    1624        // M
    17         'modifier_page' => 'Modifier la page :',
     25        'modifier_page' => 'Modifier la page :',
    1826
    1927        // P
  • _plugins_/pages/trunk/pages_pipelines.php

    r77167 r77175  
    7171
    7272
    73 // Vérifier que la page n'est pas vide
     73/**
     74 * Vérifications de l'identifiant d'une page
     75 *
     76 * @param array $flux
     77 *              Le contexte du pipeline
     78 * @return array $flux
     79 *              Le contexte du pipeline modifié
     80 */
    7481function pages_formulaire_verifier($flux){
    75         // Si on est dans l'édition d'un article
    76         if (is_array($flux) and $flux['args']['form'] == 'editer_article'){
    77                 // Si on est dans un article de type page mais que le champ "page" est vide
    78                 if (_request('modele') == 'page' and !_request('champ_page'))
     82        // Si on est dans l'édition d'un article de type page
     83        if (
     84                is_array($flux)
     85                and $flux['args']['form'] == 'editer_article'
     86                and _request('modele') == 'page'
     87        ){
     88                $erreur = '';
     89                $page = _request('champ_page');
     90                // champ "page" vide
     91                if ( !$page )
    7992                        $flux['data']['champ_page'] .= _T('info_obligatoire');
    80         }
    81         return $flux;
    82 
    83 }
     93                // nombre de charactères : 255 max
     94                elseif (strlen($page) > 255)
     95                         $erreur = _T('pages:erreur_champ_page_taille');
     96                // format : charactères alphanumériques en minuscules ou "_"
     97                elseif (!preg_match('/^[a-z0-9_]+$/', $page))
     98                         $erreur = _T('pages:erreur_champ_page_format');
     99                // doublon
     100                elseif (sql_countsel(table_objet_sql('article'), "page=".sql_quote($page) . " AND id_article!=".intval($id_page)))
     101                        $erreur = _T('pages:erreur_champ_page_doublon');
     102                if ($erreur) $flux['data']['champ_page'] .= $erreur;
     103        }
     104        return $flux;
     105
     106}
     107
    84108
    85109/**
Note: See TracChangeset for help on using the changeset viewer.