首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Drupal中,如何更改传递给Pathauto的值?

在Drupal中,如何更改传递给Pathauto的值?
EN

Stack Overflow用户
提问于 2010-05-11 01:14:54
回答 2查看 2.4K关注 0票数 4

我将Pathauto配置为根据节点的标题为特定的内容类型生成别名。问题是,在Pathauto使用它生成别名之前,我想对这个标题做一些小的更改。

this post中的第一个注释建议使用hook_token_values,但我不能真正理解如何使用它,即使在阅读了docs之后也是如此。在我的测试中,当我实现这个钩子时,生成的别名总是"array",这意味着我遗漏了一些东西。

有什么帮助吗?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-11 03:20:37

您可能也错过了实现hook_token_list的机会。提供新令牌的过程分为两步:

  1. 实现hook_token_list来声明您要提供的令牌。这只是令牌的名称,以及简短的解释,以及令牌将应用于哪种类型的对象(例如,节点、用户、分类等)的信息。
  2. 实现hook_token_value来实际生成令牌的内容。当令牌要替换为它们应该代表的内容时,将调用此方法。

因为您只想提供令牌模块已经提供的标题令牌的替代版本,所以最好从token_node.inc复制相关部分,将其剥离到相关的案例,并调整为在另一个模块中使用:

代码语言:javascript
复制
/**
 * Implementation of hook_token_list().
 */
function yourModule_token_list($type = 'all') {
  if ($type == 'node' || $type == 'all') {
    $tokens['node']['yourModule-title'] = t('Node title (customized version by yourModule)');

    return $tokens;
  }
}

这就是说,yourModule为节点对象提供了一个名为yourModule-title的令牌,以及一个简短的描述。主要工作在另一个钩子中完成:

代码语言:javascript
复制
/**
 * Implementation of hook_token_values().
 */
function yourModule_token_values($type, $object = NULL, $options = array()) {
  $values = array();
  switch ($type) {
    case 'node':
      $node = $object;
      // TODO: Replace the check_plain() call with your own token value creation logic!
      $values['yourModule-title'] = check_plain($node->title);  
      break;
  }

  return $values;
}

每当需要节点对象的令牌时,都会调用该方法,并将相关节点作为$object参数传递(对于用户令牌,$type将是' user ',$object将是user对象,对于其他类型依此类推)。它所做的是创建一个值数组,以令牌名称为关键字,并将该令牌的替换项作为值。来自token_node.inc的原始代码只是通过check_plain()运行标题,所以这里应该插入您自己的逻辑。

票数 5
EN

Stack Overflow用户

发布于 2012-04-07 23:16:59

在Drupal7中,令牌功能已移至核心。令牌由hook_tokenshook_token_info方法实现。有关用法示例,请按照提供的链接进行操作,并查找实现hook_tokens和hook_token_info…的函数的链接我发现statistics_tokensstatistics_token_info函数对理解这个钩子的工作原理很有帮助。

可能还值得注意的是,此挂接需要由模块…实现我第一次尝试将测试函数放入主题的template.php中,结果什么也没有发生:-p

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2804781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档