Modifiche al file .install

7 contenuti / 0 new
Ultimo contenuto
Modifiche al file .install

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?