Changeset 120878 in spip-zone


Ignore:
Timestamp:
Jan 29, 2020, 5:00:23 PM (17 months ago)
Author:
Cerdic
Message:

eviter des suppressions un peu trop rapide : demander une confirmation dans l'action (et 0K n'est pas OK)

Location:
_plugins_/trad-lang/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/trad-lang/trunk

    • Property subgit:lock:391f24c07512653b83605ca565458069f1664d9f deleted
    • Property subgit:lock:a7d55cf7baf0f2abd2cc955a58da7bd0a66c381b set to 2020-01-29T18:00:34.802
  • _plugins_/trad-lang/trunk/action/tradlang_supprimer_langue_cible.php

    r97005 r120878  
    2525
    2626        include_spip('inc/autoriser');
    27         if ($lang_cible and intval($id_tradlang_module) and autoriser('modifier', 'tradlang') and !sql_countsel('spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang_cible) . ' AND statut="0K"')) {
    28                 /**
    29                  * Suppression des versions et urls
    30                  */
    31                 $tradlangs = sql_allfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module).' AND lang='.sql_quote($lang_cible));
    32                 $tradlangs_supprimer = array();
    33                 foreach ($tradlangs as $tradlang) {
    34                         $tradlangs_supprimer[] = $tradlang['id_tradlang'];
     27
     28        if ($lang_cible
     29                and intval($id_tradlang_module)
     30                and autoriser('modifier', 'tradlang')
     31                and !sql_countsel('spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang_cible) . " AND statut='OK'")) {
     32                if (!_request('confirm')) {
     33                        $row_module = sql_fetsel('*', 'spip_tradlang_modules', 'id_tradlang_module = ' . intval($id_tradlang_module));
     34                        $titre = $row_module['nom_mod'] .': ' . _T('tradlang:confirm_suppression_langue_cible', array('lang' => $lang_cible));
     35                        $btn_label = _T('tradlang:bouton_supprimer_langue_module');
     36                        $redirect = _request('redirect');
     37                        $url_action = generer_action_auteur('tradlang_supprimer_langue_cible', "$id_tradlang_module/$lang_cible", $redirect);
     38                        $url_action = parametre_url($url_action, 'confirm', 1, '&');
     39
     40                        // Dans tous les cas on finit sur un minipres qui dit si ok ou echec
     41                        include_spip('inc/minipres');
     42                        echo minipres($titre, "<style>h1{font-weight: normal}#minipres{text-align: center}</style>". bouton_action($btn_label,$url_action), '', true);
     43                        exit;
     44
    3545                }
    36                 if (count($tradlangs_supprimer)) {
    37                         sql_delete('spip_versions', 'objet="tradlang" AND ' . sql_in('id_objet', $tradlangs_supprimer));
    38                         sql_delete('spip_versions_fragments', 'objet="tradlang" AND ' . sql_in('id_objet', $tradlangs_supprimer));
    39                         sql_delete('spip_urls', 'type="tradlang" AND ' . sql_in('id_objet', $tradlangs_supprimer));
     46                else {
     47                        /**
     48                         * Suppression des versions et urls
     49                         */
     50                        $tradlangs = sql_allfetsel('id_tradlang', 'spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module).' AND lang='.sql_quote($lang_cible));
     51                        $tradlangs_supprimer = array();
     52                        foreach ($tradlangs as $tradlang) {
     53                                $tradlangs_supprimer[] = $tradlang['id_tradlang'];
     54                        }
     55                        if (count($tradlangs_supprimer)) {
     56                                sql_delete('spip_versions', 'objet="tradlang" AND ' . sql_in('id_objet', $tradlangs_supprimer));
     57                                sql_delete('spip_versions_fragments', 'objet="tradlang" AND ' . sql_in('id_objet', $tradlangs_supprimer));
     58                                sql_delete('spip_urls', 'type="tradlang" AND ' . sql_in('id_objet', $tradlangs_supprimer));
     59                        }
     60                        /**
     61                         * Suppression des chaînes de langue
     62                         */
     63                        sql_delete('spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang_cible));
     64                        /**
     65                         * Suppression des bilans de cette langue
     66                         */
     67                        sql_delete('spip_tradlangs_bilans', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang_cible));
     68                        include_spip('inc/invalideur');
     69                        suivre_invalideur('1');
     70                        if ($redirect = _request('redirect')){
     71                                $redirect = parametre_url($redirect, 'lang_cible', '', '&');
     72                                $redirect = parametre_url($redirect, 'var_lang_suppr', $lang_cible, '&');
     73                                $GLOBALS['redirect'] = $redirect;
     74                        }
    4075                }
    41                 /**
    42                  * Suppression des chaînes de langue
    43                  */
    44                 sql_delete('spip_tradlangs', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang_cible));
    45                 /**
    46                  * Suppression des bilans de cette langue
    47                  */
    48                 sql_delete('spip_tradlangs_bilans', 'id_tradlang_module = ' . intval($id_tradlang_module) . ' AND lang = ' . sql_quote($lang_cible));
    49                 include_spip('inc/invalideur');
    50                 suivre_invalideur('1');
    5176        } else {
    5277                spip_log("action_tradlang_supprimer_langue_cible_dist : Module $id_tradlang_module est traduit en $lang_cible", 'tradlang');
    5378        }
    5479
    55         $redirect = _request('redirect');
    56         if ($redirect) {
    57                 $redirect = parametre_url($redirect, 'var_lang_crea', $lang_crea, '&');
    58                 include_spip('inc/headers');
    59                 redirige_par_entete($redirect);
    60         }
    6180}
  • _plugins_/trad-lang/trunk/lang/tradlang_fr.php

    r114536 r120878  
    5252        'crayon_changer_statut' => 'Attention ! Vous avez modifié le contenu de la chaîne sans en modifier le statut.',
    5353        'crayon_changer_statuts' => 'Attention ! Vous avez modifié le contenu d’une ou plusieurs chaînes sans en modifier le statut.',
     54        'confirm_suppression_langue_cible' => 'Attention, vous allez supprimer la langue &laquo;&nbsp;<b>@lang@</b>&nbsp;&raquo; de ce module. Êtes-vous sûr ?',
    5455
    5556        // E
Note: See TracChangeset for help on using the changeset viewer.