Changeset 113410 in spip-zone


Ignore:
Timestamp:
Jan 13, 2019, 7:27:10 PM (3 months ago)
Author:
eric@…
Message:

Mise au point de la duplication d'une noisette:

  • elle n'est possible que pour une noisette de profondeur nulle
  • on utilise la nouvelle API noisette_dupliquer().
  • on fait en sorte de prévenir l'utilisateur si la duplication concerne un conteneur car les paramètres choisis seront appliqués à toutes les noisettes incluses aussi.
Location:
_plugins_/noizetier/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/noizetier/trunk/formulaires/etendre_noisette.html

    r113140 r113410  
    2323                <fieldset>
    2424                        <legend><:noizetier:legende_copie_noisette_parametres:></legend>
     25
     26                        <div class="explication">
     27                                <:noizetier:explication_copie_noisette_parametres:>
     28                                [(#ENV{est_conteneur}|=={oui}|oui) <strong><:noizetier:explication_copie_noisette_conteneur:></strong>]
     29                        </div>
     30
    2531                        <div class="editer-groupe">
    2632                                [(#SAISIE{case, copie_parametres,
     
    2834                                        class=pleine_largeur
    2935                                })]
    30 
    31                                 [(#ENV{est_conteneur}|=={non}|oui)
    32                                         [(#SAISIE{case, copie_encapsulation,
    33                                                 label_case=<:noizetier:label_copie_noisette_balise:>,
    34                                         })]
    35 
    36                                         [(#SAISIE{case, copie_css,
    37                                                 label_case=<:noizetier:label_copie_noisette_css:>,
    38                                         })]
    39                                 ]
     36                                [(#SAISIE{case, copie_encapsulation,
     37                                        label_case=<:noizetier:label_copie_noisette_balise:>,
     38                                        class=pleine_largeur
     39                                })]
     40                                [(#SAISIE{case, copie_css,
     41                                        label_case=<:noizetier:label_copie_noisette_css:>,
     42                                        class=pleine_largeur
     43                                })]
    4044                        </div>
    4145                </fieldset>
  • _plugins_/noizetier/trunk/formulaires/etendre_noisette.php

    r113190 r113410  
    8787        $pages = _request('pages');
    8888
     89        // Construire la liste des paramètres à diffuser dans les noisettes copiées.
     90        $parametres = array();
     91        $champs = array('copie_parametres', 'copie_encapsulation', 'copie_css');
     92        foreach ($champs as $_champ) {
     93                if (_request($_champ)) {
     94                        $champ_noisette = str_replace('copie_', '', $_champ);
     95                        $parametres[] = $champ_noisette;
     96                }
     97        }
     98
    8999        // Pour chaque page on copie la noisette avec tous ses paramètres.
    90100        // Il est inutile de tester l'autorisation sur la page car cela a déjà été fait lors du chargement.
     
    95105                // Définir le conteneur de la noisette, à savoir, le squelette du bloc de la page concernée.
    96106                $conteneur['squelette'] = "${bloc}/${_page}";
    97                 if (!$id_noisette = noisette_ajouter('noizetier', $noisette['type_noisette'], $conteneur)) {
     107                if (!noisette_dupliquer('noizetier', $noisette['id_noisette'], $conteneur, $parametres)) {
    98108                        $erreurs[] = $_page;
    99                 } else {
    100                         // Mettre à jour les informations spécifiques de la noisette source si demandé.
    101                         static $valeurs = null;
    102                         if ($valeurs === null) {
    103                                 // On construit une seule fois le tableau des modifications si il y en a et on l'utilise
    104                                 // pour chaque page.
    105                                 $valeurs = array();
    106                                 $champs = array('copie_parametres');
    107                                 if (_request('est_conteneur') != 'oui') {
    108                                         $champs = array_merge($champs, array('copie_encapsulation', 'copie_css'));
    109                                 }
    110                                 foreach ($champs as $_champ) {
    111                                         if (_request($_champ)) {
    112                                                 $champ_noisette = str_replace('copie_', '', $_champ);
    113                                                 $valeurs[$champ_noisette] = $noisette[$champ_noisette];
    114                                         };
    115                                 }
    116                         }
    117                         if ($valeurs) {
    118                                 // Mise à jour de la noisette créée avec les champs demandés.
    119                                 noisette_parametrer('noizetier', intval($id_noisette), $valeurs);
    120                         }
    121109                }
    122110        }
  • _plugins_/noizetier/trunk/formulaires/inclure/inc-resume_noisette.html

    r113192 r113410  
    5656                                                </a>
    5757                                        </li>]
    58                                         [<li>
    59                                                 <a href="(#URL_ECRIRE{noisette_copy}
    60                                                         |parametre_url{id_noisette, #ID_NOISETTE}
    61                                                         |parametre_url{bloc, #ENV{bloc}})">
    62                                                         <:noizetier:formulaire_etendre_noisette:>
    63                                                 </a>
    64                                         </li>]
     58                                        [(#PROFONDEUR|=={0}|oui)
     59                                                [<li>
     60                                                        <a href="(#URL_ECRIRE{noisette_copy}
     61                                                                |parametre_url{id_noisette, #ID_NOISETTE}
     62                                                                |parametre_url{bloc, #ENV{bloc}})">
     63                                                                <:noizetier:formulaire_etendre_noisette:>
     64                                                        </a>
     65                                                </li>]
     66                                        ]
    6567                                        [(#ENV{nb_noisettes}|>{1}|oui)
    6668                                                [<li class="groupe">
  • _plugins_/noizetier/trunk/lang/noizetier_fr.php

    r113396 r113410  
    5959        'explication_composition' => 'Composition dérivée de la page « @type@ »',
    6060        'explication_composition_virtuelle' => 'Composition <strong>virtuelle</strong> dérivée de la page « @type@ »',
     61        'explication_copie_noisette_conteneur' => 'Les paramètres de configuration s\'appliqueront à la noisette conteneur et aussi à toutes les noisettes incluses qui seront aussi dupliquées.',
    6162        'explication_copie_noisette_parametres' => 'Choisissez les paramètres de configuration de la noisette source que vous souhaitez copier sinon les valeurs par défaut seront utilisées.',
    6263        'explication_copie_pages_compatibles' => 'Choisissez les pages dans lesquelles créer une noisette du même type que celui de la noisette source.',
  • _plugins_/noizetier/trunk/paquet.xml

    r113394 r113410  
    22        prefix="noizetier"
    33        categorie="maintenance"
    4         version="3.0.61"
     4        version="3.0.62"
    55        etat="dev"
    66        compatibilite="[3.2.0;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.