Conversion des brèves en articles

Avec l’évolution de SPIP, les brèves deviennent un objet historique, dont le maintien s’avère parfois inadapté. Il peut donc se révéler utile de convertir les brèves en articles, c’est ce que fait ce plugin.

La conversion des brèves en articles

Ce plugin sert à convertir les brèves de votre site spip en articles. Les nouveaux articles créés sont insérées dans une rubrique, et un auteur pré-existant leur est optionnellement affecté.

La conversion des brèves en articles traite les points suivants :

  • le contenu de la brève devient le contenu de l’article
  • tous les forums associés à la brève deviennent forums de l’article
  • le logo de la brève devient logo de l’article
  • les mots clés associés à la brève sont associés à l’article
  • la date de création de la brève est conservée comme date de création de l’article créé ainsi que date de publication et date de modification
  • le titre du secteur de la brève convertie est copié dans le surtitre de l’article (ce qui permet éventuellement de gérer à nouveau une pseudo arborescence de secteurs).
  • le statut de publication de la brève devient statut de l’article

Les brèves converties ne sont pas détruites, afin de conserver une trace de ces brèves, mais rien ne vous empêche ensuite de vider définitivement la table spip-breve.
Selon la configuration choisie, leur statut soit n’est pas modifié, soit est transformé en ’proposé’ ou ’refusé’.

Mise à jour des liens internes du site

Après avoir fait la migration des brèves en articles, il est intéressant voir nécessaire de modifier les liens de votre site qui pointaient vers les brèves, désormais obsolètes.

Le plugin permet de parcourir les différents objets du site, et de transformer un lien vers une brève, en lien vers l’article correspondant de cette brève.

Les objets parcourus par cette mise à jour sont :

  • articles
  • rubriques
  • auteurs
  • forum
  • syndic

Tout le contenu éditorial de ces objets est testé (titre, sous et sur, chapo, texte, descriptif ...). Les brèves elles-mêmes ne sont pas modifiées.

La recherche du lien se fait avec l’expression régulière suivante :
/\[([^]]*)-\>br[ev]{0,3}([0-9 ]+)\]/

Donc si une brève a été convertie en article, tout lien ->brXXX ou ->breXXX ou ->brevXXX ou ->breveXXX sera transformé en lien ->articleXXX

Pour cela, le plugin mémorise dans la table spip_breves_articles les correspondances entre un id_breve et l’id_article associé. Le nom de cette table peut être est redéfini dans le fichier options.php du plugin.

Suivi des liens externes au site

Le plugin fournit également un squelette exemple breve_redirection.html qui redirige les liens externes qui pointent encore vers les pages de breves de votre site vers leur remplaçant sous forme d’articles. Pour ce faire, ce squelette utilise la table spip_breves_articles remplie lors de la conversion.

Pour l’activer, il est nécessaire de le recopier avec le nom breve.html dans votre dossier squelette, une fois toutes les brèves converties.

Une fois ceci fait, ce nouveau squelette breve assure la redirection 301 des appels vers les anciennes breves vers les articles , c’est à dire sans perte de référencement.

Installation / Désinstallation

Ce plugin s’installe simplement .

La désinstallation supprime la table de correspondance entre les brèves et les articles créés.

Attention : pour l’instant, ce plugin a besoin du plugin bandeau pour fonctionner

Paramétrage et utilisation du plugin

La page pour accéder aux fonctions du plugin se trouve dans la partie privée, dans le menu Maintenances, puis « Breves vers Article ».

Il y a 2 modes de conversion :

  • pour tester, on indique le n° d’une seule brève
  • conversion de toutes les brèves du site

Les options accessibles sont :

  • la rubrique dans laquelle les articles crées seront insérés : obligatoire
  • l’auteur associé aux articles créés : facultatif
  • activer la modification des liens internes du site vers les articles issus de la conversion des brèves. Cette opération peut se faire en même temps que la conversion des brèves, ou bien plus tard. Les 2 opérations sont indépendantes, mais la conversion doit bien entendu se faire avant la modification des liens.

Discussion

14 discussions

  • 1

    salut

    quelle est la solution si on souhaite garder les breves sous SPIP 4.2 ?

    A+

    Répondre à ce message

  • 1

    Bonjour,
    je viens d’utiliser le plugin v 1.3.2 avec spip 3.2.4 sans problème.
    1 fois avec une brève (id 2) de test vers sa rubrique d’origine et avec un id auteur précis, passée en statut proposé après conversion. Pas pu tester avec des liens internes/externes
    1 fois avec toutes les brèves, résultat identique :

    Breve n°2deja traitée, vers l'article 372
    Bréve n°3 vers l'article 373Bréve n°4 vers l'article 374Conversion des bréves terminées
    Modification des liens vers les breves

    AMHA ce plugin peut passer en spip 3.2

    Répondre à ce message

  • 2

    Est-ce que ce plugin est compatible SPIP 3.1 (et 3.2 bientôt) ?

    Je viens de le tester avec SPIP 3.1 sans problème.

    • Si tu as testé sans problème, hésite pas à modifier les bornes sur la version zone.

    • Borne du plugin mise à jour, merci. (pour 3.1, pas testé en 3.2)

    Répondre à ce message

  • 1

    Si jamais la boucle fournie dans breves_vers_articles.html (renommé breve.html sur votre site) ne fonctionne plus (parce que vous avez mis à jour votre SPIP ou que sais je), faites une boucle sur le nom réel et complet de votre table, avec le préfixe, et en minuscule :

    par exemple :

    <BOUCLE_V(spip_breves_articles) ....

    • ça existe encore les brèves dans SPIP 3.1 ?
      Lol si ça marche tant mieux !

    Répondre à ce message

  • 3

    Pour les gens qui s’amusent à lancer 2 fois le formulaire sans le faire exprès...
    (JLuc : il faudrait mettre un verrou ou tester dans spip_breves_articles que ce n’est pas déjè fait)

    Voici des requêtes pour trouver les articles créés en doubles ! (et uniquement en double, ça suffit comme ça les bétises !)

    Liste des breves qui ont été doublonnées

    SELECT id_breve FROM <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9icmV2ZXNfYXJ0aWNsZXM8L2NvZGU+"></span> GROUP BY id_breve HAVING count(id_article) = 2

    Liste des articles correspondants

    SELECT id_article FROM <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9icmV2ZXNfYXJ0aWNsZXM8L2NvZGU+"></span> WHERE id_breve IN (SELECT id_breve FROM <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9icmV2ZXNfYXJ0aWNsZXM8L2NvZGU+"></span> GROUP BY id_breve HAVING count(id_article) = 2)

    Un seul des articles doublonnés

    SELECT id_article FROM <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9icmV2ZXNfYXJ0aWNsZXM8L2NvZGU+"></span> WHERE id_breve IN (SELECT id_breve FROM <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9icmV2ZXNfYXJ0aWNsZXM8L2NvZGU+"></span> GROUP BY id_breve HAVING count(id_article) = 2) GROUP BY id_breve

    Passer ces articles a la poubelle

    UPDATE spip_articles SET statut='poubelle' WHERE id_article IN 
    (SELECT id_article FROM <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9icmV2ZXNfYXJ0aWNsZXM8L2NvZGU+"></span> WHERE id_breve IN (SELECT id_breve FROM <span class="base64" title="PGNvZGUgY2xhc3M9InNwaXBfY29kZSBzcGlwX2NvZGVfaW5saW5lIiBkaXI9Imx0ciI+c3BpcF9icmV2ZXNfYXJ0aWNsZXM8L2NvZGU+"></span> GROUP BY id_breve HAVING count(id_article) = 2) GROUP BY id_breve)

    Voilou.

    • Ou comment réparer une grosse boulette et de surcroît contribuer au projet, bravo !
      Merci Matthieu et promis je le referai plus !

    • Ah oui, en effet. Mémoriser la date de dernier lancement et vérifier que c’était pas ya moins de 2 secondes par exemple.

    • ou ne convertir que celles qui ne l’ont pas déjà été...

    Répondre à ce message

  • 1
    Jaseur Boreal

    Bonjour,
    Sur un site à jour sous SPIP3.04 et Escal 3.31.

    Je viens de convertir toutes mes brèves (env 15) vers articles, en choisissant de les garder dans les rubriques d’origine, en passant leur statut à « proposées »

    Oh grande surprise, elle sont toutes visibles et listées sur le site public !

    et en même temps grand paradoxe : dans la gestion privée des articles elles restent « proposée à l’évaluation ».
    Cela serait agréable d’accorder les violons, y a til une solution ?
    Merci de votre attention.
    Cordialement

    • si vos brèves « proposées à l’évaluation » sont visibles sur votre site, c’est qu’il y a un problème sur votre site, soit dans le squelette, soit dans SPIP...

      Le problème se produit il également avec une brève que vous créez « normalement » est que vous proposez à l’évaluation ?

    Répondre à ce message

  • 4

    Bonjour,
    Génial ce plugin ! Merci.
    Avant de convertir toutes mes brèves ’’par lots’’, j’aimerais savoir s’il est ou sera possible d’associer automatiquement des mots-clés aux articles créés ?

    Cordialement

    • Une fois les articles créés tu en fais ce que tu veux, mais il n’y a rien de prévu dans le plugin pour leur associer automatiquement un motclé ou un logo. Par contre tu peux leur associer un auteur, à partir de là il sera facile avec phpmyadmin par exemple de leur associer un motclé.

    • Merci JLuc !
      Je ne maitrise pas phpadmin mais vu ma quantité de brèves, je peux encore le faire manuellement article par article. Pas de souci.
      Par contre, je me rends compte que lors de la conversion, le logo de l’article créé est bien celui de la brève (très pratique !) mais le logo de la brève disparait. As-tu une solution ?

    • Lors de la transformation, le logo des breves est renommé de manière à servir aux articles correspondant, et donc les brèves n’ont plus de logo (on s’en fout car on n’est pas sensé les garder).

      Mais si tu fais une sauvegarde de ton répertoire IMG AVANT de lancer la conversion, et que tu en recopies le contenu dans ce même répertoire APRES avoir fait la conversion (sans en effacer le contenu préallablement), alors tu auras un logo pour les nouveaux articles et pour les anciennes breves.

      Mais avoir un contenu dupliqué et visible à 2 adresses différentes (article et brève) est une pratique à éviter (google duplicate content notamment).

    • Merci Jluc pour ces bons conseils... et la rapidité de tes réponses !

    Répondre à ce message

  • Stéphane

    Merci encore pour ce plugin qui marche super bien.

    Juste un point à signaler : après la conversion, ne faites pas comme moi une désinstallation du plugin vu qu’il à bien réalisé son travail.
    Dans ce cas, la redirection brève vers article ne marche plus. Heureusement, j’avais une sauvegarde.

    Répondre à ce message

  • 2
    Stéphane

    Bonjour

    Je teste le plugin sur un easyPhp local et après activation, je ne vois pas comment le lancer.
    Je vais comme indiqué dans configuration/maintenance du site mais il n’y a pas d’onglet ou bouton.
    J’ai loupé quelque chose ?

    • Stéphane

      Pour info si je lance le plugin à partir de la liste des plugin, j’ai le message
      « Fichier configurer_breves_vers_articles introuvable »
      ca doit être lié à l’installation sur un EasyPHP.
      Je recommence en manuel

    • Il faut installer le plugin « bandeau » pour faire apparaitre l’option au menu

    Répondre à ce message

  • 1
    stephane

    Bonjour.
    Effectivement, maintenir des articles et des breves devient compliqué en l’absence de boucle universelles, par exemple pour générer un seul flux de syndication.
    Je vais donc y passer.

    par contr, j’aurai aimé mieux comprendre ce qui va se passer en terme de référencement des pages SEO. Je ne suis pas expert sur le comportement du réglage Type d’adresse Url. A ce moment, j’ai propres_qs en paramètre.
    C’est cette URL qui est donc connue de Google et autre.
    Quand SPIP va recréer une nouvelle adresse d’article, va t’il reutiliser la même construction de nom ? a priori il semble qu’il ajoute un + avant et apres pour une breve et un - pour un article.
    Des lors, peut être peut on faire un automatisme pour que le nom reste le même du cote Google ?

    • Il y a un squelette de brèves fourni avec le plugin, qui doit remplacer votre squelette de brèves une fois toutes les transformations faites (et pas avant). Ce squelette assure une redirection SEO-friendly, même si le nom change.

    Répondre à ce message

  • Bonjour JLuc,

    Un grand MERCI pour ce plugin totalement opérationnel et parfaitement adapté à nos besoins.

    Il s’est révélé indispensable pour que le site « le semeur » puisse à nouveau exprimer pleinement sa matière au sens décrit dans l’article :

    Bien cordialement

    FDG

    Répondre à ce message

  • 13

    Bonjour ;

    Excellent plugin dont j’aurais l’utilité pour un site mais :

    Pourriez-vous ajouter la possibilité d’utiliser les secteurs comme rubriques dans lesquels les articles sont créés à partir des brèves du même secteur.

    Sinon il fut ultérieurement redistribuer à la main toutes les brèves depuis la rubrique unique de création des articles dans les bon secteurs, travail pour le moins non négligeable, oui alors faire la création brève par brève, ce qui est aussi très long et fastidieux.

    Ainsi on conserverait automatiquement la structure organisationnelle.

    Cordialement

    FDG

    • Hello François, merci pour ton avis sympathique.

      Pendant la conception de ce plugin nous avons envisagé comment ranger les articles générés et nous avons choisi de les stocker tous dans la même rubrique car c’est ce dont nous avions besoin. Il pourrait certes y avoir une nouvelle option pour stocker les breves dans des sous-rubriques mais ce n’est pas prévu pour l’instant. (gogogo développe qui veut !)

      Le titre de leur secteur d’origine est toutefois enregistré dans le surtitre de l’article, et il est possible de tester ce surtitre en critère des boucles ARTICLES qui les remplacent. ça devrait te permettre de faire tout ce que tu veux.

    • Hello JLuc,

      Merci pour votre réponse, je fais cependant la suggestion suivante sous forme de question :

      Est-ce compliqué pour vous de faire une version de ce plugin qui écrit l’article dans le secteur où elle trouve la brève correspondante ... plutôt que de l’écrire dans la rubrique indiquée dans le menu (ce qui semble l’application la plus logique de ce plugin, puisque l’on retrouve ainsi « les articles issus de brèves » dans les rubriques ou les auteurs ont voulu les placer à l’origine) ?

      Je suppose que oui, sinon vous l’auriez déjà fait !

      Bien cordialement

      FDG

    • Pour cela a première vue il suffit que tu remplaces les lignes 51 et 52 de breves2art_fonctions.php :

      $nouvel_article['id_rubrique'] = $id_rubrique;
      $secteur = sql_getfetsel('id_secteur', 'rubrique', 'id_rubrique='.intval($id_rubrique));

      par :

      $nouvel_article['id_rubrique'] = $res['id_rubrique'];
      $secteur = sql_getfetsel('id_secteur', 'rubrique', 'id_rubrique='.intval($res['id_rubrique']));
    • Salut JLuc,

      Je démarre les tests sous SPIP 2.1.10 et je bute d’emblée sur le point suivant , la doc indique :

      Paramétrage et utilisation du plugin

      La page pour accéder aux fonctions du plugin se trouve dans la partie privée, dans le menu Maintenances, puis « Breves vers Article ».

      Or je ne trouve nul part le lien « Breves vers Article »

      Je ne trouve pas le menu « Maintenances »

      Il y a bien « Maintenance du site » sous « Configuration » mais il ne s’y trouve pas de lien « Breves vers Article »

      Y-a-t’il incompatibilité avec certains plugins ?

      Cordialement

      FDG

    • Salut Jean-Luc,

      Sur une autre version, SPIP 2.1.8, j’ai désactivé tous les plugins, même problème : pas de lien « Breves vers Article »

      avec ou sans la correction que tu propose aux lignes 51 et 52 de breves2art_fonctions.php.

      Cordialement

      FDG

    • C’est pas une correction, c’est une modification pour couvrir tes besoins.

      Pour ton problème d’accés : il faut en effet pour l’instant le plugin « bandeau ». ça c’est à corriger pour que ça marche sans bandeau.

    • Salut Jean-Luc,

      Tu as raison, excuse-moi pour cette inattention coupable, il s’agit bien d’une modification pour couvrir mes besoins pour mon problème d’accès.

      Merci pour l’info : activer le plugin « bandeau ».

      Je vais tester cela dans les meilleurs délais et te tien au courant.

      Cordialement

      FDG

    • Salut Jean-Luc,

      Sur une version, SPIP 2.1.8, j’ai activé uniquement les plugins

      • « bandeau » et
      • « breves_vers_articles »

      et j’accède à la fenêtre de dialogue « Conversion de brèves en articles »

      que je renseigne pour convertir la brève 50 en un article dans la rubrique 251. J’ai fait moult essais avec différents réglages tels que : avec et sans auteurs, changer la rubrique de destination, changer la brève, etc. et toujours ole même résultat :

      Fatal error : Call to undefined function breve2art() in /srv/www/spip02/plugins/breves_vers_articles/formulaires/breves_to_art.php on line 75
      SPIP 2.1.8 [16966] est un logiciel libre distribué sous licence GPL.

      la ligne 75 est :

      breve2art(_request(’id_test’), _request(’rubrique_br’), _request(’auteur_br’)) ;

      J’ai donc besoin de tes lumières.

      Cordialement

      FDG

    • idem avec SPIP 2.1.10 :

      Fatal error : Call to undefined function breve2art() in /srv/www/spip01/plugins/breves_vers_articles/formulaires/breves_to_art.php on line 61
      SPIP 2.1.10 [17657] est un logiciel libre distribué sous licence GPL.

      Cordialement

      FDG

    • Désolé, ya eu un mélange de versions avant publication. On va corriger.

    • C’est corrigé, dans la nouvelle version 1.1 du plugin.

    • Pour info, la version 1.2 du plugin propose de nouvelles options, dont celle de ranger les articles créés dans le secteur de la brève qui est à son origine.

    • Bonjour Jean-Luc,

      BRAVO, c’est excellent. Je testerais et utiliserais prochainement cette version.

      J’ai testé la version juste antérieure il y a quelques jours (je n’ai pas eu le temps de t’en faire part) avec et sans la modification que tu indiquais (c’était les lignes 55 et 56 du fichier breves_vers_articles_fonctions.php qui étaient concernées). La conversion a parfaitement fonctionné :

      • Tant pour ranger les articles créés dans une rubrique choisie ;
      • Que pour ranger les articles créés dans le secteur de la brève qui est à son origine.

      Un grand merci pour cet excellent plugin. Je te tiens au courant des résultats de mon utilisation du plugin « breves_vers_articles ».

      Cordialement

      FDG

    Répondre à ce message

  • ... et en lançant la conversion de toutes les brèves j’obtiens :

    Fatal error : Call to undefined function breve2art() in /srv/www/spip02/plugins/breves_vers_articles/formulaires/breves_to_art.php on line 61

    Cordialement

    FDG

    Répondre à ce message

  • 2
    Tropicaloo

    Bonjour,

    Merci pour ce plugin qui va m’être très utile pour un vieux site à restructurer. Avant de l’utiliser, j’aurais une question sur la conversion :

    Qu’en est-il de la date de publication ET de la date de rédaction antérieure ? (pour les sites qui utilisent les deux dates). Y’a-t-il une possibilité d’injecter automatiquement la date de la brève dans les deux champs pour avoir une date de rédaction et de publication identiques ?

    Merci.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

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