4

joomla 3.0 を使用してコンポーネントを開発しています。コンポーネントにフォームを追加しようとしています。joomla には、バックエンドにフォームを追加するための JHTML クラスがあることがわかりました。

フロントエンドでフォームを作成するための推奨事項は何ですか。JHTML またはクリーン html マークアップを使用する必要がありますか? そのクラスのドキュメントはどこにありますか。

4

1 に答える 1

1

JForm JModelForm JControllerForm

Joomla 1.6 + のデータベースにデータを保存するフォームは、主にフォーム (xml または xml 文字列)、フィールド (実際のフィールド)、およびルール (検証) を管理する JForm パッケージを使用します。

これを管理する通常の簡単な方法は、JModelForm と JControllerForm を拡張することです。コアを見ると、単一の連絡先ビューなど、予期しない場所でこれらが拡張されていることがわかりますが、基本的には、これらのクラスが、ページの任意の部分でフォームを管理するために必要な基本的なセットアップを提供するためです。残りはフォームとは関係ありません。

または、いつでも新しい JForm オブジェクトを作成できます。

通常、models フォルダーがある場合は、forms フォルダーがあり、必要に応じて fields フォルダーと rules フォルダーがあります。後者の 2 つには、拡張機能に必要なカスタム フィールドまたはルールが含まれています。これらは、拡張機能でフォームを作成するときにデフォルトで検出されますが、他の場所からそれらが必要な場合は、フォーム xml で必要に応じて addFieldPath または addRulePath または addFormPath を使用する必要があります。

Jform は、フィールドとルールの標準セットと、フィルターの標準リストを提供します。ルールは検証を意味し、フィルターは保存された値を変更します。JFilterInput で使用可能なフィルターを使用することもできます。

フィールドに現在のテーブル オブジェクトのフィールドと同じ名前を付けると、データは自動的にそのフィールドに保存されます。デフォルトでフィールドに一致する名前を持つ fields タグを使用すると、タグ内にリストされたフィールドは、そのフィールド内に JSON 文字列として保存されます。

基本は以上ですが、他にもたくさんあります。

私にとって重要なことの 1 つは、JForm を使用する場合、デフォルトのフィルタリングが非常に優れており、html などを選択的に許可するため、デフォルトで非常に安全であるということです。

于 2013-05-16T00:37:00.137 に答える