Plugin Duplicator

Duplication des objets éditoriaux de SPIP : rubriques, articles, auteurs, ....

Fonctionnement

Auparavant limité à rubriques et articles, la version 2.0 du plugin permet de dupliquer aisément tous les objets courants de SPIP (rubriques, articles, auteurs, mots-clés, .....) en ajoutant un bouton “dupliquer” dans l’espace privé

Ce plugin peut être associé au plugin Vider rubrique afin de nettoyer plus facilement les arborescences.

Rubriques

Pour les rubriques, la duplication reprend :

  • les logos
  • les articles (leur contenu, leur statut, leurs mots clefs et logos)
  • les sous-rubriques (n niveaux), les mots clefs liés, ses articles (contenu + statut + mots clefs) et ses logos
  • l’URL en ajoutant le numéro de rubrique à la fin pour éviter des URL identiques
  • le contenu de la rubrique (description, etc.) et les éventuels champs extra s’ils sont mentionnés dans la configuration du plugin.

La nouvelle rubrique est créée au même niveau que la rubrique copiée.

Articles

Pour les articles, la duplication reprend :

  • le logo
  • le contenu et les éventuels champs extra s’ils sont mentionnés dans la configuration du plugin,
  • les documents joints
  • les mots clés
  • l’URL en ajoutant le numéro de l’article à la fin pour éviter des URL identiques.

L’article est créé dans la même rubrique.

Configuration

La configuration est disponible à partir de la page classique de gestion des plugins de SPIP.

À droite du nom du plugin, en cliquant sur l’icône de configuration.

Sur le menu de configuration, on peut choisir les objets que l’on veut permettre de dupliquer:

Sur chaque objet éditorial, vous pouvez déplier les options pour choisir:

  • les autorisations (qui a le droit de dupliquer ?)
  • si besoin les choix des champs à dupliquer
  • le statut à reprendre ou non
  • les enfants à reprendre ou non

En images

Un nouveau bouton apparaît dans la colonne de gauche des rubriques

Au clic une fenêtre de confirmation apparaît.

Après validation l’opération est executée.

La nouvelle rubrique est créée, contient la même hiérarchie que sa rubrique sœur, les articles sont conservés ainsi que leurs statuts et leurs contenus, en fonction de la configuration choisie.

Les articles quant à eux sont copiés dans la même rubrique.

updated on 8 October 2019

Discussion

28 discussions

  • 1

    Bonjour,

    Est-il possible de limiter la présence du bouton “dupliquer cette rubrique” uniquement sur les rubriques secteurs ?
    Si oui, comment peut-on procéder ?

    • Salut :)

      En fait j’ai une version non commitée qui fait pas mal de trucs dans le genre... Et qui répond à des demandes précédentes. Cette version rajoute des fonctionnalités et fusionne également le plugin Vider rubriques...

      Là ce soir je peux juste te suggérer d’attendre un peu :)

    Reply to this message

  • 8

    Bonjour,

    Après dernière mise à jour du plugin en Version 1.2.0 SVN [68646] sous spip 3.05, duplicator ne fonctionne plus, pas de boite qui s’ouvre et il me crée un article vide

    Il s’agit d’une erreur jquery UI :
    TypeError: jQuery(...).html(...).dialog is not a function

    J’ai supprimé le plugin réinstallé et re-paramétré et vidé le cache mais rien n’y fait !

    J’ai testé sur un spip3 avec Duplicator et CFG seuls sans effets.

    Cordialement
    Luc

    • Oups... :)

      C’est normalement réparé j’ai commité un correctif. Dit moi si c’est ok.

    • Bonjour merci pour ta réactivité,

      C’est pas réglé, j’ai cette erreur :

      Erreur dans les plugins : /monchemin/plugins/auto/duplicator/v1.2.0/duplicator_pipelines.php

      Merci

    • Alors j’avoue que je ne sais pas trop comment fonctionne auto car je ne l’utilise jamais. Mais tu devrais être en 1.2.1 et non pas en v1.2.0 c’est peut être déjà un soucis.

      Sinon, voici le contenu des modifications que j’ai effecutées, si tu veux les répercuter à la main pour essayer ? (je n’ai pas testé là j’ai pas de quoi le faire)
      -  http://zone.spip.org/trac/spip-zone/changeset/68945

    • Bonsoir xdjuj,

      J’étais sur la bonne piste : http://contrib.spip.net/jQuery-UI-4180

      Sinon, il y a un s en trop à duplicator_pipelines dans le xml


      doit être

      J’ai corrigé à la main la boîte s’ouvre bien mais j’ai toujours une création sans copie !

      Cordialement

    • Flute

      la bonne syntaxe
      pipeline nom=“jqueryui_plugins” inclure=“duplicator_pipeline.php”

    • Oui effectivement, c’est une coquille pour le s, c’est corrigé et commité.

      Pour les copies vides, c’est un bug qu’on avait remarqué mais on avait pas fait gaffe plus que ça. Je viens de regarder, c’est le “par défaut” qui ne fonctionne pas, je t’invite (en attendant que ça soit corrigé) à spécifier manuellement les champs que tu souhaites, par exemple :

      -  articles : titre,descriptif,texte,surtitre,soustitre,url_site
      -  rubriques : titre,descriptif,texte,id_parent

      Ca fera la blague en attendant.

    • Si tu mets à jour avec la version 1.3.0 du plugin tout semble rentré dans l’ordre, car la solution que je te donne juste avant était aussi cassée sur la version 1.2.x du plugin.

      Normalement, là c’est tout ok, tu me confirmes que ça va mieux ?

    • Ce petit post pour te remercier xdjuj, plugin opérationnel le lundi matin !

    Reply to this message

  • Je viens de faire une grosse mise à jour sur le plugin pour SPIP 3. Nettoyage du code et simplification de l’ergonomie (confirmation par pop-in plutôt que par multi pages).

    J’ai mis à jour la documentation en conséquence (nouveaux screenshots).

    Joyeuses fêtes !

    Reply to this message

  • 1

    Bonjour et merci pour ce plugin qui vient de me faire économiser beaucoup de temps.

    Une petite suggestion pour une prochaine évolution : dupliquer également les champs extra.

    Il me semble que cela ne devrait pas être compliqué à implémenter car les champs extra ne sont que des champs (colonnes) supplémentaires pour chaque objet (articles ou rubriques). C’est juste une question de modifier un peu la requête mysql.

    • Bonjour

      Si cela intéresse l’auteur du plugin, j’ai développé la fonctionnalité qui permet de configurer les champs à dupliquer. D’ailleurs c’était en TODO dans le code. Du coup, cela permet de spécifier des champs extra. Je peux lui transmettre le code ou commiter sur la zone, au choix.

    Reply to this message

  • 1

    Une autre suggestion : dupliquer également les url, en ajoutant le n° de l’objet à la fin de l’url.

    • Bonjour

      Si cela intéresse l’auteur du plugin, j’ai développé la fonctionnalité de recopie des url. Je peux lui transmettre le code ou commiter, au choix.

    Reply to this message

  • Bonjour, formidable ce plugin !! Il fait très exactement ce dont j’ai besoin - pour gérer le calendrier des manifestations d’une asso qui refait pratiquement les mêmes chaque année. Mais une petite question : j’ai également des évènements dans certains articles (plugin agenda), sont-ils aussi dupliqués ?

    Merci encore pour ce superbe boulot ...

    Marc.

    Reply to this message

  • 2

    Bonjour,

    Il ya une petite modification à faire sur le fichier formulaires/duplicator_confirm.html à la ligne 2
    Remplacer naviguer par rubrique

    <p><a href="[(#URL_ECRIRE{naviguer}|parametre_url{'id_rubrique',[(#ENV*{message_ok}|table_valeur{cible})]})]" title="Rafraichir">[(#ENV*{message_ok}|table_valeur{type_retour})]</a></p>
    par
    <p><a href="[(#URL_ECRIRE{rubrique}|parametre_url{'id_rubrique',[(#ENV*{message_ok}|table_valeur{cible})]})]" title="Rafraichir">[(#ENV*{message_ok}|table_valeur{type_retour})]</a></p>

    • Petite précision : cela concerne la version du plugin pour spip 3

    • Effectivement les liens ont changé dans SPIP 3, c’est corrigé, merci :) (mais il ne fallait pas hésiter et commiter directement cette modification !!)

      Précision également, le répertoire V1 est désormais renommé branches/v0/ (il concerne la version v0.x du plugin, pour SPIP 2.x) et le dossier V2 est renommé trunk/ (et concerne la version v1.x du plugin, version pour SPIP 3.x).

    Reply to this message

  • 1

    Bonjour,
    Sous spip3, les champs extras ne sont pas dupliqués visiblement.

    • Je crois que ça n’est pas pris du tout en compte, il faudrait qu’on y jette un oeil c’est vrai, car en SPIP3 c’est devenu tellement facile et pratique que l’usage des champs extras est devenu terriblement courant :)

    Reply to this message

  • Une nouvelle version du plugin ajoute la fonction de duplication sur les articles, un nouveau bouton apparaît : “Dupliquer cet article”.

    Reply to this message

  • 1
    Guillaume

    Bonsoir. Merci pour cet excellent plugin !!!
    Juste un bémol : par défaut le plugin ne duplique pas les liens entre articles et documents.

    je propose donc cette petite modification dans le fichier action/dupliquer ajouter la fonction associer_documents : :

    function associer_documents($objet, $id_source, $id_dest){
    	// récupération des documents liés à l'article que l'on souhaite dupliqué
    	$champs = array('*');
    	$from = 'spip_documents_liens';
    	$where = array( 
    		'id_objet='.$id_source, 
    		'objet="'.$objet.'"'
    	);
    	$docs = sql_allfetsel($champs, $from, $where);
     
    	// liaison des documents au nouvel article
    	foreach($docs as $doc){
    		$n = sql_insertq(
    			'spip_documents_liens',
    			array(
    				'id_document' => $doc["id_document"],
    				'id_objet' => $id_dest,
    				'objet' => $doc["objet"],
    				'vu' => $doc["vu"]
    			)
    		);
    	}
    }

    Et modifier ajouter la ligne suivante dans la fonction dupliquer_article() juste avant de retourner l’id du nouvel article :

    1. associer_documents("article", $article, $id_article);

    Et de même pour l’action dupliquer_rubrique() :

    1. associer_documents("rubrique", $rubrique, $id_nouvelle_rubrique);

    Encore merci. Très beau boulot !

    • Bonjour Guillaume :)

      Ca n’est pas un oubli :) Quand tu dupliques une hiérarchie complète, l’idée est souvent qu’elle contiendra un contenu différent. Les documents étant justement du contenu, si tu dois t’amuser à désassembler les documents... Ca prend du temps pour rien :)

      Typiquement si tu dupliques une arborescence d’une galerie photo, c’est que tu veux l’utiliser pour de nouvelles photos (sinon la duplication n’a pas de sens). C’est pour ça que Duplicator ne prend pas en compte les documents liés aux articles :)

      Pour tenir ce rôle, il existe déjà le plugin DocuCopieur : http://www.spip-contrib.net/DocuCopieur-copieur-de-documents

      Ton code pourrait en revanche être optionnel, pour les cas particuliers que tu sembles utiliser, avec une checkbox “conserver les documents attachés” :)

      Bonne journée et merci de ton retour ! :)

    Reply to this message

Comment on this article

Who are you?
  • [Log in]

To show your avatar with your message, register it first on gravatar.com (free et painless) and don’t forget to indicate your Email addresse here.

Enter your comment here

This form accepts SPIP shortcuts {{bold}} {italic} -*list [text->url] <quote> <code> and HTML code <q> <del> <ins>. To create paragraphs, just leave empty lines.

Add a document

Follow the comments: RSS 2.0 | Atom