Estoy desarrollando un nuevo módulo (todavía no hay ningún sitio que lo use). Requiere una versión específica de Drupal, ya que utiliza el hook_taxonomy_term_view()
gancho que se introdujo en Drupal core versión 7.17 .
Quiero evitar que mi módulo se habilite en un sitio usando, por ejemplo, Drupal 7.16 o cualquier versión anterior de Drupal core. Las versiones superiores de Drupal, superiores a 7.17, deberían estar bien.
Mi pregunta : ¿Cómo puedo hacer que mi módulo dependa de esa versión de Drupal 7.17, que es un mínimo para mi módulo?
Nota: No necesito (tengo que preocuparme) una solución para sitios donde el módulo ya está instalado. Por lo tanto, no es necesario que se desactive de alguna manera en tales versiones anteriores a 7.17 de Drupal.
dependencies[] = mymodule (1.12)
pero parece que esto no funciona para el núcleo.dependencies[] = taxonomy (>7.17)
algunos otros números de versión posibles, pero no funcionó.Respuestas:
El truco, aparentemente, es usar el módulo del sistema como:
fuente
hook_requirements()
existe exactamente para ese tipo de propósito.Puede verificar el
$phase
parámetro para determinar si el módulo se está instalando, verificar la versión actual de Drupal con su versión requerida y devolver una gravedad deREQUIREMENT_ERROR
. Eso evitará que el módulo se instale hasta que se cumpla el requisito.La documentación es bastante exhaustiva, lo único que vale la pena mencionar aquí es que el gancho debe implementarse en el archivo .install del módulo.
fuente
REQUIREMENT_ERROR
para asegurarse de que un módulo no esté instalado si no cumple con los requisitos. Supuse que verificar la versión de Drupal era un caso de uso válido (los documentos no mencionan no hacerlo) pero supongo que me he perdido algo. Puede ser una mala práctica o algo que no séPodrías usar el hook_enabled
Esto se dispararía después de instalar el módulo. Puede verificar la versión de drupal instalada y, si no es la versión correcta, utilice module_disable y envíe el mensaje de error requerido.
fuente