web-dev-qa-db-fra.com

Comment remplacer Joomla input.php (classe JFilterInput)

Je veux remplacer la classe JFilterInput sur Joomla. Le fichier est sur le chemin ci-dessous:

[Joomla_Path] /libraries/joomla/filter/input.php

Parce que ce fichier a été développé uniquement pour les caractères non-Unicode.

Avis: Conversion de tableau en chaîne

en ligne 233 dans de nombreux composants tels que com_Finder qui utilise cette classe pour les caractères Unicode. Cette ligne est:

$result = (string) preg_replace('/[^A-Z0-9_\.-]/i', '', $source);

pour cette raison, je voulais remplacer cette ligne et les mêmes que d’autres. Premièrement, j'ai développé un plugin système Joomla pour écraser ce fichier avec la méthode onAfterRoute() mais en suivant this post dans stackexchange, j'ai changé la méthode onAfterRoute() en onAfterInitialise() méthode. Mais encore une fois, l'erreur fatale est la suivante:

Erreur fatale: impossible de redéclarer la classe JFilterInput

Maintenant, je suis impatient de recevoir l'aide de tout le monde pour résoudre ce problème. en plus, j'utilise la dernière version de Joomla

4
Sami

Il est étrange qu’il retourne "Notice: Conversion de tableau en chaîne". Cela signifie généralement que vous essayez d'obtenir une variable de tableau à l'aide de fonctions de chaîne. Vérifiez quelles données appuyez-vous directement dans $_REQUEST.

Retour à la question. Vous pouvez toujours utiliser RAW type de filtre si le filtrage est trop strict.

Si vous devez toujours remplacer cette classe, veuillez vérifier cet exemple de plug-in: https://Gist.github.com/dongilbert/3237387 .

1
Artur Stępień