1
Sviluppo / Re:problema caricamento vista
« il: 21 Mag 2010, 13:12:08 »
scusa ma ieri sera non ho avuto il tempo di dire che ho risolto (avevo dimenticato di mettere parent::__construct() nel costruttore del model).
come al solito ringrazio sempre per l'interessamento al mio problema!!
ho capito che chiamare una qualsiasi view in questo modo:
tutto ieri mi sono fatto la cultura su come richiamare un model e non capivo dove sbagliavo :-)(anche perchè non mi entrava proprio nella funzione display() per poter capire che non trovava il model e quindi io pensavo fosse problema di richiamo della view!! )
La scelta del model da dove prendere i metodi è standard se la view rispetta i canoni di joomla riguardo i nomi. Per fare in modo che la view si riferisca al suo model dovremmo rispettare qualche nome, esattamente la view si dovrà chiamare XViewY e il suo model associato è XModelY dove X è il nome del componente mentre Y è il nome proprio della view!!
se vogliamo che la view utilizzi le funzioni di altri model (ad esempio anche quello della view Z (quindi nome view: XViewZ e il suo model relativo è XModelZ)), dobbiamo personalizzare il codice e NON utilizzare parent::display(), ma richiamare i vari model che si vuole utilizzare e poi settarli all'interno della view:
come al solito ringrazio sempre per l'interessamento al mio problema!!
ho capito che chiamare una qualsiasi view in questo modo:
Codice: [Seleziona]
<?php
JRequest::setVar('view',$nomeView);
parent::display();
?>
è corretto.tutto ieri mi sono fatto la cultura su come richiamare un model e non capivo dove sbagliavo :-)(anche perchè non mi entrava proprio nella funzione display() per poter capire che non trovava il model e quindi io pensavo fosse problema di richiamo della view!! )
La scelta del model da dove prendere i metodi è standard se la view rispetta i canoni di joomla riguardo i nomi. Per fare in modo che la view si riferisca al suo model dovremmo rispettare qualche nome, esattamente la view si dovrà chiamare XViewY e il suo model associato è XModelY dove X è il nome del componente mentre Y è il nome proprio della view!!
se vogliamo che la view utilizzi le funzioni di altri model (ad esempio anche quello della view Z (quindi nome view: XViewZ e il suo model relativo è XModelZ)), dobbiamo personalizzare il codice e NON utilizzare parent::display(), ma richiamare i vari model che si vuole utilizzare e poi settarli all'interno della view:
Codice: [Seleziona]
<?php
$primoModel = $this->getModel('Y','XModel');
$secondoModel = $this->getModel('Z','XModel');
$view->setModel($primoModel,true);//se vuoi impostare il model come default
$view->setModel($secondoModel);
$view->display();
?>