站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
Xoops模块开发入门
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
__NOTOC__ <span style="text-align:center; border:1px solid #000; float:right; padding:6px;"><strong>导航:</strong> [[Xoops模块开发|上一页]] | {{Template:Xoops导航}}</span> <div style="clear:both;"></div> ===规格表=== 我们学习制作的这个模块,目的是要向正在访问该模块的用户表示欢迎。 在未来我们将会扩充这个模块的功能,但是现在先让我们把基本架构弄出来。 * 模块名: Greeter * 模块目录:greeter 该模块必须能够: * 它本身要能够在导航菜单中显示 * 支持多语言环境 * 能够向用户说“您好” ===目录结构=== 假设你已经用骨架代码把目录结构都建好了。如果还没有,现在就请阅读一下《xoops-module-skeleton.doc》。 所创建好的结构看起来就像如下的样子: <pre> XOOPS_ROOT/modules/greeter language english templates </pre> 随着时间的推移,我们会在上述目录下面建新的目录和文件,但是现在,请先创建如同上述的结构就行了。 请注意:在以下的描述中,当我给出一个目录名或文件名时,除非有明确地表述,否则它们都对应于XOOPS_ROOT/modules/greeter 。 ===XOOPS 版本信息=== 创建一个文件 /xoops_version.php 其程序代码内容如下: <pre> <?php // 版权信息,说明,等等……放在这里 $modversion['name'] = _MI_GREETER_NAME; $modversion['version'] = 1.00; $modversion['description'] = _MI_GREETER_DESC; $modversion['credits'] = ''; $modversion['author'] = ''; $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'] = 'To show a welcome menu'; ?> </pre> ===说明=== '''_MI_ ...是什么?''' 任何以 _MI_ 为前缀的词,都是在 /language/schinese/modinfo.php语言文件里面定义的。 我们马上会创建这个文件,但是现在,我们只要知道,这是模块信息,它将被及时显示在用户眼前,因此需要在语言文件里事先定义。 '''模板''' 模板(Templates)会在模块安装时被编译,而且保存在数据库中。 因此,你必须让系统知道你将会使用到的每个模板。 '''模块信息语言文件''' 编辑 /language/schinese/modinfo.php 而且将下列内容放入其中。 <pre> <?php define('_MI_GREETER_NAME', ' Greeter '); define('_MI_GREETER_DESC', ' A simple module that greets the person logged in.'); ?> </pre> 说明:稍后我们将会把较多的信息加入这个文件里,但是它仍然是一样的语法。现在如果我们想要增加一个法语的语言文件,我们要做的只是创建 /language/french/modinfo.php,然后放上相同的定义,不过这些定义要改为法语。现在如果某人在法语的语系中使用此系统,Greeter会以他们的语言来显示它的名字和描述。 ===一个简单的小帮手=== 以如下的内容,创建 /header.php : <pre> <?php require '../../mainfile.php'; ?> </pre> 这就是一个简单的小帮手。 ===最主要的文件:index.php=== 这个其实也非常容易: <pre> <?php require 'header.php'; $uname = !empty($xoopsUser) ? $xoopsUser->getVar('uname') : _MD_GREETER_ANONYMOUS; //我们必须在引用header之前,设置好Template: $xoopsOption['template_main'] = 'greeter_greet.html'; //引用headers require XOOPS_ROOT_PATH . '/header.php'; $xoopsTpl->assign('greeting', _MD_GREETER_GREETING); $xoopsTpl->assign('uname', $uname); //引用footer require XOOPS_ROOT_PATH . '/footer.php'; ?> </pre> 说明 * $xoopsUser 当 /header.php 它的项目包含 ../../mainfile.php 时,很多变量和类就会自行产生。 $xoopsUser 就是其中的一个变量。如果用户已经登录,用户名这个值赋给变量$xoopsUser,否则$xoopsUser仍是空的。因此,我们就可以得知用户的名字或者是游客(anonymous)。 _ MD_GREETER _ ... ? 还要再一次定义语言文件? 说对了!它们就是在语言文件里面用definde定义的,不过这次,它们没有在 /language/schinese/modinfo.php 里面定义,因为这些“_GR_ ...”并不包含模块信息,它们是在 /language/schinese/main.php 这个文件里定义的,稍候我们会创建这个文件。然后他们要处理什么? * $xoopsTpl 这是另一个变量,当程序引用了 /header.php 时就自动产生了。它也是[[Smarty]]类。 在Smarty的速成课程中,他们定义 $xoopsTpl 变量为 $smarty。 它只是你在 $xoopsOption['template_main'] = 'greeter_greet.html'模板中所创建的 Smarty类。 为了完整的利用这些功能,你可能需要学习Smarty。 而我现在并不会在这里使用它的完整功能。 ===XOOPS_PATH . '/header.php' 和 XOOPS_PATH . '/footer.php'=== 这只是 header 与 footer。在这里你要知道的重要一点是: # 你必须将它们包含(include)进来 #在还没把XOOPS_PATH . '/header.php'包含之前,你不能使用$xoopsTpl #所有$xoopsTpl操作必须在两个require语句之间完成 ===/language/schinese/main.php=== 这个文件也很简单,和 /language/schinese/modinfo.php 差不多。 以下就是内容: <pre> <?php define('_GR_GREETING', ' 你好,'); define('_GR_ANONYMOUS',' 游客'); ?> </pre> ===/templates/greeter_greet.html=== 这个文件是个真实的Smarty 模板文件。 它也很简单。 <pre> <p> <{$greeting}> <{$uname}> </p> </pre> 重要说明: 在 [[XOOPS]] 中,所有的Smart [[程序]]代码的Smarty标签都是 <{...}> 而不是像Smartys速成课程中所说的 {...} 标签。 {...} 是无法在XOOPS里工作的。请牢记! 现在,<{$greeting}> 就从 /index.php里面的 $xoopsTpl->assign('greeting', ...); 获取已经定义好的值;<{$uname}> 也是一样的作用。 ===准备好了吗?=== 好了。 我认为我们已经完成使这个模块运行的所有必要工作。我们来个测试吧! 我不打算在这里讲述如何安装这个模块。你应该已经知道该怎么做了。 但是我要说,如果每个步骤都准确无误地完成,那么你应该可以在 Admin/Modules 的页面上看到 欢迎您这个模块。安装它,然后回到你的首页。你应该看见 欢迎您 出现在你的导航菜单上。点击它,看看它工作得如何! 你应该看到和下面类似的画面: 你好,admin 如果是你自己登录的话,当然就是“你好,你的名字”。或者,如果没有登录,就显示“你好,游客”。 注意:如果你只看见一个空白页,你应该试着更新模块。进入System Admin -> Modules,然后点击greeter module 旁边的update module按钮。如果还是显示空白页,建议返回检查,这是一项艰苦的工作,但是欢迎来到开发者的世界。我保证我们都曾经历过。 [[category:Xoops模块开发指南]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:Xoops导航
(
编辑
)