xoops模块开发.doc_第1页
xoops模块开发.doc_第2页
xoops模块开发.doc_第3页
xoops模块开发.doc_第4页
xoops模块开发.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

XOOPS模块的开发设计教程文档一、概述 本文档主要介绍XOOPS模块的开发设计及安装配置。Xoops的模块的便于安装在xoops系统下,主要作用由其自身的功能决定,现在下有很多免费的模块下载。开发xoops的模块就要参照它官方的标准来制作,后面我主要通过eclipse制作一个例子来介绍xoops模块的开发。看本文前请先阅读同目录下CMS之XOOPS介绍.doc二、开发设计1文件结构 设计前,请按以上标准来建立文件夹。区块程序文件夹也要建立一个模板文件夹来放置blocks的模板 /templates/blocks,.project为eclipse工程文件。2编写xoops_version.php文件 xoops_version.php是一个模块的核心配置文件,是和主程序连接的纽带。更详细的关于xoops_version.php程序配置请查看/modules/phpwiki/index.php/ModVersion3.语言模块文件夹文件结构设置以简体中文为例在language下chinese文件夹 language/Chinese,需要的程序文件请见下图。然后对需要设置的部分的对应的语言文件进行编写例如:modinfo.php4.制作一个logo.png的模块logo图片文件放到images文件夹下。(这里的logo后缀一定要用.png,也就是说logo必须为png格式的文件)5.编辑index.php文件系统默认读取web发布文件OK,现在这个测试的安装小模块已经完成。我们安装测试一下我们把我们刚刚写的模块放到xoops/modules下,然后进入xoops的模块管理区,要安装的模块都会在最下端显示,如下图:然后点模块状态下面那个黑色的图标进行安装,进入下一步,如下图点安装按钮进行安装这里看到的test_index.html我们在后面进行编写点回到模块管理菜单见下图,安装成功。6接下来我们写test.index.html文件 此文件放到templates文件夹下。应用到php的部分应该用smarty格式编写formaction=method=postenctype=multipart/form-data文件管理标题类别说明文件7更新模块让系统读入新写的模板页更新后提示成功这有个小技巧,在开发模块的时候,也许我们得经常的更新模板页,每次更新一次就得按上面的程序操作一次,有写麻烦,xoops之所以这样设计是为了加快读取摸板的速度,在摸板开发阶段,可以把自动更新模块设置为“是”,这样就可以减少麻烦了。8修改index.php,插入test_index.html9接下来我们要求模块对数据库进行一下操作建立一个表写一个mysql.sql的文件如下 ,放到test/sql文件夹下d_id流水号-uname用户名-d_name标题-d_kind类别-d_memo说明-d_time插入时间-d_file文件名CREATETABLEtest(d_idint(11)NOTNULLauto_increment,unamevarchar(25)NOTNULLdefault,d_namevarchar(40)NOTNULLdefault,d_kindvarchar(20)NOTNULLdefault,d_memovarchar(100)NOTNULLdefault,d_timetimestamp(14),d_filevarchar(100)NOTNULLdefault,PRIMARYKEY(d_id)ENGINE=MyISAM;.10修改 xoops_version.php,加入数据库设置相关代码,如下:/数据表结构$modversionsqlfilemysql=sql/mysql.sql;/数据表名称$modversiontables0=test;$modversiontablesn , n从0开始编写,但名称必须和sql/mysql.sql中的语句想符合,用到那个表都要在这里声明,我们这里只是使用CREATETABLEtest所以$modversiontables0=test;11. 如果第一次安装时没有建立数据库表结构,必须反安装模块组,再重新安装,让系统重新载入数据库。(这里步骤不在重复)12.在test/主目录建立upload.php文件getVar(uname);$d_name=$_POSTd_name;$d_memo=$_POSTd_memo;if(is_uploaded_file($_FILESinfiletmp_name)/不允许上传php程序文件$no_arr=array(php,php3,exe,dll);$temp_arr=explode(.,$_FILESinfilename);if(in_array(strtolower(end($temp_arr),$no_arr)redirect_header(index.php,2,不允许上传php文件);exit;$file_path=XOOPS_UPLOAD_PATH./test;/如果未建立目录则在uploads下建立test的目录if(!is_dir($file_path)/建立目录mkdir($file_path);/存档名称$d_file=time()._.$_FILESinfilename;/copy上传文件到uploads下,上传文件名称加上时间避免同名覆盖copy($_FILESinfiletmp_name,$file_path./.$d_file);/插入到数据库$sql=INSERTINTO.$xoopsDB-prefix(test).(uname,d_name,d_memo,d_file)VALUES($uname,$d_name,$d_memo,$d_file);if(!$result=$xoopsDB-query($sql)/删除文档unlink($file_path./.$d_file);redirect_header(index.php,2,添加失败!);exit();redirect_header(index.php,2,新增成功!);/插入模板$xoopsOptiontemplate_main=test_index.html;/插入尾文件include././footer.php;?13在 xoops_version.php 加入第二个模板并增加子菜单,如下例,再由系统管理处更新模块,重新载入模板文件到系统。/模板文件$modversiontemplates2file=test_view.html;$modversiontemplates2description=列出文件;$modversiontemplates3file=test_sel.html;$modversiontemplates3description=查看文件;/加入子選單$modversionsub1name=文件列表;$modversionsub1url=view.php;$modversionsub2name=类别管理;$modversionsub2url=kind.php;14.编辑view.php 放到test/ 主目录getVar(uname);$sql=SELECTd_fileFROM.$xoopsDB-prefix(test).WHEREd_id=$d_idANDuname=$uname;$res=$xoopsDB-query($sql);if($xoopsDB-getRowsNum($res)0)$rows=$xoopsDB-fetchArray($res);$d_file=$rowsd_file;$sql=DELETEFROM.$xoopsDB-prefix(test).WHEREd_id=$d_id;$xoopsDB-query($sql);/删除文件$d_file=XOOPS_UPLOAD_PATH./test/$d_file;unlink($d_file);/载如模板$xoopsOptiontemplate_main=test_view.html;/查询test文件$query=SELECT*FROM.$xoopsDB-prefix(test);$res=$xoopsDB-query($query);/将查询结果放回数组$arr=array();while($rows=$xoopsDB-fetchArray($res)$arr=$rows;/将结果数组传给模板$xoopsTpl-assign(docdata,$arr);/将用户帐号传回模板$xoopsTpl-assign(uname,$xoopsUser-getVar(uname);include././footer.php;?15编辑test_view.html 放到templates/文件夹标题上传人文件管理trclass=ahref=sel.php?d_id=ahref=/uploads/test/target=_blankahref=?op=delete&d_id=删除16编辑sel.php 放到test/主文件夹prefix(test).WHEREd_id=.$_REQUESTd_id;$res=$xoopsDB-query($query);$rows=$xoopsDB-fetchArray($res);/将结果传给模板$xoopsTpl-assign(data,$rows);include././footer.php;?17编辑test_sel.html 放到templates/文件夹文件管理序号上传时间标题说明文件18. 在 xoops_version.php 加入区块设置,如下:(其实xoops里的区块就是指首页的样式,只要进入区块设置看一下就知道了)/区块模板$modversiontemplates4file=test_new.html;$modversiontemplates4description=lastestfile;/区块设置$modversionblocks1file=news_block.php;$modversionblocks1name=新加入文件;$modversionblocks1description=显示新加入文件;$modversionblocks1show_func=b_news_show;$modversionblocks1template=news_block.html;19. 在 test/blocks 目录添加 news_block.phpprefix(test).ORDERBYd_timeLIMIT5;$res=$xoopsDB-queryF($sql);$block=array();while($rows=$xoopsDB-fetchArray($res)$block=$rows;return$block;?20. 在 templates/blocks 目录建立 news_block.htmlahref=/modules/docman/sel.php?d_id=()21.添加区块现在我们把刚刚完成的区块添加到首页完成如下图22.制作管理文件页面下面需要做一个管理页面把以上写过的三个文件关联起来 ,也就是在管理的下拉菜单中显示出来。需要在admin文件夹下建立两个文件test/admin/admin.php 管理页面首页test/admin/menu.php 下拉菜单显示而且还修改xoops_version.php配置文件建立admin.php文件 代码如下:loadModuleAdminMenu(1,_PROFILE_MI_INDEX);xoops_cp_footer();?建立menu.php文件代码如下修改xoops_version.php配置文件在最后添加/管理接口$modversionhasAdmin=1;/是否有管理接口$modversionadminindex=admin/admin.php;/管理接口的首页位置$modversionadminmenu=admin/menu.php;/管理接口的选单程式/Menu$modversionhasMain=1;/是否有菜单项ok现在程序就已经基本完成我们更新一下,看一下结果测试一下结果如下图上传成功后总结:xoops模块的安装制作过程到此就完成,本文档主要是介绍模块开发的过程,不针对本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论