问题标签 [drupal-node-hook]
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.
drupal - Drupal 5:自定义内容类型中的 CCK 字段
hook_insert
我有通过 NodeAPI 钩子(等)实现自定义内容类型的模块hook_update
。我想将 CCK 字段添加到此内容类型并通过 hook_nodeapi 调用(如创建或更新)填充它(以在视图中显示内容节点)。
问题是,我无法访问此内容类型的 CCK 字段。当然,它是在“管理字段”页面上启用的,但是当我使用开发模块加载这种类型的任何节点时,我看不到field_flag
节点对象中的字段属性 ()。我可以在“Dev Render”选项卡下看到它作为“内容”属性的一部分,例如$node->content['field_flag']['#value']
,但是如果我将值赋给$node->field_flag
or$node->content['field_flag']['#value']
并调用node_save
,则不会保存 CCK 字段。
也许我必须调用其他函数来保存 CCK 字段?或者这个设置可能有什么问题?
php - 如何在 Drupal 中加载父项的标题
我想用父节点的标题扩展节点,以便显示层次结构链接。
我有一个有时有效的解决方案:
只要项目的标题与菜单标题相同,就可以使用。但是,我正在寻找一种始终有效的解决方案。有任何想法吗?
drupal - 如何在保存之前更新节点(书或页面)而不触及 Drupal 中的模块代码?
在将数据实际写入数据库之前,我想在节点中设置一些值。我已经通过修改 book_nodeapi 让它工作了,但我想从代码之外做,一些允许我保持模块代码不变的 _alter 选项会很棒。
谢谢
drupal-6 - 具有全局设置的 Drupal cck 复选框
我正在为我的内容类型“新闻”创建一个“粘性”复选框。这意味着一个新闻节点是粘性的,并且被用在像框这样的横幅中。
这由 cck 创建内容表单中的复选框标记。
复选框由 node_api 处理,
所以我检查: if $op = 'update' and $node->type = 'news' then ...逻辑。
我不知道为什么,但这似乎不是最好的方法,因为我所有的 noe 处理都是在那里完成的。
有没有更合乎逻辑的方式/地方来处理这个?
@编辑,
我还必须创建一个额外的模块来激活它。我有一个“通用”模块,可以处理一些通用的事情”
drupal - 创建表单提交时如何自动设置 CCK 节点引用字段的值
我有一个引用不同内容类型 (B) 的单个节点的内容类型 (A)。引用的节点 (B) 可以使用创建此新节点 (A) 的用户的信息以编程方式确定...每个用户只能创建引用的内容类型 (B) 的单个节点,因此该单个节点将始终是从用户创建的内容类型 B 的节点引用。
因为引用的节点总是已知的,我不希望用户必须输入引用值,我想在幕后为他们设置它。我发现了很多关于这样做的线程,但似乎没有一个很清楚或对我真正有用。
任何帮助将不胜感激。
注意: Drupal 6
drupal - 在创建第一个过程中以编程方式创建一个时具有相同路径的 2 个节点
我的网站上有一些功能,当记者创建包含多个图像的文章以制作幻灯片时,他们可以选中一个框,该框将创建一个“画廊”类型的节点,然后将包含要显示为画廊的图像. (更大的布局,不同的轮播)。
当我在创建故事内容表单中单击保存按钮后在故事节点的保存期间创建画廊节点时,画廊和故事共享相同的路径,因此它们都以相同的 url 结束,因此都指向故事,我无法访问画廊节点。
我尝试在 hook_nodeapi 中的不同操作(预保存、更新、保存)中执行库保存操作。但没有区别。我什至设置了我的节点对象的某些参数来强制路径别名运行,希望它会设置一个不同的:
欢迎任何想法,谢谢
更新:我最终只是在 URL Alias 配置中更改了画廊的命名设置,以便它会创建一个包含“/gallery/”的路径。
php - 为什么我的 drupal 表单提交函数没有被调用?
呃,这可能很简单,但它让我发疯。我有一个简单的表单(只是一个提交按钮),我使用 hook_nodeapi() 将其插入到节点中。它被正确插入,当我提交时页面会刷新,但它永远不会点击 form_submit() 函数。这是代码:
我试过在提交函数中添加一个 echo 和 die() ,它肯定不会被调用。我也尝试过放弃 $form['#submit'] 声明,因为默认值应该处理它,但无济于事。我知道我一定错过了一些愚蠢的东西。有任何想法吗?
此外,看起来很奇怪的一件事是表单使用以下标记呈现:
这正常吗,将“-1”附加到表单ID?
drupal-6 - 保存新节点后设置自定义消息
我试图设置一条自定义消息,在用户提交新节点后显示给用户。此消息将替换标准的“@type %title 已创建”。
我已经尝试将 hook_nodeapi 与 $op of 'insert' 一起使用,但无论我如何尝试更改模块权重,我的自定义消息总是首先出现在核心 drupal 消息之前。
这不起作用,因为我需要在发送我自己的自定义消息之前调用 drupal_get_messages() 来删除原始消息。
这个工作流程让我发疯,有人能帮我指出正确的方向吗?
干杯。
drupal - 在添加新节点时,Drupal 的 hook_nodeapi 在操作“插入”之前匹配操作“更新”
我正在开发一个模块,在添加新节点或编辑现有节点时对节点进行更改,
但我发现,当添加一个新节点时,hook_nodeapi 的操作匹配case "update" 和 case "insert",而假设它只匹配case "insert"
有没有办法以正确的方式做到这一点,或者区分“更新”案例和“插入”案例?
我正在使用 Drupal 6
drupal - Drupal 6:创建特定节点类型时如何执行php代码
我google了很久没有成功。当在我的 Drupal 6 网站上创建(或插入)特定类型的新节点时,我尝试执行一些 php 代码。
看来我必须做这样的事情:
但我不明白什么时候调用这个函数,我必须在哪里放置这个代码?我迷路了。如果有人能给我一些提示,那就太棒了。