2012-01-19 9 views
0

Joomla 1.5のカスタムコンポーネントをビルドしました。それはFAQのコンポーネントです。Joomla 1.5フロントエンドユーザーがカスタムコンポーネントにコンテンツを追加する

ユーザーがフロントエンドから質問を追加できるようにしたいと考えています。

私は、フロントエンドでユーザー用に表示すべきではないいくつかのフィールドを持っています。

例:バックエンド管理者には承認済み、注文済み、公開済みなどのフィールドがあります。フロントエンドに質問を追加するためにサインインしていないユーザーはいれますが、フロントエンドのユーザーにはこれらの3つのフィールドを表示しないでください。

フロントエンドユーザー入力を作成するにはどうすればよいですか。

多分誰かがこれをやったことがありますか、このケースの良いチュートリアルを知っていますか?

答えて

1

コンポーネントのview.html.phpファイル(例:com_faq/views/view.html.php)で、入力フィールドセクションのマークアップを定義できます。することができます(つまりcom_faq /ビュー/ TMPL/default.php)あなたのビューテンプレートになるように

$this->assignRef("addQuestion", $html); 

​​

が、それへの参照を追加します。私は次のように$ htmlの変数を構築しますあなたのページにそれを追加する

echo $this->addQuestion; 

あなたが[送信]ボタンをクリックすると、同じビューに戻ることができます。したがって、ユーザーは、フロントエンド

$question = JRequest::getVar('addRequest', null); 
に、ユーザーの入力の内容をつかむことができる(例えば、あなたの表示機能の最初の数行の中に)あなたがあなたのページをマークアップするので、前に

index.php?option=com_faq&task=addQuestion&view=default 

のようなURL

これを取得したら、データベースに保存するか、表示することができます。代わりに、AJAXはフォームを送信してコントローラ機能で処理して、リフレッシュなどがないようにすることができます。

あなたのrouter.phpファイルを編集してコントローラに渡す必要がありますタスクまたはビューとして設定します。

このためのオプションの負荷がありますが、基本的にはあなたが必要とする3つの事があります。

  1. があなたのview.html.phpファイルで、あなたのマークを作成し、それ
  2. への参照を割り当てるには、参照を含めますテンプレートにすなわちdefault.php
  3. は、あなたと同じ構成要素、すなわちindex.phpを?オプション= com_faq &タスク= addQuestion &ビュー=デフォルト
それを処理することができますアドレスにフォームを送信します210

希望するもの: