La nuova versione del mio modulo dipende da più moduli rispetto alla vecchia versione ... come garantire gli utenti dei moduli li installano?

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

  •  16-10-2019
  •  | 
  •  

Domanda

sto aggiornando un modulo esistente ho sviluppato. La nuova versione richiede un modulo "aiuto" che la vecchia versione non ha (FWIW, in particolare "conte Nodereference"). Come faccio a garantire che quando le persone aggiornamento dalla versione precedente del mio modulo per la nuova versione, fanno in modo di installare il modulo helper nuova richiesta prima?

C'è qualcosa che dovrei mettere in funzione hook_update_n?

Grazie.

È stato utile?

Soluzione

Si potrebbe utilizzare hook_requirements () , che dovrebbe consentire di visualizzare un errore quando è installato il modulo / aggiornato.

In alternativa, se questo non funziona è possibile implementare hook_init () per eseguire un controllo per i moduli e reagire di conseguenza.

Aggiornamento: Ho appena incontrato lo stesso problema me stesso e qui è il codice che ho usato:

/**
 * 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'));
    }
  }
}

In questo modo cerca di attivare il modulo richiesto e se è in grado di farlo verrà visualizzato un messaggio di errore per l'utente e disattivare il mio modulo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a drupal.stackexchange
scroll top