简单深入Joomla!3.1.5模块_组件开发(一)

简单深入Joomla!3.1.5模块_组件开发

主要内容:

1, 模块(访问数据库,链接到组件,数据基本流向)

2, 组件CRUDMVC模式,访问数据库,表单提交,AJAX提交,数据基本流向)

3, 文字和代码为主,截图为辅,暂不解释相关原理(后续)

Windows7+EasyPHP5.3.9+Navcat for MySQL+Zend Studio10.0.0PHP5.4+浏览器

不用NetBeans了,因为Zend Studio界面、快捷键等确实都很好,也已习惯EclipseMyEclipse)的风格。

细节:

简单创建单一数据表(饮料表):表前缀_drink。

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for stu_drink
-- ----------------------------
DROP TABLE IF EXISTS `stu_drink`;
CREATE TABLE `stu_drink` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `produceDate` date NOT NULL,
  `validateDate` date NOT NULL,
  `manufacturer` varchar(255) NOT NULL,
  `volume` decimal(5,1) DEFAULT NULL,
  `brand` varchar(255) DEFAULT NULL,
  `price` decimal(3,1) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records 
-- ----------------------------

stu_换成自己的表前缀。

开发模块(饮料提示):mod_drinktip,只显示编号ID和名称两列数据,放在模板的自定义position-7位置,菜单分配为“在所有的页面上”。

饮料提示模块文件结构和代码:

helper.php文件源代码:

 

<?php
/**
 * @package     Joomla.Site
 * @subpackage  mod_drinktip
 *
 * @author bobrave.shao
 */
defined ( '_JEXEC' ) or die ();

/**
 * Helper for mod_drinktip
 *
 * @package Joomla.Site
 * @subpackage mod_drinktip
 * @since 1.5
 */
class modDrinktipHelper {
    // 获取所有饮料的ID和name
    function getDrinks() {
        $db = JFactory::getDbo ();
        
        $query = $db->getQuery ( true );
        $query->select ( $db->quoteName ( array (
                'ID',
                'name',
                'price'
        ) ) )->from ( $db->quoteName ( '#__drink' ) )->order ( 'produceDate DESC' );
        
        $db->setQuery ( $query );
        
        $rows = $db->loadAssocList ();
        return $rows;
    }
}

 

 

mod_drinktip.php文件源代码:

<?php
/**
 * @package     Joomla.Site
 * @subpackage  mod_drinktip
 *
 * @author bobrave.shao
 */
defined ( '_JEXEC' ) or die ();

require_once __DIR__ . '/helper.php';
$rows = modDrinktipHelper::getDrinks ();
require (JModuleHelper::getLayoutPath ( 'mod_drinktip' ));

tmpl/default.php文件源代码:

 

<?php
/**
 * @package     Joomla.Site
 * @subpackage  mod_drinktip
 * 
 * @author bobrave.shao
 */
defined ( '_JEXEC' ) or die ();
?>
<table>
    <tr>
        <th>编号ID</th>
        <th>饮料名称</th>
        <th>单价</th>
    </tr>
  <?php foreach ($rows as $drink) { ?>
  <tr>
        <td align="center"><?php echo $drink['ID'] ?></td>
        <td align="center"><?php echo $drink['name']?></td>
        <td align="center"><?php echo $drink['price']?></td>
    </tr>
  <?php } ?>
</table>
<a href="<?php echo JRoute::_('index.php?option=com_drinks&view=show'); ?>">更多饮料</a>

 

 

所有index.html文件代码:

<!DOCTYPE html><title></title>

mod_drinktip.xml文件代码:

<?xml version="1.0" encoding="utf-8"?>
<extension type="module" version="3.1" client="site" method="upgrade">
    <name>饮料提示</name>
    <author>bobrave.shao</author>
    <creationDate>September 2013</creationDate>
    <version>1.0.0</version>
    <description>A simple drinktip module.</description>
    <files>
        <filename>mod_drinktip.xml</filename>
        <filename>index.html</filename>
        <filename module="mod_drinktip">mod_drinktip.php</filename>
        <filename>helper.php</filename>
        <filename>tmpl/index.html</filename>
        <filename>tmpl/default.php</filename>
    </files>
</extension> 

至此,mod_drinktip开发完毕,压缩zip包,扩展-扩展管理-安装-浏览-上传并安装-安装成功->扩展-扩展管理-模块管理-选中“饮料提示”-编辑-详细(选择位置)-菜单分配(选择模块分配)-保存/保存并关闭。

访问前端网站首页http://<host>:<port>/<sitename>

往数据表stu_drink中插入两、三条数据,效果如下:

 

 

posted @ 2013-09-24 00:03  知了小巷  阅读(1929)  评论(1编辑  收藏  举报