Changeset 109511 in spip-zone


Ignore:
Timestamp:
Mar 15, 2018, 1:27:32 AM (14 months ago)
Author:
rastapopoulos@…
Message:

Aucune config de Duplicator ne doit se trouver dans la fonction d'API générique, ça doit être dans l'action propre à ce plugin. On rajoute aussi une option pour ajouter une chaine au titre dupliqué, mais c'est pas top pour l'instant car on ne sait toujours pas trouver uniquement le champ de titre.

File:
1 edited

Legend:

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

    r109510 r109511  
    2222 * @return array
    2323 */
    24 function action_dupliquer_objet_dist($objet = null, $id_objet = null, $modifications = array(), $options=array()) {
     24function action_dupliquer_objet_dist($objet = null, $id_objet = null) {
    2525        // appel direct depuis une url avec arg = "objet/id/enfants"
    2626        if (is_null($id_objet) or is_null($objet)) {
     
    3131       
    3232        if ($objet and $id_objet) {
     33                include_spip('inc/config');
     34                $options = array();
     35               
     36                // S'il y a des champs précis à dupliquer pour cette option, on rajoute aux options
     37                if ($champs = lire_config("duplicator/$objet/champs", array())) {
     38                        $options['champs'] = $champs;
     39                }
     40               
     41                // Si on demande à dupliquer aussi les enfants
    3342                if ($enfants) {
    3443                        $options['dupliquer_enfants'] = true;
     
    3645               
    3746                // Si on a réussi à dupliquer
    38                 if ($id_objet_duplicata = intval(objet_dupliquer($objet, $id_objet, $modifications))) {
     47                if ($id_objet_duplicata = intval(objet_dupliquer($objet, $id_objet, $modifications, $options))) {
    3948                        include_spip('inc/headers');
    4049                       
     
    6675 * @param $options
    6776 *              Tableau d'options :
     77 *              - champs : liste des champs à dupliquer, sinon * par défaut
     78 *              - ajout_titre : ajouter une chaine à la fin du titre
    6879 *              - dupliquer_liens : booléen précisant si on duplique les liens ou pas, par défaut oui
    6980 *              - dupliquer_enfants : booléen précisant si on duplique les enfants ou pas, par défaut non
     
    7889       
    7990        // On cherche la liste des champs à dupliquer, par défaut tout
    80         $champs = lire_config("duplicator/$objet/champs", array());
    81         if (empty($champs)) {
     91        if (isset($options['champs']) and $options['champs']) {
     92                $champs = $options['champs'];
     93        }
     94        else {
    8295                $champs = '*';
    8396        }
     
    87100        // On retire la clé primaire
    88101        unset($infos_a_dupliquer[$cle_objet]);
     102       
     103        // Si on a demandé à ajouter une chaine après le titre
     104        // TODO : on n'a toujours rien pour trouver uniquement le champ de titre SEUL
     105        if (isset($options['ajout_titre']) and isset($infos_a_dupliquer['titre'])) {
     106                $infos_a_dupliquer['titre'] .= $options['ajout_titre'];
     107        }
    89108       
    90109        // On applique des modifications s'il y en a
Note: See TracChangeset for help on using the changeset viewer.