0

この質問は少し特殊かもしれません。この Joomla 2.5 拡張機能を使用して、著者が記事に添付ファイルを追加できるようにしています: Joomla Attachments

拡張機能は、提供されたファイルのファイル説明を挿入するために、バックエンド フォームで「説明」と呼ばれる入力フィールドをレンダリングします。残念ながら、必要な HTML タグを取得していません。フォームを保存することにより、strip_tags() または preg_replace() または同様のものが入力を消去するようです。添付ファイル拡張機能のコードをくまなく調べましたが、入力が消去または保存されている場所が見つかりませんでした。

うまくいけば、Stackoverflow の Q&A ルールにとどまるには:

拡張機能がJoomlaコアから継承してフォームデータをDBテーブルに保存するクラスはありますか(ユーザー入力のクリーンアップと検証も担当する可能性があります)?

アイデアをありがとう、

トニー

4

1 に答える 1

0

最初にフィールドがどのように定義されているかを確認する必要があります。

1.フォームの定義

調べて

administrator/component/yourcomponent/models/forms/somename.xml

そこでフォーム定義を見つけることができます。そうであれば、フィールドタイプも指定します。タイプに応じて、いくつかの使用可能なフィルターがあります。たとえば、デフォルトのテキストエリアはhtmlを削除するため、設定する必要があります

filter="raw"

それを有効にするために。フィールドのリストについては、 http://docs.joomla.org/Standard_form_field_and_parameter_typesを参照し、をクリックすると、使用可能なフォーマットオプションを見つけることができます。

2.モデル

モデルがJModelAdmin、JModelForm、またはその他のJModel *を継承している場合は、フォームのデータのデータベースへのバインドを自動的に処理します。フォーム$dataを受け取る保存関数を探してください。

3.more 少なくともさらに12の可能性があります。上記が役に立たなかった場合は、フォームを見つけてみてください。マークアップを見るだけで見つけることができるかもしれません。フォームを作成したら、次のフィールドを確認します。

  • オプション
  • タスク
  • 見る

これは、次の形式に基づいて呼び出されるphpコードを見つけるのに役立ちます。

  • ビューが設定されている場合は、おそらく./views/someview/view.html.phpに保存ロジックがあります。
  • タスクが設定されている場合は、。/controller.phpで同じ名前の関数を探します
  • タスクに「。」が含まれている場合は、。/controllers/フォルダーでコントローラーを探します。
  • オプションがコンポーネントの名前でない場合、コンポーネントは保存のためにデータを別のコンポーネントに送信しており、ほとんどの場合、return-urlを設定します
于 2013-03-13T23:19:01.580 に答える