Як я можу зробити свій новий модуль залежним від мінімальної версії Drupal 7, необхідної для його роботи?


10

Я розробляю абсолютно новий модуль (ще не існує жодного веб-сайту). Він вимагає певної версії Drupal, оскільки він використовує hook_taxonomy_term_view()гачок, представлений у версії ядра Drupal 7.17 .

Я хочу уникати того, щоб мій модуль був включений на сайті, використовуючи, наприклад, Drupal 7.16 або будь-які більш ранні версії ядра Drupal. Вищі версії Drupal, вище 7,17, повинні бути чудовими.

Моє запитання : Як я можу зробити свій модуль залежним від тієї версії Drupal 7.17, що є мінімальним для мого модуля?

Примітка: мені не потрібно (маю хвилюватися) рішення для сайтів, де модуль вже встановлений. Таким чином, немає необхідності його якось відключати в таких версіях Drupal, що до 7.17.


Питання позначено гачками, оскільки мова йде про гачок, який я повинен використовувати у своєму коді. гачки не означає, що я шукаю гачок, який я міг би використовувати; Я відкритий до будь-якого рішення, яке дозволяє мені уникнути встановлення модуля на сайті, що не використовує Drupal 7.17 або вище.
kiamlaluno

Ви можете зажадати незначну версію якогось іншого модуля, dependencies[] = mymodule (1.12)але, схоже, це не працює для основної.
АйешК

@AyeshK Ага! Тепер це може бути цікаво, якби ви могли вказати мені на основний модуль Drupal, який завжди включений.
kiamlaluno

Я спробував це з dependencies[] = taxonomy (>7.17)деякими іншими можливими номерами версій, але не вийшло.
АйешК

Відповіді:


11

Витівка, мабуть, полягає у використанні системного модуля на зразок:

dependencies[] = system (>=7.17)

4
Це правильний. Джерело: dww, і я написав перевіряючи залежність у відповідність. Я писав про це на сайті drupal4hu.com/node/274, а тепер додав на відповідну сторінку посібника також на drupal.org/node/542202 .

7

hook_requirements() існує саме для такої мети.

Перевірте вимоги до встановлення та складіть звіт про стан.

Ви можете перевірити $phaseпараметр, щоб визначити, чи встановлюється модуль, перевірити поточну версію Drupal та потрібну версію та повернути суворість REQUIREMENT_ERROR. Це не дозволить встановити модуль, поки не буде виконано вимогу.

Документація досить ретельна, тут варто згадати одне, що гачок потрібно реалізувати у файлі .install модуля.


Це не правильна відповідь. Я поняття не маю, чому так сильно цінується.

@chx Я візьму ваше слово, але в цьому випадку опис функції "Перевірте вимоги до встановлення та складіть звіт про стан". дещо вводить в оману чи не так? Зрештою, ми говоримо саме про перевірку вимог модуля при встановленні :)
Clive

1
@Chapabu Не згідно з документами :) Він говорить конкретно про модулі, і в основному говорить про використання цього гака для повернення, REQUIREMENT_ERRORщоб переконатися, що модуль не встановлений, якщо він не відповідає вимогам. Я припускав, що перевірка версії Drupal є дійсною справою використання (документи не згадують про це не робити), але, мабуть, я щось пропустив. Це може бути просто погана практика чи щось, що я не хочу
Клайв

1
@Clive Дивно, не знаю, звідки я це отримав з того часу ... май D8 має бути просто оновленням документів ;-)
Чапабу

1
@chx Вам доведеться вибачити моє невігластво, ніколи цього не робив ... чи проблема йде проти D8, а потім отримувати підтримку? На вашу думку, чи потрібно змінювати весь текст чи просто потрібна примітка, в якій згадується про те, щоб не використовувати цей гачок для перевірки модульних / основних версій, лише вимог до бібліотеки тощо (з посиланням на документи, які ви згадали)? Спасибі
Клайв

2

Ви можете використовувати гачку_enabled

Це може запуститись після встановлення модуля. Ви можете перевірити інстальовану версію drupal, і якщо вона не є правильною, використовуйте module_disable та дайте необхідне повідомлення про помилку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.