Instalacja rozszerzeń

Rozszerzenia dla Joomla! tworzone są najczęściej przez innych projektantów niż należący do zespołu rozwijającego Joomla! Już choćby dlatego trudno oczekiwać, że każde rozszerzenie będzie w stu procentach zgodne z API Joomla!, że każde będzie działać bezbłędnie, że każde będzie równie bezpieczne, jak Joomla!

Poniżej jest kilka wskazówek i rad, które zalecamy rozważyć przed instalacją nowego rozszerzenia i w przypadku problemów z jego działaniem:

Przeznaczenie

W składnicach plików oferowane są rozszerzenia z różnych okresów historii Joomla!, w tym z także z czasów Mambo, a więc napisane. Im starsze rozszerzenie, tym mniejsza jest szansa na jego kompatybilność (zgodność) z najnowszymi wersjami Joomla!:

  • aby w Joomla 1.5 prawidłowo działały rozszerzenia napisane dla Mambo lub Joomla 1.0, trzeba włączyć tryb zgodności wstecznej (dodatek nazwany w języku angielskim System - Legacy, w polskim tłumaczeniu - System - Spuścizna); aby w Joomla 1.0 działały niektóre dodatki napisane dawniej dla Mambo, trzeba włączyć podobny dodatek - Legacy Mambot Includer, w polskim tłumaczeniu: Dawne dodatki.
  • dodatek Spuścizna (Legacy) należy włączyć przed instalacją rozszerzenia napisanego dla wcześniejszych wersji Joomla; w przeciwnym przypadku instalacja może zakończyć się niepowodzeniem!
  • włączenie trybu zgodności wstecznej nie gwarantuje jednak poprawnego działania rozszerzenia napisanego dla wcześniejszych wersji; w przypadku problemów można poszukać rozwiązania na forum lub zapytać o takie rozwiązanie, ale szansa na receptę jest mierna!

Rozszerzenia wymagające trybu zgodności wstecznej w nieznacznym stopniu obniżają wydajność Joomla! - im mniej takich rozszerzeń, tym lepiej.

2. Wiek rozszerzenia

Rozszerzenia napisane dawniej, za pomocą wcześniejszych wersji PHP z natury rzeczy mogą nie spełniać współczesnych kryteriów wydajności, a przede wszystkim bezpieczeństwa, są szczególnie podatne na uszkodzenia. Niektóre z nich do poprawnego działania wymagają włączenia emulacji RG albo włączonej rejestracji zmiennych globalnych (register_globals=ON). Takie rozszerzenia w sposób szczególny narażają witrynę na udane ataki krakerów. Aby działały, trzeba włączyć emulację zmiennych globalnych, ale powinno to być rozwiązanie chwilowe. Można napisać do autora rozszerzenia prośbę o jego unowocześnienie, ale - jeśli autor nie uczynił tego do tej pory sam, trudno liczyć na pozytywną reakcję. Można samemu poprawić takie rozszerzenie, ale wymaga to umiejętności programowania. Jeśli korzystamy z takiego rozszerzenia, należy systematycznie i dokładnie monitorować tabelę bazy danych obsługującej to rozszerzenie oraz katalogi, w których znajdują się skrypty rozszerzenia, aby wykryć ewentualne uszkodzenia (ataki) najwcześniej, jak to możliwe.

Kodowanie

Rozszerzenia dla Joomla 1.5 standardowo korzystają z wielobajtowego systemu kodowania, a krócej z unikodu czy też kodowania w standardzie UTF-8. Rozszerzenia pisane dla Joomla 1.0 standardowo korzystają z kodowania w ISO 8859-1. Polskie wersje tych rozszerzeń najczęściej wydawane były w standardzie ISO-8859-2, nieco rzadziej w standardzie utf-8.

Próba instalacji w witrynach kodowanych w UTF-8 rozszerzeń opublikowanych w standardzie ISO-8859-2 najczęściej kończy się komunikatem błędu, że nie znaleziono pliku XML.

Zanim zainstalujemy takie rozszerzenie, należy je przekonwertować, a to dokładniej oznacza:

  • konieczność konwersji pliku rozszerzenie.xml do standardu UTF-8
  • konieczność konwersji pliku językowego do standardu UTF-8.

Rozszerzenia są niekiedy obsługiwane przez kilka plików językowych (np. docman, mxcomment).
Do konwersji najlepiej skorzystać z edytora oferującego opcje zapisu i odczytu w różnych systemach kodowania. Nie może to być jednak edytor umieszczający w plikach UTF znacznik kolejności bajtów (BOM).
Można również wykorzystać programik Gżgżółka. W tym przypadku nie wystarczy konwersja pliku XML - dodatków trzeba ręcznie zmienić linię definiującą kodowanie.
Zobacz: Niepoprawny plik XML .

Inne błędy

Podczas instalacji rozszerzeń mogą pojawić się różne błędy spowodowane:

  • brakiem dostępu do plików (katalogów), najczęściej na serwerach z włączonym bezpiecznym trybem PHP (safe_mode=ON)
  • brakiem biblioteki zlib
  • usterkami w plikach instalacyjnych (np. krótkie znaczniki <? zamiast <?php

Niektóre sposoby radzenia sobie z takimi problemami opisano w podręczniku administratora Joomla! na www.pomoc.joomla.pl:

 

Logowanie