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

2023-12-06

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

第一条评论在这个帖子建议使用 hook_token_values,但我无法真正理解如何使用它,即使在阅读了docs。在我的测试中,当我实现这个钩子时,生成的别名始终是“array”,这意味着我丢失了一些东西。

有什么帮助吗?谢谢。


可能是你错过了实施hook_token_list以及。提供新令牌分为两个步骤:

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

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

/**
 * 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,以及简短的描述。主要工作在另一个钩子中完成:

/**
 * 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将是“用户”,并且$object将是用户对象,对于其他类型依此类推)。它的作用是创建一个值数组,以令牌名称为键,并替换该令牌作为值。 token_node.inc 的原始代码只是运行标题check_plain(),所以这将是插入您自己的逻辑的地方。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Drupal 中,如何更改传递给 Pathauto 的值? 的相关文章

  • 如何在JQuery中选择除单击元素之外的所有类?

    我有一个在 Drupal 上开发的网站 我使用一个名为 collapsiblock 的模块 它基本上是一个 JQuery 插件 来实现类似手风琴的效果 它对我来说工作得很好 尽管它还处于测试阶段 但我想修改它 以便当用户单击手风琴的一项时
  • 如何编写 GraphQL 查询

    我有一个有效的网络 graphql 查询 me on Student profile fullName emailId mobileNumber civilId address city state country zipCode user
  • 使用 drupal_get_form() 传递参数

    这是我使用钩子的自定义模块 假设如果我想将参数传递给 custom1 default form 函数调用 我应该如何传递参数
  • 如何摆脱 Drupal CSS 样式表?

    我正在努力完成以下任务 我需要使用 Drupal 6 作为项目要求 但我想将它与我自己的 HTML 和 CSS 样式表一起用于每个节点 视图 面板等 问题是 无论什么主题 我总是发现 Drupal 适用于我的 HTML 内容 包括我的 CS
  • 如何让tinymce(浏览器内的“富编辑器”)保留缩进

    问题 我将 Drupal 与丰富的编辑器一起使用 而丰富的编辑器喜欢通过删除缩进和格式来破坏我的文本 这在桌面编辑器中是不可接受的 但人们似乎可以在浏览器内编辑器中容忍这种情况 问 如何关闭此功能 我已经四处搜索 但尚未找到告诉富编辑器保留
  • 如果管理员或用户具有特定角色,则 Drupal 条件 PHP

    如果用户是管理员 以下内容将执行 某些操作 do something 如果用户是管理员或具有特定角色 我该如何更改此设置 以便发生 某些事情 谢谢 角色存储在 user gt roles 要检查 用户是否是管理员或具有特定角色 您可以简单地
  • 如何在 Drupal 7 中打印自定义菜单?

    我在 Drupal 7 中创建了一个菜单 并创建了该菜单下页面的链接 我将新菜单命名为 站点菜单 在我希望菜单出现的 page tpl php 中 我已将其放在适当的位置 清除缓存并刷新页面后 我的菜单不会出现 我很困惑 任何帮助将不胜感激
  • 用户名作为路径

    我希望将用户名作为 URL 的一部分 例如mysite com 用户名 这应该重定向到用户配置文件 我用简介2 http drupal org project profile2 and Pathauto http drupal org pr
  • Drupal 6 和 7 从标头中取消设置 Javascript

    编辑 我的问题适用于 Drupal 6 和 7 尽管我的代码示例是 Drupal 6 人们提供的答案对于 Drupal 的两个版本都很有用 我目前正在 Drupal 中为 Drupal 6 网站创建移动主题 并尝试通过以下方式删除所有不必要
  • 将 WebApp 授权给 ADFS 以访问 Dynamics CRM Web API

    我有一个 Web 应用程序需要与 Dynamics CRM 365 Web API 通信 Dynamics CRM 配置为 ADFS 上的依赖方 服务器是 Windows Server 2016 一切都在本地 而不是在 Azure 上 我为
  • 是否可以使用 Drupal api 获取用户列表?

    我想获取已分配特定角色的所有用户的列表 我可以编写自己的 SQL 但我想尽可能多地使用 api 您可以使用entity load来获取用户数组 这是将为管理员用户创建所有电子邮件列表的示例 用于发送通知
  • 如何让 PagerDefault 查询与 Drupal 7 一起正常工作?

    我正在运行以下代码 query db select taxonomy index ti gt fields ti array nid gt condition ti tid term gt tid gt condition n status
  • 用于推送通知的设备令牌

    我正在实施推送通知服务 我需要创建一个数据库来存储 4 个移动平台的所有设备令牌 我想根据他们的平台 iOS Android BlackBerry WP7 来组织它们 但是有什么方法可以区分平台 这样如果我只想向 Android 用户发送消
  • 在 Drupal 中选择性地删除页面的样式表

    我正在尝试为首页制作不同的布局 在此过程中 我声明了名为 front page css 和 page front tpl php 的新样式表 我正在使用加载responsive sidebar css 的 Zen 子主题 我想删除 resp
  • 找出是什么原因导致可怕的“网站遇到意外错误。请稍后再试。”信息

    在进行 drupal 6 到 7 升级时 我收到了不太有用的消息 网站遇到意外错误 请稍后再试 每次我进入某些页面时 例如 管理 配置 找出导致致命错误的原因以便我可以修复它的最佳方法是什么 我现在能想到的就是开始禁用贡献的模块 直到该页面
  • Oauth2中如何同时撤销RefreshToken和使AccessToken失效

    我正在使用 Owin Oauth2 授权和资源服务器相同 开发单页面应用程序 AngularJS Net MVC Json Rest API 的身份验证流程 我选择了 Bearer Token 路由而不是传统的 cookie session
  • Swift 客户端和根 SSL 证书身份验证

    积分得到token api of QLIK server with ssl证书 但执行任务后我收到这样的错误 完成时出现错误 代码 999 Your hostname and endpoint let hostname YOUR HOST
  • 使用字符串路径设置嵌套数组数据[重复]

    这个问题在这里已经有答案了 我正在尝试编写一个不寻常的用例 目标是这样的 我希望客户能够提供一个字符串 例如 cars honda civic On 使用这个字符串 我的代码将设置一个值 如下所示 data cars honda civic
  • Drupal 或 OSCommerce 中的定制产品?

    我看过高低 我想我没有在寻找正确的东西 我想知道 drupal 或 oscommerce 的模块或插件可以让您 构建自己的产品 IE 客户可以访问该网站 并说他想要 PC A 具有 X 容量的 RAM 和 Z 大小的硬盘等 是否有 osco
  • 在网站上不间断地播放 mp3?

    客户请求在整个网站上播放单个曲目 一般来说 我建议不要这样做 但他们坚持这样做 那么 将 Flash 播放器嵌入到网站中并且当用户转到另一个页面时不会出现间隙 中断的最直接方法是什么 我认为需要一个 iframe 我正在使用具有自动恢复功能

随机推荐

  • 单元测试适配器抛出异常:不支持 URI 格式

    在 Visual Studio 2010 中 当我使用以下基本代码创建默认测试项目时
  • 让 PowerShell 等待 Excel 完成刷新数据透视表

    所以我开发了一个Powershell脚本来刷新大约40个大的excel文件并保存它们 在这个脚本中我运行一个excel宏来传递excel ODBC 连接参数 然后在刷新完成后从excel文件中删除它们 我唯一的问题是 对于这 40 个文件中
  • qmake 和多个 MSVS 版本

    From Visual Studio 2008 Command Prompt我运行这个命令来生成 vcproj file gt qmake spec win32 msvc2008 并收到警告消息 WARNING Generator MSVC
  • LINQ连接多表

    我有4张桌子 table1 id1 fk tbl2 this is the foreign key to the id in table2 table2 id2 fk tbl3 this is the foreign key to the
  • 如何让gganimate中的点出现而不是过渡

    我正在使用 gganimate 假设我有这个 MWE library ggplot2 library gganimate ggplot airquality aes Day Temp geom point color red size 1
  • 有没有办法以编程方式检测用户何时在浏览器中按下 F5 按钮?

    我有一个缓存 每当用户在浏览器中发出 F5 请求时 我都希望该缓存失效 我正在运行 JSF 2 0 应用程序 有没有办法做到这一点 Use the FacesContext getCurrentInstance isPostBack 检查页
  • 解析 YAML 文件

    这是我第一次使用 YAML 文件 所以我首先想到的是找到任何可以帮助我解析文件的库 我找到了两个库 YamlBean 和 SnakeYAML 我不确定我要使用哪一个 这是我尝试解析的文件的示例 users user1 groups Prem
  • AppEngine Memcache 过期策略

    我期待以下 AppEngine 代码 MemcacheService memcache MemcacheServiceFactory getMemcacheService memcache put Foo Bar Expiration on
  • PHP中删除一行记录

    我试图删除数据库中的一条记录 所以基本上我创建了一个包含我所有记录的表 现在我需要做的是 当我单击 删除 链接时 它将删除记录选定的行 它看起来是这样的 所以基本上我这里有 3 页 1 页面 php2 添加 php3 删除 php 这是我的
  • Waitpid 相当于超时吗?

    想象一下我有一个启动多个子进程的进程 父母需要知道孩子何时退出 我可以用waitpid 但是如果 当父级需要退出时 我无法告诉被阻塞的线程waitpid优雅地退出并加入它 让事情自行清理固然很好 但这可能没什么大不了的 我可以用waitpi
  • Visual Studio Code 无法从 Powershell 打开

    我正在尝试使用 Powershell 打开 Visual Studio Codecode在文件夹内时执行命令 当我尝试这样做时 我总是收到此错误 块引用代码 术语 代码 不被识别为 cmdlet 函数 脚本文件或可操作程序的名称 检查名称的
  • ASP.net MVC - 模型绑定排除类字段?

    在最近的一个项目中 我遇到了意想不到的障碍 具有简单公共字段 注意不是属性 的类似乎不想与 ASP net MVC 3 0 模型绑定器 这是设计使然吗 除了将字段更改为属性之外 这里还有其他选项吗 update 使用简单字段 而不是属性 的
  • JavaScript - SetInterval 无法正常工作

    我得到了这段脚本 在本地运行 但似乎 setInterval 不起作用 发送表单功能不起作用 任何帮助将不胜感激 Thanks 你需要打电话setInterval 函数中不带括号 如下所示 setI
  • 如何禁用音频播放器 HTML5 中的特定控件

    我只想显示音频控件 但禁止用户拖动按钮 因为我不希望用户跳过歌曲 如何使这项工作有效 你不能 您要么显示浏览器的内置控件 要么不显示 所以你应该隐藏它们并制作你自己的 如果你不想要搜索功能 这应该很容易 或者看看像 jPlayer http
  • 如何检查来自 json 的值是否为 null?

    我想检查 json 的结果是否为空 我使用了这段代码 NSString likesCount if facebook valueForKey likes NSNull null return else return facebook val
  • 为什么我的网站不显示我的网站图标?

    我有一个刚刚上传到互联网的网站 当我在 Ubuntu 上使用 Firefox 3 0 1 浏览该网站时 我看不到图标 WinXP 上的 Firefox 3 0 1 确实会显示它 WhyUbuntu下不显示favicon吗 它是根目录中的 f
  • iOS 13:使用新的 NEHotspotConfiguration.init(ssidPrefix: String) 似乎不起作用

    我目前正在运行 Xcode 11 0 和 iOS 13 1 测试版 我正在尝试 iOS 13 中新添加的功能 能够连接到仅已知前缀的 Wifi 热点 苹果文档 这非常适合无头配件的 Wifi 设置 因为您无需要求用户切换到操作系统设置即可连
  • Pandas:通过时间间隔的另一个数据帧过滤数据帧

    如果我有一个数据框 df data 例如 ID Time X Y Z H 05 2020 06 26 14 13 16 0 055 0 047 0 039 0 062 05 2020 06 26 14 13 21 0 063 0 063 0
  • Pivot_Longer 创建多个组合列

    我在其他地方看到了对我的问题的一些可能的讨论 但它要么没有解决 要么我无法完全理解答案是否适用 所以我正在创建一个新问题 以下问题特别涉及这个主题 但尚未解决 使用pivot longer将宽列收集成多个长列 获取以下示例数据 正如您所看到
  • 在 Drupal 中,如何更改传递给 Pathauto 的值?

    我已将 Pathauto 配置为根据节点标题为特定内容类型生成别名 问题是我想在 Pathauto 使用它生成别名之前对此标题进行一些小的更改 第一条评论在这个帖子建议使用 hook token values 但我无法真正理解如何使用它 即