¿Cómo puedo hacer que mi nuevo módulo dependa de una versión mínima de Drupal 7 que se requiere para que funcione correctamente?


10

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.


La pregunta está etiquetada como ganchos porque se trata de un gancho que debo usar en mi código. ganchos no significa que estoy buscando un gancho que pueda usar; Estoy abierto a cualquier solución que me permita evitar que el módulo esté instalado en un sitio que no utiliza Drupal 7.17 o superior.
kiamlaluno

Puede requerir una versión menor de algún otro módulo dependencies[] = mymodule (1.12)pero parece que esto no funciona para el núcleo.
AyeshK

@AyeshK Uh! Ahora, eso podría ser interesante, si pudiera señalarme un módulo central de Drupal que siempre esté habilitado.
kiamlaluno

Lo probé con dependencies[] = taxonomy (>7.17)algunos otros números de versión posibles, pero no funcionó.
AyeshK

Respuestas:


11

El truco, aparentemente, es usar el módulo del sistema como:

dependencies[] = system (>=7.17)

44
Este es el correcto. Fuente: dww y escribí el verificador de dependencia versionado. Escribí un blog sobre esto en drupal4hu.com/node/274 y ahora también agregué a la página del manual relevante en drupal.org/node/542202 .

7

hook_requirements() existe exactamente para ese tipo de propósito.

Verifique los requisitos de instalación y haga informes de estado.

Puede verificar el $phasepará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 de REQUIREMENT_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.


Esta no es la respuesta correcta. No tengo idea de por qué está tan votada.

@chx Confío en su palabra, pero en ese caso la descripción de la función "Verifique los requisitos de instalación y haga informes de estado". es algo engañoso, ¿no es así? Después de todo, estamos hablando específicamente de verificar los requisitos del módulo después de la instalación :)
Clive

1
@Chapabu No según los documentos :) Habla específicamente de módulos, y básicamente dice que use ese gancho para regresar REQUIREMENT_ERRORpara 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é
Clive

1
@Clive Weird, no sé de dónde lo saqué desde entonces ... quizás D8 debería ser solo una actualización de documentos ;-)
Chapabu

1
@chx Tendrás que disculpar mi ignorancia, nunca antes había hecho esto ... ¿el problema va en contra de D8 y luego se retrasa? En su opinión, ¿debe cambiar todo el texto o solo necesita una nota que mencione no usar este enlace para verificar las versiones de módulo / núcleo, solo los requisitos de la biblioteca, etc. (con un enlace a los documentos que mencionó)? Gracias
Clive

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.