Xoops模块开发之文件结构
导航: 上一页 | 首页 | DedeCMS | 帝国CMS | Drupal | PHPCMS | PHP168 | Joomla | PowerEasy | SupeSite
下面是XOOPS中的模块的一个基本结构。
注:
- 不是每个模块都需要下面所有列出的目录或文件。
- 以文档《xoops-module-skeleton.doc》为准
/admin目录
- index.php
- 模块管理内容的入口
- menu.php
- 这个文件包括用来为模块生成管理菜单的变量。
/language目录
这个目录至少应该包含定义语言常量的文件'english'目录。
该目录下的文件
- english/main.php
- 在模块主要内容中定义语言常量。
- english/admin.php
- 在模块管理部分定义语言常量。如果管理页面中没有多个语言常量,这个文件将和english/main.php合并。
- english/modinfo.php
- 在xoops_version.php中定义语言常量。
- english/blocks.php
- 在blocks/blocks.php中定义语言常量。
/blocks目录
这个目录包括定义块显示或编辑函数的文件
目录下的文件
- blocks.php
/sql目录
安装模块的SQL文件。
目录下的文件
- mysql.sql
- mysql 转储文件
- postgresql.sql
- postgreSQL转储文件
/images目录
/templates目录
XOOPS的模块HTML模板文件,被xoops_version.php和$modversion数组调用。
目录下的文件
在模块中使用的所有模板。
/templates/blocks目录
XOOPS的模块模板文件,被xoops_version.php和$modversion数组调用。使用smarty区块变量显示模块数据信息。
目录下的文件
所有在模块区块中用到的模板。用smarty区块变量来显示模块区块信息。
xoops_version.php 文件[ ]
主要信息
<?php $modversion['name'] = _MI_FOO_NAME; //模块名称 $modversion['version'] = 1.00; //模块版本 $modversion['description'] = _MI_FOO_DESC; //模块的描述 $modversion['author'] = "Module Developer<br /><moduledeveloper@xoops.org>"; //模块的作者 $modversion['credits'] = "XOOPS Development Team"; //对模块有贡献的相关人员或组织 $modversion['help'] = "foo_help.html"; //模块的帮助文件 $modversion['license'] = "GPL see LICENSE"; //模块的许可证 $modversion['official'] = 1; //是官方模块(通常是0) $modversion['image'] = "images/ logo.png"; //模块面板中的图象和左边的导航菜单(如果有的话) $modversion['dirname'] = "foo"; //模块的目录 ?> <pre> '''SQL''' <pre> <?php $modversion['sqlfile']['mysql'] = "sql/mysql.sql"; //SQL 声明建立模块需要的数据库表 $modversion['tables'][0] = "foo_table "; //sql 转储创建的表的目录; 用于卸载 //从0开始,下一个表的下标依次增加(例如: ['tables'][1],['tables'][2],等等) ?>
Admin
<?php $modversion['hasAdmin'] = 1; //显示管理导航条 $modversion['adminindex'] = "admin/index.php"; //管理索引页 $modversion['adminmenu'] = "admin/menu.php"; //管理菜单的定义 ?>
菜单
<?php> $modversion['hasMain'] = 1; //插入主菜单 (没有设为0) $modversion['sub'][1]['name'] = _MI_FOO_SMNAME1; //主菜单中子菜单的名称 (单击模块时) $modversion['sub'][1]['url'] = "submit.php"; //插入模块目录的文件 ?>
模板
<?php> $modversion['templates'][1]['file'] = 'newbb_index.html'; //所有模板文件 (子目录为'subdir/newbb_sub.html') //从1开始,下一个文件的下标依次增加(例如: ['templates'][2],['templates'][3],等等) //将在数据库中被保存 $modversion['templates'][1]['description'] = ''; //模板文件的一个简短的描述 //从1开始,下一个描述的下标依次增加(例如: ['description'][2],['description'][3],等等) //将在数据库中被保存 //注意: 这个数据项从1开始,而不是0。 ?>
区块
一个'file'可以有许多names, descriptions, functions, options, edit_func, and templates --- (只要创建另一个组, 也就是说用数组来区别)
$modversion['blocks'][1]['file'] = "foo_new.php"; $modversion['blocks'][1]['name'] = _MI_FOO_BNAME1; $modversion['blocks'][1]['description'] = "Shows recent items "; $modversion['blocks'][1]['show_func'] = "b_foo_new_show"; $modversion['blocks'][1]['options'] = "10|1|time"; $modversion['blocks'][1]['edit_func'] = "b_foo_new_edit"; $modversion['blocks'][1]['template'] = 'foo_block_new.html';
搜索
$modversion['hasSearch'] = 1; $modversion['search']['file'] = "include/search.inc.php"; $modversion['search']['func'] = "foo_search";
通知
$modversion['hasNotification'] = 1; $modversion['notification']['lookup_file'] = 'include/notification.inc.php'; $modversion['notification']['lookup_func'] = 'foo_notify_iteminfo'; $modversion['notification']['category'][1]['name'] = 'thread'; $modversion['notification']['category'][1]['title'] = _MI_FOO_THREAD_NOTIFY; $modversion['notification']['category'][1]['description'] = _MI_FOO_THREAD_NOTIFYDSC; $modversion['notification']['category'][1]['subscribe_from'] = 'viewitem.php'; $modversion['notification']['category'][1]['item_name'] = 'item_id'; $modversion['notification']['category'][1]['allow_bookmark'] = 1; $modversion['notification']['event'][1]['name'] = 'new_item'; $modversion['notification']['event'][1]['category'] = 'thread'; $modversion['notification']['event'][1]['title'] = _MI_FOO_THREAD_NEWITEM_NOTIFY; $modversion['notification']['event'][1]['caption'] = _MI_FOO_THREAD_NEWPOST_NOTIFYCAP; $modversion['notification']['event'][1]['description'] = _MI_FOO_THREAD_NEWPOST_NOTIFYDSC; $modversion['notification']['event'][1]['mail_template'] = 'thread_newitem_notify'; $modversion['notification']['event'][1]['mail_subject'] = _MI_FOO_THREAD_NEWITEM_NOTIFYSBJ;
公共语言Strings (_MD_,_MB_,_AM_,_MI_)[ ]
任何以_MD_/_MB_/_AM_/_MI_ (模块命名约定)开头的是define()声明位于/language/english/*.php。
什么是 _MD_?
_MD_是一个在主模块定义中使用的字符串。
模块的定义文件通常象是- language/english/main.php。
什么是 _MB_?
_MB_是一个在模块区块中使用的字符串。
模块区块文件通常象是- language/english/ blocks.php。
什么是 _AM_?
_AM_是一个在模块管理中使用的字符串。
模块管理文件通常象是- language/english/admin.php。
什么是 _MI_?
_MI_是一个在模块安装和配置中使用的字符串。
模块安装和配置文件通常象是- language/english/modinfo.php。