pierrdu / lmdi_gloss

Glossary extension for phpBB 3.2.9/3.3.x
GNU General Public License v2.0
1 stars 7 forks source link

When a definition include an other defined term, there is an issue #1

Closed Alexandre-T closed 7 years ago

Alexandre-T commented 8 years ago

It seems that you're french, so I try to explain the bug in french.

Je rencontre un bug lorsqu'un mot défini se retrouve dans une définition précédente. Dans les deux captures que je fournis, la définition du mot Archange contient le mot Nephilim. Ce mot Nephilim est lui même défini. Du coup, la preg_replace du fichier listener.php ligne 218 les exécute tour un tour et j'obtiens des balises acronym dont l'attribut title imbrique une balise acronym.

capture d ecran 2016-07-30 11 42 39 capture d ecran 2016-07-30 11 44 13

pierrdu commented 8 years ago

Bonjour Alexandre,

Le samedi 30 juillet 2016, à 12:14, vous écriviez :

AT> Je rencontre un bug lorsqu'un mot défini se retrouve dans une AT> définition précédente. Dans les deux captures que je fournis, la AT> définition du mot Archange contient le mot Nephilim. Ce mot AT> Nephilim est lui même défini. Du coup, la preg_replace du fichier AT> listener.php ligne 218 les exécute tour un tour et j'obtiens des AT> balises acronym dont l'attribut title imbrique une balise acronym.

C'est ce que j'appelle la recherche récursive. Il existe une option dans le panneau d'administration pour l'interdire. Cependant, dans ce cas, les mots-clefs sont ceux de la base de données et pas ceux du message, c'est-à-dire que Keyword (dans le message) donnera keyword si le mot-clef saisi est keyword et pas Keyword.

Bien à vous Pierre Duhem mailto:pierre@duhem.com

Alexandre-T commented 8 years ago

Je te remercie pour les explications. Je n'avais pas trouvé cette option. Je l'ai essayée, elle ne répond pas totalement à ce que je souhaite (en raison de ce fameux "cependant" dont tu parles). Alors, j'ai modifié le code du fichier listener.php . Je ne maitrise pas bien les expressions régulières, alors j'ai agi en barbare avec la fonction str_replace. Mais en utilisant un tampon, la méthode fonctionne bien.

https://github.com/pierrdu/lmdi_gloss/compare/master...Alexandre-T:master

Défaut de la méthode : on stocke un tableau plus volumineux, on effectue deux conversions.

Je te laisse regarder, analyser, optimiser si cela te plait ou "jeter" ;-)

Merci pour ton extension !

pierrdu commented 8 years ago

Bonjour Alexandre,

Le dimanche 31 juillet 2016, à 12:41, vous écriviez :

AT> Je te remercie pour les explications. Je n'avais pas trouvé cette AT> option. Je l'ai essayée, elle ne répond pas totalement à ce que je AT> souhaite. Alors, j'ai modifié le code du fichier listener.php . Je AT> ne maitrise pas bien les expressions régulières, alors j'ai agi en AT> barbare avec la fonction str_replace. Mais en utilisant un tampon, la méthode fonctionne bien.

AT> https://github.com/pierrdu/lmdi_gloss/compare/master...Alexandre-T:master

AT> Défaut de la méthode : on stocke un tableau plus volumineux, on effectue deux conversions.

C'est bien si ça marche...

Bien à vous Pierre Duhem mailto:pierre@duhem.com