2013-07-27 12 views
5

Mi sembra di aver provato tutto. Sto cercando di imparare come creare un nuovo componente e attualmente la mia struttura di cartelle è simile a questa (ti preghiamo di notare che il componente si installa).Chiamata al metodo non definito JController :: getInstance()

Questa è una foto della mia struttura di cartelle:

enter image description here

Ive ha chiuso alcuni di essa, perché ho trovato irelevant ma per favore, se avete bisogno di vedere che cosa è dentro di loro per favore fatemelo sapere.

come detto sopra il componente si installa senza problemi. tuttavia quando provo ad accedere ottengo il seguente errore:

Fatal error: Call to undefined method JController::getInstance() in /home/marcrasm/public_html/Joomla/administrator/components/com_helloworld/helloworld.php on line 13 

Ora il file si sta riferendosi a è questa:

<?php 
defined('_JEXEC') or die ('Restricted access'); 

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

$doc = JFactory::getDocument(); 
$doc->addScript("/components/com_helloworld/js/jquery.js"); 
$doc->addScript("/components/com_helloworld/js/com_helloworld_script.js"); 
$doc->addStyleSheet("/components/com_helloworld/css/com_helloworld_layout.css"); 

// gets the instance of the controller 
// Get an instance of the controller prefixed by HelloWorld 
$controller = JController::getInstance('HelloWorld'); 

// Perform the Request task 
$input = JFactory::getApplication()->input; 
$controller->execute($input->getCmd('task')); 

// Redirect if set by the controller 
$controller->redirect(); 

So che può essere difficile dire, ma qualcuno sa quale potrebbe essere il problema?

risposta

18

Si prega di verificare la versione di Joomla

In 3.X

$controller = JControllerLegacy::getInstance('HelloWorld'); 

In 2.X

$controller = JController::getInstance('HelloWorld'); 
+0

lol Ho avuto due siti web uno 2.5 e uno 3.0. Quindi stavo lavorando come una settimana sul 3.0 quando sono tornato per aggiustare qualcosa nel 2.5 .. e blah! crash! : P – themis

0

Il messaggio di errore indica che lo JController non ha il metodo statico getInstance().

+0

Sì, lo so;) ma secondo la documentazione Joomla classe exteded ha che il metodo –

+0

allora la prego di aggiungere il relativo codice da JControll er alla tua domanda? –

+0

erm? da dove Jcontroller fa parte della libreria Joomla non lo è? come quando lo importazione –

5

Non si specifica la versione in uso ma probabilmente si desidera JControllerLegacy per J3 a meno che non si stia costruendo con il nuovo MVC. JController non ha un metodo getInstance(), ma non vede JControllerLegacy github.com/joomla/joomla-cms/blob/master/libraries/joomla/controller

Problemi correlati