2011-07-04 11 views
0

MVCパターンを使用してJoomla CMSのカスタムコンポーネントを作成しています。私は単純なワークフローを実装しています。ユーザーがビューにデータを入力し、このデータを検証し(サーバー側ではこれはクライアント側/ JavaScriptの検証ではありません)、ユーザーが別のビューにリダイレクトされるようにします成功した。データが無効な場合は、無効なフィールドをマークして最初のビューを再度表示する必要があります。MVCパターンを使用してJoomlaコンポーネントのワークフロー内のバリデーション

確認コードを配置する場所はわかりません:コントローラに配置するのが最初です。これは、2番目のビューにリダイレクトするかどうかを決定する必要があるためです。しかし私はではなく、コントローラに検証コードを入れるようなアドバイスをいくつか見つけました。

最初のビューのモデルに配置することもオプションです。しかし、Joomlaではモデルとビューの間に1対1の関係があるため、モデルクラスを作成するだけでよいのかどうかはわかりません(検証が成功した場合、最初のビューは再び表示されないためです)。

標準的な方法はありますか?あるいは、このような振る舞いが標準コンポーネントで実装されているので、ソースコードを探すことができますか?任意のアイデア(いくつかの擬似コードは素晴らしくて十分でしょう...)?

ありがとうございました!

+0

私はJoomla!で作業していません!約2年後に私はコントローラを使用している別のワークフローに送信するので、私が扱っているいくつかのMVCモデルでは、モデルは検証のために問題になる可能性があります。ユーザーが同じワークフローにとどまっていた場合は、検証のためにビューを使用します。 – Ryan

答えて

2

私のプロジェクトでは、フォームモデル(HTML_QuickForm2を使用)に入れました。

セミコード:

$form = new HTML_QuickForm2(); 
$form->addElement('text')->addRule('email'); 
if ($form->validate()) { 
    echo "all fine, storing in database"; 
} else { 
    //error, let's try it again 
    echo $form; 
} 

この方法では、あなたのフォームオブジェクトのすべてのルールと検証を持っています。フォーム初期化コードをHTML_QuickForm2を拡張する独自のクラスに移動すると、設定されます。

+0

ヒントのThx。私はHTML_QuickForm2がJoomlaと一緒にうまく動作するかどうかはわかりませんが、同様のものを実装しようとします。 – MartinStettner

関連する問題