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 classed marked as deprecated 12.1 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 trough HTTP (not via JavaScript). For example the session cookie.

Changes to extension installation

Use of the <install> base tag (from 1.5) is no longer supported; use <extension> instead

Suppport for install_script and uninstall_script, and the methods com_install and com_uninstall in these scripts, has been removed; use scriptfile instead

In language extensions, support for client="both" has been removed; package each client as a separate extension and optionally bundle them as a package extension instead

File paths for plugins no longer support the old 1.5 method (i.e. plugins/system/cache.php); each plugin must be in its own folder (i.e. plugins/system/cache/cache.php)

Changes to Components

In admin components the admin.*.php and toolbar.*.php are not automatically included anymore. This was a Joomla 1.0 legacy feature.

Moved files

All classes listed here should now be autoloadable. Explicit requires and includes have to be modified or removed.

Classes moved to the CMS

JFormFieldHelpsite

JFormFieldMedia

JFormFieldMenuitem

JFormFieldUser

JHelp

JTableContent

Classes moved within the platform

JDatabaseQuery subclasses

JInput (and all subclasses)

JTable (and all subclasses)

JArchive (and all subclasses)

Renamed classes

JFTP is now called JClientFtp

JLDAP is now called JClientLdap

JWebClient is now called JApplicationWebClient

Removed classes

JParameter (use JForm instead)

JElement and its subclasses

JFormFieldEditors (use JFormFieldPlugins instead)

JHtmlImage

JSimpleXML

JPane

Changes to classes

Base classes

JFactory

JFactory::getXMLParser() has been removed. For RSS and Atom use cases, use JFactory::getFeedParser() instead. To read XML files or strings use JFactory::getXML().

JFactory::_createConfig() has been removed. Use JFactory::createConfig() instead.

JFactory::_createSession() has been removed. Use JFactory::createSession() instead.

JFactory::_createDbo() has been removed. Use JFactory::createDbo() instead.

JFactory::_createMailer() has been removed. Use JFactory::createMailer() instead.

JFactory::_createDocument() has been removed. Use JFactory::createDocument() instead.

Application

JApplicationHelper

JApplicationHelper::getPath() has been removed. No replacement.

JApplicationHelper::_checkPath() has been removed. No replacement.

JController

JController::$_acoSection has been removed.

JController::$_acoSectionValue has been removed.

JController::authorize() has been removed. Use JController::authorise() instead.

JController:: setAccessControl() has been removed. Use JAccess.

Archive

Adapters

JArchiveBzip2 does not extend JObject anymore. You must not use any of JObject's methods.

JArchiveGzip does not extend JObject anymore. You must not use any of JObject's methods.

JArchiveTar does not extend JObject anymore. You must not use any of JObject's methods.

JArchiveZip does not extend JObject anymore. You must not use any of JObject's methods.

Base

JObject

JObject::toString() has been removed. Use JObject::__toString() instead.

Client

JClientLdap (formerly JLDAP)

JClientLdap does not extend JObject anymore. You must not use any of JObject's methods.

Database

JDatabase had been renamed JDatabaseDriver. JDatabase is still around (but deprecated) and is the base of JDatabaseDriver, this way type hints and instance of checks keep working.

Due to lazy-connecting a connection is only opened when running a query or explicitly calling JDatabseDriver::connected(). Beware of that when checking JDatabaseDriver::connected().

JDatabase

JDatabase::$hasQuoted has been removed.

JDatabase::$quoted has been removed.

JDatabase::addQuoted() has been removed.

JDatabase::hasUTF() has been removed.

JDatabase::debug() has been removed. Use JDatabase::setDebug() instead.

JDatabase::explain() has been removed.

JDatabase::getEscaped() has been removed. Use JDatabase::escape() instead.

JDatabase::getTableFields() has been removed. Use JDatabase::getTableColumns() instead.

JDatabase::getTicker() has been removed. Use JDatabase::count() instead.

JDatabase::isQuoted() has been removed.

JDatabase::loadResultArray() has been removed. Use JDatabase::loadColumn() instead.

JDatabase::nameQuote() has been removed. Use JDatabase::quoteName() instead.

JDatabase::queryBatch() has been removed.

Document

JDocument

JDocument::setMetaData() the $sync argument has been removed. It was broken beyond repair.

JDocumentRenderer

JDocumentRenderer does not extend JObject anymore. You must not use any of JObject's methods.

JDocumentFeed

JFeedItem does not extend JObject anymore. You must not use any of JObject's methods.

JFeedEnclosure does not extend JObject anymore. You must not use any of JObject's methods.

JFeedImage does not extend JObject anymore. You must not use any of JObject's methods.

JDocumentOpenSearch

JOpenSearchUrl does not extend JObject anymore. You must not use any of JObject's methods.

JOpenSearchImage does not extend JObject anymore. You must not use any of JObject's methods.

JDocumentXml

JDocumentXml::_name has been renamed to JDocumentXml::name

Environment

JBrowser

JBrowser does not extend JObject anymore. You must not use any of JObject's methods.

JBrowser::setQuirk() has been removed.

JBrowser::hasQuirk() has been removed.

JBrowser::getQuirk() has been removed.

JBrowser::setFeature() has been removed.

JBrowser::hasFeature() has been removed.

JBrowser::getFeature() has been removed.

JBrowser::_majorVersion has been renamed to JBrowser::majorVersion

JBrowser::_minorVersion has been renamed to JBrowser::minorVersion

JBrowser::_browser has been renamed to JBrowser::browser

JBrowser::_agent has been renamed to JBrowser::agent

JBrowser::_lowerAgent has been renamed to JBrowser::lowerAgent

JBrowser::_accept has been renamed to JBrowser::accept

JBrowser::_accept_parsed has been renamed to JBrowser::acceptParsed

JBrowser::_platform has been renamed to JBrowser::platform

JBrowser::_robots has been renamed to JBrowser::robots

JBrowser::_mobile has been renamed to JBrowser::mobile

JBrowser::_images has been renamed to JBrowser::images

JRequest

JRequest::clean() has been removed.

JRequest::_cleanVar() is now protected.

JURI

JURI does not extend JObject anymore. You must not use any of JObject's methods.

JUri::_uri has been renamed to JUri::uri

JUri::_scheme has been renamed to JUri::scheme

JUri::_host has been renamed to JUri::host

JUri::_port has been renamed to JUri::port

JUri::_user has been renamed to JUri::user

JUri::_pass has been renamed to JUri::pass

JUri::_path has been renamed to JUri::path

JUri::_query has been renamed to JUri::query

JUri::_fragment has been renamed to JUri::fragment

JUri::_vars has been renamed to JUri::vars

Error

JError

JError::isError() has been removed. Use instance of Exception instead.

JProfiler

JProfiler does not extend JObject anymore. You must not use any of JObject's methods.

JProfiler::_start has been renamed to JProfiler::start

JProfiler::_prefix has been renamed to JProfiler::prefix

JProfiler::_buffer has been renamed to JProfiler::buffer

JProfiler::_previous_time has been renamed to JProfiler::previousTime

JProfiler::_previous_mem has been renamed to JProfiler::previousMem

JProfiler::_iswin has been renamed to JProfiler::isWin

Filesystem

JStream

JStream::_fh has been renamed to JStream::fh

JStream::_filesize has been renamed to JStream::filesize

JStream::_context has been renamed to JStream::context

JStream::_contextOptions has been renamed to JStream::contextOptions

JStream::_openmode has been renamed to JStream::openmode

JStreamString

JStream::_currentstring has been renamed to JStream::currentString

JStream::_path has been renamed to JStream::path

JStream::_mode has been renamed to JStream::mode

JStream::_options has been renamed to JStream::options

JStream::_opened_path has been renamed to JStream::openedPath

JStream::_pos has been renamed to JStream::pos

JStream::_len has been renamed to JStream::len

JStream::_stat has been renamed to JStream::stat

Filter

JFilterInput

JFilterInput does not extend JObject anymore. You must not use any of JObject's methods.

HTML

JHtml

JHtml::_includeRelativeFiles() has been removed. Use JHtml::includeRelativeFiles() instead.

JHtml::core() has been removed. Use JHtmlBehavior::framework() instead.

JHtml::script() doesn't support a string as the second parameter anymore. This used to be the path to the file in Joomla 1.5 and has been removed now.

JHtml::stylesheet() doesn't support a string as the second parameter anymore. This used to be the path to the file in Joomla 1.5 and has been removed now.

JHtmlAccess

JHtmlAccess::assetgroups() the argument $config has been removed. It was previously unused.

JHtmlBehavior

JHtmlBehavior::mootools() has been removed. Use JHtmlBehavior::framework instead.

JHtmlBehavior::noframes() the argument $location has been removed. It was previously unused.

JHtmlList

JHtmlList::ordering() the argument $chop has been removed. It was previously unused.

JHtmlList::users(), the argument $reg has been removed.

JHtmlSelect

JHtmlSelect::_optionDefaults has been renamed to JHtmlSelect::optionDefaults

JToolBar

JToolBar does not extend JObject anymore. You must not use any of JObject's methods.

JButton

JButton does not extend JObject anymore. You must not use any of JObject's methods.

JPagination

JPagination::_viewall has been renamed to JPagination::viewall

JPagination::_additionalUrlParams has been renamed to JPagination::additionalUrlParams

Installer

JInstaller

JInstaller::getOverwrite() has been removed. Use JInstaller::isOverwrite() instead.

JInstaller::getUpgrade() has been removed. Use JInstaller::isUpgrade() instead.

JInstaller::_paths has been renamed to JInstaller::paths

JInstaller::_upgrade has been renamed to JInstaller::upgrade

JInstaller::_overwrite has been renamed to JInstaller::overwrite

JInstaller::_stepStack has been renamed to JInstaller::stepStack

JInstallerLanguage

JInstallerLanguage::_core as been renamed to JInstallerLanguage::core

Language

JLanguage

JLanguage::getPluralSufficesCallback() has been removed. Use JLanguage::getPluralSuffixesCallback() instead.

JLanguage::_parseLanguageFiles() has been removed. Use JLanguage::parseLanguageFiles() instead.

JLanguage::_parseXMLLanguageFiles() has been removed. Use JLanguage::parseXMLLanguageFiles() instead.

JLanguage::_parseXMLLanguageFile() has been removed. Use JLanguage::parseXMLLanguageFile() instead.

JLanguage::loadLanguage() the argument $overwrite has been removed. It was previously unused.

Registry

JRegistry

JRegistry::loadXML() has been removed. Use JRegistry::loadString() instead.

JRegistry::loadINI() has been removed. Use JRegistry::loadString() instead.

JRegistry::loadJSON() has been removed. Use JRegistry::loadString() instead.

JRegistry::makeNameSpace() has been removed. No replacement.

JRegistry::getNameSpaces() has been removed. No replacement.

JRegistry::getValue() has been removed. Use JRegistry::get() instead.

JRegistry::setValue() has been removed. Use JRegistry::set() instead.

JRegistry::loadSetupFile() has been removed. No replacement.

JRegistryFormatINI

JRegistryFormatINI::stringToObject() the second argument ($option) may not be a boolean anymore.

JRegistryFormatJSON

JRegistryFormatJSON::stringToObject() the second argument ($option) may not be a boolean anymore.

Session

JSessionStorageDatabase

JSessionStorageDatabase::_data has been renamed to JSessionStorageDatabase::data

Table

JTable

JTable::canDelete() has been removed.

JTable::toXML() has been removed.

Updater

JUpdate

JUpdate::_xml_parser has been renamed to JUpdate::xmlParser

JUpdate::_stack has been renamed to JUpdate::stack

JUpdate::_state_store has been renamed to JUpdate::stateStore

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.

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.

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.

Help

JHelp

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