zoukankan      html  css  js  c++  java
  • joomla1.5开发一个广告随机显示模块实例

        说到模块开发,比起组建就要简单的多了,不过初学还是费了好半工夫。今天我就以一个广告显示模块的例子来说说joomla的模块开发,这个广告的显示用的是jquery插件,数据读取采用joomla从数据库取出,这个模块可以控制广告显示大小,和广告显示位置的控制,就是说不同位置我们放置不同的广告。显示效果嘛就是类似flash图片自动切换。joomla的模块就是专门解决需要的小功能,在页面上显示,和组建不同的是,模块只是实现一个页面的小块显示,它可以通过后台来控制哪些菜单页面下需要。基本东西我就不多说了,我主要是想说怎么开发。

        拿到一个需求,当然是先来分析,这个要显示的数据表如下

    第一张表存储了广告信息,第二的张表存储了显示位置信息,一个位置我们可以放置N条广告。这个插件就是根据位置读取需要的广告展示出来,目的很明确,接下来就开发了。先到modules下面建立mod_ad文件夹,然后建立mod_ad.php,mod_ad.xml文件和tmpl、js文件夹。mod_ad.xml是打包安装文件内容如下

    <?xml version="1.0" encoding="utf-8"?>
    <install type="module" version="1.5.0">
        <name>Ad</name>
        <author>Yobyt</author>
        <creationDate>5-15-2012</creationDate>
        <copyright>Copyright (C) 2012 Open Source Matters. All rights reserved.</copyright>
        <license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
        <authorEmail>logove@qq.com</authorEmail>
        <authorUrl>Yoby</authorUrl>
        <version>1.5.0</version>
        <description>This module shows ad! Copyright information</description>
        <files>
            <filename module="mod_ad">mod_ad.php</filename>
            <filename module="mod_ad">tmpl/default.php</filename>
            <filename module="mod_ad">js/cycle.js</filename>
        </files>
        <params>
        <param name="width" type="text" default="200" label="width" description="Ad Width" />
        <param name="height" type="text" default="200" label="height" description="Ad Height" />
        <param name="location_id" type="text" default="1" label="location id" description="Location ID" />
        </params>
    </install>

    我就不解释了,稍微了解joomla开发的都知道啥意思,里面除了打包信息,还有就是配置信息,用来配置广告宽度、高度、位置信息。mod_ad.php是用来处理数据的,就是读取数据

    <?php
    defined('_JEXEC') or die('Restricted access');
    $width =(int)$params->get( 'width',200 ) ;
    $height =(int)$params->get( 'height' ,200);
    $id =(int)$params->get( 'location_id' ,1);
    $db  =   & JFactory::getDBO();
    $query = 'SELECT *  FROM #__ads AS a INNER JOIN #__ads_location AS b ON a.location_id=b.id WHERE b.id='.$id;
    $db->setQuery($query);
    $rs = $db->loadObjectList();
    require(JModuleHelper::getLayoutPath('mod_ad'));

    解释一下,第一行防止意外加载,joomla都这么写,接着是读取配置信息的宽度 高度 位置,get方法第一个参数是名称,第二个是默认值,就是取不到的时候会赋值。接着就是数处理四部曲,这里是内链接两个表,取位置相通的记录条件是我们配置的位置,最后是加载模版。基本上模块都可以这么写,当然复杂点的你可以自定义函数实现更多功能。

        进入模版文件tmpl文件夹,里面default.php就是显示样式,这里我们把$rs这个数据对象记录,通过循环foreach显示,随便找一个jquery插件都可以实现,具体的效果是你插件效果,yoby在这里提供一个插件,请看附件里面。注意使用jquery的时候,joomla由于使用很多js库,所以一般我们进行如下处理

    jQuery.noConflict();
        jQuery(function(){
    //js代码
        });

    jQuery来代替$符号,一般jQuery用得多的时候,在模版里面就加载,以后直接使用,读取图片的时候用joomla函数JURI::Root(false) 输出joomla安装目录。这样基本一个模块开发完毕,打包上传到后台进行设置即可。网上广告组建插件模块很多,这里是自己动手开发的,可以开发出后台广告管理,计算出广告展示次数,广告价格等功能,所以掌握基本开发还是很重要的。以后yoby会写joomla1.5实现单元-一级分类-二级分类-文章的改良,联动菜单的开发,文章关联到多个分类,前台表单提交,后台提交表单,发送Email等功能,这里都是在1.5基础上,2.5暂时不在考虑内。

        最后说点题外话Yoby也喜欢以下技术:thinkphp框架,dedecms,discuz,jQuery,前端开发,css3,html5,Mysql,sqlite,aauto,python,bootstrap,less,json,ajax等。希望相同爱好者互相交流。主要是做joomla建站和thinkphp开发应用这两方面。

    下载 文件是rar压缩的包括数据库sql文件使用需要打包成zip并且导入sql。

    (原创 Form Yoby)

  • 相关阅读:
    Excel表格信息导入和导出
    sql server执行一条sql时操作两张表
    解决tomcat一直报缓存值溢出等..
    GPS小数坐标不精确转换标准形式
    javac’不是内部或外部命令错误解决方法
    mysql开启远程访问命令
    solr查询条件设置
    osgb文件格式文档
    modbus4j中使用modbus tcp/ip和modbus rtu over tcp/ip模式
    Milo-OPC UA处理Subscription和Triggering
  • 原文地址:https://www.cnblogs.com/logoove/p/2505386.html
Copyright © 2011-2022 走看看