Salve, è molto tempo che vi seguo, e ho deciso di cominciare a sviluppare anche io componenti.
Per cominciare ad approcciare l'MVC e per comprenderlo,ho deciso di modificare il componente del quarto esempio delle 4 guide sull'mvc tradotte da pochissimi giorni dall'utente Vulpiani.
Volevo aggiungere un ulteriore campo raccolto dal database, alla view. Per fare questo ho modificato la view.html.php in questo modo
<?php
jimport( 'joomla.application.component.view');
class HelloViewHello extends JView
{
function display($tpl = null)
{
$saluti = $this->get( 'Saluti' );
$this->assignRef( 'saluti', $saluti );
parent::display($tpl);
}
function mostra($tpl = null)
{
$greeting = $this->get( 'Greeting');
$this->assignRef( 'greeting', $greeting);
parent::display($tpl);
}
}
il default.php
<?php
defined('_JEXEC') or die('Restricted access'); ?>
<h1><?php echo $this->greeting; ?></h1>
<?php echo $this->greeting; ?>
<?php echo $this->saluti; ?>
e hello.php in questo modo
<?php
defined('_JEXEC') or die( 'Restricted access' );
jimport( 'joomla.application.component.model' );
class HelloModelHello extends JModel
{
function getSaluti()
{
$db =& JFactory::getDBO();
$query = 'SELECT saluti FROM #__hello';
$db->setQuery( $query );
$saluti = $db->loadResult();
return $saluti;
}
function getGreeting()
{
$db =& JFactory::getDBO();
$query = 'SELECT greeting FROM #__hello';
$db->setQuery( $query );
$greeting = $db->loadResult();
return $greeting;
}
}
Ovviamente, nel database esiste già la tabella "saluti" (che "greeting" è quella d'esempio del pacchetto.) L'errore che mi da è il seguente:
Notice: Undefined property: HelloViewHello::$greeting in C:\wamp\www\joomla\components\com_hello\views\hello\tmpl\default.php on line 5
come mai mi succede? come posso correggere? Forse mi manca di modificare qualche file?
Grazie per la cortese attenzione
Giovanni