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)

原文地址:https://www.cnblogs.com/logoove/p/2505386.html