Back to top

Autore Topic: Salvataggio dati in più tabelle  (Letto 2810 volte)

Offline smino89

  • Esploratore
  • **
  • Post: 199
  • Sesso: Maschio
    • Mostra profilo
Salvataggio dati in più tabelle
« il: 14 Giu 2011, 15:34:49 »
Ciao,

sto iniziando a buttare un occhio allo sviluppo di estensioni per joomla 1.6 (in realtà uso la versione in svn, la 1.7.. :-X), seguendo la guida http://docs.joomla.org/Developing_a_Model-View-Controller_%28MVC%29_Component_for_Joomla!1.6_-_Part_01

non mi è molto chiara la procedura di salvataggio dei dati, inseriti in una form (la pagina di modifica/creazione), nel database; credo di aver capito che il pulsante salva nella toolbar cerca automaticamente nel controller la funzione di save, passando poi nel model (so di non essermi spiegato "benissimo")..

se dovessi inserire dei dati in due tabelle del db (mettiamo il caso in cui i valori inseriri in una pagina di creazione del mio oggetto vadano in parte in una tabella, e in parte in un'altra) al momento del salvataggio.. come dovrei fare? e quale sarebbe l'ipotetico giro fatto da joomla?

spero di essermi spiegato, e che qualcuno possa illuminarmi..

Offline jonxduo

  • Appassionato
  • ***
  • Post: 430
    • Mostra profilo
Re:Salvataggio dati in più tabelle
« Risposta #1 il: 14 Giu 2011, 17:23:47 »
non mi è mai capitata una simile esigenza, ma credo si possa risolvere "giocando" con il file xml con cui crei il form :) tentare non nuoce :P

mau_develop

  • Visitatore
Re:Salvataggio dati in più tabelle
« Risposta #2 il: 14 Giu 2011, 17:32:16 »
prova a cercare "joomla CRUD"

M.

Offline smino89

  • Esploratore
  • **
  • Post: 199
  • Sesso: Maschio
    • Mostra profilo
Re:Salvataggio dati in più tabelle
« Risposta #3 il: 11 Ott 2011, 18:07:02 »
"riapro" questo 3d ormai abbandonato, in quanto non ho più avuto modo di lavorarci fino ad oggi..
dopo un discreto numero di tentativi e ricerche, ritorno a chiedere aiuto.. :-[

provo a rispiegare il problema più in dettaglio, chissà che qualcuno abbia la risposta:

l'idea è:
il componente mi permette di suddividere la pagina in più sezioni (come se fosse una tabella html), e per ognuna di queste imposto titolo e descrizione.

----
due tabelle
pagina (id, titolo, descrizione, num_sezioni)
sezione (id, titolo, descrizione, id_pagina)

il rapporto chiaramente è 1 a n
-----

ho un form in cui imposto i dati della pagina e il numero di sezioni; alla modifica di quest'ultimo mi "compaiono" n altri campi in cui mettere le informazioni delle singole sezioni.

quando salvo, i dati saranno suddivisi in:
titolo, descrizione -> tabella "pagina"
titolo, descrizione, id_pagina -> tabella "sezione"

è ovvio che nella tabella sezione dovranno essere salvati tanti record quante sono le sezioni

-----

note:

1) la via d'uscita potrebbe essere aggiungere un ulteriore vista (view), in cui creare, una a una, le singole sezioni; a livello logico, però, credo abbia più senso impostare il tutto in un unico form, per diminuire i passaggi

2) si tratta di un componente a scopo formativo, mi rendo conto che quello che sto realizzando ha una scarsa utilità, e che probabilmente esiste gia qualche estensione che fa la stessa cosa

3) l'idea di fare tutto in un'unico form ha lo scopo di fare esercizio con jquery ( per vari effettini di transizione e la modifica volante di classi css ) e fare uno sviluppo "spinto", come salvare i dati recuperati in un form all'interno di più tabelle, dopo aver seguito il solito tutorial helloworld

detto questo (sono andato un po per le lunghe), continuo la mia ricerca e aspetto qualche risposta

ciao a tutti e buona serata

mau_develop

  • Visitatore

Offline smino89

  • Esploratore
  • **
  • Post: 199
  • Sesso: Maschio
    • Mostra profilo
Re:Salvataggio dati in più tabelle
« Risposta #5 il: 12 Ott 2011, 15:17:20 »
niente...

prima di tentare di salvare i dati, dovrei visualizzare la pagina di modifica.

Il mio edit.php dovrebbe recuperare i dati dalle due tabelle e visualizzarli all'interno di un form, ma non riesco nemmeno in questo.. :'( :'( :'(

ho provato a impostare due models all'interno del mio controller, ma non ne esco..
e pensare che all'inizio lavorare con la nuova versione e scrivere i form in un file xml sembrava molto più semplice..

Offline smino89

  • Esploratore
  • **
  • Post: 199
  • Sesso: Maschio
    • Mostra profilo
Re:Salvataggio dati in più tabelle
« Risposta #6 il: 13 Ott 2011, 12:43:05 »
sto provando..

la mia idea per visualizzazione e quindi, più o meno, salvataggio è:

1) nel controller specifico assegno 2 models (uno per ogni tabella)
2) i models si occupano di recuperare i dati dal db e i form (da xml)
3) nella view uso la funzione get per recuperare i dati dai models
4) in edit.php (il mio tmpl) visualizzo i form

in linea teorica dovrebbe funzionare, ma ho un errore al punto 1..

----------
500 - An error has occurred. View not found [name, type, prefix]: Hello_page, html, helloView
-----------

la cosa strana è che la mia view (a cui cerco di assegnare 2 models) si chiama proprio HelloViewHello_page... perchè mi dice che non la trova???  :-\


Questo è il codice del controller:

Codice: [Seleziona]
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
 
// import Joomla controllerform library
jimport('joomla.application.component.controllerform');
jimport('joomla.application.component.model');


class 
HelloControllerHello_page extends JControllerForm
{
    public function 
__construct($config = array())
    {
        
        
$model $this->getModel 'Hello_page' );
        
$view  $this->getView  'Hello_page''html'  );
        
$view->setModel$modeltrue );  // true is for the default model;
        
        
$section $this->getModel 'Hello_section' );
        
$view->setModel$section );
    }
    
}
« Ultima modifica: 13 Ott 2011, 12:45:24 da smino89 »

Offline smino89

  • Esploratore
  • **
  • Post: 199
  • Sesso: Maschio
    • Mostra profilo
Re:Salvataggio dati in più tabelle
« Risposta #7 il: 13 Ott 2011, 16:06:13 »
aggiornamento...

ho risolto (?) l'errore cambiando il controller in questo modo:

Codice: [Seleziona]
<?php
// No direct access to this file
defined('_JEXEC') or die('Restricted access');
 
// import Joomla controllerform library
jimport('joomla.application.component.controllerform');

class 
HelloControllerHello_page extends JControllerForm
{
    public function 
execute($task)
    {
            
$view =& $this->getView ('hello_page''html');
            
$view->setModel$this->getModel 'hello_page' ), true );  // true is for the default model;
            
$view->setModel$this->getModel 'hello_section' ) );
        
            
$view->display();
            
    }
    
}

e togliendo parent::display($tpl); dalla view

ora il problema è che accedo alla pagina di modifica, ma si presenta vuota (senza form).. probabilmente per il fatto che il model hello_section recupera più record.. :(

Offline smino89

  • Esploratore
  • **
  • Post: 199
  • Sesso: Maschio
    • Mostra profilo
Re:Salvataggio dati in più tabelle
« Risposta #8 il: 13 Ott 2011, 16:56:15 »
niente da fare.. ho esaurito le risorse..  :'( :'( :'(

proverò a cambiare approccio e chiamare ulteriori view nella pagina di modifica..  ???

 



Web Design Bolzano Kreatif