Уже многие заметили, что при переходе хостеров на PHP 5.3.3 упали сайты на Joomla 1.0.х.
И так, начинаем лечить:
1. Конечно же в первую очередь нужно вылечить com_content, чтобы отображались материалы. Для этого:В файлике /includes/Cache/Lite/Function.php находим строчку
$arguments = func_get_args();
и заменяем её на
$arguments = func_get_args();
$numargs = func_num_args();
for($i=1; $i < $numargs; $i++){
$arguments[$i] = &$arguments[$i];
}
Для ленивых уже пропатченый файл [
ссылка]
2. Лечим com_contact. Для этого:находим файл /includes/vcard.class.php и внем ф-ию
function quoted_printable_encode($input, $line_max=76, $space_conv=false)
{
}
заменяем на
if(!function_exists('quoted_printable_encode'))
{
function quoted_printable_encode($input, $line_max=76, $space_conv=false)
{
}
}
Для ленивых уже пропатченый файл [
ссылка]
3. Решение проблем с ereg*()В PHP 5.3.3 были депрекнуты (больше не поддерживаются) функции
ereg*()Если вы в конфиге включите error_reporting нарпимер на max левел, то увидите множество сообщений типа
Deprecated: Function eregi() is deprecated in /home/siteroot/....
Ман по этой проблеме можете прочитать здесь: [
ссылка]
В кратце, решение проблема с
ereg*() заключается в замене этой функции на
preg_match() по следующим алгоритмам:
ereg("\.([^\.]*$)", $this->file_src_name, $extension);
заменить на
preg_match("/\.([^\.]*$)/", $this->file_src_name, $extension);
$this->file_dst_name_body = ereg_replace("[^A-Za-z0-9_]", "", $this->file_dst_name_body);
заменить на
$this->file_dst_name_body = preg_replace("/[^A-Za-z0-9_]/", "", $this->file_dst_name_body);
eregi("\.([^\.]*$)", $this->file_src_name, $extension);
заменить на
preg_match("/\.([^\.]*$)/i", $this->file_src_name, $extension);
split (string pattern, string string [, int limit])
заменить на
preg_split ( string pattern, string subject [, int limit [, int flags]] )
NB: первый аргумент (паттерн) почти всегда должен начинаться и заканчиваться на "/"
P.S. Переходите на Joomla 1.5