Back to top

Autore Topic: J 2.5 - Popolare campi Form XML  (Letto 2075 volte)

Offline clam80

  • Nuovo arrivato
  • *
  • Post: 39
  • Sesso: Maschio
    • Mostra profilo
J 2.5 - Popolare campi Form XML
« il: 07 Feb 2013, 00:43:45 »
Ciao a tutti,
da un po' di giorni sto cercando di cimentarmi con lo sviluppo di un componente a uso personale e sono giunto ormai da diverso tempo ad un ostacolo che non riesco a superare...

Ho creato due tabelle, una composta da:
idGenere  (chiave)
nome
che chiamerò tabella A

l'altra composta da:
idSpecie (chiave)
idGenere
nome

che chiamerò tabella B

in pratica le due tabelle sono collegate, la tabella B viene collegata alla tabella A tramite il campo idGenere.

Ho creato una lista che mi permette di visualizzare idSpecie, A.nome, B.nome
Ho impostato il link che mi permetta di visualizzare un form che carica i dati dalla tabella B per modificarli.
Questo form dovrebbe presentare il campo nome della tabella B (e lo carica correttamente anche se non capisco come colleghi il nome del campo del db al form..) e l'elenco dei campi nome della tabella A, che non riesco a visualizzare...

Il file XML che viene caricato per generare il form è il seguente:
<?xml version="1.0" encoding="utf-8"?>
<form>
  <fieldset>
    <field
      name="idSpecie"
      type="hidden"
    />
   
    <field
      name="nome"
      type="text"
      label="SPECIE_NOME"
      description="COM_xx_SPECIE_DESCRIZIONE_NOME"
      size="20"
      class="inputbox"
      default=""
    />
    <field
      name="nomeGenere"
      type="list"
      default=""
      label="GENERE_NOME"
      description="COM_xx_GENERE_DESCRIZIONE_NOME"
     
    />
  </fieldset>
</form>

La cosa che non mi torna più che altro è come Joomla collega il campo <field name="nome" ... >
va direttamente sul DB ?
Potrei impostare in qualche parte del codice per effettuare la join delle due tabelle?

Nella cartella fields ho creato un file dove imposto i campi, ma immagino non venga considerato...
copio sotto il codice:
defined('_JEXEC') or die;
jimport('joomla.form.helper');
JFormHelper::loadFieldClass('list');
class JFormFieldSpecie extends JFormFieldList
{
  protected $type = 'Specie';
  protected function getOptions()
  {
    $db = JFactory::getDBO();
    $query = $db->getQuery(true);
   
    $query->select('a.idSpecie idSpecie, b.idGenere idGenere, b.nome nomeGenere, a.nome nomeSpecie');
    $query->from('#__specie as a ');
    $query->join('LEFT', '#__genere as b ON b.idGenere = a.idGenere');
   
    $db->setQuery((string)$query);
    $titles = $db->loadObjectList();
    $options = array();
    if($titles){
      foreach($titles as $title)
      {
        $options[] = JHtml::_('select.option', $title->idSpecie, $title->idSpecie.' '.$title->idGenere.' '.$title->nomeGenere.' '.$title->nomeSpecie);
      }
    }
    $options = array_merge(parent::getOptions(), $options);
    return $options;
  }
}



Posso postarvi altri file dove potrei aver commesso errori, o per aiutarvi a comprendere come ho strutturato il tutto?

Vi ricordo che sono un po' alle prime armi ed è probabile che abbia commesso qualche "bischerata" come si dice dalle mie parti ;)

Grazie per l'aiuto,
ciao
Claudio

mau_develop

  • Visitatore
Re:J 2.5 - Popolare campi Form XML
« Risposta #1 il: 07 Feb 2013, 13:22:10 »
Ciao,
aldilà del codice credo ti manchi di capire l'mvc.
Il form quando carichi una vista "lista" (quella plurale) non centra nulla... vengono coinvolti solo i files "plurali"
Il form serve in editing dove vengono usati tutti i files "singolari".
Il controller si preoccupa in entrambi casi di gestire la task, se modifichi o aggiungi è edit se visualizzi la lista è ..niente ovvero il defaulthttp://localhost/sites/
Il controller si preoccupa di usare il model che fornirà i dati che servono, nelle liste fa la query che passa alla view, nel form si occupa di fare quello che chiedi tu.
C'è il metodo che prende gli elementi del form dal tuo file xml, quello che prende eventuali dati nella sessione (se sei di ritorno al form dopo un check fallito), e c'è il metodo che unisce i dati.
Nel caso di edit è coinvolta anche la Table.


Offline clam80

  • Nuovo arrivato
  • *
  • Post: 39
  • Sesso: Maschio
    • Mostra profilo
Re:J 2.5 - Popolare campi Form XML
« Risposta #2 il: 08 Feb 2013, 09:34:38 »
si, in effetti una leggera nebulosità era presente... già con la tua spiegazione mi appare più chiara.

Magari avresti qualche esempio da consigliarmi, tanto per avere un punto di riferimento?


Grazie ancora,
Claudio

mau_develop

  • Visitatore
Re:J 2.5 - Popolare campi Form XML
« Risposta #3 il: 08 Feb 2013, 18:14:34 »
beh diciamo che te l'ho spiegato usando concetti un po' grossolani per farti capire il principio... se dovesse leggere chi sviluppa joomla mi dà 2 sberle :)

Esempi? a bizzeffe in qualunque tutorial di sviluppo da quelli di cocoate a helloworlds

 



Web Design Bolzano Kreatif