用户名 密码 记住我 还未注册?

对xoops模组开发手册的学习情况汇报 [技术论坛 - 模块使用]

XOOPS China 讨论区 > XOOPS Module (模块) > 模块使用 > 对xoops模组开发手册的学习情况汇报

正在浏览:   1 名游客



 到底部   前一个主题   下一个主题  [无发表权] 请登录或者注册



对xoops模组开发手册的学习情况汇报
初级会员
注册日期:
2005/3/31 15:21
所属群组:
注册会员
帖子: 27 | 精华: 2
等级: 3; EXP: 93
HP: 0 / 73
MP: 9 / 1341
离线
前几天将台湾tad兄写的xoops模组开发抄了过来,被站长标记为精华,甚为惶恐。
今天按照tad兄指导全过程学习了一下,现将发现的问题及心得记录下来,与诸位分享。
一、有关文章中的部分错误:
1、3 XOOPS2模块的灵魂xoops_version.php
根据说明:$modversion['image']变量可以不需要图标文件,在一般情况下确实可以不用,但是如果需要对模组进行管理,在管理区出现相应模块、使用浮选单则一定要设置图标变量,否则没有图标,管理区无法显示相应模块;图标文件可以不一定用logo.png这个名字,只要与变量对应即可。
2、4 数据库表设定
数据库表脚本“CREATE TABLE `phone ` ( ”,其中phone后面多了一个空格,请删除;
3、6 管理接口的index.php
该段中部分代码有错,应改为:
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;
}
主要是case后应该为冒号,而不是分号,语法错误。
其中switch($_REQUEST['op'])似乎仍然有错,但是本人目前没有找到错误原因,因此无法修改,请大虾指正;
$allData.="<tr><td>$name</td><td>$tel</td><td><a href='".$_SERVER['PHP_SELF']."?op=Del&sn=$sn'>删除</a>< /td> </tr>";
应该改为:$allData.="<tr><td>$name</td><td>$tel</td><td><a href='".$_SERVER['PHP_SELF']."?op=Del&sn=$sn'>删除</a></td></tr>";
< /td>里面多了个空格;
4、9 模块样版设定
该段中部分代码有错,$data.="· $name : $tel"; 后面缺少一个换行符号,应该改为:$data.="· $name : $tel <br>";
5、10 目前整个的档案结构
图片中文件结构中说明有一个block目录,但是其前面并没有介绍,我也没有找到相关资料;

二、根据这篇文章,有如下了解与各位分享:

1、模块自从拷贝到/modules下分3为个状态
.待安装状态:此时模组文件已经全部拷贝到目录下,并且xoops可以正确识别该模组,但是并不能为用户浏览;
.安装状态:此时模组文件已经安装完成,在模块管理区可以看到相应的图标,启动栏被选中,并可以正常使用;
.停用状态:此时模组已经被停用,但是在数据库内该模组的相关信息并没有被删除,因此可以随时启动。在这时数据库内针对该模组的更改已经被关闭,因此可以放心的对模组进行升级,当然也可以将其彻底删除调,如果删除,则有关该模组的所有信息将全部删除,包括该模组自己创建的数据库表。
另外,在卸载模组的时候,其提示只是简单的要求管理员确认卸载模块,甚至不如对模块停用、启用的时候用红色标记将发生的动作,个人认为这里不妥,如果是误操作,将论坛或者存有大量数据的模组删除,岂不损失惨重,希望对此进行改进,加上重点提示操作后果,防止不必要的损失。
2、经过试验表明,在xoops_version.php文件中列出的数据库表名,xoops会在相应的sql文件中找对应的数据库表描述,如果该文件中含有其它数据库表的描述,只要xoops_version.php文件中没有制订,xoops是不会执行的。

三、仍然存在的疑问:
1、数据库表有时候需要一些默认记录,如何给数据库表输入默认记录,则没有参考其它的sql文件;
2、xoops是支持多国语言的,但是该例子中未介绍language目录,很明显作者避开了语言部分;
3、关于xoops内置函数和变量,介绍的书籍好像也比较少;

四、以上是本人在学习该例子中的一些结果及仍然存在的疑问,还望各位不吝赐教。

五、附件内是我按照手册做的模组包,使用winrar压缩,图标是借用其它模组的图标。

附件:


rar my_phonebook.rar 大小: 4.67 KB; 下载次数: 399

2005/4/16 20:48
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


Re: 对xoops模组开发手册的学习情况汇报
网站管理员
注册日期:
2004/6/25 19:16
所属群组:
网站管理员
注册会员
Dev+Hack
帖子: 5951 | 精华: 10
等级: 54; EXP: 77
HP: 537 / 1344
MP: 1983 / 27599
离线
:: switch($_REQUEST['op'])
尽量不要直接用$_REQUEST (当然在这个具体的应用里没有什么问题), 可以用
$val = empty($_GET[$key])?(empty($_POST[$key])?"":$_POST[$key]):$_GET[$key];

::$_SERVER['PHP_SELF']
最好用 $_SERVER[ 'REQUEST_URI' ],在xoops/common.php里有相关处理

2005/4/16 21:15
_________________
XOOPS Project -- |自由|开源|共享|
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: 对xoops模组开发手册的学习情况汇报
新进会员
注册日期:
1/10 15:21
来自 江苏,南京
所属群组:
注册会员
帖子: 1
等级: 1; EXP: 0
HP: 0 / 0
MP: 0 / 0
离线
1、数据库表有时候需要一些默认记录,如何给数据库表输入默认记录,则没有参考其它的sql文件;

RE:如果要同时插入数据的话,只要在该sql文件中插入insert语句就好了呀~数据库的简单备份也是这样的

1/10 18:50
工具箱 短消息 Email PDF 书签 打印 举报 回顶部



  [无发表权] 请登录或者注册


可以查看帖子。
不可发帖。
不可回复。
不可编辑自己的帖子。
不可删除自己的帖子。
不可发起投票调查。
不可在投票调查中投票。
不可上传附件。
不可不经审核直接发帖。
不可使用主题类别。
不可使用HTML语法。
不可使用签名档。

[高级搜索]