web-dev-qa-db-ja.com

Joomla input.php(JFilterInputクラス)をオーバーライドする方法

JoomlaのJFilterInputクラスをオーバーライドしたい。ファイルはパスの下にあります:

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

このファイルは非Unicode文字専用に開発されたためです。

注意:配列から文字列への変換

unicode文字にこのクラスを使用する233などの多くのコンポーネントのcom_Finder行その行は:

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

このため、この行と他の同じ行をオーバーライドしたいと思いました。最初に、このファイルをonAfterRoute()メソッドでオーバーライドするJoomlaシステムプラグインを開発しましたが、 this stackexchangeの投稿に従って、onAfterRoute()メソッドをonAfterInitialise()メソッドに変更しました。しかし、ここでも致命的なエラーが表示されます。

致命的エラー:クラスJFilterInputを再宣言できません

今、私はこの問題を解決する皆から助けを得るのを楽しみにしています。さらに、Joomlaの最新バージョンを使用しています

4
Sami

「通知:配列から文字列への変換」を返すのは奇妙です。通常、文字列関数を使用して配列変数を取得しようとすることを意味します。 $_REQUESTで、どのデータを直接プッシュするかを確認します。

質問に戻ります。フィルタリングを厳密にする場合は、常にRAWタイプのフィルターを使用できます。

それでもこのクラスをオーバーライドする必要がある場合は、このプラグインサンプルを確認してください: https://Gist.github.com/dongilbert/323​​7387

1
Artur Stępień