Уже многие заметили, что при переходе хостеров на PHP упали сайты на Joomla 1.0.х.
И так, начинаем лечить:
1. Конечно же в первую очередь нужно вылечить com_content, чтобы отображались материалы. Для этого:
В файлике /includes/Cache/Lite/ находим строчку
:
: |
$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/ и внем ф-ию
:
: |
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 были депрекнуты (больше не поддерживаются) функции 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