Ich entwickle ein brandneues Modul (es gibt noch keine Website, die es verwendet). Es erfordert eine bestimmte Drupal-Version, da der hook_taxonomy_term_view()
in Drupal Core Version 7.17 eingeführte Hook verwendet wird .
Ich möchte vermeiden, dass mein Modul auf einer Site aktiviert wird, beispielsweise mit Drupal 7.16 oder früheren Versionen von Drupal Core. Höhere Versionen von Drupal über 7.17 sollten in Ordnung sein.
Meine Frage : Wie kann ich mein Modul von dieser Drupal 7.17-Version abhängig machen, die für mein Modul ein Minimum darstellt?
Hinweis: Ich brauche keine Lösung für Standorte, an denen das Modul bereits installiert ist. In solchen Drupal-Versionen vor 7.17 muss es also nicht deaktiviert werden.
dependencies[] = mymodule (1.12)
aber es scheint, dass dies für den Kern nicht funktioniert.dependencies[] = taxonomy (>7.17)
und einigen anderen möglichen Versionsnummern versucht, aber es hat nicht funktioniert.Antworten:
Der Trick besteht anscheinend darin, das Systemmodul wie folgt zu verwenden:
quelle
hook_requirements()
existiert für genau diesen Zweck.Sie können den
$phase
Parameter überprüfen , um festzustellen, ob das Modul installiert wird, die aktuelle Drupal-Version mit Ihrer erforderlichen Version vergleichen und einen Schweregrad von zurückgebenREQUIREMENT_ERROR
. Dadurch wird verhindert, dass das Modul installiert wird, bis die Anforderung erfüllt ist.Die Dokumentation ist ziemlich gründlich. Erwähnenswert ist hier, dass der Hook in der Installationsdatei des Moduls implementiert werden muss.
quelle
REQUIREMENT_ERROR
zu verwenden, um sicherzustellen, dass ein Modul nicht installiert ist, wenn es die Anforderungen nicht erfüllt. Ich hatte die Überprüfung der Version von Drupal sei ein gültiger Anwendungsfall war (die Dokumentation nicht erwähnt nicht tun , dass) , aber ich denke , ich etwas verpasst haben. Es könnte nur eine schlechte Übung sein oder etwas, das ich nicht weißSie könnten den hook_enabled verwenden
Dies würde nach der Installation des Moduls ausgelöst. Sie können die installierte Version des Drupals überprüfen. Wenn es sich nicht um die richtige Version handelt, verwenden Sie module_disable und geben Sie die erforderliche Fehlermeldung aus.
quelle