Gallery模块开发教程
✓出处:站长百科
✓原文地址:baike/wiki/Gallery:模块开发教程
✓本电子书整理自站长百科Gallery:模块开发教程词条,查看内容请访问网站。
Gallery模块开发教程 (1)
一般注释 (2)
模块创建脚本(Module Creator Script) (2)
G2开发:介绍 (2)
前言 (2)
G2的“理”和“实” (2)
G2如何工作? (3)
模块目录结构 (4)
哑模块编码 (6)
前言 (6)php实例代码教程
模块结构 (6)
模块的安装和激活 (10)
显示静态页面的模块 (11)
前言 (11)
模块结构 (11)
module.inc (11)
MyPage.inc (11)
templates/MyPage.tpl (16)
页面的访问 (19)
带有动作的页面 (19)
前言 (19)
模块结构 (19)
templates/MyPage.tpl (20)
MyPage.inc (21)
测试 (26)
模块Callback (26)
与数据库的协作 (27)
更多电子书 (29)
美国主机侦探发送Reseller7.73美元域名代理账号 Com org 均为7.73美元一年续费价格不变让你体验做域名出售商的感觉详情参看:bbs.idcspy/thread-44619-1-1.html
✓出处:站长百科
✓出处:站长百科
推荐内容:亚洲最大的域名注册商 | RsellerClub 7.25美元域名代理账号
一般注释
部分内容经许可取自:txtdump/g2dev/
此处的代码针对Gallery2.2已经过更新。
模块创建脚本(Module Creator Script)
该教程将帮助你从零开始创建所有的模块文件。你还可通过命令行运行gallery2目录的php lib/tools/creator/create-module.php来新建模块。
注: 你必须有G2开发者整合包或从svn/nightly snapshot进行安装以获得lib/tools/creator。
G2开发:介绍
前言
初次开发G2时,你可以尝试多花点时间来理解基本知识。此教程中我们会从最基本的开始,没用过PHP的人都可以学会编写模块代码,并且能做大做好。
G2的“理”和“实”
G2几乎实现了代码和设计之间的完全分离,以及一套可插模块的系统。那么这对你意味着什么呢?通过使用G2的API(应用程序编程接口)你可以向G2
添加新的功能而无需对核心代码做任何修改。
在我想修改G2时的第一种冲动就是到有问题的代码,然后将其修改为我需要的形式。但是这只是一个短期的权宜之计,在将来,尤其是你需要升 级核
✓出处:站长百科
心代码库时,麻烦就来了。实现某种修改或新特点的更有效途径就是编写模块。开始可能会多花费你一些时间,但之后你就会意识到维护好比10个模块,就如 同修改几行语句以符合新版本的API那样轻松。
G2如何工作?
在开始之前,你至少需要明白G2的工作方式。比如,当点击边栏中的"成员列表(Member List)"链接是发生什么?
1.请求送达main.php,即G2主要的包装脚本。它会看到后置到"main.php"的URL部 分,"?g2_view=members.MembersList",然后获知你想载入"members"模块并显示视图"MembersList"(一 个视图就是一个动态G2页面)。
2."members"模块从modules/members被载入,并被告知显示"MembersList"视图。模块载入一个名为 MembersList.inc 的文件,它会使用G2 API来联系数据库并准备所有所需信息(membername,id,email等)。
3.默认外观主题被载入并被指示显示一个模块页面。在编写模块时你无需为此担忧,只要注意外观主题可以在你的模块内容周围显示东西即可,比如头/尾等。
4.对应模板,modules/members/templates/MembersList.tpl,被载入而数据则被传送至此。该模板使用生成一个表格,事项处理就完成了。
如你所见,在此过程中有若干相异部分并各司其职。除了个别例外情况,不将复杂代码包括进模板,或将模板数据置入PHP代码中。一旦你理解此重要概念,G2的开发就变得更为简单了。
你已经看了这么多啦!真不简单!接下来我们来为G2创建模块。我打包票,绝对不难。
✓出处:站长百科
模块目录结构
modules/$modulename/module.inc
此为各模块所具有的入口点。它定义模块的身份以及职能。此为所有模块所必须具有的文件,当然也是唯一必须的文件。其余文件则根据模块职能不同而有所取舍。
modules/$modulename/$viewname.inc
页面被称为"视图(view)"。各视图都具有各自的.inc文件。该文件的文件名与视图相同。如果视图可以执行任何动作的话(即可通过按钮完成一些行为),那么该文件还会具有一个"控制器(controller)"类别,用以处理这些动作。
modules/$modulename/templates/$viewname.tpl
各视图的实际HTML位于一个模板文件中,该文件具有与视图相同的文件名。
modules/$modulename/templates/blocks/blocks.inc
此为一PHP文件,它告知各外观主题哪些为可用区块以及针对各区块所需载入的模板文件。该文件并非区块运行所必需的,但能使得这些区块可被外观主题用于"边栏区块(sidebar blocks)"及"相片区块(photo blocks)"等的设定之中。
modules/$modulename/templates/blocks/*.tpl
包含自blocks.inc 所定义区块的模板代码。
modules/$modulename/Callbacks.inc
✓出处:站长百科
该文件为各模块callback加载所用。定义区块的模块可使用此文件加载区块数据。
modules/$modulename/Preloads.inc
该文件为各模块preload加载所用。定义区块的模块可使用此文件指定区块所需的css或javascript。
modules/$modulename/classes/*Helper.class
*Helper.class文件为可选的。它们被用来组织用于多个视图内容的代码,或是将大块代码分解成易于管理的小块。
modules/$modulename/classes/*Interface.class
接口针对多个模块共享某种常见方法以完成相似任务之用。比如,Search 模块实现的search接口,其他模块可添加搜索(search)功能。
modules/$modulename/l
数据库表方案被保存在XML文件中以保证其可移植性。Gallery则会让它与各类数据库引擎兼容协作。仅当模块在数据库中保存数据的情况下才会用到它。
modules/$modulename/test/phpunit/*Test.class
这些是模块的单元测试。访问Gallery中的lib/tools/phpunit/index.php 来运行单元测试。这些自动化的测试旨在确认模块能按预期运行。它们的编写需要花费时间,但能保证Gallery核心更改或你自己对模块作出的修改不会对模块造成破坏。
modules/$modulename/po/*.po
这些是模块中文本在其他语言中的翻译。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。