【发布时间】:2015-11-27 05:57:04
【问题描述】:
这个问题来自 uc_domain_access(Ubercart 域访问)中的代码
在移植到 Drupal 7 的模块中,下面有这两个令牌语句,没有人支持其中调用的函数已被替换 - 但我不知道如何将代码重新编写为新函数
在模块的第 168 行是下面的这个,它是在 D6 中实现 hook_token_values() 的函数的一部分 - 返回一个数组 => $values。 (挂钩令牌值 => http://www.drupalcontrib.org/api/drupal/contributions!token!token.api.php/function/hook_token_values/6)
foreach (uc_store_token_values('global') as $token => $value) {
$values['order-' . $token] = $value;
}
AND 在第 350 行
foreach (uc_store_token_values('global') as $token => $value) {
$vars[str_replace('-', '_', $token)] = $value;
}
函数“uc_store_token_values”在 D7 中消失了,而在 Drupal 7 中现在是“uc_store_tokens”
并且 switch case 标记 $type 'global' 不再存在 - 新的 switch case 是(将是)'store' 它出现,并返回一个现在称为 $replacements 的数组 - 否则与数组大致相同$价值
D6 中的 hook_token_values() 也消失了,现在在 D7 中被简单地称为 hook_tokens()
我不熟悉令牌。也可以通过https://www.drupal.org/documentation/modules/token/update/6/7查看其他人发生了什么
所以如果我将 uc_store_token_values 更改为 uc_store_tokens 并将 'global' 更改为 'store' - 错误是“缺少 uc_store_tokens() 的参数 2,在第 342 行调用......模块并在 uc_store_tokens() 中定义(第 72 行) . . . /uc_store.tokens.inc) 即 => function uc_store_tokens($type, $tokens, $data = array(), $options = array()) { 整个函数可以作为 uc_store_tokens 搜索 Drupal 7)
因此,参数 2 似乎是“$tokens”,其中没有参数 2,并且在 Drupal 6 的 uc_store_token_values 中不存在,显然应该是根据 Drupal 7 hook_tokens 替换的令牌或令牌数组函数API)
所以问题是这里有人知道上面的 168 和 350 的两段代码是如何更改以符合新的 uc_store_tokens() 函数的吗?
【问题讨论】: