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)

Discussion

28 discussions

  • 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

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

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

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

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

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

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

    Répondre à ce message

  • 8
    Guillaume

    Bonjour,

    Est-ce que le plugin fonctionne toujours ?
    J’ai tout essayé, mais jamais le bouton Dupliqué n’est apparu dans la colonne de Gauche.

    Pouvez-vous m’aider.
    Pourtant je suis en version 3 de Spip et j’ai récupéré la dernière version du plugin sur le SVN.

    Merci d’avance

    • Bonjour

      Il faut être WEBMESTRE.
      ADMINISTRATEUR n’est pas suffisant.

    • Bonne réponse, merci.
      Est-il possible, et si oui comment, d’étendre la capacité de dupliquer aux administrateurs, voire aux rédacteurs ?

      Merci beaucoup d’avance

    • OUI c’est possible.

      Comment ? en modifiant le code du plugin.

      Perso, pas trop le temps de m’y mettre mais je suggère à celui qui s’y attellera que cette possibilité soit configurable.

    • Bonjour,
      je viens d’effectuer une modification afin de gérer l’autorisation des administrateurs à utiliser la duplication. J’en ai profité pour que cela soit modifiable via la configuration.
      C’est a minima (nous avions juste besoin d’autoriser les administrateurs en plus des webmestres), mais facilement modifiable pour ajouter éventuellement les rédacteurs.

      Je ne sais pas du tout comment je dois procéder pour en faire bénéficier tout le monde !
      Envoyer les 3 fichiers impactés à l’un des développeurs serait le plus simple je pense :-)
      J’ai mis mon courriel si vous voulez me contacter directement.
      Bonne journée à tous.

    • Salut :)

      Le plus simple serait que tu commites directement ! En demandant un accès à SPIP Zone (http://zone.spip.org/trac/spip-zone/ => Comment Participer) :) Ca te permettrait de continuer de contribuer, éventuellement sur d’autres plugins.

      Mais oui, sinon tu peux envoyer les corrections à qui tu le souhaites ayant un compte sur SPIP Zone qui pourra alors les commiter à ta place.

      Bonne journée !

    • MERCI Oliv pour ta contribution

      Je fais la même réponse que xdjuj. Demande ton accès spip-zone et ainsi tu rejoindras la communauté des contributeurs.

      C’est vrai, cela demande un petit effort au départ (comprendre comment fonctionne la zone, etc.) mais quelle satisfaction de pouvoir apporter sa brique à l’édifice et sentir que l’on fait partie d’une noble entité !

      En passant, l’admin de spip-contrib pourra aussi t’ajouter en tant que Rédacteur, voir admin, de cet article. Tu pourras le modifier pour ajouter les nouvelles fonctionnalités.

      http://zone.spip.org/trac/spip-zone/

    • Merci à vous deux pour cette confiance :-)
      Je viens d’effectuer l’inscription et la demande, j’espère correctement !
      Dès que j’ai une autorisation, je regarde comment cela fonctionne pour déposer.
      A bientôt.

    • Salut, merci pour la fonctionnalité d’autorisation oliv, je viens de mettre à jour l’article avec une copie d’écran qui précise que c’est possible.

    Répondre à ce message

  • 2

    Bonjour,

    Merci pour ce plugin, tout est OK sur SPIP3.011.
    Est-il possible de l’adapter simplement à la duplication de brèves ?

    • Quentin

      Et pour la duplication d’évènement ? Ce serait possible ?

      Merci d’avance.

    • Merci pour l’outil !!.... Comme Quentin, est-il possible de le faire pour les événements ? Merci.

    Répondre à ce message

  • hello, la doc dit que la duplication d’article reprend les documents joints, mais ce n’est pas la cas.
    Une évolution est prévue ?

    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

Dernière modification de cette page le 25 mars 2018