Raz na jakiś czas zdarza się, że twórcy oprogramowania wprowadzają zmiany w strukturze systemu plików, które po aktualizacji do wyższej wersji systemu nie są odnajdywane przez skrypty. Problemem bywają zmieniające się ścieżki odwołań do kluczowych bibliotek.

Takim przykładem jest JToolbarHelper, **abstrakcyjna klasa w Joomla odpowiedzialna za zarządzanie przyciskami paska narzędzi w panelu administracyjnym**. Wielokrotnie wyrzucał błąd, głównie przy aktualizacjach systemu między wersjami 3.8.x oraz 3.9.x. Po zalogowaniu do zaplecza pojawia się wtedy błąd ‘0 Class ‘JToolbarHelper’ not found’ – czyli nie odnaleziono komponentu, co zwykle oznacza, że następuje odwołanie do klasy, której nie można odnaleźć w danej lokalizacji lub nie istnieje, **zazwyczaj z powodu nieprawidłowego załadowania lub braku wymaganego pliku `ToolbarHelper.php`**. Klasa ta jest kluczowa dla generowania ikon i akcji w panelu administracyjnym.

problem logowania do zaplecza - JToolbarHelper

Po kliknięciu wyświetlanego buttona, jak łatwo można się domyślić, nic się nie dzieje, ponieważ skrypt nie jest w stanie wywołać zdefiniowanej akcji.

Jak naprawić błąd JToolbarHelper przy logowaniu do zaplecza Joomla

W tej sytuacji istnieją dwa sposoby rozwiązania problemu. Błąd często wynika z tego, że mechanizmy autouładowania klas Joomla, po zmianach w strukturze plików między wersjami, nie są w stanie prawidłowo zlokalizować klasy `JToolbarHelper`.

  1. Z ostatniej kopii zapasowej strony (którą oczywiście trzeba robić przed każdą aktualizacją), z katalogu administrator kopiujemy plik index.php i kopiujemy go do tej samej lokalizacji naszej strony na serwerze FTP, dokonując podmiany nadpisania pliku. Upewnij się, że kopia pochodzi z działającej wersji Joomla.
  2. Drugim sposobem jest edycja pliku index.php z tej samej lokalizacji co w punkcie 1, bezpośrednio na serwerze FTP. Oczywiście przed tą operacją warto zrobić kopię wspomnianego pliku na dysku lokalnym. Edytując plik index.php w ulubionym edytorze odnajdujemy linijki kodu odpowiadające za pobieranie plików php z folderu /includes/.

naprawa błędu JToolbarHelper

Poniżej 3 linijek kodu zaczynających się od 'require_once…' wklejamy:

require_once JPATH_BASE . '/includes/toolbar.php';

Ta linia wymusza załadowanie pliku `toolbar.php`, który zawiera definicję klasy `JToolbarHelper`, zapewniając, że system będzie mógł ją odnaleźć pomimo zmian w strukturze bibliotek Joomla.
Zapisujemy plik na serwerze i gotowe!

Najczęściej zadawane pytania

Czym jest JToolbarHelper w Joomla?

JToolbarHelper to abstrakcyjna klasa w systemie zarządzania treścią Joomla, która służy do tworzenia i zarządzania przyciskami oraz innymi elementami paska narzędzi w panelu administracyjnym. Jest to klasa narzędziowa (utility class), umożliwiająca deweloperom łatwe dodawanie standardowych akcji, takich jak „nowy”, „edytuj”, „usuń” do interfejsu zaplecza.

Dlaczego pojawia się błąd „Class 'JToolbarHelper’ not found”?

Błąd „Class 'JToolbarHelper’ not found” zazwyczaj wskazuje na to, że system Joomla nie jest w stanie odnaleźć definicji klasy JToolbarHelper. Najczęściej dzieje się tak po aktualizacji systemu, gdy zmieniają się ścieżki do plików bibliotek Joomla. Może to być spowodowane nieaktualnym plikiem index.php w folderze administrator, który nie zawiera prawidłowego odwołania do pliku ToolbarHelper.php, lub ogólnymi problemami z mechanizmem autouładowania klas w Joomla.

Czy błąd JToolbarHelper dotyczy tylko konkretnych wersji Joomla?

Błąd z JToolbarHelper był szczególnie często obserwowany podczas aktualizacji systemu Joomla pomiędzy wersjami 3.8.x a 3.9.x, ze względu na zmiany w organizacji plików i bibliotek. Jednakże podobne problemy z nieodnalezieniem klas mogą wystąpić przy innych dużych aktualizacjach lub migracjach, które wpływają na strukturę systemu plików Joomla, zwłaszcza w obszarze bibliotek i komponentów.

Odwiedź nas na Facebooku i Instagramie,
-BSIDEWORK Team #innowacjewpraktyce