如何使全新模块依赖于正常运行所需的最低版本的Drupal 7?


10

我正在开发一个全新的模块(尚无任何站点在使用它)。它需要特定的Drupal版本,因为它使用了hook_taxonomy_term_view()Drupal核心版本7.17中引入挂钩

我想避免使用例如Drupal 7.16或任何早期版本的Drupal core在站点上启用我的模块。高于7.17的更高版本的Drupal应该很好。

我的问题:如何使我的模块依赖于最低的Drupal 7.17版本?

注意:对于已安装模块的站点,我不需要(不必担心)解决方案。因此,不需要在7.17之前的Drupal版本中以某种方式禁用它。


这个问题被标记为钩子,因为它与我应该在代码中使用的钩子有关。钩子并不意味着我正在寻找可以使用的钩子;我对允许我避免将模块安装在不使用Drupal 7.17或更高版本的站点上的任何解决方案持开放态度。
kiamlaluno

您可以要求其他模块的次要版本,dependencies[] = mymodule (1.12)但似乎不适用于核心模块。
AyeshK

@AyeshK嗯!现在,如果您可以将我引向始终启用的Drupal核心模块,那可能会很有趣。
kiamlaluno

我尝试使用它dependencies[] = taxonomy (>7.17)和其他一些可能的版本号,但是没有用。
AyeshK 2013年

Answers:



7

hook_requirements() 正是出于这种目的而存在。

检查安装要求并进行状态报告。

您可以检查$phase参数以确定是否已安装模块,请根据所需版本检查当前Drupal版本,并返回严重性为REQUIREMENT_ERROR。这将阻止在满足要求之前安装该模块。

该文档非常详尽,这里值得一提的是该挂钩需要在模块的.install文件中实现。


这是不正确的答案,我不知道为什么会如此激烈。

@chx我会同意的,但是在这种情况下,功能描述为“检查安装要求并进行状态报告”。是有点误导,不是吗?我们毕竟是专门讨论在安装时检查模块要求的:)
Clive

1
@Chapabu不是根据文档:)它专门讨论模块,并且基本上说要使用该钩子返回REQUIREMENT_ERROR以确保在未通过要求时未安装模块。我以为检查Drupal的版本是一个有效的用例(文档中没有提到这样做),但是我想我错过了一些东西。这可能只是不好的作法或我不知道的事
克莱夫(Clive)

1
@Clive Weird,不知道我从那里得到的..也许D8应该只是文档升级;-)
Chapabu

1
@chx您必须原谅我的无知,再也没有做过此事……这个问题是否与D8背道而驰?您认为整个文本是否需要更改,还是仅需要注释,不要使用此钩子来检查模块/核心版本,仅库要求等(带有您提到的文档的链接)?谢谢
克莱夫(Clive)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.