Исчезающее меню joomla 1.5 — устраняем проблемы PHP 5.3

При переезде на новый хостинг, либо при обновлении конфигурации старого можно столкнуться со следующей проблемой:

В joomla пропали пункты меню. На фронтеде (на пользовательской части сайта)  исчезли пункты меню joomla хотя в даминке все на месте.

Проблема кроется в некорректной работе joomla с php версии 5.3. Функция call_user_func_array ведет себя несколько по другому, чем ранее.

Решение

Ошибка заключается в том, что данные в функцию передаются по ссылке.

Для её исправления, достаточно убрать амперсанды в нужных местах.
Для основного меню сайта, в файле /modules/mod_mainmenu/helper.php на строке 31 перед параметром $params.
Для админки:

Открываем libraries/joomla/html/html.php
примерно на 80й строке кода должно получиться чтото вроде

Код:
if (is_callable( array( $className, $func ) ))
{
$args = func_get_args();
array_shift( $args );// PHP 5.3 workaround
$temp   = array();
foreach ($args AS &$arg) $temp[] = &$arg;return call_user_func_array( array( $className, $func ), $args );
}
Запись опубликована в рубрике Joomla. Добавьте в закладки постоянную ссылку.

7 комментариев на «Исчезающее меню joomla 1.5 — устраняем проблемы PHP 5.3»

  1. Neo_34 говорит:

    Спасибо большое!
    Ваше решение помогло!

  2. Антон говорит:

    Спасибо большое!
    Ваше решение помогло!

  3. dj--alex говорит:

    Отлично, как раз сегодня сервер обновил и пришлось повозится со всеми сайтами ) Благодарю!!!!

  4. Кирилл говорит:

    Спасибище! Все работает!

  5. Ирина говорит:

    Огромное спасибо за помощь!

  6. Михаил говорит:

    Верхнего меню нет с фронта.

  7. Сергей говорит:

    Спасибо! Все работет!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *