Back to top

Autore Topic: JHtml calendar e data di default  (Letto 3680 volte)

Offline gianni2638

  • Nuovo arrivato
  • *
  • Post: 15
  • Sesso: Maschio
    • Mostra profilo
JHtml calendar e data di default
« il: 12 Giu 2012, 22:34:25 »
Ho un componente in cui diverse tabelle hanno dei campi data in formato MySQL datetime.
Nelle view uso il seguente codice per generare il calendario javascript:
Codice: [Seleziona]
$this->assignRef('dateofbirth',
JHTML::_('calendar',
JHTML::_('date', $row->dateofbirth, JText::_('d-m-Y')), 'dateofbirth', 'dateofbirth','%d-%m-%Y'));
Problema: se il campo dateofbirth del db è null o vuoto, quando si apre il template default della view il campo dateofbirth del form viene automaticamente riempito con la data odierna. Se l'utente non cambia la data, cliccando su salva la data odierna viene inserita nel database anche se l'utente non intendeva selezionarla. Io vorrei che di default non vi fosse nessuna data se l'utente non ne seleziona una specifica. Ho cercato in rete ma non ho trovato nulla che fa al caso mio. Grazie per l'eventuale aiuto che mi potrete dare.

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:JHtml calendar e data di default
« Risposta #1 il: 12 Giu 2012, 23:55:14 »
Hai un componente oppure hai scritto un componente, giusto per capire.

Offline gianni2638

  • Nuovo arrivato
  • *
  • Post: 15
  • Sesso: Maschio
    • Mostra profilo
Re:JHtml calendar e data di default
« Risposta #2 il: 13 Giu 2012, 07:49:54 »
Ho scritto io un componente per la gestione dei Club Alpini. Vi sono diverse tabelle, soci, attività, libro cassa etc e in molte di queste sono presenti date (data di nascita per i soci, data di inizio e fine per le attività, etc). Il componente è scaricabile qui: http://www.alpclub.it

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:JHtml calendar e data di default
« Risposta #3 il: 13 Giu 2012, 08:03:23 »
Ok, la mia domanda solo per capire se stavi nella sezione giusta.

mau_develop

  • Visitatore
Re:JHtml calendar e data di default
« Risposta #4 il: 13 Giu 2012, 08:58:43 »
se il campo dateofbirth del db è null o vuoto
---------------------------------------------------------
questo lo risolvi con un not null nel db con predefinito 0000-00-00

o con un check della var quando la chiami, se vuota $data = .....

M.

Offline gianni2638

  • Nuovo arrivato
  • *
  • Post: 15
  • Sesso: Maschio
    • Mostra profilo
Re:JHtml calendar e data di default
« Risposta #5 il: 13 Giu 2012, 15:20:36 »
Ho provato a cambiare la struttura del campo data nella tabella con NOT NULL DEFAULT '0000-00-00 00:00:00', la dichiarazione della proprietà nella classe JTable var $dateofbirth = '0000-00-00 00:00:00' (prima era null) un check della var nella view ma, nonostante il campo data del form sia vuoto e non venga cliccato il calendario, quando salva nella tabella mi inserisce sempre la data corrente. :( La mia impressione è che l'inghippo sia nell'oggetto JHTML calendar anche se ma non mi so spiegare perché, o forse nel fatto che io imposto un formato d-m-Y e questo di default si tira dietro la data corrente? L'input type text del form è vuoto quando apro il tmpl ma poi cliccando salva dopo il bind, check e store da qualche parte salta fuori la data corrente nel db.

mau_develop

  • Visitatore
Re:JHtml calendar e data di default
« Risposta #6 il: 13 Giu 2012, 20:56:02 »
allora fai così, nella table vai nel check, se non c'è fallo, e se la var ha data odierna la var vale 0000-00-00 o null, tanto poi c'è il default del db...

in effetti è logico, un calendario deve avere una data...

M.

Offline gianni2638

  • Nuovo arrivato
  • *
  • Post: 15
  • Sesso: Maschio
    • Mostra profilo
Re:JHtml calendar e data di default
« Risposta #7 il: 13 Giu 2012, 23:51:11 »
Alla fine ho fatto così: ho rinunciato a mostrare le date nel formato %d-%m-%Y nelle view e ho disabilitato la funzione nel model che le convertiva in datetime MySQL con il metodo JDate->toMySQL(). Non so perché ma l'insieme JHTML calendar e mia funzione nel model restituiva come output la data corrente se non diversamente settata. Il metodo da te suggerito sarebbe stato utile per la data di nascita (infatti un neonato non si iscrive ad un club alpino il giorno in cui nasce  :) ) ma per la tabella attività un utente avrebbe potuto creare una attività in data odierna e il sistema glielo avrebbe impedito senza motivo. Dopo tutto le altre date in Joomla (articoli, etc) appaiono all'utente sempre in formato yyyy-mm-dd hh:mm:ss. Ho pubblicato la versione 1.1.1 con il bugfix di cui sopra. Grazie comunque mau_develop per la tua disponibilità.
« Ultima modifica: 13 Giu 2012, 23:52:52 da gianni2638 »

 



Web Design Bolzano Kreatif