Некоторые проблемы при миграции с Joomla! 2.5 на Joomla! 3.x

DS

Так как в Joomla! 3.x константа DS больше не используется, в некоторых шаблонах потребуется заменить ее на что-то подходящее. Самое лёгкое и безболезненное решение - задать для этой константы определение в индексном файле шаблона, написанном на PHP, в качестве DIRECTORY_SEPARATOR.

Для этого после строки

[block background="#dff0d8" color="#468847" padding="15px" border="0" type="rounded"]

defined( '_JEXEC' ) or die( 'Restricted index access' );

[/block]

следует написать:

[block background="#dff0d8" color="#468847" padding="15px" border="0" type="rounded"]

if(!defined('DS')){

define('DS',DIRECTORY_SEPARATOR);
}

[/block]

 

loadJSON

Если вы получили такое сообщение об ошибке:

Fatal error: Call to undefined method Joomla\Registry\Registry::loadJSON()

то замените в файле, на который указывает система, функцию

[block background="#dff0d8" color="#468847" padding="15px" border="0" type="rounded"]

loadJSON($plugin->params);

[/block]

на

[block background="#dff0d8" color="#468847" padding="15px" border="0" type="rounded"]

loadString($plugin->params);

[/block]

В Joomla 3 не используется функция JRegistry::loadJSON().

 

mootools

Ошибка 500: JHtmlBehavior::mootools not found

Выражение behavior.mootools использовалось в Joomla! 1.5, устарело с версии 2.5.4 и не применяется в Joomla! 3.x.

Решение, кроме отключения расширений, состоит в редактировании кода. Все записи

[block background="#dff0d8" color="#468847" padding="15px" border="0" type="rounded"]

behavior.mootools

[/block]

следует заменить на

[block background="#dff0d8" color="#468847" padding="15px" border="0" type="rounded"]

behavior.framework

[/block]

 

toMySQL

Fatal error: Call to undefined method JDate::toMySQL()

При возникновении такой ошибки замените

[block background="#dff0d8" color="#468847" padding="15px" border="0" type="rounded"]

$date->toMySQL();

[/block]

на

[block background="#dff0d8" color="#468847" padding="15px" border="0" type="rounded"]

$date->toSQL();

[/block]

"toMySQL" устарело в Jooml 3.0 и заменено на "toSQL".