现在还有一个地方没有弄明白,就是default.php文件该怎么使用。我们说过mod_alarm.php文件是来处理helper.php文件和default.php文件之间的联系的。看代码:
mod_alarm.php
// no direct access defined('_JEXEC') or die; // Include the syndioate function only once require_once(dirname(__FILE__).DS.'helper.php'); // new a obj $obj = new modAlarmHelper(); $data = $obj->getData($params); //require layout require(JModuleHelper::getLayoutPath('mod_alarm'));
于2014-08-20日修改:这里需要注意getLayoutPath这个函数,这个函数的作用就是加载模块的布局文件。他具有两个参数,第一个是需要加载的模块的名称,第二个是加载该模块的哪一个布局文件。默认为default.php。这就是为什么我们的default.php文件能执行的原因。
helper.php
defined('_JEXEC') or die('can not access this file!'); /** * helper class for alarm module */ class modAlarmHelper { // get param from module param function getData($params) { $retData= ''; $showMode = $params->get('inputModel'); $content = $params->get('content'); $retData = "showMode value =".$showMode.""; $retData = $retData ."content value =".$content.""; return $retData; } }
tmpl\default.php
// no direct access defined('_JEXEC') or die; echo $data;
说明:
上面的代码 的执行流程是 在mod_alarm.php文件中,先加载helper类的实现文件,然后new一个helper对象。传递参数$param给helper类的getData()方法,从后台取得数据。然后调用默认的模版文件default.php。最后输出。
于2014-08-20日添加:其实正常情况下我们应该思考一下$param这个参数是怎么来的。这个参数为什么就能代表后台的参数设置。
相比以前的代码,我们只是将输出已到了default.php文件中,没有做过多的改动。值得注意的是 ,default.php是被mod_alarm.php 包含进来的,因此,他们之间可以公用变量。
写到这里基本就和joomla无关了。下面剩下的工作就是一些常规的php代码了。
评论 (0)