Incompatibilité avec le plugin CIBLOC
Bonjour,
Problème constaté
Si le plugin multilang n’est pas activé et que le plugin CIBLOC est activé, un article avec le texte ci-dessous s’affiche sans problème ([bloc_bordure] est inséré par le plugin CIBLOC) :
<multi>[fr]en français
[bloc_bordure]
{{{Intertitre}}}
Si autem filium parvulum habuerit,
[/bloc_bordure]
[en]in english
[bloc_ombre]
{{{Intertitre}}}
Text in english.[/bloc_ombre]
</multi>
Aussi, SPIP gère très bien ce cas,
Si le plugin multilang est activé, seule la phrase « en français » s’affiche dans le champ de saisie du texte de l’article, En revanche, tout est bien enregistré dans la base de données.
Visiblement le plugin multilang considère "bloc_bordure" comme une langue et n’affiche pas ce qui le suit.
Une solution
Une solution consiste à remplacer dans le fichier \multilang\javascript\multilang.js, la ligne 34 suivante :
var multilang_match_multi = /(?:\[([a-z_]+)\]|^[\s\n]*)((?:.|\n|\s)*?)(?=\[[a-z_]+\]|$)/ig;
par l’expression régulière suivante, qui tient compte du fait qu’un code de pays est à deux lettres (ce qui évite de considérer « bloc_... » comme une langue) :
var multilang_match_multi = /(?:\[([a-z]{2}(?:_[a-z]+)*)\]|^[\s\n]*)((?:.|\n|\s)*?)(?=\[[a-z]{2}(?:_[a-z]+)*\]|$)/ig;
Cordialement, Equipement