Joomla.it Forum

Non solo Joomla... => Sviluppo => : GigiBuffon 19 Nov 2008, 16:49:17

: Errore sviluppo componente (RISOLTO)
: GigiBuffon 19 Nov 2008, 16:49:17
Buon pomeriggio a tutti

Da poco stò seguendo una guida per lo sviluppo di un componente per Joomla 1.5, sono arrivato al punto dove inserisco la Funzione Salva:

function saveReview( $option )
{
global $mainframe;
$row =& JTable::getInstance('review', 'Table');
$post   = JRequest::get( $post );
if (!$row->bind( $post ))
{
echo "<script> alert('".$row->getError()."');
window.history.go(-1); </script>\n";
exit();
}
$row->quicktake = JRequest::getVar( 'quicktake', '', 'post',
'string', JREQUEST_ALLOWRAW );
$row->review = JRequest::getVar( 'review', '', 'post',
'string', JREQUEST_ALLOWRAW );
if(!$row->review_date)
$row->review_date = date( 'Y-m-d H:i:s' );
if (!$row->store())
{
echo "<script> alert('".$row->getError()."');
window.history.go(-1); </script>\n";
exit();
}
$mainframe->redirect('index.php?option=' .
$option, 'Review Saved');
}

solo che quando lo vado a provare mi dà il seguente errore:

Fatal error: Call to a member function bind() on a non-object in C:\wamp\www\test\administrator\components\com_reviews\admin.reviews.php on line 44


Qualcuno saprebbe indicarmi la soluzione?

Grazie mille
: Re: Errore sviluppo componente
: = odino = 20 Nov 2008, 14:11:19
Dice che row non è un oggetto...sicuro di averla dichiarata?
: Re: Errore sviluppo componente
: GigiBuffon 20 Nov 2008, 14:46:52
Grazie mille per la risposta, comunque scusa la mia ignoranza, ma row non la dichiaro in questa parte di codice:

 $row =& JTable::getInstance('review', 'Table');

 ??? ???

grazie ancora
: Re: Errore sviluppo componente
: = odino = 20 Nov 2008, 14:50:04
ahi ahi no mi sono espresso male, tu dichiari la variabile $row, e qui nessuno ci mette becco, ma una variabile è una cosa, un oggetto un altra.

Tu stai chiamando dei metodi ( ->bind ) per una variabile ( $row ) e non per un oggetto, che deve, bene o male, essere "inizializzato" con:

:
$row = new nomeClasse
Normalmente Joomla dichiara nuovi oggetti di suo, grazie al framework MVC tante cose sono già fatte, sta solo a te vedere come è chiamato l'oggetto in questione  ;)

Guarda come salvare senza troppe complicazioni:

:
function save()
{
$model = $this->getModel('model_mio_componente');

if ($model->store($post)) {
$msg = JText::_( 'Project saved!' );
} else {
$msg = JText::_( 'Error saving project' );
}


$link = 'index.php?option=com_mio_componente';
$this->setRedirect($link, $msg);
}

capit?
: Re: Errore sviluppo componente
: GigiBuffon 20 Nov 2008, 16:47:30
Si, ho capito cosa dici,solo che non sò metterlo in atto  ;D.
Il fatto è che ho lasciato perdere quella guida, e utilizzando quella presente su: http://www.copesflavio.com/blog/cms/joomla/tutorial-creare-un-componente-per-joomla-15/

mi dà lo stesso identico errore. Allora mi chiedo perchè mettono online queste guide se poi non funzionano?

Grazie comunque per il supporto, spero di trovare qualche esempio funzionante.
: Re: Errore sviluppo componente
: = odino = 20 Nov 2008, 17:18:36
quello di flavio funziona benissimo, guarda qui (http://ventosullago.copesflavio.com/)
: Re: Errore sviluppo componente (RISOLTO)
: GigiBuffon 20 Nov 2008, 18:27:36
Si, ho rifatto il tutto e ho scaricato il codice completo, e ho notato che avevo creato la cartella Tables nella directory sbagliata... chiedo scusa per la superficialità, e ne approfitto per fare i complimenti a Flavio (grazie mi sei stato davvero di grande aiuto).