Nie tak dawno w artykule "Joomla! i MySQL na home.pl" pisałem o problemach z MySQL na serwerach home.pl. W połowie marca ukazała się informacja, że dostępny jest już pakiet języka polskiego dla Joomla! 1.6. Nie pozostaje nic innego jak dogłębne zapoznanie się z nową wersją i przetestowanie jej w działaniu.
Zabieram się do pracy: pobieram najnowszą wersję Joomla! 1.6, instaluję na serwerze lokalnym, sprawdzam testuję, instaluję - wszystko ekstra, ładnie pięknie! Instaluję pakiet języka polskiego dla Jooml! 1.6, tworzę testową templatkę - działa, wszystko chodzi perfect :-)
Pora na testy w środowisku produkcyjnym - wrzucam pliki na home.pl, tworzę nową bazkę, wstukuję odpowiedni adres i ... ZNOWU ZONK :-(
Warning: strpos() [function.strpos]: Empty delimiter in /libraries/joomla/filesystem/path.php on line 148
Kolejny problem :-( Czy ten home.pl jest zbyt nowoczesny/przestarzały, czy może nie reaguje na zgłoszenia od webmasterów którzy próbują bezskutecznie zainstalować najnowszą wersję swojego ukochanego CMS-a?
Jak wynika z komunikatu błędu, problem tkwi w pliku path.php, który znajduje się w /libraries/joomla/filesystem. "Chwilę" czasu zajęło mi googlowanie, aby znaleźć przyczynę problemu. Rozwiązanie znalazłem na polskim form joomla. Okazuje się, że system CMS-a niewłaściwie interpretuje ścieżki (JPATH_ROOT). Nie wiem, czy "wina" tkwi w home.pl, czy w kodzie Jomla! Mam tylko nadzieję, że po instalacji dodatkowych rozszerzeń nie pojawią się kolejne problemy :-]
No więc co należy zrobić, aby instalacja sie udała? Należy dokonać zmian w funkcji clean - dokładnie w wierszu 169. Cała funkcja wygląda tak:
public static function clean($path, $ds = DIRECTORY_SEPARATOR){ $path = trim($path); if (empty($path)) { $path = JPATH_ROOT; } else { // Remove double slashes and backslahses and convert all slashes and backslashes to DS $path = preg_replace('#[/\\\\]+#', $ds, $path); } return $path;}
Należy zmieńić wpis: $path = JPATH_ROOT; na: $path = '/';
Teraz funkcja clean powinna wyglądać tak:
public static function clean($path, $ds = DIRECTORY_SEPARATOR){ $path = trim($path); if (empty($path)) { $path = '/'; } else { // Remove double slashes and backslahses and convert all slashes and backslashes to DS $path = preg_replace('#[/\\\\]+#', $ds, $path); } return $path;}
Zmieniłem i szczęśliwie zainstalowałem. Niestety to nie koniec kłopotów :-( Po instalacji nie mogę wejść na zaplecze nowo utworzonego serwisu! Strona logowania do zaplecza wyświetla się prawidłowo, ale po wpisaniu nazwy użytkownika i hasła przeglądarka wyświetla:
404 - Nie znaleziono komponentu
No to szukamy dalej... :-]
Aby można było dostać się do zaplecza należy w pliku configuration.php zmienić parametr live_site. Domyślnie w linii 17 jest wpis:
public $live_site = '';
należy go zmienić na:
public $live_site = 'http://www.twojadomena.pl/';
I TERAZ JUŻ WSZYSTKO JEST OK! Przy najmniej na razie ;-)
Uważasz, że artykuł był ciekawy i chcesz otrzymywać powiadomienia o moich kolejnych wpisach lub projektach?
Wpisz swoje imię oraz adres e-mail a następnie kliknij "ZAPISZ MNIE"
By accepting you will be accessing a service provided by a third-party external to https://www.slawop.net/