Estou desenvolvendo um novo módulo (ainda não há nenhum site usando). Requer uma versão específica do Drupal, pois usa o hook_taxonomy_term_view()
gancho que foi introduzido na versão principal do Drupal 7.17 .
Quero evitar que meu módulo seja ativado em um site usando, por exemplo, o Drupal 7.16 ou qualquer versão anterior do núcleo do Drupal. Versões mais altas do Drupal, acima de 7,17, devem estar bem.
Minha pergunta : Como posso tornar meu módulo dependente dessa versão do Drupal 7.17, que é o mínimo para o meu módulo?
Nota: Não preciso (preciso me preocupar) de uma solução para sites em que o módulo já esteja instalado. Portanto, não há necessidade de desativá-lo de alguma forma nessas versões Drupal anteriores à 7.17.
dependencies[] = mymodule (1.12)
mas parece que isso não funciona para o núcleo.dependencies[] = taxonomy (>7.17)
outros números de versão possíveis, mas não funcionou.Respostas:
O truque, aparentemente, é usar o módulo do sistema como:
fonte
hook_requirements()
existe exatamente para esse tipo de objetivo.Você pode verificar o
$phase
parâmetro para determinar se o módulo está sendo instalado, a versão atual do Drupal e a versão necessária e retornar uma severidade deREQUIREMENT_ERROR
. Isso impedirá que o módulo seja instalado até que o requisito seja atendido.A documentação é bastante completa, a única coisa que vale a pena mencionar aqui é que o gancho precisa ser implementado no arquivo .install do módulo.
fonte
REQUIREMENT_ERROR
para garantir que um módulo não seja instalado se falhar nos requisitos. Eu assumi que a verificação da versão do Drupal era um caso de uso válido (os documentos não mencionam não fazer isso), mas acho que perdi alguma coisa. Pode ser apenas uma prática ruim ou algo que eu não seiVocê poderia usar o hook_enabled
Isso seria acionado após a instalação do módulo. Você pode verificar a versão do drupal instalado e, se não for a versão correta, use module_disable e forneça a mensagem de erro necessária.
fonte