Perchè se faccio delle modifiche al file .install queste non avvengono a run time? Le info vengono memorizzate nel database? Anche provando a lanciare updatephp non vedo i cambiamenti.. perchè?
Mi spiego meglio:
Ho un dizionario definito nel file .install così definito:
cookbook_create_vocabulary(
array(
'name' => 'categories',
'multiple' => 1,
'required' => 1,
'hierarchy' => 1,
'relations' => 0,
'module' => 'mymodule',
'weight' => -10,
'nodes' => array('mycalendar' => 1),
'localize' => 1,
),
array(
'Impegni' => array(
'IMAGE' => 'categories/mycalendar.png',
'Appuntamenti' => array(
'xxxx' => array(),
'yyyy' => array(),
'zzzz' => array(),
'dddd' => array(),
)
);
funziona abbastanza bene, ma dopo che aver installato il modulo se provo a cambiare i nomi degli array.. ad esempio rinominando 'Impegni' in 'Impegni importanti' non ottengo nessun cambiamento sulla visualizzazione del sito e tra le scelte del dizionario continuo a vedere 'Impegni'..
Ciao martolina, probabilmente è un problema di cache. Utilizza quando sviluppi la funzione drupal_flush_all_caches(); oppure vai in
Amministra / Configurazione del sito / Prestazioni (admin/settings/performance)
e elimina i dati della cache. Fatto questo dovresti vedere i tuoi cambiamenti. per saperne di più sulla cache
Grazie mille. Ora funziona, però devo comunque
1.disabilitare il modulo
2.disinstallarlo
3.reinstallarlo
un po' faticoso farlo ogni volta.. non esiste un metodo più veloce?
errata corrige: nemmeno questa tecnica sembra funzionare sempre! devo andare a pulire il database manualmente affinchè le modifiche vadano a buon fine.. uff
Lal funzione hook_install viene chiamata appunto quando il modulo viene installato (cioè attivato per la prima volta). Se vuoi che qualcosa venga eseguito ogni volta che si attiva il modulo, devi usare hook_enable. Oppure, per evitare di "spegnere" e "riaccendere" il modulo, puoi usare le funzioni hook_update_N che effettuano gli aggiornamenti quando fai girare update.php
Grazie,
ma dove devo inserire la funzione "hook_update_N"? ..in update.php? mi faresti un esempio..
grazie mille
dico, ma non basta rinominare i termini del vocabolario dalla UI?
Certified to Rock