问题标签 [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 投票
1 回答
876 浏览

php - 如何使用 hook_form 创建前端节点表单?

我创建了一个自定义模块并使用“hook_form”创建了一个自定义表单。然后我使用菜单回调创建了一个新页面并在其上插入了这个表单

这种形式基本上是从前端创建节点。我拥有与后端相同的字段。

表格代码:

}

如何保存它,或者如何告诉 hook_form 这是针对特定内容类型的?我知道如何使用 node_save,但不确定如何使用 hook_form 来实现它。

我如何去实现我想要的?

谢谢罗伯特

0 投票
2 回答
697 浏览

drupal - 防止通过 .install 文件启用/禁用模块

我编写了一个模块,该模块依赖于 settings.php 中 $conf 中的覆盖值。具体来说,它是在 $conf[session_inc] 中设置的自定义会话处理程序

此覆盖需要存在才能使模块工作,并且在禁用/卸载模块时绝对不需要存在。

有没有办法从 .install 文件中停止启用/禁用过程?我需要强制用户在这些操作之前正确配置 settings.php。启用/禁用挂钩的返回值显然被忽略了。

我需要防止用户锯掉他们坐在的树枝:)

0 投票
1 回答
509 浏览

php - Drupal 6:如何显示一个节点?

我目前正在为 Drupal 6 开发一个模块,其中我创建了一个自定义内容类型。

我可以通过使用来创建/更新/删除此内容类型的节点hook_formhook_insert依此类推。

现在我想要的是在我的内容列表(选项卡“视图”)中单击节点时显示节点。我不明白该怎么做。目前 Drupal 只为标题显示双破折号,为正文显示另一个破折号。

我尝试使用hook_viewand hook_nodeapiwith $op == 'view',但似乎都不起作用。

我认为它一定是一个非常基本的东西,但我是一个 Drupal 菜鸟,还有很多我不明白的地方。

任何提示都会很棒!谢谢!

0 投票
1 回答
685 浏览

drupal-7 - 在 Drupal 7 中创建新的 Hooks

我不是在寻找如何实现现有的钩子,而是要创建一种新型钩子。假设钩子hook_node_load()存在。我想创建类似的东西hook_node_preload(),在加载节点之前触发。

我已经搜索过,似乎无法找出 Drupal 代码钩子在哪里被触发。我认为它是类似的东西module_invoke_all()或类似的东西?但我不确定它在哪里被调用。

0 投票
1 回答
448 浏览

php - Drupal6:将查询字符串附加到主链接

我正在尝试以编程方式将查询字符串“?device=mobile”添加到所有主要链接上。

在我主题的 page.tpl.php 文件中,我尝试了以下内容,

然而,这只是将代码打印到页面上。目前我正在尝试使用 hook_menu_link_alter,但到目前为止我还没有成功。为了仅在一个主要链接项上测试我的代码,我尝试了以下代码:

不幸的是,链接没有变化。我还将从我的 template.php 文件中调查 hook_menu_item_link(),但此时我希望有人能指出我正确的方向,并让我知道我做错了什么。

谢谢。

0 投票
1 回答
232 浏览

php - 多次调用通配符加载器函数 (_load)

我有一个加载器函数,每当用户访问页面时都会过度调用它。自然,我只需要它在每个页面请求运行一次,而是多次调用它。早些时候,_load() 只用 MENU_CALLBACK 运行了两次,然后我用默认的 MENU_NORMAL_ITEM 对其进行了测试,它增加到了四次。虽然我已经将它改回来,并清除了我的缓存,但它现在仍然运行了四次,我只希望它运行一次。

我的问题是,为什么我的加载器函数被多次调用?任何见解将不胜感激。

0 投票
1 回答
264 浏览

drupal - drupal 将 node_access 钩子添加到现有模块(OG)

请不要问我为什么需要这样做,或者我为什么这么变态。

我在 drupal 6 上有一个 Organic Groups 模块。出于某种原因,我需要向该模块添加 node_access 挂钩。

“og.module”文件或任何文件中没有预设的node_access钩子,连接到这个模块(我已经检查过了)。我尝试使用以下主体添加“og_node_access”函数:“echo '1111111';return true;” 它不会在任何地方触发(根本没有回声)。我试图将它添加到 og.module 文件中。

PS:请不要为 OG 推荐任何访问扩展 - 我已经尝试了很多。我需要的是:(伪代码)

而且我需要对它进行硬编码,因为分类法访问、内容访问和其他“访问”模块不能与 OG 模块一起正常工作(实际上它们根本不工作)。

PPS:我知道,OG 有点糟糕,有几种选择,但我只需要以描述的方式完成。

0 投票
1 回答
49 浏览

php - Drupal,谁(用户名)下载了什么?

我一直在寻找这个答案将近一个星期。

管理员查看经过身份验证的用户下载了哪些文件的最简单方法是什么?更具体地说,我需要用户的用户名和下载文件的名称,然后我可以检查我的注册以获取他们的特定电子邮件地址并将其用于潜在客户生成。

我试过谷歌分析,但我只能看到下载的内容和时间,而不是哪个用户名。

想法?

谢谢

0 投票
2 回答
3446 浏览

drupal-7 - Drupal 7 hook_schema 没有安装数据库表

任何帮助都会很棒。

这给了我以下错误

注意:未定义索引:输入 DatabaseSchema_mysql->processField()(/Users/richardskinner/Sites/www.goldrushmoney.com-local/httpdocs/includes/database/mysql/schema.inc 的第 205 行)。注意:未定义索引:DatabaseSchema_mysql->processField() 中的:正常(/Users/richardskinner/Sites/www.goldrushmoney.com-local/httpdocs/includes/database/mysql/schema.inc 的第 205 行)。PDOException: SQLSTATE[42000]: 语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在 'DEFAULT NULL ) ENGINE = InnoDB DEFAULT CHARACTER SET utf8 COMMENT 'Table to stor' 在第 13 行:CREATE TABLE {request_gold_pack_customer_details} ( ridINT NOT NULL DEFAULT 0, titleVARCHAR(10) NOT NULL DEFAULT '',first_nameVARCHAR(50) 非空默认值'',last_nameVARCHAR(50) 非空默认值'',house_name_noVARCHAR(50) 非空默认值'',streetVARCHAR(160) 非空默认值'',townVARCHAR(50) 非空默认值'',countyVARCHAR(50) NOT NULL DEFAULT '', telephoneINT NOT NULL DEFAULT '', emailVARCHAR(255) NOT NULL DEFAULT '', date_registeredDATETIME NOT NULL, primaryDEFAULT NULL ) ENGINE = InnoDB DEFAULT CHARACTER SET utf8 COMMENT '用于存储所有客户详细信息的表。 '; db_create_table() 中的数组 ()(/Users/richardskinner/Sites/www.goldrushmoney.com-local/httpdocs/includes/database/database.inc 的第 2688 行)。

几个小时以来一直试图找到解决方案。

谢谢。

0 投票
1 回答
377 浏览

javascript - 使用 Drupal 在灯箱中打印“节点/添加”表单

我在灯箱中打印“节点/添加”表单时遇到了一些麻烦。

我有custom.module这样的hook_menu

... 其中 % 是 id,例如“story_node_form”。

然后,我有这样的回调函数:

表单在灯箱中显示正确。问题是表单(所见即所得、节点引用、术语引用......)的 javascript 不起作用。

我试图执行Drupal.attachBehaviors()Drupal.attachBehaviors(document)Drupal.attachBehaviors("#story-node-form")似乎没有任何效果。

任何人都可以帮忙吗?