Joomla 2.5 でコンポーネントを作成しています。このコンポーネントにはconfig.xmlで定義されているいくつかのオプションがあるため、コンポーネントの設定で設定できます。ここで、属性を使用して、これらのオプション フィールドの 1 つにフィルターを適用したいと思いますfilter="my_filter"
。
JForm のソース コードで、実装の最後に次の行を見ましたJForm::filterField()
。
if (strpos($filter, '::') !== false && is_callable(explode('::', $filter)))
{
$return = call_user_func(explode('::', $filter), $value);
}
elseif (function_exists($filter))
{
$return = call_user_func($filter, $value);
}
それが、自分で定義したフィルター関数を使用するために必要だったものです。
コンポーネントのビューで使用されるフォームフィールドに対してこれを行うことができました。フィルター関数を として定義しましたMyComponentHelper::my_filter()
。ここで、MyComponentHelper
は常にコンポーネントのベースにロードするヘルパー クラスです。そして、フォームの xml で、filter="MyComponentHelper::my_filter"
フィルタリングする必要があるフィールドに追加しました。ただし...コンポーネントの設定でフィルター関数をフォームフィールドに適用しようとすると、自分のコンポーネントではなくcom_configにいるため、ヘルパークラスが利用できません!
したがって、私の質問: com_configJForm::filterField()
で見つけて呼び出すことができるように、独自のフィルター関数を定義する場所は?? 助けていただければ幸いです。