La nueva versión de mi módulo depende de varios módulos que la versión anterior ... cómo garantizar que los usuarios del módulo de los instalan?

drupal.stackexchange https://drupal.stackexchange.com/questions/1031

  •  16-10-2019
  •  | 
  •  

Pregunta

Estoy actualizando un módulo existente he desarrollado. La nueva versión requiere un módulo de "ayudante" que la versión antigua no lo hicieron (fwiw, específicamente "nodereference Count"). ¿Cómo me aseguro de que cuando la gente de actualización desde la versión anterior de mi módulo a la nueva versión, se aseguran para instalar el módulo de ayuda requerida recién primero?

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

Gracias.

¿Fue útil?

Solución

Se puede usar hook_requirements () , que debe permitir visualizar un error cuando se instala el módulo / modificada.

Como alternativa, si eso no funciona, se puede aplicar hook_init () para ejecutar una comprobación de los módulos y reaccionar en consecuencia.

Actualización: Yo sólo he encontrado con el mismo problema a mí mismo y aquí está el código que he utilizado:

/**
 * 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 va a tratar de activar el módulo requerido y si no es capaz de hacerlo, se mostrará un mensaje de error al usuario y desactivar el módulo de mi.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a drupal.stackexchange
scroll top