Changeset 113352 in spip-zone


Ignore:
Timestamp:
Jan 10, 2019, 9:40:06 AM (8 days ago)
Author:
bystrano@…
Message:

interdire de supprimer les types de logos utilisés

Location:
_plugins_/logos_roles/branches/v1
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/logos_roles/branches/v1/formulaires/configurer_logos_roles.php

    r113327 r113352  
    203203function formulaires_configurer_logos_roles_verifier_dist() {
    204204
     205        // On ne garde que les rôles pour lesquels on a saisi autre chose qu'un
     206        // état.
     207        $raw_post = _request('roles_logos');
     208        $i = 0;
     209        while (isset($raw_post[$i])) {
     210                $r = $raw_post[$i];
     211                if (($r['slug'] === '') and ($r['titre'] === '') and
     212                                ((! isset($r['objets'])) or (! is_array($r['objets']))) and
     213                                ($r['dimensions']['largeur'] === '') and
     214                                ($r['dimensions']['hauteur'] === '')) {
     215                        unset($raw_post[$i]);
     216                        $raw_post['permutations'] = preg_replace("/,?$i/", '', $raw_post['permutations']);
     217                }
     218                $i++;
     219        }
     220        set_request('roles_logos', $raw_post);
     221
     222
    205223        // Avant l'appel à saisies_liste_verifier, on peut intercepter les boutons
    206224        // de suppression
    207225        $raw_post = _request('roles_logos');
    208226        if (isset($raw_post['action']['supprimer-0'])) {
    209                 return array('message_erreur' => _T('logos_roles:erreur_suppression_logo_defaut'));
     227                $erreurs = array('message_erreur' => _T('logos_roles:erreur_suppression_logo_defaut'));
     228                unset($raw_post['action']);
     229                set_request('roles_logos', $raw_post);
    210230        }
    211231        if (isset($raw_post['action']['supprimer-1'])) {
    212                 return array('message_erreur' => _T('logos_roles:erreur_suppression_logo_survol'));
     232                $erreurs = array('message_erreur' => _T('logos_roles:erreur_suppression_logo_survol'));
     233                unset($raw_post['action']);
     234                set_request('roles_logos', $raw_post);
     235        }
     236        $i = 2;
     237        while (isset($raw_post[$i])) {
     238                if (isset($raw_post['action']["supprimer-$i"]) and
     239                                (0 < sql_countsel(
     240                                        'spip_documents_liens',
     241                                        'role = '.sql_quote('logo_'.$raw_post[$i]['slug'])
     242                                ))) {
     243                        $erreurs = array('message_erreur' => _T(
     244                                'logos_roles:erreur_suppression_logo_utilise',
     245                                array('role' => $raw_post[$i]['titre'])
     246                        ));
     247                        unset($raw_post['action']);
     248                        set_request('roles_logos', $raw_post);
     249                }
     250                $i++;
    213251        }
    214252
    215253        if (saisies_liste_verifier('roles_logos')) {
    216254                return array();
     255        } elseif ($erreurs) {
     256                return $erreurs;
    217257        }
    218258
    219259        $erreurs = array();
    220 
    221         // On ne garde que les rôles pour lesquels on a saisi autre chose qu'un
    222         // état.
    223         set_request('roles_logos', array_filter(
    224                 _request('roles_logos'),
    225                 function ($role) {
    226                         return ($role['slug'] !== '') or
    227                                 ($role['titre'] !== '') or
    228                                 (isset($role['objets']) and is_array($role['objets'])) or
    229                                 ($role['dimensions']['largeur'] !== '') or
    230                                 ($role['dimensions']['hauteur'] !== '');
    231                 }
    232         ));
    233260
    234261        $roles = _request('roles_logos');
  • _plugins_/logos_roles/branches/v1/lang/logos_roles_fr.php

    r113351 r113352  
    2323        'erreur_suppression_logo_defaut' => 'Vous ne pouvez pas supprimer le logo par défaut.',
    2424        'erreur_suppression_logo_survol' => 'Vous ne pouvez pas supprimer le logo de survol.',
     25        'erreur_suppression_logo_utilise' => 'Vous ne pouvez pas supprimer le type « @role@ » parce qu\'il est utilisé.',
    2526        'explication_saisie_slug_role' => 'Un nom "machine" unique pour définir le nom de la balise qui permet de récupérer le logo. P.ex. « accueil » donnera #LOGO_ACCUEIL.',
    2627        'explication_saisie_titre_role' => "Le titre du rôle, tel qu'il apparaitra dans l'interface. Pour les sites multilingues, on peut aussi utiliser une <a href='https://www.spip.net/fr_article2124.html'>balise multi</a> ou une chaîne de langue du type \"module:chaine_de_langue\".",
  • _plugins_/logos_roles/branches/v1/paquet.xml

    r113333 r113352  
    22        prefix="logos_roles"
    33        categorie="multimedia"
    4         version="0.9.0"
     4        version="0.9.1"
    55        etat="stable"
    66        compatibilite="[3.1.1;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.