*JXMLElement::getAttribute() has been removed. Use SimpleXMLElement::attributes() instead.

*JXMLElement::getAttribute() has been removed. Use SimpleXMLElement::attributes() instead.

+

+

==== JLog ====

+

*JLog::getInstance has been removed. It must be replaced with JLogLogger (JLogLoggerFormattedtext), methods signatures have also changed.

== JavaScript ==

== JavaScript ==

Line 396:

Line 407:

=== Component Classes ===

=== Component Classes ===

*MenusModelItem::getItem() no longer returns a JObject but a stdClass.

*MenusModelItem::getItem() no longer returns a JObject but a stdClass.

+

+

=== Smart Search Classes ===

+

*To improve multi-database support in the Smart Search indexer, FinderIndexer is now an abstract class and is extended by classes supporting each database named FinderIndexerDriver<DB> (i.e. FinderIndexerDriverMysql). The index, remove, and optimize public methods (as well as additional protected methods) are no longer static. Users requiring a FinderIndexer instance should call FinderIndexer::getInstance() (this is done in the constructor for FinderIndexerAdapter, which all Smart Search plugins should be extending). Users are required to change calls to FinderIndexer::index($item) to $this->indexer->index($item) in their Smart Search plugins.

Platform

The platform removed a larger number of deprecated classes and methods. For most extensions written for Joomla 2.5, the required changes should be reasonably small. Note that there are still deprecated classes in the platform that will be removed in future versions -- developers should stop using them where possible.

Updated System Requirements

The system requirements have changed in the following points:

PHP 5.3.1

register_globals must be off

magic_quotes_gpc must be off

General changes

Almost all functions, methods, members and classes marked as deprecated in Platform 11.4 have been removed. They won't be listed in this document.

Appending ?no_html to an URL to get a RAW view is not supported anymore (this was an old Joomla 1.0 feature).

The DS constant has been removed. If you really need it you can use DIRECTORY_SEPARATOR instead.

Many more function arguments have been type hinted, including existing classes. Make sure you're always passing values of the correct type.

The name of modules now have to start with "mod_".

Extensions need to set the registeredurlparams now, the fall back on the URL has been removed.

Some cookies are only accessible through HTTP (not via JavaScript). For example; the session cookie.

Due to upcoming changes to the MVC implementation in the platform, JModel, JView, and JController are re-used as the names of the new interfaces. For now, use JModelLegacy, JViewLegacy and JControllerLegacy instead.

JFolder and JFile now require you to do your own jimport statement (You always had to do that, just before it was rather likely something else had loaded them before)

Updater

JUpdate

JUpdate::$_current_update has been renamed to JUpdate::$currentUpdate.

JUpdater

JUpdater::arrayUnique() has been removed. Use JArrayHelper::arrayUnique() instead.

User

JAuthentication

The constant JAUTHENTICATE_STATUS_SUCCESS has been removed. Use JAuthentication::STATUS_SUCCESS instead.

The constant JAUTHENTICATE_STATUS_CANCEL has been removed. No replacement.

The constant JAUTHENTICATE_STATUS_FAILURE has been removed. Use JAuthentication::STATUS_FAILURE instead.

JAuthentication::$_observers has been renamed to JAuthentication::$observers.

JAuthentication::$_state has been renamed to JAuthentication::$state.

JAuthentication::$_methods has been renamed to JAuthentication::$methods.

JUser

JUser::getParameters() has been removed.

Juser::authorisedLevels() has been removed. Use JUser::getAuthorisedViewLevels() instead.

Juser::authorize() has been removed. Use JUser::authorise() instead.

JUser::$usertype has been removed.

Utility

JBuffer

JBuffer::$_buffers has been renamed to JBuffer::$buffers.

JDate

JDate::toMysql() has been removed. Use JDate::toSql() instead.

JDate::toFormat() has been removed. Use JDate::format() instead.

JDate::setOffset() has been removed. Use JDate::setTimezone() instead

JDate::$offsets has been removed.

JDate::__construct() doesn't accept an numeric value for $tz anymore.

JDate::$_tz has been renamed to JDate::$tz.

JUtility

JUtility::sendMail() has been removed. Use JMail::sendMail() instead.

JUtility::sendAdminMail() has been removed. Use JMail::sendAdminMail() instead.

JUtility::getHash() has been removed. Use JApplication::getHash() instead.

JUtility::getToken() has been removed. Use JSession::getFormToken() instead.

JUtility::isWinOS() has been removed. Use JApplication::isWinOS() instead.

JUtility::dump() has been removed. No replacement.

JUtility::array_unshift_ref() has been removed. No replacement.

JUtility::array_unshift_ref() has been removed. No replacement.

JXMLElement

JXMLElement::data() has been removed.

JXMLElement::getAttribute() has been removed. Use SimpleXMLElement::attributes() instead.

JLog

JLog::getInstance has been removed. It must be replaced with JLogLogger (JLogLoggerFormattedtext), methods signatures have also changed.

JavaScript

Compatibility with MooTools 1.2 has been removed.

Forms that have name="adminForm" now also require id="adminForm".

checkAll() has been removed. Use Joomla.checkAll() instead.

isChecked() has been removed. Use Joomla.isChecked() instead.

popupWindow() has been removed. Use Joomla.popupWindow() instead.

tableOrdering() has been removed. Use Joomla.tableOrdering() instead.

CMS

General changes

JUtility is not always loaded. If you need it you have to add jimport('joomla.utilities.utility'); to your code.

Changes to classes

Component Classes

MenusModelItem::getItem() no longer returns a JObject but a stdClass.

Smart Search Classes

To improve multi-database support in the Smart Search indexer, FinderIndexer is now an abstract class and is extended by classes supporting each database named FinderIndexerDriver<DB> (i.e. FinderIndexerDriverMysql). The index, remove, and optimize public methods (as well as additional protected methods) are no longer static. Users requiring a FinderIndexer instance should call FinderIndexer::getInstance() (this is done in the constructor for FinderIndexerAdapter, which all Smart Search plugins should be extending). Users are required to change calls to FinderIndexer::index($item) to $this->indexer->index($item) in their Smart Search plugins.

Help

JHelp

JHelp::createSiteList() the argument $selected has been removed. It was unused.