Changeset 109535 in spip-zone


Ignore:
Timestamp:
Mar 15, 2018, 6:38:55 PM (3 years ago)
Author:
rastapopoulos@…
Message:

On retire le champ statut des configurations, car il y a une autre config pour ça, et on rajoute le champ dans le select ensuite, pour s'assurer de toujours au moins le copier.

Location:
_plugins_/duplicator/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/duplicator/trunk/action/dupliquer_objet.php

    r109511 r109535  
    3434                $options = array();
    3535               
    36                 // S'il y a des champs précis à dupliquer pour cette option, on rajoute aux options
     36                // S'il y a des champs précis à dupliquer pour cet objet, on rajoute aux options
    3737                if ($champs = lire_config("duplicator/$objet/champs", array())) {
    3838                        $options['champs'] = $champs;
     
    8484 */
    8585function objet_dupliquer($objet, $id_objet, $modifications=array(), $options=array()) {
     86        include_spip('inc/filtres');
    8687        $id_objet_duplicata = false;
    8788        $cle_objet = id_table_objet($objet);
     
    8990       
    9091        // On cherche la liste des champs à dupliquer, par défaut tout
    91         if (isset($options['champs']) and $options['champs']) {
     92        if (isset($options['champs']) and is_array($options['champs'])) {
    9293                $champs = $options['champs'];
     94               
     95                // On s'assure qu'il y a toujours le statut quand même
     96                if (
     97                        $declaration_statut = objet_info($objet, 'statut')
     98                        and isset($declaration_statut[0]['champ'])
     99                        and $champ_statut = $declaration_statut[0]['champ']
     100                ) {
     101                        $champs[] = $champ_statut;
     102                }
    93103        }
    94104        else {
     
    115125        // Si on a bien notre nouvel objet
    116126        if ($id_objet_duplicata = intval($id_objet_duplicata)) {
    117                 // On cherche quels liens
    118                 $liens = $liens_exclus = null;
    119                 if (isset($options['liens'])) {
    120                         $liens = $options['liens'];
    121                 }
    122                 if (isset($options['liens_exclus'])) {
    123                         $liens_exclus = $options['liens_exclus'];
    124                 }
    125                
    126                 // On duplique les liens
    127                 objet_dupliquer_liens($objet, $id_objet, $id_objet_duplicata, $liens, $liens_exclus);
     127                // Si on duplique bien les liens
     128                if (!isset($options['dupliquer_liens']) or $options['dupliquer_liens']) {
     129                        // On cherche quels liens
     130                        $liens = $liens_exclus = null;
     131                        if (isset($options['liens']) and is_array($options['liens'])) {
     132                                $liens = $options['liens'];
     133                        }
     134                        if (isset($options['liens_exclus']) and is_array($options['liens_exclus'])) {
     135                                $liens_exclus = $options['liens_exclus'];
     136                        }
     137                       
     138                        // On duplique les liens
     139                        objet_dupliquer_liens($objet, $id_objet, $id_objet_duplicata, $liens, $liens_exclus);
     140                }
    128141               
    129142                // On duplique les logos
     
    137150                        'id_objet' => $id_nouvelle_rubrique
    138151                ));
     152               
     153                // On duplique peut-être aussi tous les enfants
     154                if (
     155                        isset($options['dupliquer_enfants'])
     156                        and $options['dupliquer_enfants']
     157                        and include_spip('base/objets_parents')
     158                        and $enfants_methodes = type_objet_info_enfants($objet)
     159                        and $enfants = objet_trouver_enfants($objet, $id_objet)
     160                ) {
     161                        // On parcourt tous les types d'enfants
     162                        foreach ($enfants as $objet_enfant => $ids) {
     163                                if (is_array($ids)) {
     164                                        foreach ($ids as $id_enfant) {
     165                                               
     166                                        }
     167                                }
     168                        }
     169                }
    139170        }
    140171       
  • _plugins_/duplicator/trunk/formulaires/configurer_duplicator.php

    r109477 r109535  
    4141                                // Si l'objet a des champs
    4242                                if (isset($declaration_objet['field']) and $champs = $declaration_objet['field']) {
     43                                        // On cherche et vire le champ statut, car il y a une config pour ça ensuite
     44                                        if (isset($declaration_objet['statut'][0]['champ']) and $champ_statut = $declaration_objet['statut'][0]['champ']) {
     45                                                unset($champs[$champ_statut]);
     46                                        }
     47                                       
    4348                                        foreach ($champs as $champ=>$sql) {
    4449                                                $champs[$champ] = $champ;
Note: See TracChangeset for help on using the changeset viewer.