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 6 April 2020

Discussion

31 discussions

  • Jean-Marc Vanel

    J’ai dupliqué cet évènement:
    https://www.linneenne-lyon.org/spip3/spip.php?article2022&var_mode=calcul
    mais le vrai URL ne marche pas: Erreur 404
    https://www.linneenne-lyon.org/spip3/spip.php?article2022

    SPIP 3.2.4 [24285]
    Duplicator 2.0.8 - stable

    Reply to this message

  • 5
    Jean-Marc Vanel

    J’ai dupliqué et modifié un article :
    https://www.linneenne-lyon.org/spip3/spip.php?article2022&var_mode=preview
    mais si on enlève &var_mode=preview , ça ne marche pas: Erreur - 404
    https://www.linneenne-lyon.org/spip3/spip.php?article2022

    SPIP 3.2.4 [24285]
    Duplicator 2.0.8 - stable

    • Bah tout semble montrer que le nouvel article n’est pas en statut publié. Cela la configuration du plugin, le statut peut être ou pas conservé. A vous de voir, et le cas échéant de publier.

    • Merci Maïeul;
      Pour moi (blanc-bec Spip) le statut était publié après la duplication.
      J’ai fait la bascule “publié” => “en rédaction” => “publié”
      Ca n’a rien changé .

    • bah tu dois avoir un problème ailleur dans ton squelette du coup je pense ...

    • Ha oui , SarkaSpip qui est peu maintenu ...
      Je crois que je vais devoir faire du copier collé à la main.
      Pourtant le Duplicator avait marché il y quelques mois et on n’a rien changé à la config. ...

    • bah en fait je vois pas en quoi un copier-coller à la main changerait quoi que ce soit : un article publié doit être visible normalement côté public. S’il l’est pas c’est surement pas à cause du fait que c’est produit par duplicator...

    Reply to this message

  • Bonjour,

    Pouvez-vous me confirmer qu’il n’est pas possible de dupliquer un événement ?

    Bonne journée

    Reply to this message

  • 5

    il doit y avoir un bug dans votre plugin
    j’ai dupliqué 1 rub avec 2 s/rub
    sans aucun article ni mot clé
    ca marche bien, sauf que :
    une simple boucle comme :
    <BOUCLE_rub_art(RUBRIQUES){id_secteur=1}{titre=Articles}>
    ne ramène pas les rubriques racine (dans mon cas) qui ont des s/rub créées avec Duplicator
    Si je rajoute le critère tout elles apparaîssent.
    Comme si les s/rub n’avaient pas d’article (alors que j’en ai créé)
    Il faut savoir que j’utilise dans mes_options.php un code (de spip) qui publie les art automatiquement à la création.
    Ce qui est marrant, c’est que le fait de dépublier l’art et de le republier, les rubriques apparaissent
    J’ai fait plein de tests, qui confirment que le plugin est responsable
    j’ai tout supprimé les rubriques créées avec ton plugin et recréer tout à la main et ca fonctionne

    Voilà

    • Bonsoir.

      Par défaut, si une rubrique ne contient pas d’article, (et tu sembles indiquer que tu dupliques une rubrique vide), elle n’est pas publiée.

      Si la rubrique dupliquée contient des articles mais que la nouvelle rubrique n’est pas publiée, vérifie dans la liste des champs que tu indiques dans la configuration, que la colonne “statut” est bien renseigné. Le statut (qui doit contenir le mot “publié” dans la base de donnée) sera alors copié à l’identique de ta rubrique d’origine.

      A priori, ça devrait répondre à ta question.

    • Merci pour ta réponse
      en fait, quand 1 art est créé, il est automatiquement publié avec dans mes_options.php :

      $GLOBALS['spip_pipeline']['pre_insertion'] .= "|ma_fonction_pre_insertion";
      
      // Les nouveaux articles ou annonces seront automatiquement publiés si racine = 1; 
      function ma_fonction_pre_insertion($flux){
       if ($flux['args']['table']=='spip_articles' && $flux['data']['id_secteur'] == 1){
         $flux['data']['statut'] = 'publie';
       }
       return $flux;
      }

      Il se trouve que la rubrique reste en statut“prepa”, ce qui explique le pb
      ton plugin n’est pas responsable (j’étais pas formel)

      connais-tu la ligne à ajouter pour mettre en même temps la rubrique de l’article en “publie”
      sinon je demanderais dans le forum de spip

      Merci d’avance

    • Tu dois demander à SPIP de publier ton article plutôt que de le faire toi même.

      Le plus propre est d’utiliser la fonction article_instituer :
      -  http://code.spip.net/autodoc/tree/ecrire/action/editer_article.php.html#function_article_instituer

      Le plus dégueu mais qui dans ton cas bien précis fonctionnera, sera de changement manuelle le statut de la rubrique de ton article en publié comme tu le fais pour l’article.

      Mais article_instituer est là pour ça :)

    • merci,

      en fait dans mon formulaire editer_article il doit y avoir une erreur;
      car en utilisant celui de spip ca marche
      les lignes ajoutées dans mes_options ou la ligne :
      <input type='hidden' name='statut' value='publie' />
      ajoutée dans le formulaire editer_article forcent bien le statut “publie” dans les rubriques, en partant de la racine ...

      Merci

    • J’ai exactement le même problème que toi, avec le même code dans mes_options.php. Selon cette discussion tu as oublié duplicator pour tout faire à la main ou tu as changé le code php? Je ne comprends pas. Merci

    Reply to this message

  • 8

    n’est pas compatible spip 3.1.3

    • Bonjour Richard :) Et en étant plus précis ça donne quoi ?
      Il s’installe mais ne fonctionne pas ? Il ne fonctionne qu’à moitié ? Il ne s’installe pas ? Il donne des messages d’erreurs ? Il n’en donne pas ? etc.

    • Plugin incompatible
      je mets une photo jointe

      merci
      réponse rapide

    • Tu n’as juste pas installé la version compatible avec SPIP 3.1. En colonne de droite, fait bien attention à télécharger Duplicator 1.5.7 et non 0.3.0 ;-)

    • ah merci,
      mais c’était entre les 2 zip;
      pas judicieux
      peut-être pas de ta faute

      en tout cas bravo, plugin utils, pratique;

      peux-tu faire la même chose avec les auteurs et ce sera top

      car j’ai 1200 agents à créer

      Cordialement

    • merci

      super ca marche; ca duplique bien l’arborescence, mais me la met à la racine et nom pas à l’emplacement initial.

      pour améliorer le tout, serait-il possible de choisir le nom de la rubrique comme destination, dans le formulaire

      merci

    • Après, ce n’est pas compliqué de déplacer une rubrique dans l’arborescence de spip...

    • merci bien

      mais j’ai 1200 rubriques à créer; une rubrique par employé de l’établissement
      par contre pouvoir donner le nom de la rubrique serait bien;
      chaque employé a une rubrique principale avec son no de matricule

    • Salut Richard.

      Cliquer 1200 fois sur Duplicator je ne pense pas non plus que ça soit idéal... Tu iras nettement plus vite à te faire une requête SQL pour faire tes rubriques et les insérer directement en base de donnée !

    Reply to this message

  • 2

    DUPLICATOR embarque des CSS pour rien !

    En cherchant à réduire la taille de mes pages, j’ai analysé les fichiers CSS embarqués,
    et j’ai découvert plusieurs jquery.ui.*.css assez volumineux.

    J’ai appris que ces fichiers font parti de JQUERY UI qui est fourni dans la dist de SPIP.
    Mais les fichiers sont embarqués dans le header QUE si un plugin en a fait la demande.

    Donc je regarde quel plugin est le coupable,
    et je tombe sur DUPLICATOR.
    Effectivement, si je désactive DUPLICATOR, les fichiers CSS ne sont plus embarqués dans l’espace public.

    1) En quoi DUPLICATOR a t’il besoin de JQUERY UI ?
    2) Et pourquoi JQUERY UI est-il embarqué dans l’espace public alors que DUPLICATOR n’est utilisable que dans l’espace privé ?

    • Hello,

      C’est le cas de pal mal d’autres plugins, c’est certainement car il utilise la pipeline d’insertion des plugin jquery sans faire le test pour l’espace privé, y’a la même pour le plugin selecteur_generique ...

      du coup la pipeline insère des deux cotés privé et public

      par exemple pour grappes et le composant draggable, je fais comme ça :

      /**
       * Pipeline jqueryui_forcer pour demander au plugin l'insertion des scripts pour .sortable()
       *
       * @param array $plugins
       * @return array
       */
      function grappes_jqueryui_forcer($plugins){
          if(test_espace_prive()){ // On envoie que si on est dans l'espace prive
      		$plugins[] = "jquery.ui.core";
      		$plugins[] = "jquery.ui.widget";
      		$plugins[] = "jquery.ui.mouse";
      		$plugins[] = "jquery.ui.sortable";
      		$plugins[] = "jquery.ui.droppable";
      		$plugins[] = "jquery.ui.draggable";
          }
      	return $plugins;
      }

      Après je dirais aussi que certains plugins impose leurs css via une insertion auto, dans INSERT_HEAD_CSS et oblige a surcharger par la suite, ce qui bien souvent ne m’arrange pas : on multiplie les rêgles css et selecteurs pour rien. Il faudrait pouvoir choisir depuis le plugin si oui ou non on veut inssérer les styles... comme ça le non-intégrateur profite d’une installation facilitée et les autres peuvent construire leur site et optimiser si l’envie leur en prends ;-)

      un plugin ou module css ne devrait fournir quasiement que les selecteurs ou class css vides, a titre de base et d’information... sans considération de design ou de thème (pas de border, background-color, ....), enfin c’est mon avis et ce qui collerais le mieux avec mes “habitudes de travail”

    • Salut. Effectivement ça ne devrait pas être côté public, très juste, à corriger donc.
      En revanche, jQuery UI est utilisé pour les messages d’alertes et de confirmation, donc indispensable.

    Reply to this message

  • 1

    Bonjour,

    Je souhaite dupliquer la majeur partie de mon site pour produire une version anglaise. Les articles dupliqués font appel aux mêmes images avec leurs titres et descriptions.
    Si je remplace le titre d’une image, il se remplace partout.
    Je suis donc obligé pour mes articles dupliqués de supprimer mes images de les re-importer.

    Y a t’il une solution pour avoir sur une même image deux versions des titres et descriptifs en fonction de l’article dans lequel elles sont appelées ?

    Ou de dupliquer aussi les images quand on duplique un article ?

    Merci

    Reply to this message

  • 1

    Avec la version 0.3.0 sur spip 2.1 : alors que je demande la duplication d’un article, un nouvel article est bien créé, mais vide de texte (ni titre, ni contenu). Par contre, les motclés sont bien dupliqués.

    • Salut JLuc. Je crois qu’effectivement les “champs par défaut” ne fonctionnent pas (ou ne fonctionnaient pas, ça fait longtemps que je n’ai pas vu un SPIP 2.1 :) ). Va simplement dans la configuration du plugin et force le nom des champs que tu souhaites voir dupliqués, ça devrait le faire :)

      Bonne journée !

    Reply to this message

  • 2

    Bonjour,

    Merci pour cet outil bien pratique ;)

    SPIP 3.1.0-rc [22564] + Duplicator 1.5.3 (configuration vierge : 1 rubrique + 1 article, pas d’autres plugins).

    J’ai constaté 2 soucis :

    • Si on duplique un article qui possède un logo : il y a un retour de page blanche, mais l’article est dupliqué correctement
    • Si on choisi l’option «Choisir les champs à dupliquer», l’article est bien dupliqué mais le TITRE de l’article n’est pas dupliqué : c’est dommage, ce devrait être le minimum de la copie, sinon on ne peut pas éditer l’article ;)))))) Il faut alors OBLIGATOIREMENT ajouter le champ SQL TITRE pour ne pas se trouver coincé !

    Merci,
    françois

    • ... c’est bientôt Noël : une liste de tous les champs SQL disponibles proposés avec des cases à cocher serait peut-être pas mal ;)
      Avec bien sûr le champ TITRE coché par défaut.

    • La fonction

      action_spip_image_ajouter_dist() 

      semble causer le souci.

    Reply to this message

  • 2

    Bonjour,
    Merci pour ce plugin qui s’avère très pratique dans certains cas.
    Mes 2 suggestions :
    -  Ajouter une option pour dupliquer les logos (Il y a une API depuis SPIP 3.0.1x me semble-t-il).
    -  Ajouter la duplication des évènements.

    Reply to this message

Ajouter un commentaire

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