【问题标题】:Where to place presave functions?在哪里放置预存功能?
【发布时间】:2017-06-13 11:06:52
【问题描述】:
在从 ADMIN 保存之前,我需要操作内容类型(人)。
我需要在标题中保存姓名+姓氏
我知道应该使用预保存函数(hook_node_presave 或 hook_entity_presave)。
我的问题是这些函数应该写在哪里?
我在主题/自定义/MYPROJECT/MYPROJECT.theme 中编写它们,但它们不运行
为 ADMIN 编写的预设函数在哪里而不是普通函数?
【问题讨论】:
标签:
drupal-8
drupal-nodes
drupal-preprocess
【解决方案1】:
你可以把你的钩子放在一个模块的 .module 文件中。您应该为此创建一个自定义模块,示例如下:
在modules/custom 中创建一个新文件夹{PROJECT_NAME}_general 现在称为MODULE_NAME)并添加2 个文件:{MODULE_NAME}.info.yml 和{MODULE_NAME}.module
在 .info.yml 文件中,您只需输入一些有关您的自定义模块的信息,例如:
name: Name of your module
type: module
description: Description of your custom module
core: 8.x
package: Custom
现在您可以使用 drush (drush en MODULE_NAME -y) 或使用管理菜单中的“扩展”来启用您的模块。
最后将你的钩子添加到 .module 文件中并编写所需的代码。
您还可以在here 和here 找到所有这些信息
希望对你有所帮助!