Changeset 109558 in spip-zone


Ignore:
Timestamp:
Mar 16, 2018, 6:37:00 PM (15 months ago)
Author:
rastapopoulos@…
Message:

Et voilà, on sait dupliquer tous les objets enfants en cascade (et les enfants des enfants etc), quelque soit les types d'objet, c'est magique !

File:
1 edited

Legend:

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

    r109537 r109558  
    8787 *              - dupliquer_liens : booléen précisant si on duplique les liens ou pas, par défaut oui
    8888 *              - dupliquer_enfants : booléen précisant si on duplique les enfants ou pas, par défaut non
     89 *              - liens : liste d'objets liables dont on veut dupliquer les liens
    8990 *              - liens_exclus : liste d'objets liables dont on ne veut pas dupliquer les liens
    9091 * @return int
     
    173174                                if (is_array($ids)) {
    174175                                        foreach ($ids as $id_enfant) {
     176                                                $modifications_enfant = array();
     177                                                $options_enfant = $options;
    175178                                               
     179                                                // On enlève des options qui n'ont pas à venir du parent de départ
     180                                                unset($options_enfant['champs']);
     181                                                unset($options_enfant['ajout_titre']);
     182                                               
     183                                                // Les modifications nécessaires pour mettre le bon parent suivant la méthode
     184                                                if (isset($enfants_methodes[$objet_enfant]['champ'])) {
     185                                                        $modifications_enfant[$enfants_methodes[$objet_enfant]['champ']] = $id_objet_duplicata;
     186                                                }
     187                                                if (isset($enfants_methodes[$objet_enfant]['champ_type'])) {
     188                                                        $modifications_enfant[$enfants_methodes[$objet_enfant]['champ_type']] = $objet;
     189                                                }
     190                                               
     191                                                $id_enfant_duplicata = objet_dupliquer($objet_enfant, $id_enfant, $modifications_enfant, $options_enfant);
    176192                                        }
    177193                                }
Note: See TracChangeset for help on using the changeset viewer.