Joomla.it Forum
Non solo Joomla... => Sviluppo => : andreasuriani 09 Apr 2020, 17:15:10
-
Ciao a tutti,
ho creato (con non poca fatica :D) il mio primo componente!
Funziona! Evvivaaaa....
Però....
Ora sto provando a farlo "ragionare" inserendo, chiaramente, istruzioni meno basilari.
In pratica, ho bisogno di tirare fuori dalla tabella del db dei valori.
Quindi, nel mio file models/componente.php richiamo la class e definisco la funzione in questo modo:
class Variabili extends JModelLegacy
{
function estraivariabili()
{
// Get a db connection.
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query
//->select('*')
->select($db->quoteName(array('id', 'aliquota1', 'aliquota2', 'aliquota3', 'aliquota4', 'aliquota5')))
->from($db->quoteName('#__calcolo_imposte'))
->where('id = 1');
$db->setQuery($query);
return $db->loadObjectList();
}
}
nel mio file default.php nella view, ho inserito il seguente codice:
$model=$this->Variabili();
$items=$model->estraivariabili();
print_r($items);
Il risultato è : 0 Call to undefined method Calcolo_imposteViewCalcoloonline::Variabili()
Mi aiutate a capire per favore? :D
Grazie mille!!
Andrea
-
prova ed elabora questo:nel model
protected function getListQuery()
{
// Get the current user for authorisation checks
$this->user = JFactory::getUser();
$this->userId = $this->user->get('id');
$this->guest = $this->user->get('guest');
$this->groups = $this->user->get('groups');
$this->authorisedGroups = $this->user->getAuthorisedGroups();
$this->levels = $this->user->getAuthorisedViewLevels();
$this->app = JFactory::getApplication();
$this->input = $this->app->input;
$this->initSet = true;
// Make sure all records load, since no pagination allowed.
$this->setState('list.limit', 0);
// Get a db connection.
$query = $db->getQuery(true);
// Get from #__calcolo_imposte as a
$query->select($db->quoteName(
array('a.id','a.asset_id','a.aliquota1','a.aliquota2','a.aliquota3','a.published','a.created_by','a.modified_by','a.created','a.modified','a.version','a.hits','a.ordering'),
array('id','asset_id','aliquota1','aliquota2','aliquota3','published','created_by','modified_by','created','modified','version','hits','ordering')));
$query->from($db->quoteName('#__calcolo_imposte', 'a'));
// Get where a.published is 1
$query->where('a.published = 1');
// return the query object
return $query;
}
nella vista:<?php foreach ($this->items as $item): ?>
<?php echo $item->aliquota1; ?>
<?php echo $item->aliquota2; ?>
<?php echo $item->aliquota3; ?>
<?php endforeach; ?>
-
Ora provo e ti dico.
Cmq non mi è ancora chiaro come lavorare con il controller.
Ad esempio:
Ho creato un semlice form dove metto due campi:
1 ) Importo
2) Giorni
In base all'importo e hai giorni, coglio far uscire un risultato.
Ora, la maschera del forma sta nella view.
Per richiamare i dati, invio il form nella action a ?calcolo, quindi ricaricando la stessa pagina.
Chiamo la funzione calcolo(); che mi fa il seguente ragionamento
public function Calcolo()
{
If ($importo >= 1 or <= 100) { $ris = 50; } else { $ris = 10;}
}
Chiaramente è un esempio, ma non ho capito come fare a visualizzare e a riportare nella view la variabile $ris.
Se provo a stamparla cosi com'è mi esce l'errore che la variabile non è definita.
-
Hai usato quel componente che ti avevo consigliato? Ci sono molti esempi di componenti realizzati con esso da cui prendere spunto. Con quello potrei aiutarti visto che lo conosco e ci sto costruendo le mie applicazioni.
-
Sinceramente no, perché non sono riuscito a creare nemmeno un componente :(
Ma la logica non dovrebbe essere uguale per tutti? :-\
-
ma non ho capito come fare a visualizzare e a riportare nella view la variabile $ris.
Scusa ma tu dove la dichiari questa variabile $ris?
-
nel controller dopo che invio un form.
-
Il fatto è che gli strumenti da soli non bastano, bisogna avere anche un minimo di conoscenza e dedicare del tempo per capire. Io mi sforzo e dedico molto tempo, quando ne ho in avanzo, a capire le basi della programmaione e non avendo una preparazione specifica, ho studiato altro, spulcio fra gli esempi e sulle altre applicazioni per capire quale metodo utilizzare e come adattarlo alle mie esigenze, oltre che leggere e rileggere la ampia documentazione, e ovviamente rivolgermi anche quì nel forum.Ecco perché ti avevo consigliato il costruttore di componenti Joomla Component Builder, neanche io sono riuscito a creare subito la mia applicazione, ci ho perso tempo, ho studiato, ho visto i tutorial, ho modificato qualche demo e ad ogni errore ho cercato e ricercato fino a risolverlo, mi mancano ancora molti passi per finire ma pian piano sto raggiungendo il traguardo.
Sarei lieto di aiutarti magari se puoi illustrarmi il tuo componente, quì (preferibile) o anche in privato, proverei a implementarlo nel costruttore affinchè poi tu poi possa personalizzarlo come ti serve.Ma ti avverto che non sarà una passegiata.