Plugin Duplicator

Duplication de rubrique et de ses contenus, et duplication d’articles pour SPIP

Fonctionnement

Ce plugin permet de dupliquer une rubrique et son contenu depuis l’espace privé en ajoutant un bouton dans la navigation de gauche dans l’espace privé des rubriques.

Il permet également de dupliquer un article en ajoutant un bouton dans la navigation de gauche de l’espace privé des articles.

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’icone de configuration.

Elle n’est volontairement plus disponible depuis le menu de Configuration, car en principe, la configuration n’a lieu qu’un fois, il n’est donc pas nécessaire de surcharger le nombre de boutons dans ce menu pour si peu.

La configuration permet de faire apparaître le bouton de duplication sur les rubriques et/ou les articles.

Il est également possible de choisir spécifiquement le nom des champs SQL à dupliquer pour les rubriques ou pour les articles. Si aucun choix n’est fait, les champs par défaut de SPIP sont conservés.

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.

Incompatibilité - SPIP 2

Avec SPIP Sondage qui s’immisce dans le fonctionnement... ??

fille.id_lettre AS id, maman.id_secteur AS secteur FROM spip_sondages AS fille, spip_rubriques AS maman WHERE fille.id_rubrique = maman.id_rubrique AND fille.id_secteur <> maman.id_secteur 
Unknown column 'fille.id_lettre' in 'field list'

Il convient donc de désactiver SPIP Sondage avant duplication (et de ne pas oublier de le remettre ensuite... :p).

Autorisations

A partir de la version 1.5.0 (août 2014), il est possible de préciser qui a le droit de dupliquer comme le montre l’écran de config ci dessous

Authorisations sur le plugin SPIP Duplicator

Améliorations


-  Corriger le redirect à la fin de l’action, qui ne renvoie actuellement pas sur l’objet créé
-  Permettre de restreindre aux administrateurs et/ou webmestres depuis la config
-  Prendre en charge les traductions liées qui ne sont pas dans le même dossier (en cas de rubricage racine : langue1/langue2, suivre les liens entre articles pour dupliquer les rubriques « liées »). (déjà réalisé dans une version déviée du plugin)

Dernière modification de cette page le 13 février 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 :)

    Répondre à ce 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 !

    Répondre à ce 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 !

    Répondre à ce 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.

    Répondre à ce 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.

    Répondre à ce 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.

    Répondre à ce 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).

    Répondre à ce 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 :)

    Répondre à ce message

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

    Répondre à ce 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 ! :)

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom