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

XOOPS模块开发快速入门中文翻译(一) (4-17 20:33) [技术论坛 - XOOPS整合与Hack]

XOOPS China 讨论区 > XOOPS Core (核心) > XOOPS整合与Hack > XOOPS模块开发快速入门中文翻译(一) (4-17 20:33)

正在浏览:   1 名游客



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



XOOPS模块开发快速入门中文翻译(一) (4-17 20:33)
新进会员
注册日期:
2008/3/16 17:56
所属群组:
注册会员
帖子: 11 | 精华: 2
等级: 2; EXP: 12
HP: 0 / 28
MP: 3 / 286
离线
呵呵 这里是一个模块开发的快速入门。
原文是英语的,我把它翻译了一下。
原文地址:http://www.kaotik.biz/tutorial/tutorial_part_2.html译文地址:
http://www.cnblogs.com/xxpyeippx/archive/2008/04/17/1158728.html

2008/4/17 22:43
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: XOOPS模块开发快速入门中文翻译(一) (4-17 20:33)
网站管理员
注册日期:
2005/10/29 13:32
来自 北京
所属群组:
网站管理员
注册会员
ComSupp
推广组
帖子: 2214 | 精华: 25
等级: 38; EXP: 43
HP: 187 / 935
MP: 738 / 16006
离线
强烈支持!希望能转帖全文到XOOPS China ^_^

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


回复: XOOPS模块开发快速入门中文翻译(一) (4-17 20:33)
新进会员
注册日期:
2008/3/16 17:56
所属群组:
注册会员
帖子: 11 | 精华: 2
等级: 2; EXP: 12
HP: 0 / 28
MP: 3 / 286
离线
转:其他人做的快速入门


============================

这是一个Xoops爱好者所创建的两个非官方的模块之一。 如果任何人想要对这
份档加入更多的帮助,请尽情的做!

开始之前
你应该:
‧ 已经安装一个 Xoops 系统 ,而且能够正常运行
‧ 已经熟悉 Xoops 模块安装的方法
‧ 知道如何编写 PHP 语言 http://www.php.net/
‧ 了解 SQL (如果你的模块需要存取数据库) http://www.mysql.com/
‧ 了解Smarty模板工具箱(templating toolkit)的基本知识 http://smarty.php.net/ (那里提供了不错的速成课程)。
‧ 请参考阅读: XoopsCodingStandards, ModuleNamingConventionsand ModuleBasicStructure.

规格表

我们学习制作的这个模块,目的是要向正在浏览该模块的用户表示欢迎。 在未来我们将会扩充这个模块的功能,但是现在先让我们把基本架构弄出来。
‧ 模块名: 欢迎您
‧ 模块目录: greeter

这模块必须能够
‧ 它本身要能够在主选单中显示
‧ 支持多语言(multiple languages)环境
‧ 能够向用户说「您好」

目录结构

当您已经阅读过
ModuleBasicStructure我假设你已经把基本目录结构都建好了, 如果还没有,请现在就阅读一下ModuleBasicStructure现在我所建好的目录结构看起来就像如下的样子:
XOOPS_ROOT/modules/greeter
            /---- language
                 /--- tchinese
            /---- templates
将来,我们会在上述目录下面建更多新的文件和目录,但是现在,请先建如同上述的结构就行了。

请注意:在以下的描述中,当我列出一个目录名或文件名时,除非有明确地解释,否则它们都对应于XOOPS_ROOT/modules/greeter 。

XOOPS 版本信息

建一个文件 /xoops_version.php 其程序代码内容如下:

<?php
// 版权信息,说明,等等,放在这里
$modversion['name'] = _MI_GREETER_NAME;
$modversion['version'] = 1.00;
$modversion['description'] = _MI_GREETER_DESC;
$modversion['credits'] = '';
$modversion['author'] = '<insert name>';
$modversion['help'] = 'help.html';
$modversion['license'] = 'GPL see LICENSE';
$modversion['official'] = 0;
$modversion['image'] = 'greeter_slogo.png';
$modversion['dirname'] = 'greeter';

// 管理
$modversion['hasAdmin'] = 0;
$modversion['adminmenu'] = '';

// 选单
$modversion['hasMain'] = 1;

// 样板
$modversion['templates'][1]['file'] = 'greeter_greet.html';
$modversion['templates'][1]['description'] = 'Greeter Form';
?>


说明
上述的文件是相当容易了解的﹐但是我还是要说明一些项目。

_MI_ ... ? 那是什么?

任何以 _MI_ 为前导的词,都是在 /language/tchinese/modinfo.php语言文件里面定义的。 我们马上会建立这个文件,但是现在,我们只要知道,这是模块讯息,它将被及时显示在用户眼前,因此需要在语言文件里事先定义。

Templates样板

样板(Templates)会在模块安装时被编译,而且保存在数据库中。 因此,你必须让系统知道你将会使用到的每个样板。

模块讯息语言文件

编辑 /language/schinese/modinfo.php 而且将下列内容放入其中

<?php
define('_MI_GREETER_NAME', '欢迎您';
define('_MI_GREETER_DESC', '一个简单的模块,欢迎用户登录.';
?>

说明

看来挺容易的,对吧? 稍后我们将会把较多的讯息加入这个文件里,但是它仍然是一样的语法;非常容易的。 现在如果我们想要增加一个英文的语言文件,我们要做的只是多建 /language/english/modinfo.php,然后放上相同的定义,不过这些定义要改为英文。 现在如果某人在英文的语系中使用此系统,Greeter会以他们的语言(英文)来显示它的名字和描述。

一个简单的步骤

以如下的内容,建立 /header.php :

<?php
require('../../mainfile.php';
?>

最主要的文件,index.php

这个其实也非常容易:

<?php
require('header.php';

$uname = !empty($xoopsUser) ? $xoopsUser->getVar('uname','E' : _GR_ANONYMOUS;

// 我们必须在引用header之前,设置好Template:
$xoopsOption['template_main'] = 'greeter_greet.html';

// 引用headers
include(XOOPS_ROOT_PATH.'/header.php';

$xoopsTpl->assign('greeting', _GR_GREETING);
$xoopsTpl->assign('uname', $uname);

// 引用footer
include(XOOPS_ROOT_PATH.'/footer.php';
?>


说明

哇!这里多了一点点的程序代码(但是还不算太多)。

$xoopsUser

当 /header.php 它的项目包含 ../../mainfile.php 时,很多变量和种类就会自行产生。 $xoopsUser 就是其中的一个变量。 如果用户已经登录,用户名这个值赋给变量$xoopsUser,否则$xoopsUser仍是空的。因此,我们就可以得知用户的名字或者是访客(anonymous)。

_GR_ ... ? 还要再一次定义语言文件?

说对了!它们就是在语言文件里面用define定义的,不过这次,它们没有在 /language/tchinese/modinfo.php 里面定义,因为这些「_GR_ ...」并不包含模块信息,它们是在 /language/tchinese/main.php 这个文件里定义的,稍候我们会建立这个文件。

$xoopsTpl

这是另一个变量,当程序引用了 /header.php 时就自动产生了,它也是Smarty种类。 在Smarty的速成课程中http://smarty.php.net/crashcourse.php,他们定义$xoopsTpl 变量为$smarty它只是你在 $xoopsOption['template_main'] = 'greeter_greet.html'; 样板中所建的 Smarty种类。
为了完整的利用这些功能,你可能需要学习Smarty。 而我现在并不会在这里使用它的完整功能。

XOOPS_PATH.'/header.php' 和 XOOPS_PATH.'/footer.php'

这只是 header 与 footer。在这里你要知道的重要一点是:
1. 你必须将它们包含进来
2. 在还没把XOOPS_PATH.'/header.php'包含之前,你不能使用$xoopsTpl
3. 所有$xoopsTpl操作必须在两个include语句之间完成

/language/schinese/main.php

这个文件也很简单,和 /language/schinese/modinfo.php 差不多。 以下就是内容:

<?php
define('_GR_GREETING', '您好,';
define('_GR_ANONYMOUS','游客';
?>


说明
h……,我觉得没什么需要解释的了!

/template/greeter_greet.html

这个文件是个真实的Smarty 模板文件。 它也很简单。

<p>
<{$greeting}> <{$uname}>
</p>


说明

重要说明: 在 Xoops 世界中,所有的Smart 程序代码的Smarty标签都是
<{...}>而不是像Smartys速成课程中所说的{...} 标签。 {...} 是无法在XOOPS里工作的。请牢记!
现在,<{$greeting}> 就从 /index.php里面的 $xoopsTpl->assign('greeting', ...); 获取已经定义好的值;<{$uname}> 也是一样的作用。

准备好了吗?

好了。 我认为我们已经完成使这个模块运行的所有必要工作。我们来个测试吧! 我不打算在这里讲述如何安装这个模块。 你应该已经知道该怎么做了。 但是我要说,如果每个步骤都准确无误地完成,那么你应该可以在 Admin/Modules 的页面上看到欢迎您这个模块。 安装它,然后回到你的首页。你应该看见欢迎您出现在你的主选单上。 点击它,看看它工作得如何!

你应该看到和下面类似的画面:
您好,Liya
至少那是它对我说的。 如果是你自己登录的话,当然就是您好,您的名字或者,如果没有登录,就显示您好,访客

总结

本文就说这些。但是我将会添加更多的信息到 XoopsModuleDoc 里,以便处理更多像数据库连结、管理页面等话题。如果你有任何的意见或问题,请发电子邮件给我: http://cowgar.com/ 。在那里你可以下载完整的 欢迎您(Greeter)程序代码。它被包装的很好,也很容易安装。 直接访问下载区就可以了。

2008/4/19 14:00
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: XOOPS模块开发快速入门中文翻译(一) (4-17 20:33)
新进会员
注册日期:
2008/3/16 17:56
所属群组:
注册会员
帖子: 11 | 精华: 2
等级: 2; EXP: 12
HP: 0 / 28
MP: 3 / 286
离线

2008/4/19 14:02
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: XOOPS模块开发快速入门中文翻译(一) (4-17 20:33)
新进会员
注册日期:
2008/5/1 16:22
所属群组:
注册会员
帖子: 2
等级: 1; EXP: 2
HP: 0 / 0
MP: 0 / 6
离线
支持~学习了!

2008/5/1 17:51
_________________
精于勤,深于思。
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: XOOPS模块开发快速入门中文翻译(一) (4-17 20:33)
Support Team
注册日期:
2007/7/16 17:06
来自 彭城/上海
所属群组:
网站管理员
注册会员
Dev+Hack
资料整理组
帖子: 498 | 精华: 4
等级: 20; EXP: 62
HP: 0 / 490
MP: 166 / 5937
离线
俺也学习了,感谢楼主!!!

2008/5/1 19:16
工具箱 短消息 Email PDF 书签 打印 举报 回顶部


回复: XOOPS模块开发快速入门中文翻译(一) (4-17 20:33)
初级会员
注册日期:
2009/7/4 12:52
所属群组:
注册会员
帖子: 33
等级: 4; EXP: 50
HP: 0 / 87
MP: 11 / 556
离线
能在说说使用对象操作数据库和表单FROM验证之类的的相关实例吗?

2009/7/5 17:56
_________________
http://www.wangyan.cc
工具箱 短消息 Email PDF 书签 打印 举报 回顶部



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


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

[高级搜索]