You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Le problème rencontré est au lancement de la fonctionnalité "Moteur de recherche : reconstruire l'index" sous php 7. On obtient les erreurs suivantes (cf. #91) en boucle :
PHP Error (Warning) in file '/var/www/html/lodel/lodel/scripts/logic/class.entities_index.php' on line 187 :
preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
PHP Error (Warning) in file '/var/www/html/lodel/lodel/scripts/logic/class.entities_index.php' on line 188 :
preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
On nous indique que ce ne sont que des warnings... sauf que concrètement la table search_engine n'est pas alimentée : la recherche est donc inopérationnelle.
Le "coupable" est la méthode _decode_html_entities() dans class.entities_index.php. La méthode en question utilise la fonction preg_replace() avec un modifier "/e", ce qui n'est pas compatible avec php 7. Il faut utiliser preg_replace_callback() à la place. J'ai donc modifié le code comme suit :
Avec ces modifications, ça passe sur mon installation (branche master de Lodel + php 7) : la table search_engine est à présent alimentée. Je me suis permis de rajouter un html_entity_decode() sur le renvoi final au passage...
Je précise que les données sur lesquelles je travaille sont des données provenant initialement d'un site sous Lodel 0.7, migré en 0.9, puis en 1.x...
Est-il envisageable d'apporter ces modifications à votre code ?
Cordialement.
Sylvain Sonnet
The text was updated successfully, but these errors were encountered:
Bonjour,
Le problème rencontré est au lancement de la fonctionnalité "Moteur de recherche : reconstruire l'index" sous php 7. On obtient les erreurs suivantes (cf. #91) en boucle :
On nous indique que ce ne sont que des warnings... sauf que concrètement la table search_engine n'est pas alimentée : la recherche est donc inopérationnelle.
Le "coupable" est la méthode _decode_html_entities() dans class.entities_index.php. La méthode en question utilise la fonction preg_replace() avec un modifier "/e", ce qui n'est pas compatible avec php 7. Il faut utiliser preg_replace_callback() à la place. J'ai donc modifié le code comme suit :
Avec ces modifications, ça passe sur mon installation (branche master de Lodel + php 7) : la table search_engine est à présent alimentée. Je me suis permis de rajouter un html_entity_decode() sur le renvoi final au passage...
Je précise que les données sur lesquelles je travaille sont des données provenant initialement d'un site sous Lodel 0.7, migré en 0.9, puis en 1.x...
Est-il envisageable d'apporter ces modifications à votre code ?
Cordialement.
Sylvain Sonnet
The text was updated successfully, but these errors were encountered: