Drupal 二次开发应遵循的标准
来源:互联网 发布:modbus通讯协议及c编程 编辑:程序博客网 时间:2024/04/30 14:22
Drupal使用者中文社区 ,提供drupal模块中文介绍,drupal教程,drupal开发,drupal主题制作文章。
模块(Module) 是扩展 Drupal 的主要机制。它们实现一个定义良好的接口,使新模块和系统能够相互交互。
Drupal 将这个接口中的函数称为挂钩(hook)。
Drupal 挂钩分成为三类;它们在模块中有三种作用:
身份验证(Authentication) 提供额外的用户身份验证机制
核心(Core) 与核心 Drupal 代码进行交互
节点(Node) 向系统提供新的节点类型
通常,如果需要以任何方式扩展 Drupal,就要创建新模块。需要创建模块的一种常见情况是,
数据库中的标准节点表不包含应用程序所需的信息。
实现节点挂钩的模块很容易利用扩展的数据库模式存储它所需的任何信息。一定要理解一点:
模块不必实现 Drupal 的所有挂钩;它只需实现那些实现扩展所需的挂钩。
节点访问挂钩
<module_name>_perm
perm 挂钩定义可以分配给每个用户的访问权限类型。
节点模块定义了几种标准类型:
<module_name>_access
access 挂钩能够将对内容的访问限制为某些操作。
传递节点操作(查看、创建、更新、删除等等)和节点来帮助确定访问特权。
节点显示挂钩
<module_name>_form
form 挂钩定义用来添加或编辑这个模块的节点的输入组件,比如文本域、复选框等等。
文档中提供了这个函数的示例。 form 接口的实现在 Drupal 4.6 和 4.7 之间已经改变了。
<module_name>_validate
在将数据提交给 Web 站点之前,模块使用 validate 挂钩确保节点中的数据是有效的。
<module_name>_submit
在 validate 挂钩成功完成之后,在将数据提交给 Web 站点之前,模块使用 submit 挂钩对节点中的数据进行修改。
<module_name>_view
view 挂钩为模块提供定义此类型节点的显示方式的机制。它首先通过使用另一个挂钩对节点进行过滤,然后通过主题化过程生成 HTML。
<module_name>_menu
menu 挂钩使模块能够定义它希望处理的 URL 路径。
返回值是一个条目数组。每个条目是一个关联数组,定义一个惟一的 URL。
返回值有各种形式,从路径树形式的一般条目到回调条目(为某一路径注册要调用的函数)。
<module_name>_nodeapi
如果需要与系统中的其他模块进行交互,nodeapi 挂钩就很有用了。
例如,如果启用了 comment 模块,那么可以调用 comment_nodeapi() 函数,从而使用与节点相关联的评论信息来扩展节点对象。nodeapi 挂钩还可以用于其他事件,包括查看、数据库访问、搜索、检验等等。
节点数据库挂钩
<module_name>_load
load 挂钩允许模块从数据库中额外的表中装载与此类型节点相关的任何额外信息。
返回值是一个对象,其中包含要添加的额外属性。Drupal 会自动地将它们与正在装载的节点合并。
<module_name>_insert
insert 挂钩通知模块将节点的数据添加到数据库中。
通常,这会调用数据库抽象层中的一个函数(例如,db_query),从而将节点的相关数据插入为这个模块定义的表中。存储在 node 数据库表中的标准数据(比如主体、创建日期等等)是自动地写入数据库的。
<module_name>_update
update 挂钩使模块能够更新数据库中现有节点的数据。
如果要支持模块的节点修订,update 挂钩也是最常见的实现所需代码的位置。
<module_name>_delete
delete 挂钩允许模块在从数据库中删除节点时执行额外的操作。
在这时,可以清空模块特有的任何表。
Web 站点的外观标准主题函数:
1.<theme name>_<content name>
这个函数的名称由当前主题的名称和被主题化的内容的名称(即节点类型)组成。
如果当前主题名为 ibc,而且我们要对内容 announcement 进行主题化,
那么这个主题函数名就是 ibc_announcement。
2.<theme engine name>_<content name>
这个函数的名称由当前主题引擎的名称和内容的名称组成。
我们将使用 PHPtemplate 引擎,所以对于内容 announcement,
这个主题函数名就是 phptemplate_announcement。
3.theme_<content name>
这是最后一个函数,也是最简单的。如果要对内容 announcement 进行主题化,
那么这个主题函数名就是 theme_announcement。
模板文件
PHPTemplate 允许将特定的文件(称为模板文件)映射到 Drupal 中的特定函数和模块。
模板文件以 .tpl.php 结尾,它使用相关联的函数或模块传递给它的一个数据数组。
可以使用 PHP 和 xHTML 操作这一数据,将它显示在 Web 页面上。
Drupal 为现有的节点类型提供了一般性模板,帮助您对主题进行定制。
page.tpl.php、node.tpl.php 和 comment.tpl.php 文件是一般性模板的例子。
它们保存在主题目录中。页面模板定义的页面用来包含节点模板定义的任何节点的显示。
page.tpl.php
这里很可能是开始对主题进行定制的地方。这个模板定义 Drupal 显示的所有内容页面的结构。
在这里,可以定义全局的结构化 xHTML 元素(比如 head 和 body 元素)、样式表的包含文件、设置内容布局
的语义的骨架 DIV 元素等。
node.tpl.php
这个模板用来控制如何显示节点数据。如果希望对特定类型的节点进行主题化,
那么要复制 node.tpl.php 文件并将文件名改为 node-<type>.tpl.php,其中的 <type> 是节点类型的名称。
我们在 IBC Web 站点的讨论部分中使用一个称为 node-forum.tpl.php 的模板,从而改变论坛内容的默认布局。
comment.tpl.php
这个模板文件控制一条评论的布局。可以使用 Drupal 的 Comment 模块 将评论添加到页面中。
转自:http://www.ibm.com/developerworks/cn/web/i-osource5/
- Drupal 二次开发应遵循的标准
- 软件设计应遵循的原则
- 菜鸟也应具备的素质——遵循编程标准
- 应遵循的PL/SQL编码规则
- 工作时应遵循的几个原则
- [UML]绘制图应遵循的策略
- 应遵循的PL/SQL编码规则
- 电脑维修应遵循的基本原则
- 人应遵循的保健时间
- jjavabean定义应遵循的规范
- J2EE开发应遵循的原则介绍
- 应遵循的PL/SQL编码规则
- 应遵循获得一个可靠的经纪人
- 算术编码时应遵循的原则
- 企业信息化的应遵循的十条原则
- 软件测试应遵循的八条原则
- 应遵循的PL/SQL编码规则 (转)
- 开发J2EE应用应遵循的几点原则
- SQLite内建函数表
- ie 中document.links的问题
- durpal6的主题预处理函数
- 【转】关于Java String对象创建问题解惑
- JFace Text Editor完全掌握之终极指南1
- Drupal 二次开发应遵循的标准
- SimpleMenu模组
- YUI Menu模组
- Menu Block Split模组
- 通过drupal的API添加样式表
- 用fwrite()创建文件
- 如何进行系统分析
- 新建网站如何在GOOGLE上取得好排名
- 如何改变Erlang的当前工作路径