Back to top

Autore Topic: Classi per la gestione delle tabelle  (Letto 1908 volte)

Offline Kumidan

  • Nuovo arrivato
  • *
  • Post: 31
    • Mostra profilo
Classi per la gestione delle tabelle
« il: 26 Mag 2010, 11:39:57 »
Sto cercando di imparare a realizzare componenti per Joomla e c'è una cosa che non ho capito.
Sul tutorial presente sul Wiki viene creato un file hello.php all'interno della cartella tables, la tabella associata ha un campo primario e nella classe viene definita una variabile ad esso relativo.

Ora sto provando a creare un nuovo componente ed ho una tabella che richiede come primary key due campi della tabella, come devo definirli nella classe che la gestisce? Come passo al costruttore questi campi?

Mi verrebbe da pensare che andrebbe creato un array con i due campi, ma non trovo alcuna documentazione a riguardo, quindi non so se davvero è così.
Potreste spiegarmi come fare?

mau_develop

  • Visitatore
Re:Classi per la gestione delle tabelle
« Risposta #1 il: 26 Mag 2010, 13:15:28 »
ma non trovo alcuna documentazione a riguardo,
--------------------------------------------------------------------

dove hai cercato? su qs forum, nei suoi post, nel suo wiki, o al massimo sulle api c'è ampia documentazione.

Le cose che sembra che ignori sono:

- c'è un pattern di sviluppo/implementazione da seguire (framework.joomla)
- ci sono dei metodi messi a disposizione dalle classi del framework per fare ogni cosa (api.joomla)

M.

Offline Kumidan

  • Nuovo arrivato
  • *
  • Post: 31
    • Mostra profilo
Re:Classi per la gestione delle tabelle
« Risposta #2 il: 26 Mag 2010, 13:26:38 »
So che al costruttore della classe che gestisce la tabella devo passare il nome della tabella, la chiave primaria e un collegamento al DB.
Una cosa così nel caso il campo id (definito come variabile in precedenza) sia la chiave primaria:
Codice: [Seleziona]
function TableTabella(&$db) {
parent::__construct('#__tabella', 'id', $db);
}
Il mio problema è che come chiave primaria non ho un solo campo, ma due.
Come faccio la chiamata al costruttore?

mau_develop

  • Visitatore
Re:Classi per la gestione delle tabelle
« Risposta #3 il: 26 Mag 2010, 15:37:32 »
capito.

..nn riesco a capire cosa significhi due chiavi primarie... a joomla interessa una chiave con cui identificare un record, solitamente id

perchè costruisci la tabella?


M.

Offline Kumidan

  • Nuovo arrivato
  • *
  • Post: 31
    • Mostra profilo
Re:Classi per la gestione delle tabelle
« Risposta #4 il: 26 Mag 2010, 15:47:14 »
Il componente che sto scrivendo prevede l'uso di più tabelle, 3 per la precisione.
Quella che mi da problemi è questa:
Codice: [Seleziona]
CREATE TABLE #__quiz_domande (
quiz int(3) NOT NULL REFERENCES #__quiz(id),
num_domanda int NOT NULL,
domanda varchar(1000) NOT NULL,
valore int NOT NULL,
PRIMARY KEY (quiz,num_domanda)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Classi per la gestione delle tabelle
« Risposta #5 il: 26 Mag 2010, 21:51:02 »
ciao,
potrei sbagliarmi ma non mi pare proprio che il framework di joomla possa lavorare con chiavi composte. secondo me ti conviene aggiungere un campo 'id' ed usare questo come primaria, anche perché vedo qualcosa che non mi convince:

quiz int(3) NOT NULL REFERENCES #__quiz(id),
ENGINE=MyISAM

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline Kumidan

  • Nuovo arrivato
  • *
  • Post: 31
    • Mostra profilo
Re:Classi per la gestione delle tabelle
« Risposta #6 il: 26 Mag 2010, 23:00:54 »
Grazie, seguirò il tuo consiglio.

 



Web Design Bolzano Kreatif