Как подружить Joomla 1.5 и PHP 5.3

Как оказалось, на практике CMS Joomla 1.5, в том числе версия 1.5.26 не совместима с языком программирования PHP 5.3. В основном эта несовместимость, проявляется в нерабочем главном меню, в панели администрирования в меню не отображаются пункты (ссылки на материалы).

Решить возникшие проблемы можно двумя путями, или откатиться на более раннюю ветку PHP, к примеру 5.2 (но это конечно не наш выбор), либо оптимизировать Joomla.

Давайте исправим ошибки и доработаем Joomla 1.5, для работы с PHP 5.3

Для исправления ошибки с главным меню Joomla 1.5, находим файл modules/mod_mainmenu/helper.php и в 31 строке меняем:

function buildXML(&$params)

на

function buildXML($params)

Для исправления ошибки с отображением пунктов меню в Административной панели Joomla 1.5 сделаем следующее:

Находим /libraries/joomla/html/html/menu.php строка 124 и меняем:

function treerecurse( $id, $indent, $list, &$children, $maxlevel=9999, $level=0, $type=1 )


на

function treerecurse( $id, $indent, $list, $children, $maxlevel=9999, $level=0, $type=1 )

 

В файле /libraries/joomla/html/html/grid.php меняем информацию в строках строках 65, 93, 115, 157

function access( &$row, $i, $archived = NULL ) строка 65

function checkedOut( &$row, $i, $identifier = ‘id’ ) строка 93

function published( &$row, $i, $imgY = ‘tick.png’, $imgX = ‘publish_x.png’, $prefix=» ) строка 115

function _checkedOut( &$row, $overlib = 1 ) строка 157

заменяем на:

function access( $row, $i, $archived = NULL ) строка 65

function checkedOut( $row, $i, $identifier = ‘id’ ) строка 93

function published( $row, $i, $imgY = ‘tick.png’, $imgX = ‘publish_x.png’, $prefix=» ) строка 115

function _checkedOut( $row, $overlib = 1 ) строка 157

При возникновении подобной ошибки Joomla 1.5:


«Deprecated: Function eregi() is deprecated in …/modules/mod_cblogin/mod_cblogin.php on line 81»

Функция eregi() для PHP 5.3 устарела и должна быть заменена функцией preg_match(). Ищем eregi(«XXXYYYZZZ»,$str), в указанном в сообщении файле и заменяем s preg_match(«/XXXYYYZZZ/i»,$tr)

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

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

шестнадцать − четыре =