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

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

    Répondre à ce 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 français, ç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';

    Répondre à ce message

  • Bonjours,

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

    Merci

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

    Répondre à ce message

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

    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