hook_form_alter

9 contenuti / 0 new
Ultimo contenuto
hook_form_alter

Ciao a tutti, ho un problemino da sottoporvi.
Io ho una vista con dei filtri esposti attraverso i quali l'utente specifica la ricerca.
La mia necessità è quella di preimpostare alcuni di questi filtri, però solo la prima volta che viene caricata la vista, in modo che l'utente possa modificarli.
Ho agito per la preimpostazione sul metodo hook_form_alter, ma quando imposto i filtri poi non risultano più modificabili.
Riuscite a darmi qualche dritta?
Grazie

Drupal Version:

Sai che non l'ho mica capita. In che senso risultano non più modificabili ?

M.

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

Ciao Michel, provo a spiegarmi meglio.
Nella funzione hook_form_alter, se form_id = mia form, imposto dei filtri che l'utente seleziona nel suo profilo. Nel caso in cui l'utente toglie il flag a uno di questi filtri e fa il submit, la view, quando arriva al hook_form_alter, reimposta i filtri e quindi sovrascrive la selezione manuale dell'utente.
Avrei bisogno di poter impostare i filtri solo inizialmente. In pratica dovrei poter saltare l'hook_form_alter quando l'utente fa il submit manualmente.
Spero di essere stato un pò più chiaro.

La prima cosa che mi viene in mente è: controlla che in form_state non ci sia qualche campo che ti indichi che il form è stato "submittato".

La seconda è: controlla che in _GET non esista uno qualsiasi di quei campi. Se esiste allora il form è stato submittato e quindi fai un "return ;" subito e nessun check viene reimpostato.

M.

--
Michel 'ZioBudda' Morelli -- [email protected]
Sviluppo applicazioni CMS DRUPAL e web dinamiche -- Corsi Drupal -- Amministrazione Drupal -- Hosting Drupal

Sai Zio, avevo già guardato se da qualche parte c'era traccia di un submit da parte dell'utente, ma non avevo trovato niente. Ho ricontrollato ma ancora nulla. Ad aggravare la cosa c'è anche il fatto che uso il modulo "better exposed filter" che modifica la gestione base dei filtri.
Riguardo la seconda strada non l'avevo pensata e ti dirò che l'ho provata perchè mi si è aperto un mondo, però da sola non bastava, per cui ecco la soluzione che ho usato. Sempre sul hook_form_alter inserisco da codice un campo nascosto e lo uso come variabile per la disamina. Un pò macchinoso, forse. ma funziona.
Grazie Michel per il supporto e i suggerimenti.

Ciao Zio, avevo già guardato se da qualche parte c'era traccia di un submit da parte dell'utente, ma non avevo trovato niente. Ho ricontrollato ma ancora nulla. Ad aggravare la cosa c'è anche il fatto che uso il modulo "better exposed filter" che modifica la gestione base dei filtri.
Riguardo la seconda strada non l'avevo pensata e ti dirò che l'ho provata perchè mi si è aperto un mondo, però da sola non bastava, per cui ecco la soluzione che ho usato. Sempre sul hook_form_alter inserisco da codice un campo nascosto e lo uso come variabile per la disamina. Un pò macchinoso, forse. ma funziona.
Grazie Michel per il supporto e i suggerimenti.

Non potresti usare un cookie per tenere traccia della prima ricerca da parte dell'utente ed in base a quello decidere come impostare i campi?

Ciao finex, sincermente non ho mai lavorato con i cookies perciò non li avevo presi in considerazione.
Farò una prova e poi ti darò notizie.
Grazie

Ciao finex, sinceramente non ho mai lavorato con i cookies perciò non li avevo presi in considerazione.
Farò una prova e poi ti darò notizie.
Grazie