2013-02-25 7 views
5

私は、HTMLフォームを持つシンプルなJoomla 2.5モジュールを作成しています。フォームによるjoomlaモジュールの開発 - 処理方法

mod_mymodule/tmpl/default.php

<form method="post" id="myemailform" action=""> 
    <label for="ReferralName">Enter Name:</label><input type="text" name="name" value="<?php echo modCamcloudReferralHelper::getReferralName(); ?>"> 
    <label for="ReferralEmail">Enter Email Address:</label><input type="text" name="email"> 
    <label for="ReferralMessage">Enter Message (optional):</label><textarea class="message"></textarea> 
    <span class="countdown"></span> 
    <button type="submit" value="Send Email">Send Email</button> 
    <?php echo JHtml::_('form.token'); ?> 
</form> 

私はでヘルパークラスがあります。

mod_mymodule/helper.php - これはそれにいくつかのユーティリティ機能を持っています。

私の質問は、サーバー側で自分のフォームを処理するためのここでの通常の規約は何ですか。私は人々が何をしたのかの例を見つけようとしましたが、何も見つけられないようです。私はちょうどヘルパークラスのすべてを入れますか:

<form method="post" id="myemailform" action="..\helper.php"> 

それとも何か?前もって感謝します。

答えて

3

はい、モジュールヘルパークラスでフォーム処理を行う必要があります。任意のロジックをテンプレートファイルから除外し、mod_mymodule.phpを使用して、ビューファイルを含める前にヘルパーメソッドを呼び出して変数を割り当てることができます。

フォームのアクションヘルパーファイルとして設定しないでください。私はあなたのケースではアクションは同じページでなければならないと思うので、あなたはまたアクションURLを外すことができます。

編集:コメントで要求されたように私のヘルパーファイルが同じディレクトリではありませんので、これはあなたのmod_mymodule.php

// include helper file 
require_once dirname(__FILE__).'/helper.php'; 
// call some method of the helper class 
$items = modMymoduleHelper::getItems(); 

$moduleclass_sfx = htmlspecialchars($params->get('moduleclass_sfx')); 
// render view file from mod_mymodule/tmpl/default.php, $items is available in the view file 
require JModuleHelper::getLayoutPath('mod_mymodule', $params->get('layout', 'default')); 
+0

の内容だろう、私は、フォームのアクションでヘルパーファイルを指定する必要はないでしょうか?私はそれ以外の仕組みを理解していますか?あなたは簡単な例を提供できますか?ありがとう。 – Tom

+0

フォームを同じページに送信すると、モジュールが再度読み込まれます。 Joomlaは 'mod_mymodule.php'を呼び出します。これはヘルパーメソッドを呼び出すことになり、必要な変数を' mod_mymodule/tmpl/default.php'ビューに渡します。 'my_module.php'には、ビューファイルとヘルパークラスとの通信が含まれています.Joomlaはあなたのモジュールを含んでいるときに他のPHPファイルを呼び出しません。 –

+0

' mod_mymodule.php'の例を追加しました –

関連する問題