比方说,有些人正在开发一个contrib模块(链接),以提供一些明显的模板建议,这些建议没有被默认的细枝模板命名约定所涵盖。字段的视图模式,块的区域模式等。
出于习惯,我会使用hook_theme_suggestions_HOOK_alter。我只是简单地按照一些逻辑添加我的建议。
此钩子允许任何模块或主题提供其他主题函数或模板名称建议,并重新排序或删除由
hook_theme_suggestions_HOOK()或该钩子的早期调用提供的建议。
然后,我看到了hook_theme_suggestions_HOOK,除了重新排序或删除建议外,它或多或少也是一样的。但基本上,看看它的描述,它做的正是这个控制模块应该做的。
此钩子允许模块提供其他主题函数或模板名称建议。
现在我想知道这些钩子中哪一个最好是用的?完全取决于我们吗?使用*_alter钩子有什么缺点吗?我们是否最好使用仅仅的建议*_HOOK来允许其他模块在稍后的过程中进行干预?
发布于 2018-11-29 22:29:24
链接模块应该尝试在hook_theme_suggestions_HOOK中添加建议,只要它本身不依赖于现有的建议,因此其他模块仍然可以选择在ALTER钩子中覆盖这些建议。
钩子没有优先级,有两个钩子,一个主钩和一个换钩,都是为了补偿。这就像一个只有两个层次的优先系统。如果你在第二层添加了什么东西,那么其他模块就没有第三级了,除非他们求助于不寻常的解决方案,比如模块权重。
https://drupal.stackexchange.com/questions/273265
复制相似问题