Witam wszystkich!
Napisałem swego czasu komponent dla Joomla 1.5.x (1.5.26). Teraz pojawiła się potrzeba w kilku miejscach dopisania paru rzeczy i unowocześnienia komponentu pod joomla 2.5/3.x.
Jednak zanim nastąpi unowocześnienie potrzebna jest funkcjonalność zaszyta w jednym z modeli.
Niestety próby ładowania modelu innego niż nazwa widoku nie udaje się
Dla uproszczenia posłużę się tylko wersjami uproszczonymi kodu
Model:
Kod PHP:
defined('_JEXEC') or die();
jimport( 'joomla.application.component.model' );
class KomponentModelObliczenia extends JModel {
function cos(){
$test="Coś";
return $test;
}
// --- cut ---
}// koniec JModel
W modelu w tej wersji nie ma nic wartego powielenia jednak prawdziwy model wykonuje cały proces biznesowy oczywiście można by do każdego modelu używającego wklepać całe 5000 linii kodu tylko po co. Również pielęgnacja takiego czegoś jest uciążliwa i stosunkowo drogie w utrzymaniu. Joomla oferuje taką usługę czyli import istniejącego modelu niestety u mnie coś nie wychodzi i nie bardzo wiem dlaczego.
Widok:
Kod PHP:
defined( '_JEXEC' ) or die( 'Restricted access' );
jimport( 'joomla.application.component.view');
class KomponentViewPrezentacja extends JView
{
function display($tpl = null)
{
global $mainframe;
$model =& $this->getModel(); // natywny model - działa
var_dump($model); // zwraca obiekt jest ok.
$model_zewnetrzny =& $this->getModel("Obliczenia");// w var_dump zwraca NULL
// $model_zewnetrzny =& $this->getModel( 'Obliczenia', 'KomponentModel' );
var_dump($model_zewnetrzny);// zwraca NULL
parent::display($tpl);
}
}// koniec JView
Jakieś jeszcze pomysły na wywołanie modelu Obliczenia z widoku Prezentacja?