问题标签 [drupal-hooks]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1227 浏览

php - 什么将 Drupal Hook 与特定模块联系起来?

什么将 Drupal Hook 与特定模块联系起来?

在 Drupal 7 中,每个核心模块都有一个“api”文件

这些文件中的每一个都包含一个从未(?)调用的函数,但记录了其他模块(包括第 3 方)可以实现的钩子的存在。

我的问题:是什么将特定的钩子与特定的模块联系起来?为什么path_delete钩子包含在path.api.php文件中?为什么entity_view钩子包含在system.api.php文件中?在事实组织之后,这只是任意的,还是 Drupal 系统中的某些东西将特定的钩子与特定的模块联系起来?或者是其他东西?

0 投票
1 回答
1277 浏览

drupal - drupal menu_alter 在错误的地方寻找包含文件

我目前在我正在构建的一个新模块中有一个简单的 menu_alter 钩子,它允许对菜单进行简单的访问控制:

但是,加载页面时出现以下错误:

查看其他具有 menu 和 menu_alter 钩子的模块,它们都在某些地方引用了本地 module.admin.inc,并且它们没有这个问题并且似乎没有指定任何额外的路径。

确实-菜单挂钩的文档说“文件路径”菜单项参数是

包含在“文件”中指定的文件的目录的路径。这默认为实现钩子的模块的路径。

我该如何进行这项工作?

0 投票
2 回答
228 浏览

php - 区分 Drupal Hook 实现和常规函数

我有几个关于 Drupal 编码约定的问题,我无法从文档或代码中了解到这些问题。

除了知道 Drupal 中每个钩子的名称之外,有没有办法区分实现钩子的函数和只为钩子提供一点功能的函数?通过代码或某种约定强制执行的东西?

第二,可能相关的问题。在查看了核心模块后,我注意到一些函数的命名带有前导下划线

下划线是什么意思?我的假设是模仿“受保护”约定,这意味着它只能从node.module文件中的其他函数调用;但是,我找不到任何东西来证实这一点。

我知道编码标准,但它们似乎针对的是一般的 PHP 语法,而不是针对 Drupal 内部系统的约定。

0 投票
4 回答
1315 浏览

drupal - 如何使用 Drupal 的 node_load() 防止无休止的递归?

我正在使用 Ubercart 产品和 product_kit 模块。这非常适合从相关产品套件链接到包含的产品,但我也想从单个产品链接到它可能属于的任何套件。

我想我可以对 SKU/型号进行数据库搜索(轻松完成该部分),然后使用 node_load($nid) 获取相关套件。

到目前为止我有这个:

但是,因为产品套件也在加载产品,所以我最终陷入了递归循环。

我想我的问题实际上分为两部分:

  1. 这篇文章标题的问题是:如何防止这种递归?

  2. 稍微不同的问题可能会回答第一个问题:我应该在加载节点时执行此操作,还是在此过程的后期(例如,查看或更改)?

0 投票
1 回答
1773 浏览

drupal - 在 Drupal 7 中将头像添加到 $user

我创建了一个简单的模块,通过覆盖sites/default/modules/game.module中的game_block_view() 和game_block_info() 来在自定义块中显示Flash 游戏,它工作正常。

但是,我需要通过 FlashVars 参数将用户头像以及性别和城市(我已将 2 个必填字段添加到注册表单)传递到我的块中的 Flash 游戏。

所以我试图重载hook_user_load,因为我想这是在 $user 对象从数据库启动后添加属性的方法(这可能发生在用户登录或更改他/她的个人资料数据时?):

不幸的是,我在网页中看到上面最后两行没有产生任何输出

我究竟做错了什么?

谢谢!亚历克斯

0 投票
2 回答
96 浏览

drupal - 当几个drupal模块实现MODULENAME_template_preprocess时,它们的执行顺序是什么?

我问是因为它对实名问题很重要,它让我想到了如何避免这种冲突。

0 投票
2 回答
249 浏览

php - 通过 URI 将值传递给函数(而不是 GET 方法)

我正在编写一个 Drupal 6 模块,它通过 URI 向函数发送用户 ID + 随机生成的字符串。我正在使用菜单挂钩:

我是 Drupal 的新手,但据我了解(我很可能会弄错),这应该将两个值传递给回调函数,出于测试目的,目前看起来像这样:

我使用的 URL 是“invites/auth/RANDOMSTRING/USERID”。这似乎两次获得了第一个值;$auth 和 $uid 都包含“RANDOMSTRING”。

我错过了一些非常简单的东西吗?
谢谢你。

0 投票
1 回答
551 浏览

drupal - Drupal:更改默认节点模块表单的标签?

0 投票
1 回答
3748 浏览

drupal - 安装和卸载模块时运行的 Drupal 挂钩?

我正在尝试让 Drupal 运行自定义挂钩;一个在安装模块时需要运行,另一个在模块卸载时运行。在安装或卸载模块时,是否可以使用钩子或触发器让 Drupal 运行钩子?我需要运行的钩子从数组中构建分类术语。我的布局基于 hook_schema。这个钩子的一个实现例子是:

此代码将放置在 .install 文件中。

0 投票
2 回答
839 浏览

drupal-modules - drupal 7 配置用户注册流程

我想要一个用户注册过程,其中在各种条件下(例如注册、批准)发送给用户的电子邮件还包含一些附件,具体取决于用户配置文件。

我应该修改 Drupal 核心中的哪个文件来配置主题、正文并根据用户配置文件在电子邮件中添加附件?

我为此添加了一个自定义模块?如果是,那么我在寻找哪个钩子?