it-swarm-es.com

La nueva versión de mi módulo depende de más módulos que la versión anterior ... ¿Cómo asegurar que los usuarios del módulo los instalen?

Estoy actualizando un módulo existente que he desarrollado. La nueva versión requiere un módulo de "Ayudante" que la versión anterior no hizo (FWIW, específicamente "el conteo de nodereference"). ¿Cómo me aseguro de que cuando las personas se actualicen desde la versión anterior de mi módulo a la nueva versión, se aseguran de instalar primero el Módulo Ayudante recién requerido?

¿Hay algo que debería poner en la función hook_update_n?

Gracias.

2
chipcleary

Puede usar hook_requirements () , que debería permitirle mostrar un error cuando el módulo está instalado/actualizado.

Alternativamente, si eso no funciona, puede implementar : hook_init () para ejecutar un cheque para los módulos y reaccionar en consecuencia.

Actualización: Solo me he encontrado con el mismo problema y aquí está el código que he usado:

/**
 * Implements hook_init().
 */
function MYMODULE_init() {
  if (!module_exists('ctools')) {
    module_enable(array('ctools'));
    if (!module_exists('ctools')) {
      drupal_set_message(t('MYMODULE has been disabled as the required !ctools module is not present.', array('!ctools' => l(t('Chaos tool suite'), 'http://drupal.org/project/ctools'))), 'error');
      module_disable(array('MYMODULE'));
    }
  }
}

Esto intentará habilitar el módulo requerido y, si no puede hacerlo, mostrará un mensaje de error al usuario y deshabilitará el módulo.

3
Decipher