joomla模块开发与表单 - 如何处理

Tom*_*Tom 6 joomla joomla2.5

我正在创建一个简单的Joomla 2.5模块,它将具有html表单.

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>
Run Code Online (Sandbox Code Playgroud)

我有一个帮助班:

mod_mymodule/helper.php - 这里面只有一些实用功能.

我的问题是在服务器端处理表单的常规惯例是什么.我试图找到人们做过的例子,但我似乎找不到任何东西.我只是将所有内容都放在帮助器类中:

<form method="post" id="myemailform" action="..\helper.php">
Run Code Online (Sandbox Code Playgroud)

或类似的东西?提前致谢.

Mar*_*o D 4

是的,您应该在模块帮助程序类中进行表单处理。将任何逻辑保留在模板文件之外,您可以mod_mymodule.php在包含视图文件之前调用辅助方法并分配变量。

不要设置为表单操作帮助文件!我认为在你的情况下操作应该是同一页面,所以你也可以省略操作网址。

编辑:根据评论中的要求,这将是您的内容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'));
Run Code Online (Sandbox Code Playgroud)