3

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()で見つけて呼び出すことができるように、独自のフィルター関数を定義する場所は?? 助けていただければ幸いです。

4

3 に答える 3