Joomla.it Forum
Componenti per Joomla! => Gestione Form => : griselda 10 Mar 2016, 23:26:01
-
Ciao,
debbo gestire un questionario da sottoporre agli utenti registrati. Vorrei proporlo una sola volta per utente e impedire che venga modificato.
Avevo trovato da qualche parte delle istruzioni ma non riesco più a ritrovarle. Qualcuno mi sa dare qualche dritta?
Per impedire la duplicazione pensavo di: inserire dei controlli nel form; inserire un controllo sul menu che richiama il form (per impedire che la voce di menu venga visualizzata se il questionario è già comilato); disabilitare un modulo custom dove si suggerisce la compilazione del questionario agli utenti che non lo hanno ancora fatto.
Qualche suggerimento su materiali di esempio o manuali?
Vi ringrazio molto.
-
Il controllo sul form lo puoi fare inserendo preventivamente in On Load un'action DB Read che filtra i campi della tabella registrata in database sul campo uguale al valore dell'utente registrato.
Se trova la registrazione già fatta in On found inserisci un messaggio di avviso.
Se non lo trova in On found metti l'action HTML (render form) che mostra il form.
Per modulo custom dovresti inserire un codice che compie lo stesso controllo detto sopra.
Per il menù, ci penso, ma credo dovresti fare un menù con altro modulo custom per cui si ritorna al caso precedente.
-
Grazie Vales. Ci provo, ma se non ci riesco ti disturbo di nuovo.
-
Ciao Vales.
scusami ma c'è qualcosa che non capisco.
Nella casella Conditions quale espressione devo inserire per verificare che nel db ci sia già lo user_id ed impedirgli la doppia immissione?
-
Trovato!
- seleziono la sezione Setup;
- inserisco un DB Read nell'evento on Load;
- apro in editing DB Read;
- in table name seleziono la tabella dove ho i dati del questionario;
- nella casella fields inserisco il nome della colonna dove ho lo user id (nel mio caso user_id);
- nella casella conditions inserisco il codice php: <?php $user = JFactory::getUser(); return array( "user_id" => $user->id );?>
- salvo e chiudo DB Read;
- trascino nell'area on Found di DB Read un'azione Message dove vado a dare l'informazione all'utente ("t'ho beccato che volevi riprovarci!!" o analogo);
- in on NotFound trascino un'azione HTML (Render Form) e tutte le altre azioni che mi servono (javaScript, CSS, ...).
Funziona: provare per credere.
Buona giornata e buona Pasqua!!
-
Perfetto!