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

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

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

Discussion

6 discussions

  • Bonjour
    le zip de ce plugin est sensé être sur le site http://gotfers.free.fr mais il n’est plus disponible : quelqu’un pourrait il le mettre à disposition ailleurs ou l’associer directement à cet article ?

    Reply to this message

  • 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

Add a comment

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.

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