Joomla.it Forum
Non solo Joomla... => Sviluppo => : smino89 14 Jun 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 (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..
-
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
-
prova a cercare "joomla CRUD"
M.
-
"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
-
http://forum.joomla.it/index.php/topic,141973.msg631188.html#msg631188
M.
-
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..
-
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:
<?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( $model, true ); // true is for the default model;
$section = $this->getModel ( 'Hello_section' );
$view->setModel( $section );
}
}
-
aggiornamento...
ho risolto (?) l'errore cambiando il controller in questo modo:
<?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.. :(
-
niente da fare.. ho esaurito le risorse.. :'( :'( :'(
proverò a cambiare approccio e chiamare ulteriori view nella pagina di modifica.. ???