Блог старого компьютера

Блог старого компьютера


Главная Joomla Joomla 1.5 и php 5.3 ошибка Warning: Parameter 1 to modMainMenuHelper::buildXML() (joomla 1.5 под php 5.3)

Joomla 1.5 и php 5.3 ошибка Warning: Parameter 1 to modMainMenuHelper::buildXML() (joomla 1.5 под php 5.3)

18.06.2012 05:55 Администратор Joomla
Печать PDF
Многие пользователи joomla 1.5 при переходе на версию php 5.3 столкнулись с некой проблемой которая характеризуется поялвением ошибок как на самом сайте так и в админке. Причиной ошибок является то что версия php 5.3 перестала поддерживать старые функции, и заменила их на более совершенные и функциональные функции. Лично я всегда пользовался  версией joomla 1.5.7 (Joomla_1.5.7_RUS.zip) и вот сделанные на основе этой версии сайты сообственно и начали выдавать ошибки. А вот сайты сделанные на более старое версии joomla 1.5.21 (я ведь прав по версии она старее?) работают как ни в чем не бывало так как в ней имеются нужные изменения. Дак вот если вы собираетесь продолжать делать сайты на joomla 1.5 и не волноваться в том что вскоре у вас вылезут ошибки то используйте версию движка joomla 1.5.21 Joomla_1.5.21-Stable-Full_Package-Russian.tar.gz). Далее я расскажу как все же избавится от появившихся ошибок.  

Значит так если мы видим на нашем сайте следующую ошибку:

Warning: Parameter 1 to modMainMenuHelper::buildXML() expected to be a reference, value given in 

 Редактируем следующий файл: /modules/mod_mainmenu/helper.php 

В нем ищем следующую строку:

function buildXML(&$params)

 и меняем ее на эту:

function buildXML($params)

 То есть просто убираем символ амперсанда. Вот сообственно и подлечили вывод меню. Сайт теперь работает как прежде.

 Заходим в админку в менеджер меню и видим следующее:

Warning: Parameter 4 to JHTMLMenu::treerecurse() expected to be a reference, value given in

Редактируем файл: /libraries/joomla/html/html.php

В нем ищем строку (примерно 87 строка ):

return call_user_func_array( array( $className, $func ), $args );

 и меняем ее на эту:

return call_user_func_array( array( $className, $func ), &$args );

 то есть добвляем символ ампераснда.

Вот по сути после этих 2 исправлений более менее нормальная работа должна быть восстановлена. Это конечно не весь список перехода на php 5.3 так как мы не производили замену устаревших функций на более новые. А если бы этим занялись то статья бы прилично увеличилась бы в объеме, и исправлений пришлось бы делать раз в 10 больше.

Комментарии  

 
0 #3 Administrator 22.04.2013 16:06
Цитирую Владимир:
Как получить весь список перехода на php 5.3?
У меня начала глючить фото галерея (морфиошоу) и др.

Весь список можно получить разбираясь с каждой ошибкой и устраняя ее.
Цитировать
 
 
0 #2 Владимир 16.04.2013 05:55
Как получить весь список перехода на php 5.3?
У меня начала глючить фото галерея (морфиошоу) и др.
Цитировать
 
 
0 #1 Алексей 06.11.2012 18:43
Warning: call_user_func_ array() expects parameter 2 to be array, string given in /var/www/vhosts/u3950794.plsk.regruhosting.ru/httpdocs/workininet.ru/administrator/components/com_comprofiler /plugin.foundation.php on line 1523
Цитировать
 

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


Защитный код
Обновить

Поиск

Голосование

Что Вы думаете на счет битрикса?
 

Все материалы раздела