Błąd strpos() przy próby instalacji w Joomla 1.6RC2
Dzisiaj postanowiłem zainstalować i sprawdzić najnowsze wydanie Joomla oznaczone cyferkami 1.6 RC2. Kuszony nowościami ściągnąłem pakiet, rozpakowałem go na serwerze i rozpocząłem instalacje. Niestety po uruchomieniu instalatora wyskoczył błąd Warning: strpos () [function.strpos]: Empty delimiter in / libraries / joomla / plików / path.php on line 148. Trochę się nagimnastykowałem nim odkryłem, a właściwie odszukałem przyczynę i rozwiązanie na polskim forum Joomla. Powodem takiej sytuacji jest błędna interpretacja ścieżek przez Joomlę – problem występuje tylko na niektórych serwerach (m.in. w home.pl). Opisany tutaj sposób działa, lecz bezpośrednia przyczyna tkwi znacznie głębiej i jest to rozwiązanie raczej doraźne (mogą się pojawić problemy w przyszłości – np. podczas próby instalacji wtyczek).
1. W plikach /administrator/includes/defines.php oraz /includes/defines.php zmieniamy wpisy:
define('JPATH_ROOT', implode(DS, $parts));
na
define('JPATH_ROOT', (implode(DS, $parts)) ? implode(DS, $parts) : DS);
2. W pliku /administrator/modules/mod_login/tmpl/default.php
zmieniamy
<form action="<?php echo JRoute::_('index.php', true, $params->
get('usesecure')); ?>" method="post" id="form-login">
na
<form action="<?php echo JRoute::_(JPATH_BASE.DS.'index.php',
true, $params->get('usesecure')); ?>" method="post" id="form-login">
3. Instalujemy Joomla i logujemy się do panelu administratora. Wchodzimy w menu Site / Global Configuration, w zakładce Site odszukujemy pola z opcjami SEO (po prawej stronie) i Search Engine Friendly URLs ustawiamy na No