drupal分享

实践理解drupal 7 render API

drupal render array实践学习
上篇文章介绍drupal 7中的render API,这篇通过实践来更好的理解drupal render api.

创建一个模块

下面通过一个小模块学习drupal render api。
按照开发drupal模块的惯例,首先在sites/all/modules下面创建两个文件:

render_array.info
render_array.module

render_array.info的内容如下:

name = render array
description = understanding drupal's render api
package = test modules
core = 7.x

然后在render_array.module添加如下代码,挂个hook menu钩子。

drupal 7 render arrays详解

drupal 7 render arrays详解

什么是渲染(rendering)?

drupal中rendering,简单来说就是把具有特定结构的关联数组转换为HTML页面的过程。从drupal 7开始,render arrays(中文翻译渲染数组)为drupal页面渲染的最基本元素,render arrays也叫rendable arrays,意为’可渲染的数据‘。
其实render array就是一个php关联数组,但符合drupal页面渲染过程中的标准和数据结构。

大多数情况下,用来渲染页面的数据一直保存在关联数组里,直到页面的最后渲染阶段才被调用,这种机制为页面的布局和内容显示提供了极大的灵活性,也有益于系统以后的性能提升。

注意:虽然render arrays和form api中使用的数组具有某些共同的元素,属性以及结构,但许多表单属性的意义仅限于FORM API,不能等同于render API.简单来说,form API的数组必须通过drupal_get_form这个函数的处理后才能变为标准的render arrays.如果直接把未经该函数处理的form api数组传递给render API,最后的效果可能不能如你所愿。

理解drupal主题的工作机制(template文件,主题函数)

最近一直在折腾drupal,积累了一些经验,有空了将在此与大家分享一下。今天先说下drupal的主题模版工作机制。
drupal主题的核心文件是theme.inc,位于includes下面,通过研读这个文件里的代码和官方的文档,我算是大致明白了drupal生成HTML的流程。主要由主题函数(theme function),主题模版文件(template files)和drupal_render来完成。

进入任何一个主题根目录,可以在templates目录下找到常见的主题模版文件,如html.tpl.php,page.tpl.php,node.tple.php,commet.tpl.php,field.tpl.php等等。这些主题模版文件主要为HTML代码,但也夹杂一部分PHP代码,几乎都是实现简单的判断和HTML代码输出,按照drupal的规范,稍复杂一点代码都应该在其它地方完成。

Drupal 7 支付宝担保支付和双功能(带自动发货功能)

Drupal是一个非常强大的CMS,目前有上万个模块,易于扩展。 而drupal commerce是drupal 7上的网店平台,扩展性比之前的ubercart强,可惜支付方面只能支持支付宝即时支付,个人能申请到的担保支付帐号则无法使用。经过几天的折腾,终于弄出一个双功能的支付模块,这个模块支持自动发货功能,即收到支付完成后会自动确认发货,无需手动确认。模块是基于原来的即时支付模块,已在drupal官方提交patch,但不知什么时候才能审核通过,所以在些先发布一个完整的模块,给需要的朋友使用。

Subscribe to RSS - drupal分享