现在还有一个地方没有弄明白,就是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代码了。