2013-07-27 14 views
5

Wydaje się, że próbowałem wszystkiego. Próbuję dowiedzieć się, jak utworzyć nowy komponent, a obecnie moja struktura folderów wygląda tak (należy pamiętać, że komponent instaluje).Wywołanie niezdefiniowanej metody JController :: getInstance()

Jest to obraz mojego struktury folderów:

enter image description here

Ive zamknięte niektóre z nich, bo okazało się, że irelevant ale proszę, jeśli chcesz zobaczyć co jest w środku z nich proszę dać mi znać.

jak stwierdziłem powyżej składnik instaluje się bez problemów. jednak gdy próbuję go pojawia się następujący błąd dostępu:

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

Teraz plik jest refering jest to jedno:

<?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(); 

wiem, może być trudno powiedzieć, ale nie każdy wie, jaki może być problem?

Odpowiedz

18

proszę sprawdzić wersję Joomla

W 3.X

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

W 2.X

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

lol Miałem dwie strony internetowe jedną 2.5 i jedną 3.0. Więc pracowałem jak tydzień w wersji 3.0, kiedy wróciłem, żeby naprawić coś w 2.5 ... i blah! wypadek! : P – themis

0

Komunikat o błędzie informuje, że JController nie ma statycznej metody getInstance().

+0

Tak wiem;) ale według docs Joomla exteded klasa ma tę metodę –

+0

Więc mógłbyś dodać odpowiedni kod z JControll na twoje pytanie? –

+0

erm? skąd Jcontroller jest częścią biblioteki Joomla? np. kiedy go importuję –

5

Nie mówisz, która wersja jest włączona, ale prawdopodobnie chcesz JControllerLegacy dla J3, chyba że budujesz z nowym MVC. JController nie posiada getInstance() metoda ale JControllerLegacy widzi github.com/joomla/joomla-cms/blob/master/libraries/joomla/controller

Powiązane problemy