【问题标题】:D6 to D7 re-coding for tokens issue in UbercartUbercart 中代币问题的 D6 到 D7 重新编码
【发布时间】: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() 函数的吗?

【问题讨论】:

    标签: drupal-7 token ubercart


    【解决方案1】:

    “用于提供令牌的钩子已重命名。hook_token_list() 现在是 hook_token_info(),hook_token_values() 现在是 hook_tokens()。这两个钩子的参数和返回值也与它们的 D6 等效项不同。”来自 => https://www.drupal.org/documentation/modules/token/update/6/7

    然后它还说“目前在 Drupal 6 中的旧令牌名称和 Drupal 7 中新的可链接样式令牌之间没有升级路径。一些辅助函数正在编写在 token.module 中。”

    显然,必须修改模块函数,并且可以在 https://drupal.stackexchange.com/questions/4930/how-to-programmatically-create-a-custom-token-in-a-modulehttps://drupal.stackexchange.com/questions/86136/formatting-output-of-token 以及 drupal.org 的函数 token_info 文档中找到一些示例代码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-23
      • 2011-03-12
      • 1970-01-01
      • 2011-05-29
      • 2017-10-04
      • 1970-01-01
      • 2011-12-03
      • 2011-09-21
      相关资源
      最近更新 更多