欢迎各位兄弟 发布技术文章
这里的技术是共享的
键 | 类型 | 值 |
id | string | 窗格的内部ID,可以使用a-z, 0-9, 和- 或者 _。 |
title | string | 显示给用户的购物车窗格的名字。使用t(). |
enabled | boolean | 窗格的默认启用情况。(默认为TRUE) |
weight | integer | 窗格的重量,这个决定了它显示的顺序。(默认为0) |
body | string | 窗格的内容,先是在购物车查看页面中。 |
键 | #type | #value |
nid | value | $item的节点id |
module | value | 实现了这个钩子,并且与$item所代表的节点对应的模块 |
remove | checkbox | 如果选中的话,那么该项$item将被从购物车中删除。 |
options | markup | 显示额外信息的主体化了的标识文本markup(通常为一个无须列表) |
title | markup | $item所要显示的标题 |
#total | float | $item的价格。注意,这里'#' 意味着这不是一个表单元素,而仅仅是一个保存在表单数组中的值。 |
data | hidden | 序列化了的d $item->data |
qty | textfield | 购物车中该项的数量。当点击了“更新购物车”时,客户输入的数量将被保存到购物车中。 |
键 | 类型 | 值 |
id | string | 结算窗格的内部ID,可以使用a-z, 0-9, 和- 或者_. |
title | string | 显示在结算表单的窗格的名称。 |
desc | string | 在管理页面显示的窗格的简短描述。 |
callback | string | 该窗格的回调函数。结算窗格回调函数的更多文档和例子可参看这一页面。 |
weight | int | 窗格的默认重量,这个决定了它在结算表单中显示的顺序。 |
enabled | bool | 可选。窗格的默认启用情况。默认为TRUE。 |
process | bool | 可选。当结算表单提交时,这个窗格是否需要进行处理。默认为TRUE。 |
collapsible | bool | 可选。这个窗格是否显示为可伸缩的字段集。默认为TRUE。 |
$op | 使用/返回 值 | |||||||||||||||
load | 当行项被加载时,没有存储在数据库中的项将通过这个函数来加载进来。$arg1是订单对象。期望的返回值,是一个关联数组,包含了以下键:
<?php case 'load': $lines[] = array( 'id' => 'subtotal', 'title' => t('Subtotal'), 'amount' => uc_order_get_total($arg1, TRUE), ); return $lines; ?> | |||||||||||||||
display | 对于那些设为仅仅用来显示的行项,当显示订单时,使用这个$op就可以调用它们的回调函数。$arg1是订单对象。期望的返回值,和前面的load的完全一样。 | |||||||||||||||
cart-preview | 在 客户结算期间,支付窗格将会显示一个预览页面,里面包含了行项和订单。对于页面的初始化加载,每一个行项都回通过这个$op来调用它们的回调函数。通过使 用drupal_add_js()来调用下面描述的Javascript函数set_line_item(key, title, value, weight),从而设置行项的默认值。$arg1是一个用于该行项的产品对象的数组,当然,这些产品对象当前出于购物车中。注意:这个不是必须的。这个 仅用于默认的显示。结算页面的其它窗格,可以通过在它们自己的Javascript文件中使用set_line_item()来向这个列表中动态的添加项 目。这个函数的参数如下所示:
<?php case 'cart-preview': $subtotal = 0; foreach ($arg1 as $item) { $total = ($item->qty) ? $item->qty * $item->price : $item->price; $subtotal += $total; } drupal_add_js("\$(document).ready( function() { set_line_item('subtotal', '". t('Subtotal') ."', ". $subtotal .", -10); } );", 'inline'); break; ?> |
键 | 类型 | 值 |
id | string | 行项的内部ID |
title | string | 在各种界面显示给用户的行项的标题。使用t(). |
callback | string | 行项的回调函数的名称,可用于不同操作。 |
weight | int | 行项在列表中的顺序;重量越小,越靠前。 |
stored | bool | 行项是否保存在数据库中。可通过订单编辑页面修改的行项,都是TRUE。 |
add_list | bool | 行项是否包含在订单编辑页面的“添加一个行项”的下拉选择框中。 |
calculated | bool | 行项的值,是否应该包含在订单总计中。(例如:对于运费行项,返回TRUE,而对于小计行项,则返回FALSE,因为产品价格已经包含进了总额中) |
display_only | bool | 如果这个行项仅仅用来显示信息,而在其它地方不进行计算的话,返回TRUE,否则返回FALSE。(例如:总计行项仅仅用来在行项列表的底部显示订单的总计,此时就返回TRUE)。 |
$op | 用途 |
new | 当一个订单创建时调用。$arg1 是对新订单对象的引用,所以模块可以在订单的创建时期添加或者修改订单。 |
save | 当订单对象被保存时,这个钩子将触发这个操作,以让其它模块保存相应的信息。$arg1为订单对象的引用 |
load | 当订单加载时,在订单和产品数据从数据库中加载以后,调用。$arg1为订单对象的引用,所以其它模块可以在订单对象加载时对其进行修改。 |
submit | 当销售正在完成时,并且客户点击了结算页面的提交订单按钮,这个钩子将触发这个操作。这给了其它模块一个机会,来决定订单是否允许被提交。一个示例是,当订单提交时,信用卡模块试图处理支付,如果支付失败的话,将返回一个失败信息。 为了阻止订单提交的通过,你必须返回一个包含错误信息的数组,其格式如下所示: <?php return array(array('pass' => FALSE, 'message' => t('We were unable to process your credit card.'))); ?> |
can_update | 在订单的状态改变以前调用,从而确定订单是否可被更新。$arg1是订单对象,带有旧的订单状态ID($arg1->order_status),而$arg2就是新的订单状态ID。如果由于某些原因,可以返回FALSE来停止订单的状态更新。 |
update | 当订单状态更新时调用。$arg1是订单对象,带有旧的订单状态ID($arg1->order_status),而$arg2就是新的订单状态ID。 |
can_delete | 在订单被删除以前调用,以确认当前订单可被删除。返回FALSE可以阻止删除的发生。(例如,当订单已经受到付款时,支付模块默认返回FALSE) |
delete | 当订单被删除时,而其它的订单相关信息还没有被从数据库中删除以前调用。$arg1代表着订单对象,使用它你的模块可以删除与之相关的信息。 |
total | 当产品的总计添加以后,计算订单的总计时调用。$arg1为订单对象。期望能够返回一个值(正值或者负值),来修改订单的总计。 |
键/ | 类型 | 值 |
id | string | 订单窗格的内部ID |
callback | string | 订单窗格回调函数的名称,在各种操作中调用 |
title | string | |
desc | string | |
class | string | |
weight | integer | |
show | array |
键 | 类型 | 值 |
success | bool | 支付成功时,返回TRUE,否则返回FALSE |
comment | string | 在支付表格中,留给支付的评论。Use t(). |
message | string | 这里显示给用户的消息,是通过普通的Drupal消息系统实现的.如果在结算过程中,付款是自动完成的话,那么这个消息就不再显示.使用t(). |
uid* | int | 当前用户的ID,将被记录到支付表中.默认为0. |
data* | mixed | 你想要传递过来的各种数据,这些数据将被存储到支付表中.数组在被插入数据库以前将被自动的序列化. |
log_payment* | bool | 如果订单的支付被记录下来的话,那么返回TURE,否则返回FALSE;默认为TRUE.返回FALSE的一个示例情况是,使用了信用卡支付,现在还没有从里面扣钱.这样的支付还没有完成,也就不应该为订单记录这一支付,但是我们仍然想知道信用卡是不是有效的. |
*键是可选的 |
键 | 类型 | 值 |
id | string | 支付网关的内部ID,使用a-z, 0-9, 和- 或者 _. |
title | string | 显示给用户的支付网关的名字.使用t(). |
description | string | 支付网关的简洁描述. |
settings | string | 这是一个返回设置数组的函数的名字,数组里面包含的是用于网关的表单元素. |
credit_txn_types | array | 处 理信用卡支付的支付网关可以使用这个可选键.它的值为一个常量数组,用来说明网关可以提供哪些信用卡交易类型.可用的常量有 UC_CREDIT_AUTH_ONLY, UC_CREDIT_PRIOR_AUTH, UC_CREDIT_AUTH_CAPTURE, UC_CREDIT_REFERENCE_TXN;其中默认为UC_CREDIT_AUTH_CAPTURE,它将自动授权并且立即支付. |
键 | 类型 | 值 |
id | string | 窗格的内部ID,可以使用a-z, 0-9, 和- 或者 _。 |
title | string | 显示给用户的购物车窗格的名字。使用t(). |
enabled | boolean | 窗格的默认启用情况。(默认为TRUE) |
weight | integer | 窗格的重量,这个决定了它显示的顺序。(默认为0) |
body | string | 窗格的内容,先是在购物车查看页面中。 |
键 | #type | #value |
nid | value | $item的节点id |
module | value | 实现了这个钩子,并且与$item所代表的节点对应的模块 |
remove | checkbox | 如果选中的话,那么该项$item将被从购物车中删除。 |
options | markup | 显示额外信息的主体化了的标识文本markup(通常为一个无须列表) |
title | markup | $item所要显示的标题 |
#total | float | $item的价格。注意,这里'#' 意味着这不是一个表单元素,而仅仅是一个保存在表单数组中的值。 |
data | hidden | 序列化了的d $item->data |
qty | textfield | 购物车中该项的数量。当点击了“更新购物车”时,客户输入的数量将被保存到购物车中。 |
键 | 类型 | 值 |
id | string | 结算窗格的内部ID,可以使用a-z, 0-9, 和- 或者_. |
title | string | 显示在结算表单的窗格的名称。 |
desc | string | 在管理页面显示的窗格的简短描述。 |
callback | string | 该窗格的回调函数。结算窗格回调函数的更多文档和例子可参看这一页面。 |
weight | int | 窗格的默认重量,这个决定了它在结算表单中显示的顺序。 |
enabled | bool | 可选。窗格的默认启用情况。默认为TRUE。 |
process | bool | 可选。当结算表单提交时,这个窗格是否需要进行处理。默认为TRUE。 |
collapsible | bool | 可选。这个窗格是否显示为可伸缩的字段集。默认为TRUE。 |
$op | 使用/返回 值 | |||||||||||||||
load | 当行项被加载时,没有存储在数据库中的项将通过这个函数来加载进来。$arg1是订单对象。期望的返回值,是一个关联数组,包含了以下键:
<?php case 'load': $lines[] = array( 'id' => 'subtotal', 'title' => t('Subtotal'), 'amount' => uc_order_get_total($arg1, TRUE), ); return $lines; ?> | |||||||||||||||
display | 对于那些设为仅仅用来显示的行项,当显示订单时,使用这个$op就可以调用它们的回调函数。$arg1是订单对象。期望的返回值,和前面的load的完全一样。 | |||||||||||||||
cart-preview | 在 客户结算期间,支付窗格将会显示一个预览页面,里面包含了行项和订单。对于页面的初始化加载,每一个行项都回通过这个$op来调用它们的回调函数。通过使 用drupal_add_js()来调用下面描述的Javascript函数set_line_item(key, title, value, weight),从而设置行项的默认值。$arg1是一个用于该行项的产品对象的数组,当然,这些产品对象当前出于购物车中。注意:这个不是必须的。这个 仅用于默认的显示。结算页面的其它窗格,可以通过在它们自己的Javascript文件中使用set_line_item()来向这个列表中动态的添加项 目。这个函数的参数如下所示:
<?php case 'cart-preview': $subtotal = 0; foreach ($arg1 as $item) { $total = ($item->qty) ? $item->qty * $item->price : $item->price; $subtotal += $total; } drupal_add_js("\$(document).ready( function() { set_line_item('subtotal', '". t('Subtotal') ."', ". $subtotal .", -10); } );", 'inline'); break; ?> |
键 | 类型 | 值 |
id | string | 行项的内部ID |
title | string | 在各种界面显示给用户的行项的标题。使用t(). |
callback | string | 行项的回调函数的名称,可用于不同操作。 |
weight | int | 行项在列表中的顺序;重量越小,越靠前。 |
stored | bool | 行项是否保存在数据库中。可通过订单编辑页面修改的行项,都是TRUE。 |
add_list | bool | 行项是否包含在订单编辑页面的“添加一个行项”的下拉选择框中。 |
calculated | bool | 行项的值,是否应该包含在订单总计中。(例如:对于运费行项,返回TRUE,而对于小计行项,则返回FALSE,因为产品价格已经包含进了总额中) |
display_only | bool | 如果这个行项仅仅用来显示信息,而在其它地方不进行计算的话,返回TRUE,否则返回FALSE。(例如:总计行项仅仅用来在行项列表的底部显示订单的总计,此时就返回TRUE)。 |
$op | 用途 |
new | 当一个订单创建时调用。$arg1 是对新订单对象的引用,所以模块可以在订单的创建时期添加或者修改订单。 |
save | 当订单对象被保存时,这个钩子将触发这个操作,以让其它模块保存相应的信息。$arg1为订单对象的引用 |
load | 当订单加载时,在订单和产品数据从数据库中加载以后,调用。$arg1为订单对象的引用,所以其它模块可以在订单对象加载时对其进行修改。 |
submit | 当销售正在完成时,并且客户点击了结算页面的提交订单按钮,这个钩子将触发这个操作。这给了其它模块一个机会,来决定订单是否允许被提交。一个示例是,当订单提交时,信用卡模块试图处理支付,如果支付失败的话,将返回一个失败信息。 为了阻止订单提交的通过,你必须返回一个包含错误信息的数组,其格式如下所示: <?php return array(array('pass' => FALSE, 'message' => t('We were unable to process your credit card.'))); ?> |
can_update | 在订单的状态改变以前调用,从而确定订单是否可被更新。$arg1是订单对象,带有旧的订单状态ID($arg1->order_status),而$arg2就是新的订单状态ID。如果由于某些原因,可以返回FALSE来停止订单的状态更新。 |
update | 当订单状态更新时调用。$arg1是订单对象,带有旧的订单状态ID($arg1->order_status),而$arg2就是新的订单状态ID。 |
can_delete | 在订单被删除以前调用,以确认当前订单可被删除。返回FALSE可以阻止删除的发生。(例如,当订单已经受到付款时,支付模块默认返回FALSE) |
delete | 当订单被删除时,而其它的订单相关信息还没有被从数据库中删除以前调用。$arg1代表着订单对象,使用它你的模块可以删除与之相关的信息。 |
total | 当产品的总计添加以后,计算订单的总计时调用。$arg1为订单对象。期望能够返回一个值(正值或者负值),来修改订单的总计。 |
键/ | 类型 | 值 |
id | string | 订单窗格的内部ID |
callback | string | 订单窗格回调函数的名称,在各种操作中调用 |
title | string | |
desc | string | |
class | string | |
weight | integer | |
show | array |
键 | 类型 | 值 |
success | bool | 支付成功时,返回TRUE,否则返回FALSE |
comment | string | 在支付表格中,留给支付的评论。Use t(). |
message | string | 这里显示给用户的消息,是通过普通的Drupal消息系统实现的.如果在结算过程中,付款是自动完成的话,那么这个消息就不再显示.使用t(). |
uid* | int | 当前用户的ID,将被记录到支付表中.默认为0. |
data* | mixed | 你想要传递过来的各种数据,这些数据将被存储到支付表中.数组在被插入数据库以前将被自动的序列化. |
log_payment* | bool | 如果订单的支付被记录下来的话,那么返回TURE,否则返回FALSE;默认为TRUE.返回FALSE的一个示例情况是,使用了信用卡支付,现在还没有从里面扣钱.这样的支付还没有完成,也就不应该为订单记录这一支付,但是我们仍然想知道信用卡是不是有效的. |
*键是可选的 |
键 | 类型 | 值 |
id | string | 支付网关的内部ID,使用a-z, 0-9, 和- 或者 _. |
title | string | 显示给用户的支付网关的名字.使用t(). |
description | string | 支付网关的简洁描述. |
settings | string | 这是一个返回设置数组的函数的名字,数组里面包含的是用于网关的表单元素. |
credit_txn_types | array | 处 理信用卡支付的支付网关可以使用这个可选键.它的值为一个常量数组,用来说明网关可以提供哪些信用卡交易类型.可用的常量有 UC_CREDIT_AUTH_ONLY, UC_CREDIT_PRIOR_AUTH, UC_CREDIT_AUTH_CAPTURE, UC_CREDIT_REFERENCE_TXN;其中默认为UC_CREDIT_AUTH_CAPTURE,它将自动授权并且立即支付. |
附件 | 大小 |
---|---|
skeleton.tar | 4 KB |