Joomla.it Forum
Non solo Joomla... => Sviluppo => : mpigio 05 Aug 2009, 19:27:13
-
Sto cercando di sviluppare il mio primo componente (sarà questo il giusto forum?) ma dopo aver rinominato dei file mi ritorna il seguente errore
Fatal error: Call to a member function getListFooter() on a non-object in /web/htdocs/www.miosito.it/home/administrator/components/com_miocom/views/miocom/tmpl/default.php on line 14
Qualcuno può aiutarmi?
Grazie infinite
-
vuoi sviluppare un componente?
ottima idea, allora un problemino come quello dovresti saperlo risolvere a volo...
prova a fare una ricerca nel forum, troverai tutte le risposte e se non le trovi prova pure a chiedere alla tua assistenza hosting ed aspetta la risposta..
-
Grazie per la risposta ma non capisco cosa c'entri il provider di hosting... se ti riferisci all'indicazione miosito.it l'ho inserita io a mano! non è quello il dominio.
Ho provato a cercare questo tipo di errore sul forum ma la causa degli altri è diversa dalla mia situazione. Sono convinto di avere un nome di una classe, di un oggetto o di un file errato, ma non so come rintracciarlo.
Considera che è il mio primo componente.
Buona giornata
-
In che file si trova quella funzione? non il richiamo, ma la dichiarazione.
Ad occhio e croce dato che è una richiesta di dati, si dovrebbe trovare in un file all'interno della cartella model.
-
E' la funzione per la paginazione standard di joomla del back end, riporto l'intera riga
$html .= '<tfoot><tr><td colspan="6">' . $this->pagination->getListFooter() . '</td></tr></tfoot>';
E non ce l'ho da nessuna parte, penso sia del framework, anche perchè sull'esempio che ho scaricato non c'è e funziona.
Ma il componente mi da un errore simile anche nel front:
Fatal error: Call to a member function getForm() on a non-object in /var/www/html/miosito/components/com_miocom/views/miocomedit/view.html.php on line 11
E qui la funzione ce l'ho nel model:
function getForm() {
global $Itemid;
$this->form['fields'][] = array('name'=>'Itemid', 'value'=>$Itemid, 'type'=>'hidden');
return $this->form;
}
Ma i nomi delle classi dei modelli che regole devono rispettare?
Grazie per l'interessamento!
-
aaah ok capito.
Hai richiamato la classe pagination?
Prova a guardare nel codice del file view.html.php che si trova in component/com_contenent/view/article
lì vedi come la dichiara.
-
Hai qualche suggerimento anche per il problema del front-end?
-
se ti da lo stesso problema fai lo stesso procedemento che hai fatto per il backend
-
No li, non utilizzo una funzione standard, ma richiamo quella del model ma non viene trovata!
function getForm() {
global $Itemid;
$this->form['fields'][] = array('name'=>'Itemid', 'value'=>$Itemid, 'type'=>'hidden');
return $this->form;
}
Ma i nomi delle classi dei modelli che regole devono rispettare?
Grazie ancora
-
Ma hai per caso preso un componente già presente e l'hai modificato, cambiando i nomi delle classi? se è così, probabilmente non ne hai cambiato uno.
-
Si è proprio quello che dicievo nel primo post e chiedevo se esiste una regola per nominare le classi o per verificare/trovare dov'è l'errore.
Grazie per l'aiuto!
-
Devi cercare all'interno del codice il punto in cui richiami la classe e vedere se il nome che hai inserito è quello corretto.
-
Forse ho perso la vista... :) Ma il nome della classe compare soltanto nella dichiarazione anche nel componente originale!
Per questo ho pensato che esistesse una regola per nominarle.
Grazie per l'aiuto
-
di regola c'è il richiamo al file che contiene la classe nel file primario del componente (miocomponente.php), attraverso un require_once
-
Niente non riesco... :(
Posso inviarti lo zip in PM?
E' ancora in una dase embrionale quindi molto semplice...
Grazie comunque!
-
Postalo qui così tutti potranno darti una mano
-
Ok, lo trovate in allegato!
[allegato eliminato da un amministratore essendo passati più di 365 giorni]
-
Il problema era che la lista in questione era la principale del componente e i nomi dei file erano sbagliati.
La lista principale aveva i nomi della lista e non del componente, rinominando i file tutto è andato a posto