zoukankan      html  css  js  c++  java
  • 简单深入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中插入两、三条数据,效果如下:

     

     

  • 相关阅读:
    windown reids
    redis 类型、方法
    nginx 路由配置
    http status code
    beego orm mysql
    thinkphp5
    beego
    MAC 更新brew 镜像源
    php session存入redis
    ios项目开发— iOS8 定位功能API改变
  • 原文地址:https://www.cnblogs.com/once/p/joomla3-1-5_module_component.html
Copyright © 2011-2022 走看看