Joomla.it Forum

Non solo Joomla... => Sviluppo => : Illuminista 02 Jul 2009, 10:19:05

: Problema mvc
: Illuminista 02 Jul 2009, 10:19:05
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
: Re:Problema mvc
: Illuminista 02 Jul 2009, 20:56:08
nessuno sa rispondermi?
: Re:Problema mvc
: copesc 03 Jul 2009, 15:42:10
Perchè la funzione mostra() nella view?

Inserisci le istruzioni


:
      $greeting = $this->get( 'Greeting');
      $this->assignRef( 'greeting', $greeting);

direttamente nella funzione display(), dovrebbe funzionare.
: Re:Problema mvc
: Vulpiani 03 Jul 2009, 16:54:46
così?

<?php


jimport( 'joomla.application.component.view');


class HelloViewHello extends JView
{
   function display($tpl = null)
   {
      $saluti = $this->get( 'Saluti' );
      $this->assignRef( 'saluti',   $saluti );
      $greeting = $this->get( 'Greeting');
      $this->assignRef( 'greeting', $greeting);
      parent::display($tpl);
   }
}
: Re:Problema mvc
: Illuminista 03 Jul 2009, 20:06:39
Si! Grazie Vulpiani e Codesc, gentilissimi! Ora funziona tutto benissimo :D