Xoops 开发学习笔记
1.在block中写程序
2.Xoops modules模块开发
2.1xoop_version.php设定
该文档是模组的设定文档,管理模组的各种资讯,例如:
2.1.1 通常设定
$modversion['name'] = "我的电话本"; //模组名称
$modversion['version'] = 0.01; //模组版本
$modversion['description'] = "简易的电话本程序"; //模组描述
$modversion['credits'] = "tad"; //模组著作权人
$modversion['author'] = "tad"; //模组作者
$modversion['license'] = "GPL see LICENSE"; //模组版权
$modversion['image'] = "images/logo.png"; //模组的logo
$modversion['dirname'] = "my_phonebook"; //模组目录名称
?>
2.1.2 数据库中设定
$modversion['sqlfile']['mysql'] = "sql/mysql.sql"; //数据表的创建信息文件
$modversion['tables'][\0] = "phone"; //表格名称
2.1.3 模组管理界面设定
$modversion['hasAdmin'] = 1; //是否有管理介面
$modversion['adminindex'] = "admin/index.php"; //管理介面的首页
$modversion['adminmenu'] = "admin/menu.php"; //管理介面的菜单程序
其中管理adminmenu指它是設定當滑鼠移到模組圖示上時,所出現的浮動選單的內容檔為 menu.php。當使用者點選 menu.php 中的選項時,系統會將執行命令傳給 menu.php 中所設定的 $adminmenu[\n]['link'] 位置,而此位置通常就是 $modversion['adminmenu']的所在位置。
如:
$adminmenu[\1]['title'] ="新增電話";
$adminmenu[\1]['link'] = "admin/index.php?op=Add";
$adminmenu[\2]['title'] = "刪除電話";
$adminmenu[\2]['link'] = "admin/index.php?op=Del";
?>
adminindex设定例如:
include '../../../include/cp_header.php';//一定要加,該程式算是一個中介程式,讓您的模組與系統接軌用的,所以相當重要。
//新增一筆電話資料
function add_phone(){
global $xoopsDB;
$sql_insert = "insert into ".$xoopsDB->prefix("phone")." (sn,name,tel) values ('$_POST[\sn]','$_POST[\name]','$_POST[\tel]')";
$xoopsDB->query($sql_insert) or redirect_header($_SERVER['PHP_SELF'], 10,"執行錯誤");
}
//刪除一筆電話資料
function del_phone(){
global $xoopsDB;
$sql_delete = "delete from ".$xoopsDB->prefix("phone")." where sn=$_GET[\sn]";
$xoopsDB->queryF($sql_delete) or redirect_header($_SERVER['PHP_SELF'], 10,"執行錯誤");
}
//電話一覽表
function list_phone(){
global $xoopsDB;
$allData="
";
return $allData;
}
switch($_REQUEST['op']){
case "Add";
add_phone();
header("location: ".$_SERVER['PHP_SELF']);
break;
case "Del";
del_phone();
header("location: ".$_SERVER['PHP_SELF']);
break;
default:
$main=list_phone();
break;
}
xoops_cp_header();
echo "我的電話簿管理介面";
echo $main;
xoops_cp_footer();
?>
2.2 模组的使用者页面,命名为index.php位于模组根目录下
2.2.1一般的index页面
include '../../mainfile.php';
include XOOPS_ROOT_PATH.'/header.php';
$sql_select="select * from ".$xoopsDB->prefix("phone");
$result = $xoopsDB->query($sql_select) or redirect_header($_SERVER['PHP_SELF'], 10,"執行錯誤");
while (list($sn,$name,$tel)=$xoopsDB->fetchRow($result)){
# $data.="$name : $tel";
}
echo "
我的電話簿
$data";
include XOOPS_ROOT_PATH.'/footer.php';
?>
2.2.2 带模板设计的index页面
1)需要在下xoops_version中增加
$modversion['templates'][\1]['file'] = 'phone.html'; //模组模板
$modversion['templates'][\1]['description'] = "電話簿的樣版檔"; //模板描述
注意:模板需要放到模块目录的templates文件夹
phone.html如下
<{$lang_title}>
以下是本電話簿目前所收收錄的電話:
<{$show_tel}>
2)使用模板设计的index页面
例如:
include '../../mainfile.php';
$xoopsOption['template_main'] = 'phone.html';
include XOOPS_ROOT_PATH.'/header.php';
$xoopsTpl->assign('lang_title', "我的電話簿");
$sql_select="select * from ".$xoopsDB->prefix("phone");
$result = $xoopsDB->query($sql_select) or redirect_header($_SERVER['PHP_SELF'], 10,"執行錯誤");
while (list($sn,$name,$tel)=$xoopsDB->fetchRow($result)){
# $data.="$name : $tel";
}
$alldata="$data";
$xoopsTpl->assign('show_tel', $alldata);
include XOOPS_ROOT_PATH.'/footer.php';
?>
2.3 整个模块目录结构
\www\modules\my_phonebook\
|
|-\www\modules\my_phonebook\admin\
| |-index.php
| |-menu.php
|-\www\modules\my_phonebook\blocks\
| |-phone_blocks.php
|-\www\modules\my_phonebook\images\
| |-logo.png
|-\www\modules\my_phonebook\sql\
| |-mysql
|-\www\modules\my_phonebook\templates\
| |-phone.html
|-index.php
|-xoops_version.php
2.4.制作完成后,安装模组
您可以將模組上傳,並開始進入管理介面中的模組管理來進行安裝
参考: