Plugin SuppMulti

Plugin pour supprimer automatiquement les balises <multi>

Le plugin Suppmulti permet de supprimer les balises <multi> créées par la barre multilingue et qui alourdissent parfois considérablement l’affichage d’un site. Il transforme alors chaque langue supplémentaire en un nouvel article et lie automatiquement les traductions et les mots clés.

L’idée de ce plugin est né lorsque j’ai voulu modifier la gestion multilingue du site dont je m’occupe. Au départ entièrement basée sur le plugin Barre typo multilingue, j’ai souhaité la faire évoluer en raison de la lourdeur de cette gestion (notamment pour les longs articles). Toutefois, aucune solution automatique n’était présente pour revenir en arrière (et donc supprimer les balises <multi>) et créer des articles autonomes pour chaque traduction.

Attention, ce plugin ne fonctionne pour l’instant que pour les articles.

Installation

-  Télécharger le plugin
-  Le dézipper dans le répertoire plugin du site
-  Activer le plugin

Utilisation

Le plugin ajoute un bouton dans l’onglet configuration comme indiqué ci-dessous (seulement pour les administrateurs) :

Panneau d'administration
Panneau d’administration

La page du plugin se présente comme ci-dessous :

Impression d'écran
Impression d’écran

Il suffit ainsi de cocher la case des articles que l’on souhaite modifier et de cliquer sur le bouton “Supprimer les balises <multi>”.

Fonctionnement

Ce plugin fonctionne de la manière suivante :
-  Il analyse chaque article pour voir s’il contient une balise <multi> ;
-  Si oui, il l’affiche sur la page du plugin ;
-  Si le spipeur souhaite modifier l’article, il coche la case et clique sur le bouton ;
-  Ensuite :

  • Si l’article ne contient qu’une balise de la forme "<multi>[fr] Texte en français </multi>", il le met à jour en supprimant ces balises ;
  • Si l’article contient plusieurs balises mais que les autres langues ne sont pas réellement activées ou sont la reproduction exacte de la première (ex : <multi>[fr] Titre de l'article [en] Nouvel article </multi> ou <multi>[fr] Titre de l'article [en] Titre de l'article</multi>). Dans ce cas, le plugin met à jour l’article en supprimant les balises multi et la ou les versions inutiles.
  • Si l’article contient réellement plusieurs traductions (ex : <multi>[fr] Titre de l'article [en] Article Title</multi>), alors le plugin met à jour l’article original en supprimant les balises et crée un article distinct pour chaque traduction. Il lie les traductions à l’article original et reporte les mots-clés et auteurs. Les nouveaux articles traduits sont créés dans la même rubrique et avec le même statut que l’article original.

Améliorations possibles

-  Créer une partie pour les rubriques ;
-  ...

Version

Attention, ce plugin n’a été testé que sous SPIP 2.x

Téléchargement

Portfolio

updated on 9 February 2019

Discussion

5 discussions

  • bonjour,
    Excusez moi, sans vouloir passer pour un empécheur de tourner en rond ,mais il me serait tres utile d’avoir une contrib qui ferait exactement l’inverse que celle-ci ...
    Cela vous semble envisageable?
    Merci

    Reply to this message

  • 2

    Ca marche correctement quand il y a 2 langues, mais s’il y en a 3, il ne crée que l’article pour la dernière langue.

    exemple avec english, ça donne :

    * article 1 : français[en]english

    * article 2 : deutch

    Pour corriger cela, il faut changer la ligne 66 du fichier suppmulti.php

    $pattern = ’#[([a-z]2)](.*) [1]|[^[])*)[[a-z]2]#s’;

    • Bonjour,

      peux-tu me faire passer la correction que tu as trouvé ?
      Mais en mettant ca dans des balises “code” car spip traite la regex et ne l’affiche pas sur le site public.

      Merci

    • $pattern =   '#\[([a-z]{2})\]((\[.{2}[^\]]|[^\[])*)\[[a-z]{2}\]#s';

    Reply to this message

  • Bonjours,

    Je vais l’essayer pour mon site, en local, de quatre langues .

    Merci

    Reply to this message

  • Merci pour cette correction. Je n’avais pas encore eu le temps de le tester avec 3 langues. Je viens de mettre à jour le zip.

    Reply to this message

  • Très intéressant cette démarche. Merci donc pour ceux que ça intéressera, je suis certain qu’ils seront nombreux !

    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