Ignore:
Timestamp:
Nov 3, 2016, 8:10:52 PM (5 years ago)
Author:
eric@…
Message:

Renommage.
Refactoring des messages du formulaire.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/isocode/trunk/formulaires/isocode_gerer_table.php

    r100330 r100347  
    1414 *
    1515 * @return array
    16  *        Tableau des données à charger par le formulaire (affichage). Aucune donnée chargée n'est un
    17  *        champ de saisie, celle-ci sont systématiquement remises à zéro.
    18  *        - `_actions_tables`        : (affichage) alias et libellés des actions possibles sur une table, `charger` et
     16 *      Tableau des données à charger par le formulaire (affichage). Aucune donnée chargée n'est un
     17 *      champ de saisie, celle-ci sont systématiquement remises à zéro.
     18 *      - `_actions_tables`        : (affichage) alias et libellés des actions possibles sur une table, `charger` et
    1919 *        `vider`
    20  *        - `_actions_disable`    : (affichage) liste des actions désactivées (`vider` si aucune table n`est chargée)
    21  *        - `_action_defaut`        : (affichage) action sélectionnée par défaut, `charger`
    22  *        - `_tables`                : (affichage) noms des tables sans le préfixe `spip_`
     20 *      - `_actions_disable`    : (affichage) liste des actions désactivées (`vider` si aucune table n`est chargée)
     21 *      - `_action_defaut`        : (affichage) action sélectionnée par défaut, `charger`
     22 *      - `_tables`                : (affichage) noms des tables sans le préfixe `spip_`
    2323 */
    2424function formulaires_isocode_gerer_table_charger() {
     
    5959 *
    6060 * @return array
    61  *        Tableau des erreurs sur l'action et/ou la table ou tableau vide si aucune erreur.
     61 *      Tableau des erreurs sur l'action et/ou la table ou tableau vide si aucune erreur.
    6262 */
    6363function formulaires_isocode_gerer_table_verifier() {
     
    7878 *
    7979 * @uses isocode_charger_tables()
    80  * @uses isocode_decharger_tables()
    81  *
     80 * @uses isocode_vider_tables()
     81 * @uses formater_message()
     82  *
    8283 * @return array
    83  *        Tableau retourné par le formulaire contenant toujours un message de bonne exécution ou
    84  *        d'erreur. L'indicateur editable est toujours à vrai.
     84 *      Tableau retourné par le formulaire contenant toujours un message de bonne exécution ou
     85 *      d'erreur. L'indicateur editable est toujours à vrai.
    8586 */
    8687function formulaires_isocode_gerer_table_traiter() {
     
    9394        $tables = _request('tables');
    9495
    95         // Pour chaque table, on génère l'action demandée
    96         if ($action == 'vider') {
    97                 list($action_ok, $tables_nok) = isocode_decharger_tables($tables);
    98                 $message = $action_ok
    99                         ? _T('isocode:succes_vider_table')
    100                         : _T('isocode:erreur_vider_table', array('tables' => implode(', ', $tables_nok)));
    101         } else {
    102                 // La fonction de chargement de la table lance un vidage préalable si la table
    103                 // demandé est déjà chargée.
    104                 list($action_ok, $tables_nok, $tables_inchangees) = isocode_charger_tables($tables);
    105                 if ($action_ok) {
    106                         $message = _T('isocode:succes_charger_table');
    107                 } else {
    108                         $message = '';
    109                         if ($tables_inchangees) {
    110                                 $message .= _T('isocode:notice_charger_table', array('tables' => implode(', ', $tables_inchangees)));
    111                         }
    112                         if ($tables_nok) {
    113                                 $message .= $message ? '<br/>' : '';
    114                                 $message .= _T('isocode:erreur_charger_table', array('tables' => implode(', ', $tables_nok)));
    115                         }
    116                 }
    117         }
     96        // Pour chaque table, on génère l'action demandée.
     97        // (La fonction de chargement de la table lance un vidage préalable si la table demandé est déjà chargée)
     98        $actionner = "isocode_${action}_tables";
     99        $statut = $actionner($tables);
    118100
    119         $type_message = $action_ok ? 'message_ok' : 'message_erreur';
    120         $retour[$type_message] = $message;
     101        // Formatage du message avant renvoie au formulaire
     102        $retour = formater_message($action, $statut);
    121103        $retour['editable'] = true;
    122104
    123105        return $retour;
    124106}
     107
     108
     109/**
     110 * Formate les messages de succès et d'erreur résultant des actions de chargement ou de vidage
     111 * des tables de codes ISO.
     112 *
     113 * @param string $action
     114 *      Action venant d'être appliquée à certaines tables. Peut prendre les valeurs `charger` et
     115 *      `vider`.
     116 * @param array  $statut
     117 *              Tableau résultant de l'action sur les tables choisies:
     118 *      - `ok`         : `true` si le vidage a réussi, `false` sinon.
     119 *      - `tables_ok`  : liste des tables vidées avec succès ou tableau vide sinon.
     120 *      - `tables_nok` : liste des tables en erreur ou tableau vide sinon.
     121 *      - `tables_sha` : liste des tables inchangées (SHA identique) ou tableau vide sinon.
     122 *                       Uniquement disponible pour l'action `charger`.
     123 *
     124 * @return array
     125 *      Tableau des messages à afficher sur le formulaire:
     126 *      - `message_ok`     : message sur les tables ayant été traitées avec succès ou tableau vide sinon.
     127 *      - `message_erreur` : message sur les tables en erreur ou tableau vide sinon.
     128 */
     129function formater_message($action, $statut) {
     130
     131        $message = array(
     132                'message_ok'     => '',
     133                'message_erreur' => ''
     134        );
     135
     136        // Traitement des succès
     137        if (!empty($statut['tables_ok'])) {
     138                $message['message_ok'] .= _T("isocode:succes_${action}_table", array('tables' => implode(', ', $statut['tables_ok'])));
     139        }
     140
     141        // Traitement des erreurs
     142        if (!empty($statut['tables_nok'])) {
     143                $message['message_erreur'] .= _T("isocode:erreur_${action}_table", array('tables' => implode(', ', $statut['tables_nok'])));
     144        }
     145        if (!empty($statut['tables_sha'])) {
     146                $message['message_erreur'] .= $message['message_erreur'] ? '<br />' : '';
     147                $message['message_erreur'] .= _T("isocode:notice_${action}_table", array('tables' => implode(', ', $statut['tables_sha'])));
     148        }
     149
     150        return $message;
     151}
Note: See TracChangeset for help on using the changeset viewer.