<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Akfaisel</id>
	<title>Joomla! Documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Akfaisel"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Akfaisel"/>
	<updated>2026-08-25T03:37:33Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Changing_the_Login_Form_module_settings&amp;diff=1020487</id>
		<title>Changing the Login Form module settings</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Changing_the_Login_Form_module_settings&amp;diff=1020487"/>
		<updated>2024-01-14T05:49:06Z</updated>

		<summary type="html">&lt;p&gt;Akfaisel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
To change settings that control the information shown in the Login Form module and some aspects of its behaviour:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
[[File:Login Form Module.jpg|600px|frame|center]]&lt;br /&gt;
# Log in to the Administrator Backend. To learn how to do this read: [[S:MyLanguage/Logging in or out of the Administrator back-end|Logging in or out of the Administrator Backend]].&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
# Click the {{rarr|Extensions,Modules}} menu item.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
# From the list of Modules find the &#039;&#039;Login&#039;&#039; type. There may be several pages of Modules listed so you might need to look on subsequent pages. You can make the search easier by clicking the drop-down list containing &#039;&#039;Select Type&#039;&#039; and clicking the &#039;&#039;Login&#039;&#039; item. (They are listed in alphabetical order.)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
# Click the Module Name, i.e. &#039;&#039;Login Form&#039;&#039;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
# You will see the &#039;&#039;Module: [Edit]&#039;&#039; screen that contains four groups of fields: &#039;&#039;Module&#039;&#039;, &#039;&#039;Menu Assignment&#039;&#039;, &#039;&#039;Advanced&#039;&#039; and &#039;&#039;Module Permissions&#039;&#039;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
# Make the needed changes.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
# Click the &#039;&#039;Save&#039;&#039; or &#039;&#039;Save &amp;amp; Close&#039;&#039; toolbar button to implement the new settings.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
#* The &#039;&#039;Save&#039;&#039; toolbar button will save your changes but leave you in the Module Edit screen.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
#* The &#039;&#039;Save &amp;amp; Close&#039;&#039; toolbar button will save your changes and return you to the Module list screen.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
# You should see a green message: &#039;&#039;Module successfully saved&#039;&#039; that confirms your changes have been saved.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Module Management]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Akfaisel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Changing_the_Login_Form_module_settings&amp;diff=1020486</id>
		<title>Changing the Login Form module settings</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Changing_the_Login_Form_module_settings&amp;diff=1020486"/>
		<updated>2024-01-14T05:45:48Z</updated>

		<summary type="html">&lt;p&gt;Akfaisel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
To change settings that control the information shown in the Login Form module and some aspects of its behaviour:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
[[File:Login Form Module.jpg|thumb]]&lt;br /&gt;
# Log in to the Administrator Backend. To learn how to do this read: [[S:MyLanguage/Logging in or out of the Administrator back-end|Logging in or out of the Administrator Backend]].&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
# Click the {{rarr|Extensions,Modules}} menu item.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
# From the list of Modules find the &#039;&#039;Login&#039;&#039; type. There may be several pages of Modules listed so you might need to look on subsequent pages. You can make the search easier by clicking the drop-down list containing &#039;&#039;Select Type&#039;&#039; and clicking the &#039;&#039;Login&#039;&#039; item. (They are listed in alphabetical order.)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
# Click the Module Name, i.e. &#039;&#039;Login Form&#039;&#039;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
# You will see the &#039;&#039;Module: [Edit]&#039;&#039; screen that contains four groups of fields: &#039;&#039;Module&#039;&#039;, &#039;&#039;Menu Assignment&#039;&#039;, &#039;&#039;Advanced&#039;&#039; and &#039;&#039;Module Permissions&#039;&#039;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
# Make the needed changes.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
# Click the &#039;&#039;Save&#039;&#039; or &#039;&#039;Save &amp;amp; Close&#039;&#039; toolbar button to implement the new settings.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
#* The &#039;&#039;Save&#039;&#039; toolbar button will save your changes but leave you in the Module Edit screen.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
#* The &#039;&#039;Save &amp;amp; Close&#039;&#039; toolbar button will save your changes and return you to the Module list screen.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
# You should see a green message: &#039;&#039;Module successfully saved&#039;&#039; that confirms your changes have been saved.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
[[Category:FAQ]]&lt;br /&gt;
[[Category:Module Management]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Akfaisel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Login_Form_Module.jpg&amp;diff=1020485</id>
		<title>File:Login Form Module.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Login_Form_Module.jpg&amp;diff=1020485"/>
		<updated>2024-01-14T05:45:25Z</updated>

		<summary type="html">&lt;p&gt;Akfaisel: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Login Form Module&lt;/div&gt;</summary>
		<author><name>Akfaisel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77502</id>
		<title>Potential backward compatibility issues in Joomla 3 and Joomla Platform 12.2</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77502"/>
		<updated>2012-11-10T03:44:03Z</updated>

		<summary type="html">&lt;p&gt;Akfaisel: JFile&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{incomplete}}{{RightTOC}}This document tracks potential backward compatibility issues for Joomla 3.0 and Joomla Platform 12.1, which is included in Joomla 3.0. Listed are issues which potentially break extensions.&lt;br /&gt;
Please help make this document complete.&lt;br /&gt;
&lt;br /&gt;
The base of this comparison is Joomla 2.5/Platform 11.4.&lt;br /&gt;
&lt;br /&gt;
Backwards compatibility issues were also tracked for Joomla 2.5: [[Potential backward compatibility issues in Joomla 2.5 and Joomla Platform 11.4]]&lt;br /&gt;
&lt;br /&gt;
= Platform =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Updated System Requirements ==&lt;br /&gt;
The system requirements have changed in the following points:&lt;br /&gt;
*PHP 5.3.1&lt;br /&gt;
*register_globals must be off&lt;br /&gt;
*magic_quotes_gpc must be off&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*Almost all functions, methods, members and classes marked as deprecated in Platform 11.4 have been removed. They won&#039;t be listed in this document.&lt;br /&gt;
*Appending ?no_html to an URL to get a RAW view is not supported anymore (this was an old Joomla 1.0 feature).&lt;br /&gt;
*The DS constant has been removed. If you really need it you can use DIRECTORY_SEPARATOR instead.&lt;br /&gt;
*Many more function arguments have been type hinted, including existing classes. Make sure you&#039;re always passing values of the correct type.&lt;br /&gt;
*The name of modules now have to start with &amp;quot;mod_&amp;quot;.&lt;br /&gt;
*Extensions need to set the registeredurlparams now, the fall back on the URL has been removed.&lt;br /&gt;
*Some cookies are only accessible through HTTP (not via JavaScript). For example; the session cookie.&lt;br /&gt;
*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.&lt;br /&gt;
*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)&lt;br /&gt;
*Joomla! 3.0 usually throws exceptions instead of returning JError or JException. Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Changes to extension installation ==&lt;br /&gt;
*Use of the &amp;lt;install&amp;gt; base tag (from 1.5) is no longer supported; use &amp;lt;extension&amp;gt; instead.&lt;br /&gt;
*Suppport for install_script and uninstall_script, and the methods com_install and com_uninstall in these scripts, has been removed; use scriptfile instead.&lt;br /&gt;
*In language extensions, support for client=&amp;quot;both&amp;quot; has been removed; prepare each client as a separate extension and optionally bundle them as a package extension instead.&lt;br /&gt;
*File paths for plugins no longer support the old 1.5 method (i.e. plugins/system/cache.php); each plugin must now be in its own folder (i.e. plugins/system/cache/cache.php).&lt;br /&gt;
&lt;br /&gt;
== Changes to Components ==&lt;br /&gt;
*In admin components the admin.*.php and toolbar.*.php are not automatically included anymore (this was a Joomla 1.0 legacy feature).&lt;br /&gt;
&lt;br /&gt;
== Moved files ==&lt;br /&gt;
All classes listed here should now be autoloadable. Explicit requires and includes have to be modified or removed.&lt;br /&gt;
&lt;br /&gt;
== Plugin Events ==&lt;br /&gt;
* onContentBeforeSave event now receives $article by value not by reference. Sample definition: public function onContentBeforeSave($context, $article, $isNew).&lt;br /&gt;
* onContentAfterSave event now receives $article by value not by reference. Sample definition: public function onContentAfterSave($context, $article, $isNew).&lt;br /&gt;
&lt;br /&gt;
== Renamed classes ==&lt;br /&gt;
*JFTP is now called JClientFtp&lt;br /&gt;
*JLDAP is now called JClientLdap&lt;br /&gt;
*JWebClient is now called JApplicationWebClient&lt;br /&gt;
&lt;br /&gt;
== Removed classes ==&lt;br /&gt;
*JParameter (use JForm instead)&lt;br /&gt;
*JElement and its subclasses&lt;br /&gt;
*JFormFieldEditors (use JFormFieldPlugins instead)&lt;br /&gt;
*JHtmlImage&lt;br /&gt;
*JRules (use JAccessRules instead)&lt;br /&gt;
*JSimpleXML&lt;br /&gt;
*JPane&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Base classes ===&lt;br /&gt;
&lt;br /&gt;
==== JFactory ====&lt;br /&gt;
*JFactory::getXMLParser() has been removed. For RSS and Atom use cases, use JFactory::getFeedParser() instead. To read XML files or strings use JFactory::getXML().&lt;br /&gt;
*JFactory::_createConfig() has been removed. Use JFactory::createConfig() instead.&lt;br /&gt;
*JFactory::_createSession() has been removed. Use JFactory::createSession() instead.&lt;br /&gt;
*JFactory::_createDbo() has been removed. Use JFactory::createDbo() instead.&lt;br /&gt;
*JFactory::_createMailer() has been removed. Use JFactory::createMailer() instead.&lt;br /&gt;
*JFactory::_createDocument() has been removed. Use JFactory::createDocument() instead.&lt;br /&gt;
&lt;br /&gt;
=== Application ===&lt;br /&gt;
&lt;br /&gt;
==== JApplicationHelper ====&lt;br /&gt;
*JApplicationHelper::getPath() has been removed. No replacement.&lt;br /&gt;
*JApplicationHelper::_checkPath() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
=== Component ===&lt;br /&gt;
&lt;br /&gt;
==== JComponentHelper ====&lt;br /&gt;
*The behavior of JComponentHelper::isEnabled() has been changed to match developer expectations.&lt;br /&gt;
&lt;br /&gt;
=== MVC ===&lt;br /&gt;
&lt;br /&gt;
==== JController ====&lt;br /&gt;
*JController::$_acoSection has been removed.&lt;br /&gt;
*JController::$_acoSectionValue has been removed.&lt;br /&gt;
*JController::authorize() has been removed. Use JController::authorise() instead.&lt;br /&gt;
*JController::setAccessControl() has been removed. Use JAccess.&lt;br /&gt;
*JController::getInstance() has been removed. Use JControllerLegacy::getInstance() instead.&lt;br /&gt;
&lt;br /&gt;
==== JControllerLegacy ====&lt;br /&gt;
* JControllerLegacy::display() needs an extra parameter: ($cachable = false, $urlparams = false).&lt;br /&gt;
&lt;br /&gt;
==== JModelAdmin ====&lt;br /&gt;
* JModelAdmin::generateNewTitle() is backwards incompatible with Joomla! 2.5 (first parameter has been removed).&lt;br /&gt;
* JModelAdmin::prepareTable(): first parameter isn&#039;t reference anymore.&lt;br /&gt;
&lt;br /&gt;
=== Archive ===&lt;br /&gt;
&lt;br /&gt;
==== Adapters ====&lt;br /&gt;
*JArchiveBzip2 does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveGzip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveTar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveZip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Base ===&lt;br /&gt;
&lt;br /&gt;
==== JObject ====&lt;br /&gt;
*JObject::toString() has been removed. Use JObject::__toString() instead.&lt;br /&gt;
&lt;br /&gt;
=== Client ===&lt;br /&gt;
&lt;br /&gt;
==== JClientLdap (formerly JLDAP) ====&lt;br /&gt;
*JClientLdap does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Due to lazy-connecting, a connection is only opened when running a query or explicitly calling JDatabaseDriver::connected(). Beware of that when checking JDatabaseDriver::connected().&lt;br /&gt;
&lt;br /&gt;
==== JDatabase ====&lt;br /&gt;
*JDatabase::$hasQuoted has been removed.&lt;br /&gt;
*JDatabase::$quoted has been removed.&lt;br /&gt;
*JDatabase::addQuoted() has been removed.&lt;br /&gt;
*JDatabase::hasUTF() has been removed.&lt;br /&gt;
*JDatabase::debug() has been removed. Use JDatabase::setDebug() instead.&lt;br /&gt;
*JDatabase::explain() has been removed.&lt;br /&gt;
*JDatabase::getEscaped() has been removed. Use JDatabase::escape() instead.&lt;br /&gt;
*JDatabase::getTableFields() has been removed. Use JDatabase::getTableColumns() instead.&lt;br /&gt;
*JDatabase::getTicker() has been removed. Use JDatabase::count() instead.&lt;br /&gt;
*JDatabase::isQuoted() has been removed.&lt;br /&gt;
*JDatabase::loadResultArray() has been removed. Use JDatabase::loadColumn() instead.&lt;br /&gt;
*JDatabase::nameQuote() has been removed. Use JDatabase::quoteName() instead.&lt;br /&gt;
*JDatabase::queryBatch() has been removed.&lt;br /&gt;
*JDatabase::query() has been deprecated. JDatabase::execute() should be used alternatively&lt;br /&gt;
&lt;br /&gt;
=== File ===&lt;br /&gt;
==== JFile ====&lt;br /&gt;
*JFile::read() has been deprecated. Use file_get_contents() instead.&lt;br /&gt;
&lt;br /&gt;
=== Document ===&lt;br /&gt;
&lt;br /&gt;
==== JDocument ====&lt;br /&gt;
*JDocument::setMetaData() the $sync argument has been removed. It was broken beyond repair.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentRenderer ====&lt;br /&gt;
*JDocumentRenderer does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentFeed ====&lt;br /&gt;
*JFeedItem does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedEnclosure does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentOpenSearch ====&lt;br /&gt;
*JOpenSearchUrl does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JOpenSearchImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentXml ====&lt;br /&gt;
*JDocumentXml::$_name has been renamed to JDocumentXml::$name.&lt;br /&gt;
&lt;br /&gt;
=== Environment ===&lt;br /&gt;
&lt;br /&gt;
==== JBrowser ====&lt;br /&gt;
*JBrowser does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JBrowser::setQuirk() has been removed.&lt;br /&gt;
*JBrowser::hasQuirk() has been removed.&lt;br /&gt;
*JBrowser::getQuirk() has been removed.&lt;br /&gt;
*JBrowser::setFeature() has been removed.&lt;br /&gt;
*JBrowser::hasFeature() has been removed.&lt;br /&gt;
*JBrowser::getFeature() has been removed.&lt;br /&gt;
*JBrowser::$_majorVersion has been renamed to JBrowser::$majorVersion.&lt;br /&gt;
*JBrowser::$_minorVersion has been renamed to JBrowser::$minorVersion.&lt;br /&gt;
*JBrowser::$_browser has been renamed to JBrowser::$browser.&lt;br /&gt;
*JBrowser::$_agent has been renamed to JBrowser::$agent.&lt;br /&gt;
*JBrowser::$_lowerAgent has been renamed to JBrowser::$lowerAgent.&lt;br /&gt;
*JBrowser::$_accept has been renamed to JBrowser::$accept.&lt;br /&gt;
*JBrowser::$_accept_parsed has been renamed to JBrowser::$acceptParsed.&lt;br /&gt;
*JBrowser::$_platform has been renamed to JBrowser::$platform.&lt;br /&gt;
*JBrowser::$_robots has been renamed to JBrowser::$robots.&lt;br /&gt;
*JBrowser::$_mobile has been renamed to JBrowser::$mobile.&lt;br /&gt;
*JBrowser::$_images has been renamed to JBrowser::$images.&lt;br /&gt;
&lt;br /&gt;
==== JRequest ====&lt;br /&gt;
*JRequest::clean() has been removed.&lt;br /&gt;
*JRequest::_cleanVar() is now protected.&lt;br /&gt;
*JRequest::getCmd() is deprecated. Use JFactory::getApplication()-&amp;gt;input-&amp;gt;get() instead.&lt;br /&gt;
*JRequest::getVar() is deprecated. Use JFactory::getApplication()-&amp;gt;input-&amp;gt;get() instead.&lt;br /&gt;
*JRequest::checkToken() is deprecated. Use JSession::checkToken() instead. If you are using JRequest::checkToken(&#039;default&#039;), use JSession::checkToken(&#039;request&#039;)instead.&lt;br /&gt;
&lt;br /&gt;
==== JUri ====&lt;br /&gt;
*JURI has been renamed to JUri. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JUri does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JUri::$_uri has been renamed to JUri::$uri.&lt;br /&gt;
*JUri::$_scheme has been renamed to JUri::$scheme.&lt;br /&gt;
*JUri::$_host has been renamed to JUri::$host.&lt;br /&gt;
*JUri::$_port has been renamed to JUri::$port.&lt;br /&gt;
*JUri::$_user has been renamed to JUri::$user.&lt;br /&gt;
*JUri::$_pass has been renamed to JUri::$pass.&lt;br /&gt;
*JUri::$_path has been renamed to JUri::$path.&lt;br /&gt;
*JUri::$_query has been renamed to JUri::$query.&lt;br /&gt;
*JUri::$_fragment has been renamed to JUri::$fragment.&lt;br /&gt;
*JUri::$_vars has been renamed to JUri::$vars.&lt;br /&gt;
&lt;br /&gt;
=== Error ===&lt;br /&gt;
&lt;br /&gt;
==== JError ====&lt;br /&gt;
*JError has been deprecated. Use Exceptions instead.&lt;br /&gt;
*&#039;&#039;&#039;WARNING&#039;&#039;&#039;: Many functions that were previously returning JError or false are now throwing exceptions.&lt;br /&gt;
&lt;br /&gt;
Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
==== JProfiler ====&lt;br /&gt;
*JProfiler does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JProfiler::$_start has been renamed to JProfiler::$start.&lt;br /&gt;
*JProfiler::$_prefix has been renamed to JProfiler::$prefix.&lt;br /&gt;
*JProfiler::$_buffer has been renamed to JProfiler::$buffer.&lt;br /&gt;
*JProfiler::$_previous_time has been renamed to JProfiler::$previousTime.&lt;br /&gt;
*JProfiler::$_previous_mem has been renamed to JProfiler::$previousMem.&lt;br /&gt;
*JProfiler::$_iswin has been renamed to JProfiler::$isWin.&lt;br /&gt;
&lt;br /&gt;
=== Filesystem ===&lt;br /&gt;
&lt;br /&gt;
==== JStream ====&lt;br /&gt;
*JStream::$_fh has been renamed to JStream::$fh.&lt;br /&gt;
*JStream::$_filesize has been renamed to JStream::$filesize.&lt;br /&gt;
*JStream::$_context has been renamed to JStream::$context.&lt;br /&gt;
*JStream::$_contextOptions has been renamed to JStream::$contextOptions.&lt;br /&gt;
*JStream::$_openmode has been renamed to JStream::$openmode.&lt;br /&gt;
&lt;br /&gt;
==== JStreamString ====&lt;br /&gt;
*JStream::$_currentstring has been renamed to JStream::$currentString.&lt;br /&gt;
*JStream::$_path has been renamed to JStream::$path.&lt;br /&gt;
*JStream::$_mode has been renamed to JStream::$mode.&lt;br /&gt;
*JStream::$_options has been renamed to JStream::$options.&lt;br /&gt;
*JStream::$_opened_path has been renamed to JStream::$openedPath.&lt;br /&gt;
*JStream::$_pos has been renamed to JStream::$pos.&lt;br /&gt;
*JStream::$_len has been renamed to JStream::$len.&lt;br /&gt;
*JStream::$_stat has been renamed to JStream::$stat.&lt;br /&gt;
&lt;br /&gt;
=== Filter ===&lt;br /&gt;
&lt;br /&gt;
==== JFilterInput ====&lt;br /&gt;
*JFilterInput does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== HTML ===&lt;br /&gt;
&lt;br /&gt;
==== JHtml ====&lt;br /&gt;
*JHTML has been renamed to JHtml. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JHtml::_includeRelativeFiles() has been removed. Use JHtml::includeRelativeFiles() instead.&lt;br /&gt;
*JHtml::core() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtml::script() doesn&#039;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.&lt;br /&gt;
*JHtml::stylesheet() doesn&#039;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.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlAccess ====&lt;br /&gt;
*JHtmlAccess::assetgroups() the argument $config has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlBehavior ====&lt;br /&gt;
*JHtmlBehavior::mootools() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtmlBehavior::noframes() the argument $location has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlList ====&lt;br /&gt;
*JHtmlList::ordering() the argument $chop has been removed. It was previously unused.&lt;br /&gt;
*JHtmlList::users(), the argument $reg has been removed.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlSelect ====&lt;br /&gt;
*JHtmlSelect::$_optionDefaults has been renamed to JHtmlSelect::$optionDefaults.&lt;br /&gt;
&lt;br /&gt;
==== JToolBar ====&lt;br /&gt;
*JToolBar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JToolBar no longer supports the &#039;X&#039; functions (eg, addNewX, editListX) that hide the main menu before doing the function.&lt;br /&gt;
&lt;br /&gt;
==== JButton ====&lt;br /&gt;
*JButton does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JPagination ====&lt;br /&gt;
*JPagination::$_viewall has been renamed to JPagination::$viewall.&lt;br /&gt;
*JPagination::$_additionalUrlParams has been renamed to JPagination::$additionalUrlParams.&lt;br /&gt;
&lt;br /&gt;
=== Installer ===&lt;br /&gt;
&lt;br /&gt;
==== JInstaller ====&lt;br /&gt;
*JInstaller::getOverwrite() has been removed. Use JInstaller::isOverwrite() instead.&lt;br /&gt;
*JInstaller::getUpgrade() has been removed. Use JInstaller::isUpgrade() instead.&lt;br /&gt;
*JInstaller::$_paths has been renamed to JInstaller::$paths.&lt;br /&gt;
*JInstaller::$_upgrade has been renamed to JInstaller::$upgrade.&lt;br /&gt;
*JInstaller::$_overwrite has been renamed to JInstaller::$overwrite.&lt;br /&gt;
*JInstaller::$_stepStack has been renamed to JInstaller::$stepStack.&lt;br /&gt;
&lt;br /&gt;
==== JInstallerLanguage ====&lt;br /&gt;
*JInstallerLanguage::$_core as been renamed to JInstallerLanguage::$core.&lt;br /&gt;
&lt;br /&gt;
=== Language ===&lt;br /&gt;
&lt;br /&gt;
==== JLanguage ====&lt;br /&gt;
*JLanguage::getPluralSufficesCallback() has been removed. Use JLanguage::getPluralSuffixesCallback() instead.&lt;br /&gt;
*JLanguage::_parseLanguageFiles() has been removed. Use JLanguage::parseLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFiles() has been removed. Use JLanguage::parseXMLLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFile() has been removed. Use JLanguage::parseXMLLanguageFile() instead.&lt;br /&gt;
*JLanguage::loadLanguage() the argument $overwrite has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
=== Registry ===&lt;br /&gt;
&lt;br /&gt;
==== JRegistry ====&lt;br /&gt;
*JRegistry::loadXML() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadINI() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadJSON() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::makeNameSpace() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getNameSpaces() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getValue() has been removed. Use JRegistry::get() instead.&lt;br /&gt;
*JRegistry::setValue() has been removed. Use JRegistry::set() instead.&lt;br /&gt;
*JRegistry::loadSetupFile() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatINI ====&lt;br /&gt;
*JRegistryFormatINI::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatJSON ====&lt;br /&gt;
*JRegistryFormatJSON::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
=== Session ===&lt;br /&gt;
&lt;br /&gt;
==== JSessionStorageDatabase ====&lt;br /&gt;
*JSessionStorageDatabase::$_data has been renamed to JSessionStorageDatabase::$data.&lt;br /&gt;
&lt;br /&gt;
=== Table ===&lt;br /&gt;
&lt;br /&gt;
==== JTable ====&lt;br /&gt;
*JTable::getInstance() parameters are now case sensitive, e.g. &#039;MenuType&#039;.&lt;br /&gt;
*JTable::canDelete() has been removed.&lt;br /&gt;
*JTable::toXML() has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Updater ===&lt;br /&gt;
&lt;br /&gt;
==== JUpdate ====&lt;br /&gt;
*JUpdate::$_xml_parser has been renamed to JUpdate::$xmlParser.&lt;br /&gt;
*JUpdate::$_stack has been renamed to JUpdate::$stack.&lt;br /&gt;
*JUpdate::$_state_store has been renamed to JUpdate::$stateStore.&lt;br /&gt;
*JUpdate::$_current_update has been renamed to JUpdate::$currentUpdate.&lt;br /&gt;
&lt;br /&gt;
==== JUpdater ====&lt;br /&gt;
*JUpdater::arrayUnique() has been removed. Use JArrayHelper::arrayUnique() instead.&lt;br /&gt;
&lt;br /&gt;
=== User ===&lt;br /&gt;
&lt;br /&gt;
==== JAuthentication ====&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_SUCCESS has been removed. Use JAuthentication::STATUS_SUCCESS instead.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_CANCEL has been removed. No replacement.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_FAILURE has been removed. Use JAuthentication::STATUS_FAILURE instead.&lt;br /&gt;
*JAuthentication::$_observers has been renamed to JAuthentication::$observers.&lt;br /&gt;
*JAuthentication::$_state has been renamed to JAuthentication::$state.&lt;br /&gt;
*JAuthentication::$_methods has been renamed to JAuthentication::$methods.&lt;br /&gt;
&lt;br /&gt;
==== JUser ====&lt;br /&gt;
*JUser::getParameters() has been removed.&lt;br /&gt;
*Juser::authorisedLevels() has been removed. Use JUser::getAuthorisedViewLevels() instead.&lt;br /&gt;
*Juser::authorize() has been removed. Use JUser::authorise() instead.&lt;br /&gt;
*JUser::$usertype has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Utility ===&lt;br /&gt;
&lt;br /&gt;
==== JBuffer ====&lt;br /&gt;
*JBuffer::$_buffers has been renamed to JBuffer::$buffers.&lt;br /&gt;
&lt;br /&gt;
==== JDate ====&lt;br /&gt;
*JDate::toMysql() has been removed. Use JDate::toSql() instead.&lt;br /&gt;
*JDate::toFormat() has been removed. Use JDate::format() instead.&lt;br /&gt;
*JDate::setOffset() has been removed. Use JDate::setTimezone() instead&lt;br /&gt;
*JDate::$offsets has been removed.&lt;br /&gt;
*JDate::__construct() doesn&#039;t accept an numeric value for $tz anymore.&lt;br /&gt;
*JDate::$_tz has been renamed to JDate::$tz.&lt;br /&gt;
&lt;br /&gt;
==== JUtility ====&lt;br /&gt;
*JUtility::sendMail() has been removed. Use JMail::sendMail() instead.&lt;br /&gt;
*JUtility::sendAdminMail() has been removed. Use JMail::sendAdminMail() instead.&lt;br /&gt;
*JUtility::getHash() has been removed. Use JApplication::getHash() instead.&lt;br /&gt;
*JUtility::getToken() has been removed. Use JSession::getFormToken() instead.&lt;br /&gt;
*JUtility::isWinOS() has been removed. Use JApplication::isWinOS() instead.&lt;br /&gt;
*JUtility::dump() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JXMLElement ====&lt;br /&gt;
*JXMLElement::data() has been removed.&lt;br /&gt;
*JXMLElement::getAttribute() has been removed. Use SimpleXMLElement::attributes() instead.&lt;br /&gt;
&lt;br /&gt;
== JavaScript ==&lt;br /&gt;
*Compatibility with MooTools 1.2 has been removed.&lt;br /&gt;
*Forms that have name=&amp;quot;adminForm&amp;quot; now also require id=&amp;quot;adminForm&amp;quot;.&lt;br /&gt;
*checkAll() has been removed. Use Joomla.checkAll() instead.&lt;br /&gt;
*isChecked() has been removed. Use Joomla.isChecked() instead.&lt;br /&gt;
*popupWindow() has been removed. Use Joomla.popupWindow() instead.&lt;br /&gt;
*tableOrdering() has been removed. Use Joomla.tableOrdering() instead.&lt;br /&gt;
&lt;br /&gt;
= CMS =&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*JUtility is not always loaded. If you need it you have to add jimport(&#039;joomla.utilities.utility&#039;); to your code.&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Component Classes ===&lt;br /&gt;
*MenusModelItem::getItem() no longer returns a JObject but a stdClass.&lt;br /&gt;
&lt;br /&gt;
=== Help ===&lt;br /&gt;
&lt;br /&gt;
==== JHelp ====&lt;br /&gt;
*JHelp::createSiteList() the argument $selected has been removed. It was unused.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compatibility]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Platform]]&lt;/div&gt;</summary>
		<author><name>Akfaisel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77482</id>
		<title>Potential backward compatibility issues in Joomla 3 and Joomla Platform 12.2</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77482"/>
		<updated>2012-11-08T06:01:21Z</updated>

		<summary type="html">&lt;p&gt;Akfaisel: /* JRequest */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{incomplete}}{{RightTOC}}This document tracks potential backward compatibility issues for Joomla 3.0 and Joomla Platform 12.1, which is included in Joomla 3.0. Listed are issues which potentially break extensions.&lt;br /&gt;
Please help make this document complete.&lt;br /&gt;
&lt;br /&gt;
The base of this comparison is Joomla 2.5/Platform 11.4.&lt;br /&gt;
&lt;br /&gt;
Backwards compatibility issues were also tracked for Joomla 2.5: [[Potential backward compatibility issues in Joomla 2.5 and Joomla Platform 11.4]]&lt;br /&gt;
&lt;br /&gt;
= Platform =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Updated System Requirements ==&lt;br /&gt;
The system requirements have changed in the following points:&lt;br /&gt;
*PHP 5.3.1&lt;br /&gt;
*register_globals must be off&lt;br /&gt;
*magic_quotes_gpc must be off&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*Almost all functions, methods, members and classes marked as deprecated in Platform 11.4 have been removed. They won&#039;t be listed in this document.&lt;br /&gt;
*Appending ?no_html to an URL to get a RAW view is not supported anymore (this was an old Joomla 1.0 feature).&lt;br /&gt;
*The DS constant has been removed. If you really need it you can use DIRECTORY_SEPARATOR instead.&lt;br /&gt;
*Many more function arguments have been type hinted, including existing classes. Make sure you&#039;re always passing values of the correct type.&lt;br /&gt;
*The name of modules now have to start with &amp;quot;mod_&amp;quot;.&lt;br /&gt;
*Extensions need to set the registeredurlparams now, the fall back on the URL has been removed.&lt;br /&gt;
*Some cookies are only accessible through HTTP (not via JavaScript). For example; the session cookie.&lt;br /&gt;
*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.&lt;br /&gt;
*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)&lt;br /&gt;
*Joomla! 3.0 usually throws exceptions instead of returning JError or JException. Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Changes to extension installation ==&lt;br /&gt;
*Use of the &amp;lt;install&amp;gt; base tag (from 1.5) is no longer supported; use &amp;lt;extension&amp;gt; instead.&lt;br /&gt;
*Suppport for install_script and uninstall_script, and the methods com_install and com_uninstall in these scripts, has been removed; use scriptfile instead.&lt;br /&gt;
*In language extensions, support for client=&amp;quot;both&amp;quot; has been removed; prepare each client as a separate extension and optionally bundle them as a package extension instead.&lt;br /&gt;
*File paths for plugins no longer support the old 1.5 method (i.e. plugins/system/cache.php); each plugin must now be in its own folder (i.e. plugins/system/cache/cache.php).&lt;br /&gt;
&lt;br /&gt;
== Changes to Components ==&lt;br /&gt;
*In admin components the admin.*.php and toolbar.*.php are not automatically included anymore (this was a Joomla 1.0 legacy feature).&lt;br /&gt;
&lt;br /&gt;
== Moved files ==&lt;br /&gt;
All classes listed here should now be autoloadable. Explicit requires and includes have to be modified or removed.&lt;br /&gt;
&lt;br /&gt;
== Plugin Events ==&lt;br /&gt;
* onContentBeforeSave event now receives $article by value not by reference. Sample definition: public function onContentBeforeSave($context, $article, $isNew).&lt;br /&gt;
* onContentAfterSave event now receives $article by value not by reference. Sample definition: public function onContentAfterSave($context, $article, $isNew).&lt;br /&gt;
&lt;br /&gt;
== Renamed classes ==&lt;br /&gt;
*JFTP is now called JClientFtp&lt;br /&gt;
*JLDAP is now called JClientLdap&lt;br /&gt;
*JWebClient is now called JApplicationWebClient&lt;br /&gt;
&lt;br /&gt;
== Removed classes ==&lt;br /&gt;
*JParameter (use JForm instead)&lt;br /&gt;
*JElement and its subclasses&lt;br /&gt;
*JFormFieldEditors (use JFormFieldPlugins instead)&lt;br /&gt;
*JHtmlImage&lt;br /&gt;
*JRules (use JAccessRules instead)&lt;br /&gt;
*JSimpleXML&lt;br /&gt;
*JPane&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Base classes ===&lt;br /&gt;
&lt;br /&gt;
==== JFactory ====&lt;br /&gt;
*JFactory::getXMLParser() has been removed. For RSS and Atom use cases, use JFactory::getFeedParser() instead. To read XML files or strings use JFactory::getXML().&lt;br /&gt;
*JFactory::_createConfig() has been removed. Use JFactory::createConfig() instead.&lt;br /&gt;
*JFactory::_createSession() has been removed. Use JFactory::createSession() instead.&lt;br /&gt;
*JFactory::_createDbo() has been removed. Use JFactory::createDbo() instead.&lt;br /&gt;
*JFactory::_createMailer() has been removed. Use JFactory::createMailer() instead.&lt;br /&gt;
*JFactory::_createDocument() has been removed. Use JFactory::createDocument() instead.&lt;br /&gt;
&lt;br /&gt;
=== Application ===&lt;br /&gt;
&lt;br /&gt;
==== JApplicationHelper ====&lt;br /&gt;
*JApplicationHelper::getPath() has been removed. No replacement.&lt;br /&gt;
*JApplicationHelper::_checkPath() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
=== Component ===&lt;br /&gt;
&lt;br /&gt;
==== JComponentHelper ====&lt;br /&gt;
*The behavior of JComponentHelper::isEnabled() has been changed to match developer expectations.&lt;br /&gt;
&lt;br /&gt;
=== MVC ===&lt;br /&gt;
&lt;br /&gt;
==== JController ====&lt;br /&gt;
*JController::$_acoSection has been removed.&lt;br /&gt;
*JController::$_acoSectionValue has been removed.&lt;br /&gt;
*JController::authorize() has been removed. Use JController::authorise() instead.&lt;br /&gt;
*JController::setAccessControl() has been removed. Use JAccess.&lt;br /&gt;
*JController::getInstance() has been removed. Use JControllerLegacy::getInstance() instead.&lt;br /&gt;
&lt;br /&gt;
==== JControllerLegacy ====&lt;br /&gt;
* JControllerLegacy::display() needs an extra parameter: ($cachable = false, $urlparams = false).&lt;br /&gt;
&lt;br /&gt;
==== JModelAdmin ====&lt;br /&gt;
* JModelAdmin::generateNewTitle() is backwards incompatible with Joomla! 2.5 (first parameter has been removed).&lt;br /&gt;
* JModelAdmin::prepareTable(): first parameter isn&#039;t reference anymore.&lt;br /&gt;
&lt;br /&gt;
=== Archive ===&lt;br /&gt;
&lt;br /&gt;
==== Adapters ====&lt;br /&gt;
*JArchiveBzip2 does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveGzip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveTar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveZip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Base ===&lt;br /&gt;
&lt;br /&gt;
==== JObject ====&lt;br /&gt;
*JObject::toString() has been removed. Use JObject::__toString() instead.&lt;br /&gt;
&lt;br /&gt;
=== Client ===&lt;br /&gt;
&lt;br /&gt;
==== JClientLdap (formerly JLDAP) ====&lt;br /&gt;
*JClientLdap does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Due to lazy-connecting, a connection is only opened when running a query or explicitly calling JDatabaseDriver::connected(). Beware of that when checking JDatabaseDriver::connected().&lt;br /&gt;
&lt;br /&gt;
==== JDatabase ====&lt;br /&gt;
*JDatabase::$hasQuoted has been removed.&lt;br /&gt;
*JDatabase::$quoted has been removed.&lt;br /&gt;
*JDatabase::addQuoted() has been removed.&lt;br /&gt;
*JDatabase::hasUTF() has been removed.&lt;br /&gt;
*JDatabase::debug() has been removed. Use JDatabase::setDebug() instead.&lt;br /&gt;
*JDatabase::explain() has been removed.&lt;br /&gt;
*JDatabase::getEscaped() has been removed. Use JDatabase::escape() instead.&lt;br /&gt;
*JDatabase::getTableFields() has been removed. Use JDatabase::getTableColumns() instead.&lt;br /&gt;
*JDatabase::getTicker() has been removed. Use JDatabase::count() instead.&lt;br /&gt;
*JDatabase::isQuoted() has been removed.&lt;br /&gt;
*JDatabase::loadResultArray() has been removed. Use JDatabase::loadColumn() instead.&lt;br /&gt;
*JDatabase::nameQuote() has been removed. Use JDatabase::quoteName() instead.&lt;br /&gt;
*JDatabase::queryBatch() has been removed.&lt;br /&gt;
*JDatabase::query() has been deprecated. JDatabase::execute() should be used alternatively&lt;br /&gt;
&lt;br /&gt;
=== Document ===&lt;br /&gt;
&lt;br /&gt;
==== JDocument ====&lt;br /&gt;
*JDocument::setMetaData() the $sync argument has been removed. It was broken beyond repair.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentRenderer ====&lt;br /&gt;
*JDocumentRenderer does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentFeed ====&lt;br /&gt;
*JFeedItem does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedEnclosure does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentOpenSearch ====&lt;br /&gt;
*JOpenSearchUrl does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JOpenSearchImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentXml ====&lt;br /&gt;
*JDocumentXml::$_name has been renamed to JDocumentXml::$name.&lt;br /&gt;
&lt;br /&gt;
=== Environment ===&lt;br /&gt;
&lt;br /&gt;
==== JBrowser ====&lt;br /&gt;
*JBrowser does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JBrowser::setQuirk() has been removed.&lt;br /&gt;
*JBrowser::hasQuirk() has been removed.&lt;br /&gt;
*JBrowser::getQuirk() has been removed.&lt;br /&gt;
*JBrowser::setFeature() has been removed.&lt;br /&gt;
*JBrowser::hasFeature() has been removed.&lt;br /&gt;
*JBrowser::getFeature() has been removed.&lt;br /&gt;
*JBrowser::$_majorVersion has been renamed to JBrowser::$majorVersion.&lt;br /&gt;
*JBrowser::$_minorVersion has been renamed to JBrowser::$minorVersion.&lt;br /&gt;
*JBrowser::$_browser has been renamed to JBrowser::$browser.&lt;br /&gt;
*JBrowser::$_agent has been renamed to JBrowser::$agent.&lt;br /&gt;
*JBrowser::$_lowerAgent has been renamed to JBrowser::$lowerAgent.&lt;br /&gt;
*JBrowser::$_accept has been renamed to JBrowser::$accept.&lt;br /&gt;
*JBrowser::$_accept_parsed has been renamed to JBrowser::$acceptParsed.&lt;br /&gt;
*JBrowser::$_platform has been renamed to JBrowser::$platform.&lt;br /&gt;
*JBrowser::$_robots has been renamed to JBrowser::$robots.&lt;br /&gt;
*JBrowser::$_mobile has been renamed to JBrowser::$mobile.&lt;br /&gt;
*JBrowser::$_images has been renamed to JBrowser::$images.&lt;br /&gt;
&lt;br /&gt;
==== JRequest ====&lt;br /&gt;
*JRequest::clean() has been removed.&lt;br /&gt;
*JRequest::_cleanVar() is now protected.&lt;br /&gt;
*JRequest::getCmd() is deprecated. Use JFactory::getApplication()-&amp;gt;input-&amp;gt;get() instead.&lt;br /&gt;
*JRequest::getVar() is deprecated. Use JFactory::getApplication()-&amp;gt;input-&amp;gt;get() instead.&lt;br /&gt;
*JRequest::checkToken() is deprecated. Use JSession::checkToken() instead. If you are using JRequest::checkToken(&#039;default&#039;), use JSession::checkToken(&#039;request&#039;)instead.&lt;br /&gt;
&lt;br /&gt;
==== JUri ====&lt;br /&gt;
*JURI has been renamed to JUri. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JUri does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JUri::$_uri has been renamed to JUri::$uri.&lt;br /&gt;
*JUri::$_scheme has been renamed to JUri::$scheme.&lt;br /&gt;
*JUri::$_host has been renamed to JUri::$host.&lt;br /&gt;
*JUri::$_port has been renamed to JUri::$port.&lt;br /&gt;
*JUri::$_user has been renamed to JUri::$user.&lt;br /&gt;
*JUri::$_pass has been renamed to JUri::$pass.&lt;br /&gt;
*JUri::$_path has been renamed to JUri::$path.&lt;br /&gt;
*JUri::$_query has been renamed to JUri::$query.&lt;br /&gt;
*JUri::$_fragment has been renamed to JUri::$fragment.&lt;br /&gt;
*JUri::$_vars has been renamed to JUri::$vars.&lt;br /&gt;
&lt;br /&gt;
=== Error ===&lt;br /&gt;
&lt;br /&gt;
==== JError ====&lt;br /&gt;
*JError has been deprecated. Use Exceptions instead.&lt;br /&gt;
*&#039;&#039;&#039;WARNING&#039;&#039;&#039;: Many functions that were previously returning JError or false are now throwing exceptions.&lt;br /&gt;
&lt;br /&gt;
Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
==== JProfiler ====&lt;br /&gt;
*JProfiler does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JProfiler::$_start has been renamed to JProfiler::$start.&lt;br /&gt;
*JProfiler::$_prefix has been renamed to JProfiler::$prefix.&lt;br /&gt;
*JProfiler::$_buffer has been renamed to JProfiler::$buffer.&lt;br /&gt;
*JProfiler::$_previous_time has been renamed to JProfiler::$previousTime.&lt;br /&gt;
*JProfiler::$_previous_mem has been renamed to JProfiler::$previousMem.&lt;br /&gt;
*JProfiler::$_iswin has been renamed to JProfiler::$isWin.&lt;br /&gt;
&lt;br /&gt;
=== Filesystem ===&lt;br /&gt;
&lt;br /&gt;
==== JStream ====&lt;br /&gt;
*JStream::$_fh has been renamed to JStream::$fh.&lt;br /&gt;
*JStream::$_filesize has been renamed to JStream::$filesize.&lt;br /&gt;
*JStream::$_context has been renamed to JStream::$context.&lt;br /&gt;
*JStream::$_contextOptions has been renamed to JStream::$contextOptions.&lt;br /&gt;
*JStream::$_openmode has been renamed to JStream::$openmode.&lt;br /&gt;
&lt;br /&gt;
==== JStreamString ====&lt;br /&gt;
*JStream::$_currentstring has been renamed to JStream::$currentString.&lt;br /&gt;
*JStream::$_path has been renamed to JStream::$path.&lt;br /&gt;
*JStream::$_mode has been renamed to JStream::$mode.&lt;br /&gt;
*JStream::$_options has been renamed to JStream::$options.&lt;br /&gt;
*JStream::$_opened_path has been renamed to JStream::$openedPath.&lt;br /&gt;
*JStream::$_pos has been renamed to JStream::$pos.&lt;br /&gt;
*JStream::$_len has been renamed to JStream::$len.&lt;br /&gt;
*JStream::$_stat has been renamed to JStream::$stat.&lt;br /&gt;
&lt;br /&gt;
=== Filter ===&lt;br /&gt;
&lt;br /&gt;
==== JFilterInput ====&lt;br /&gt;
*JFilterInput does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== HTML ===&lt;br /&gt;
&lt;br /&gt;
==== JHtml ====&lt;br /&gt;
*JHTML has been renamed to JHtml. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JHtml::_includeRelativeFiles() has been removed. Use JHtml::includeRelativeFiles() instead.&lt;br /&gt;
*JHtml::core() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtml::script() doesn&#039;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.&lt;br /&gt;
*JHtml::stylesheet() doesn&#039;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.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlAccess ====&lt;br /&gt;
*JHtmlAccess::assetgroups() the argument $config has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlBehavior ====&lt;br /&gt;
*JHtmlBehavior::mootools() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtmlBehavior::noframes() the argument $location has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlList ====&lt;br /&gt;
*JHtmlList::ordering() the argument $chop has been removed. It was previously unused.&lt;br /&gt;
*JHtmlList::users(), the argument $reg has been removed.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlSelect ====&lt;br /&gt;
*JHtmlSelect::$_optionDefaults has been renamed to JHtmlSelect::$optionDefaults.&lt;br /&gt;
&lt;br /&gt;
==== JToolBar ====&lt;br /&gt;
*JToolBar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JToolBar no longer supports the &#039;X&#039; functions (eg, addNewX, editListX) that hide the main menu before doing the function.&lt;br /&gt;
&lt;br /&gt;
==== JButton ====&lt;br /&gt;
*JButton does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JPagination ====&lt;br /&gt;
*JPagination::$_viewall has been renamed to JPagination::$viewall.&lt;br /&gt;
*JPagination::$_additionalUrlParams has been renamed to JPagination::$additionalUrlParams.&lt;br /&gt;
&lt;br /&gt;
=== Installer ===&lt;br /&gt;
&lt;br /&gt;
==== JInstaller ====&lt;br /&gt;
*JInstaller::getOverwrite() has been removed. Use JInstaller::isOverwrite() instead.&lt;br /&gt;
*JInstaller::getUpgrade() has been removed. Use JInstaller::isUpgrade() instead.&lt;br /&gt;
*JInstaller::$_paths has been renamed to JInstaller::$paths.&lt;br /&gt;
*JInstaller::$_upgrade has been renamed to JInstaller::$upgrade.&lt;br /&gt;
*JInstaller::$_overwrite has been renamed to JInstaller::$overwrite.&lt;br /&gt;
*JInstaller::$_stepStack has been renamed to JInstaller::$stepStack.&lt;br /&gt;
&lt;br /&gt;
==== JInstallerLanguage ====&lt;br /&gt;
*JInstallerLanguage::$_core as been renamed to JInstallerLanguage::$core.&lt;br /&gt;
&lt;br /&gt;
=== Language ===&lt;br /&gt;
&lt;br /&gt;
==== JLanguage ====&lt;br /&gt;
*JLanguage::getPluralSufficesCallback() has been removed. Use JLanguage::getPluralSuffixesCallback() instead.&lt;br /&gt;
*JLanguage::_parseLanguageFiles() has been removed. Use JLanguage::parseLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFiles() has been removed. Use JLanguage::parseXMLLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFile() has been removed. Use JLanguage::parseXMLLanguageFile() instead.&lt;br /&gt;
*JLanguage::loadLanguage() the argument $overwrite has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
=== Registry ===&lt;br /&gt;
&lt;br /&gt;
==== JRegistry ====&lt;br /&gt;
*JRegistry::loadXML() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadINI() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadJSON() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::makeNameSpace() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getNameSpaces() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getValue() has been removed. Use JRegistry::get() instead.&lt;br /&gt;
*JRegistry::setValue() has been removed. Use JRegistry::set() instead.&lt;br /&gt;
*JRegistry::loadSetupFile() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatINI ====&lt;br /&gt;
*JRegistryFormatINI::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatJSON ====&lt;br /&gt;
*JRegistryFormatJSON::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
=== Session ===&lt;br /&gt;
&lt;br /&gt;
==== JSessionStorageDatabase ====&lt;br /&gt;
*JSessionStorageDatabase::$_data has been renamed to JSessionStorageDatabase::$data.&lt;br /&gt;
&lt;br /&gt;
=== Table ===&lt;br /&gt;
&lt;br /&gt;
==== JTable ====&lt;br /&gt;
*JTable::getInstance() parameters are now case sensitive, e.g. &#039;MenuType&#039;.&lt;br /&gt;
*JTable::canDelete() has been removed.&lt;br /&gt;
*JTable::toXML() has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Updater ===&lt;br /&gt;
&lt;br /&gt;
==== JUpdate ====&lt;br /&gt;
*JUpdate::$_xml_parser has been renamed to JUpdate::$xmlParser.&lt;br /&gt;
*JUpdate::$_stack has been renamed to JUpdate::$stack.&lt;br /&gt;
*JUpdate::$_state_store has been renamed to JUpdate::$stateStore.&lt;br /&gt;
*JUpdate::$_current_update has been renamed to JUpdate::$currentUpdate.&lt;br /&gt;
&lt;br /&gt;
==== JUpdater ====&lt;br /&gt;
*JUpdater::arrayUnique() has been removed. Use JArrayHelper::arrayUnique() instead.&lt;br /&gt;
&lt;br /&gt;
=== User ===&lt;br /&gt;
&lt;br /&gt;
==== JAuthentication ====&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_SUCCESS has been removed. Use JAuthentication::STATUS_SUCCESS instead.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_CANCEL has been removed. No replacement.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_FAILURE has been removed. Use JAuthentication::STATUS_FAILURE instead.&lt;br /&gt;
*JAuthentication::$_observers has been renamed to JAuthentication::$observers.&lt;br /&gt;
*JAuthentication::$_state has been renamed to JAuthentication::$state.&lt;br /&gt;
*JAuthentication::$_methods has been renamed to JAuthentication::$methods.&lt;br /&gt;
&lt;br /&gt;
==== JUser ====&lt;br /&gt;
*JUser::getParameters() has been removed.&lt;br /&gt;
*Juser::authorisedLevels() has been removed. Use JUser::getAuthorisedViewLevels() instead.&lt;br /&gt;
*Juser::authorize() has been removed. Use JUser::authorise() instead.&lt;br /&gt;
*JUser::$usertype has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Utility ===&lt;br /&gt;
&lt;br /&gt;
==== JBuffer ====&lt;br /&gt;
*JBuffer::$_buffers has been renamed to JBuffer::$buffers.&lt;br /&gt;
&lt;br /&gt;
==== JDate ====&lt;br /&gt;
*JDate::toMysql() has been removed. Use JDate::toSql() instead.&lt;br /&gt;
*JDate::toFormat() has been removed. Use JDate::format() instead.&lt;br /&gt;
*JDate::setOffset() has been removed. Use JDate::setTimezone() instead&lt;br /&gt;
*JDate::$offsets has been removed.&lt;br /&gt;
*JDate::__construct() doesn&#039;t accept an numeric value for $tz anymore.&lt;br /&gt;
*JDate::$_tz has been renamed to JDate::$tz.&lt;br /&gt;
&lt;br /&gt;
==== JUtility ====&lt;br /&gt;
*JUtility::sendMail() has been removed. Use JMail::sendMail() instead.&lt;br /&gt;
*JUtility::sendAdminMail() has been removed. Use JMail::sendAdminMail() instead.&lt;br /&gt;
*JUtility::getHash() has been removed. Use JApplication::getHash() instead.&lt;br /&gt;
*JUtility::getToken() has been removed. Use JSession::getFormToken() instead.&lt;br /&gt;
*JUtility::isWinOS() has been removed. Use JApplication::isWinOS() instead.&lt;br /&gt;
*JUtility::dump() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JXMLElement ====&lt;br /&gt;
*JXMLElement::data() has been removed.&lt;br /&gt;
*JXMLElement::getAttribute() has been removed. Use SimpleXMLElement::attributes() instead.&lt;br /&gt;
&lt;br /&gt;
== JavaScript ==&lt;br /&gt;
*Compatibility with MooTools 1.2 has been removed.&lt;br /&gt;
*Forms that have name=&amp;quot;adminForm&amp;quot; now also require id=&amp;quot;adminForm&amp;quot;.&lt;br /&gt;
*checkAll() has been removed. Use Joomla.checkAll() instead.&lt;br /&gt;
*isChecked() has been removed. Use Joomla.isChecked() instead.&lt;br /&gt;
*popupWindow() has been removed. Use Joomla.popupWindow() instead.&lt;br /&gt;
*tableOrdering() has been removed. Use Joomla.tableOrdering() instead.&lt;br /&gt;
&lt;br /&gt;
= CMS =&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*JUtility is not always loaded. If you need it you have to add jimport(&#039;joomla.utilities.utility&#039;); to your code.&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Component Classes ===&lt;br /&gt;
*MenusModelItem::getItem() no longer returns a JObject but a stdClass.&lt;br /&gt;
&lt;br /&gt;
=== Help ===&lt;br /&gt;
&lt;br /&gt;
==== JHelp ====&lt;br /&gt;
*JHelp::createSiteList() the argument $selected has been removed. It was unused.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compatibility]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Platform]]&lt;/div&gt;</summary>
		<author><name>Akfaisel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77481</id>
		<title>Potential backward compatibility issues in Joomla 3 and Joomla Platform 12.2</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77481"/>
		<updated>2012-11-08T05:40:18Z</updated>

		<summary type="html">&lt;p&gt;Akfaisel: /* JUtility */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{incomplete}}{{RightTOC}}This document tracks potential backward compatibility issues for Joomla 3.0 and Joomla Platform 12.1, which is included in Joomla 3.0. Listed are issues which potentially break extensions.&lt;br /&gt;
Please help make this document complete.&lt;br /&gt;
&lt;br /&gt;
The base of this comparison is Joomla 2.5/Platform 11.4.&lt;br /&gt;
&lt;br /&gt;
Backwards compatibility issues were also tracked for Joomla 2.5: [[Potential backward compatibility issues in Joomla 2.5 and Joomla Platform 11.4]]&lt;br /&gt;
&lt;br /&gt;
= Platform =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Updated System Requirements ==&lt;br /&gt;
The system requirements have changed in the following points:&lt;br /&gt;
*PHP 5.3.1&lt;br /&gt;
*register_globals must be off&lt;br /&gt;
*magic_quotes_gpc must be off&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*Almost all functions, methods, members and classes marked as deprecated in Platform 11.4 have been removed. They won&#039;t be listed in this document.&lt;br /&gt;
*Appending ?no_html to an URL to get a RAW view is not supported anymore (this was an old Joomla 1.0 feature).&lt;br /&gt;
*The DS constant has been removed. If you really need it you can use DIRECTORY_SEPARATOR instead.&lt;br /&gt;
*Many more function arguments have been type hinted, including existing classes. Make sure you&#039;re always passing values of the correct type.&lt;br /&gt;
*The name of modules now have to start with &amp;quot;mod_&amp;quot;.&lt;br /&gt;
*Extensions need to set the registeredurlparams now, the fall back on the URL has been removed.&lt;br /&gt;
*Some cookies are only accessible through HTTP (not via JavaScript). For example; the session cookie.&lt;br /&gt;
*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.&lt;br /&gt;
*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)&lt;br /&gt;
*Joomla! 3.0 usually throws exceptions instead of returning JError or JException. Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Changes to extension installation ==&lt;br /&gt;
*Use of the &amp;lt;install&amp;gt; base tag (from 1.5) is no longer supported; use &amp;lt;extension&amp;gt; instead.&lt;br /&gt;
*Suppport for install_script and uninstall_script, and the methods com_install and com_uninstall in these scripts, has been removed; use scriptfile instead.&lt;br /&gt;
*In language extensions, support for client=&amp;quot;both&amp;quot; has been removed; prepare each client as a separate extension and optionally bundle them as a package extension instead.&lt;br /&gt;
*File paths for plugins no longer support the old 1.5 method (i.e. plugins/system/cache.php); each plugin must now be in its own folder (i.e. plugins/system/cache/cache.php).&lt;br /&gt;
&lt;br /&gt;
== Changes to Components ==&lt;br /&gt;
*In admin components the admin.*.php and toolbar.*.php are not automatically included anymore (this was a Joomla 1.0 legacy feature).&lt;br /&gt;
&lt;br /&gt;
== Moved files ==&lt;br /&gt;
All classes listed here should now be autoloadable. Explicit requires and includes have to be modified or removed.&lt;br /&gt;
&lt;br /&gt;
== Plugin Events ==&lt;br /&gt;
* onContentBeforeSave event now receives $article by value not by reference. Sample definition: public function onContentBeforeSave($context, $article, $isNew).&lt;br /&gt;
* onContentAfterSave event now receives $article by value not by reference. Sample definition: public function onContentAfterSave($context, $article, $isNew).&lt;br /&gt;
&lt;br /&gt;
== Renamed classes ==&lt;br /&gt;
*JFTP is now called JClientFtp&lt;br /&gt;
*JLDAP is now called JClientLdap&lt;br /&gt;
*JWebClient is now called JApplicationWebClient&lt;br /&gt;
&lt;br /&gt;
== Removed classes ==&lt;br /&gt;
*JParameter (use JForm instead)&lt;br /&gt;
*JElement and its subclasses&lt;br /&gt;
*JFormFieldEditors (use JFormFieldPlugins instead)&lt;br /&gt;
*JHtmlImage&lt;br /&gt;
*JRules (use JAccessRules instead)&lt;br /&gt;
*JSimpleXML&lt;br /&gt;
*JPane&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Base classes ===&lt;br /&gt;
&lt;br /&gt;
==== JFactory ====&lt;br /&gt;
*JFactory::getXMLParser() has been removed. For RSS and Atom use cases, use JFactory::getFeedParser() instead. To read XML files or strings use JFactory::getXML().&lt;br /&gt;
*JFactory::_createConfig() has been removed. Use JFactory::createConfig() instead.&lt;br /&gt;
*JFactory::_createSession() has been removed. Use JFactory::createSession() instead.&lt;br /&gt;
*JFactory::_createDbo() has been removed. Use JFactory::createDbo() instead.&lt;br /&gt;
*JFactory::_createMailer() has been removed. Use JFactory::createMailer() instead.&lt;br /&gt;
*JFactory::_createDocument() has been removed. Use JFactory::createDocument() instead.&lt;br /&gt;
&lt;br /&gt;
=== Application ===&lt;br /&gt;
&lt;br /&gt;
==== JApplicationHelper ====&lt;br /&gt;
*JApplicationHelper::getPath() has been removed. No replacement.&lt;br /&gt;
*JApplicationHelper::_checkPath() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
=== Component ===&lt;br /&gt;
&lt;br /&gt;
==== JComponentHelper ====&lt;br /&gt;
*The behavior of JComponentHelper::isEnabled() has been changed to match developer expectations.&lt;br /&gt;
&lt;br /&gt;
=== MVC ===&lt;br /&gt;
&lt;br /&gt;
==== JController ====&lt;br /&gt;
*JController::$_acoSection has been removed.&lt;br /&gt;
*JController::$_acoSectionValue has been removed.&lt;br /&gt;
*JController::authorize() has been removed. Use JController::authorise() instead.&lt;br /&gt;
*JController::setAccessControl() has been removed. Use JAccess.&lt;br /&gt;
*JController::getInstance() has been removed. Use JControllerLegacy::getInstance() instead.&lt;br /&gt;
&lt;br /&gt;
==== JControllerLegacy ====&lt;br /&gt;
* JControllerLegacy::display() needs an extra parameter: ($cachable = false, $urlparams = false).&lt;br /&gt;
&lt;br /&gt;
==== JModelAdmin ====&lt;br /&gt;
* JModelAdmin::generateNewTitle() is backwards incompatible with Joomla! 2.5 (first parameter has been removed).&lt;br /&gt;
* JModelAdmin::prepareTable(): first parameter isn&#039;t reference anymore.&lt;br /&gt;
&lt;br /&gt;
=== Archive ===&lt;br /&gt;
&lt;br /&gt;
==== Adapters ====&lt;br /&gt;
*JArchiveBzip2 does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveGzip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveTar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveZip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Base ===&lt;br /&gt;
&lt;br /&gt;
==== JObject ====&lt;br /&gt;
*JObject::toString() has been removed. Use JObject::__toString() instead.&lt;br /&gt;
&lt;br /&gt;
=== Client ===&lt;br /&gt;
&lt;br /&gt;
==== JClientLdap (formerly JLDAP) ====&lt;br /&gt;
*JClientLdap does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Due to lazy-connecting, a connection is only opened when running a query or explicitly calling JDatabaseDriver::connected(). Beware of that when checking JDatabaseDriver::connected().&lt;br /&gt;
&lt;br /&gt;
==== JDatabase ====&lt;br /&gt;
*JDatabase::$hasQuoted has been removed.&lt;br /&gt;
*JDatabase::$quoted has been removed.&lt;br /&gt;
*JDatabase::addQuoted() has been removed.&lt;br /&gt;
*JDatabase::hasUTF() has been removed.&lt;br /&gt;
*JDatabase::debug() has been removed. Use JDatabase::setDebug() instead.&lt;br /&gt;
*JDatabase::explain() has been removed.&lt;br /&gt;
*JDatabase::getEscaped() has been removed. Use JDatabase::escape() instead.&lt;br /&gt;
*JDatabase::getTableFields() has been removed. Use JDatabase::getTableColumns() instead.&lt;br /&gt;
*JDatabase::getTicker() has been removed. Use JDatabase::count() instead.&lt;br /&gt;
*JDatabase::isQuoted() has been removed.&lt;br /&gt;
*JDatabase::loadResultArray() has been removed. Use JDatabase::loadColumn() instead.&lt;br /&gt;
*JDatabase::nameQuote() has been removed. Use JDatabase::quoteName() instead.&lt;br /&gt;
*JDatabase::queryBatch() has been removed.&lt;br /&gt;
*JDatabase::query() has been deprecated. JDatabase::execute() should be used alternatively&lt;br /&gt;
&lt;br /&gt;
=== Document ===&lt;br /&gt;
&lt;br /&gt;
==== JDocument ====&lt;br /&gt;
*JDocument::setMetaData() the $sync argument has been removed. It was broken beyond repair.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentRenderer ====&lt;br /&gt;
*JDocumentRenderer does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentFeed ====&lt;br /&gt;
*JFeedItem does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedEnclosure does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentOpenSearch ====&lt;br /&gt;
*JOpenSearchUrl does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JOpenSearchImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentXml ====&lt;br /&gt;
*JDocumentXml::$_name has been renamed to JDocumentXml::$name.&lt;br /&gt;
&lt;br /&gt;
=== Environment ===&lt;br /&gt;
&lt;br /&gt;
==== JBrowser ====&lt;br /&gt;
*JBrowser does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JBrowser::setQuirk() has been removed.&lt;br /&gt;
*JBrowser::hasQuirk() has been removed.&lt;br /&gt;
*JBrowser::getQuirk() has been removed.&lt;br /&gt;
*JBrowser::setFeature() has been removed.&lt;br /&gt;
*JBrowser::hasFeature() has been removed.&lt;br /&gt;
*JBrowser::getFeature() has been removed.&lt;br /&gt;
*JBrowser::$_majorVersion has been renamed to JBrowser::$majorVersion.&lt;br /&gt;
*JBrowser::$_minorVersion has been renamed to JBrowser::$minorVersion.&lt;br /&gt;
*JBrowser::$_browser has been renamed to JBrowser::$browser.&lt;br /&gt;
*JBrowser::$_agent has been renamed to JBrowser::$agent.&lt;br /&gt;
*JBrowser::$_lowerAgent has been renamed to JBrowser::$lowerAgent.&lt;br /&gt;
*JBrowser::$_accept has been renamed to JBrowser::$accept.&lt;br /&gt;
*JBrowser::$_accept_parsed has been renamed to JBrowser::$acceptParsed.&lt;br /&gt;
*JBrowser::$_platform has been renamed to JBrowser::$platform.&lt;br /&gt;
*JBrowser::$_robots has been renamed to JBrowser::$robots.&lt;br /&gt;
*JBrowser::$_mobile has been renamed to JBrowser::$mobile.&lt;br /&gt;
*JBrowser::$_images has been renamed to JBrowser::$images.&lt;br /&gt;
&lt;br /&gt;
==== JRequest ====&lt;br /&gt;
*JRequest::clean() has been removed.&lt;br /&gt;
*JRequest::_cleanVar() is now protected.&lt;br /&gt;
*JRequest::getCmd() is deprecated. Use JFactory::getApplication()-&amp;gt;input-&amp;gt;get() instead&lt;br /&gt;
*JRequest::getVar() is deprecated. Use JFactory::getApplication()-&amp;gt;input-&amp;gt;get() instead&lt;br /&gt;
*JRequest::checkToken() is deprecated. Use JSession::checkToken() instead&lt;br /&gt;
&lt;br /&gt;
==== JUri ====&lt;br /&gt;
*JURI has been renamed to JUri. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JUri does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JUri::$_uri has been renamed to JUri::$uri.&lt;br /&gt;
*JUri::$_scheme has been renamed to JUri::$scheme.&lt;br /&gt;
*JUri::$_host has been renamed to JUri::$host.&lt;br /&gt;
*JUri::$_port has been renamed to JUri::$port.&lt;br /&gt;
*JUri::$_user has been renamed to JUri::$user.&lt;br /&gt;
*JUri::$_pass has been renamed to JUri::$pass.&lt;br /&gt;
*JUri::$_path has been renamed to JUri::$path.&lt;br /&gt;
*JUri::$_query has been renamed to JUri::$query.&lt;br /&gt;
*JUri::$_fragment has been renamed to JUri::$fragment.&lt;br /&gt;
*JUri::$_vars has been renamed to JUri::$vars.&lt;br /&gt;
&lt;br /&gt;
=== Error ===&lt;br /&gt;
&lt;br /&gt;
==== JError ====&lt;br /&gt;
*JError has been deprecated. Use Exceptions instead.&lt;br /&gt;
*&#039;&#039;&#039;WARNING&#039;&#039;&#039;: Many functions that were previously returning JError or false are now throwing exceptions.&lt;br /&gt;
&lt;br /&gt;
Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
==== JProfiler ====&lt;br /&gt;
*JProfiler does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JProfiler::$_start has been renamed to JProfiler::$start.&lt;br /&gt;
*JProfiler::$_prefix has been renamed to JProfiler::$prefix.&lt;br /&gt;
*JProfiler::$_buffer has been renamed to JProfiler::$buffer.&lt;br /&gt;
*JProfiler::$_previous_time has been renamed to JProfiler::$previousTime.&lt;br /&gt;
*JProfiler::$_previous_mem has been renamed to JProfiler::$previousMem.&lt;br /&gt;
*JProfiler::$_iswin has been renamed to JProfiler::$isWin.&lt;br /&gt;
&lt;br /&gt;
=== Filesystem ===&lt;br /&gt;
&lt;br /&gt;
==== JStream ====&lt;br /&gt;
*JStream::$_fh has been renamed to JStream::$fh.&lt;br /&gt;
*JStream::$_filesize has been renamed to JStream::$filesize.&lt;br /&gt;
*JStream::$_context has been renamed to JStream::$context.&lt;br /&gt;
*JStream::$_contextOptions has been renamed to JStream::$contextOptions.&lt;br /&gt;
*JStream::$_openmode has been renamed to JStream::$openmode.&lt;br /&gt;
&lt;br /&gt;
==== JStreamString ====&lt;br /&gt;
*JStream::$_currentstring has been renamed to JStream::$currentString.&lt;br /&gt;
*JStream::$_path has been renamed to JStream::$path.&lt;br /&gt;
*JStream::$_mode has been renamed to JStream::$mode.&lt;br /&gt;
*JStream::$_options has been renamed to JStream::$options.&lt;br /&gt;
*JStream::$_opened_path has been renamed to JStream::$openedPath.&lt;br /&gt;
*JStream::$_pos has been renamed to JStream::$pos.&lt;br /&gt;
*JStream::$_len has been renamed to JStream::$len.&lt;br /&gt;
*JStream::$_stat has been renamed to JStream::$stat.&lt;br /&gt;
&lt;br /&gt;
=== Filter ===&lt;br /&gt;
&lt;br /&gt;
==== JFilterInput ====&lt;br /&gt;
*JFilterInput does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== HTML ===&lt;br /&gt;
&lt;br /&gt;
==== JHtml ====&lt;br /&gt;
*JHTML has been renamed to JHtml. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JHtml::_includeRelativeFiles() has been removed. Use JHtml::includeRelativeFiles() instead.&lt;br /&gt;
*JHtml::core() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtml::script() doesn&#039;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.&lt;br /&gt;
*JHtml::stylesheet() doesn&#039;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.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlAccess ====&lt;br /&gt;
*JHtmlAccess::assetgroups() the argument $config has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlBehavior ====&lt;br /&gt;
*JHtmlBehavior::mootools() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtmlBehavior::noframes() the argument $location has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlList ====&lt;br /&gt;
*JHtmlList::ordering() the argument $chop has been removed. It was previously unused.&lt;br /&gt;
*JHtmlList::users(), the argument $reg has been removed.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlSelect ====&lt;br /&gt;
*JHtmlSelect::$_optionDefaults has been renamed to JHtmlSelect::$optionDefaults.&lt;br /&gt;
&lt;br /&gt;
==== JToolBar ====&lt;br /&gt;
*JToolBar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JToolBar no longer supports the &#039;X&#039; functions (eg, addNewX, editListX) that hide the main menu before doing the function.&lt;br /&gt;
&lt;br /&gt;
==== JButton ====&lt;br /&gt;
*JButton does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JPagination ====&lt;br /&gt;
*JPagination::$_viewall has been renamed to JPagination::$viewall.&lt;br /&gt;
*JPagination::$_additionalUrlParams has been renamed to JPagination::$additionalUrlParams.&lt;br /&gt;
&lt;br /&gt;
=== Installer ===&lt;br /&gt;
&lt;br /&gt;
==== JInstaller ====&lt;br /&gt;
*JInstaller::getOverwrite() has been removed. Use JInstaller::isOverwrite() instead.&lt;br /&gt;
*JInstaller::getUpgrade() has been removed. Use JInstaller::isUpgrade() instead.&lt;br /&gt;
*JInstaller::$_paths has been renamed to JInstaller::$paths.&lt;br /&gt;
*JInstaller::$_upgrade has been renamed to JInstaller::$upgrade.&lt;br /&gt;
*JInstaller::$_overwrite has been renamed to JInstaller::$overwrite.&lt;br /&gt;
*JInstaller::$_stepStack has been renamed to JInstaller::$stepStack.&lt;br /&gt;
&lt;br /&gt;
==== JInstallerLanguage ====&lt;br /&gt;
*JInstallerLanguage::$_core as been renamed to JInstallerLanguage::$core.&lt;br /&gt;
&lt;br /&gt;
=== Language ===&lt;br /&gt;
&lt;br /&gt;
==== JLanguage ====&lt;br /&gt;
*JLanguage::getPluralSufficesCallback() has been removed. Use JLanguage::getPluralSuffixesCallback() instead.&lt;br /&gt;
*JLanguage::_parseLanguageFiles() has been removed. Use JLanguage::parseLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFiles() has been removed. Use JLanguage::parseXMLLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFile() has been removed. Use JLanguage::parseXMLLanguageFile() instead.&lt;br /&gt;
*JLanguage::loadLanguage() the argument $overwrite has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
=== Registry ===&lt;br /&gt;
&lt;br /&gt;
==== JRegistry ====&lt;br /&gt;
*JRegistry::loadXML() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadINI() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadJSON() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::makeNameSpace() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getNameSpaces() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getValue() has been removed. Use JRegistry::get() instead.&lt;br /&gt;
*JRegistry::setValue() has been removed. Use JRegistry::set() instead.&lt;br /&gt;
*JRegistry::loadSetupFile() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatINI ====&lt;br /&gt;
*JRegistryFormatINI::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatJSON ====&lt;br /&gt;
*JRegistryFormatJSON::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
=== Session ===&lt;br /&gt;
&lt;br /&gt;
==== JSessionStorageDatabase ====&lt;br /&gt;
*JSessionStorageDatabase::$_data has been renamed to JSessionStorageDatabase::$data.&lt;br /&gt;
&lt;br /&gt;
=== Table ===&lt;br /&gt;
&lt;br /&gt;
==== JTable ====&lt;br /&gt;
*JTable::getInstance() parameters are now case sensitive, e.g. &#039;MenuType&#039;.&lt;br /&gt;
*JTable::canDelete() has been removed.&lt;br /&gt;
*JTable::toXML() has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Updater ===&lt;br /&gt;
&lt;br /&gt;
==== JUpdate ====&lt;br /&gt;
*JUpdate::$_xml_parser has been renamed to JUpdate::$xmlParser.&lt;br /&gt;
*JUpdate::$_stack has been renamed to JUpdate::$stack.&lt;br /&gt;
*JUpdate::$_state_store has been renamed to JUpdate::$stateStore.&lt;br /&gt;
*JUpdate::$_current_update has been renamed to JUpdate::$currentUpdate.&lt;br /&gt;
&lt;br /&gt;
==== JUpdater ====&lt;br /&gt;
*JUpdater::arrayUnique() has been removed. Use JArrayHelper::arrayUnique() instead.&lt;br /&gt;
&lt;br /&gt;
=== User ===&lt;br /&gt;
&lt;br /&gt;
==== JAuthentication ====&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_SUCCESS has been removed. Use JAuthentication::STATUS_SUCCESS instead.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_CANCEL has been removed. No replacement.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_FAILURE has been removed. Use JAuthentication::STATUS_FAILURE instead.&lt;br /&gt;
*JAuthentication::$_observers has been renamed to JAuthentication::$observers.&lt;br /&gt;
*JAuthentication::$_state has been renamed to JAuthentication::$state.&lt;br /&gt;
*JAuthentication::$_methods has been renamed to JAuthentication::$methods.&lt;br /&gt;
&lt;br /&gt;
==== JUser ====&lt;br /&gt;
*JUser::getParameters() has been removed.&lt;br /&gt;
*Juser::authorisedLevels() has been removed. Use JUser::getAuthorisedViewLevels() instead.&lt;br /&gt;
*Juser::authorize() has been removed. Use JUser::authorise() instead.&lt;br /&gt;
*JUser::$usertype has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Utility ===&lt;br /&gt;
&lt;br /&gt;
==== JBuffer ====&lt;br /&gt;
*JBuffer::$_buffers has been renamed to JBuffer::$buffers.&lt;br /&gt;
&lt;br /&gt;
==== JDate ====&lt;br /&gt;
*JDate::toMysql() has been removed. Use JDate::toSql() instead.&lt;br /&gt;
*JDate::toFormat() has been removed. Use JDate::format() instead.&lt;br /&gt;
*JDate::setOffset() has been removed. Use JDate::setTimezone() instead&lt;br /&gt;
*JDate::$offsets has been removed.&lt;br /&gt;
*JDate::__construct() doesn&#039;t accept an numeric value for $tz anymore.&lt;br /&gt;
*JDate::$_tz has been renamed to JDate::$tz.&lt;br /&gt;
&lt;br /&gt;
==== JUtility ====&lt;br /&gt;
*JUtility::sendMail() has been removed. Use JMail::sendMail() instead.&lt;br /&gt;
*JUtility::sendAdminMail() has been removed. Use JMail::sendAdminMail() instead.&lt;br /&gt;
*JUtility::getHash() has been removed. Use JApplication::getHash() instead.&lt;br /&gt;
*JUtility::getToken() has been removed. Use JSession::getFormToken() instead.&lt;br /&gt;
*JUtility::isWinOS() has been removed. Use JApplication::isWinOS() instead.&lt;br /&gt;
*JUtility::dump() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JXMLElement ====&lt;br /&gt;
*JXMLElement::data() has been removed.&lt;br /&gt;
*JXMLElement::getAttribute() has been removed. Use SimpleXMLElement::attributes() instead.&lt;br /&gt;
&lt;br /&gt;
== JavaScript ==&lt;br /&gt;
*Compatibility with MooTools 1.2 has been removed.&lt;br /&gt;
*Forms that have name=&amp;quot;adminForm&amp;quot; now also require id=&amp;quot;adminForm&amp;quot;.&lt;br /&gt;
*checkAll() has been removed. Use Joomla.checkAll() instead.&lt;br /&gt;
*isChecked() has been removed. Use Joomla.isChecked() instead.&lt;br /&gt;
*popupWindow() has been removed. Use Joomla.popupWindow() instead.&lt;br /&gt;
*tableOrdering() has been removed. Use Joomla.tableOrdering() instead.&lt;br /&gt;
&lt;br /&gt;
= CMS =&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*JUtility is not always loaded. If you need it you have to add jimport(&#039;joomla.utilities.utility&#039;); to your code.&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Component Classes ===&lt;br /&gt;
*MenusModelItem::getItem() no longer returns a JObject but a stdClass.&lt;br /&gt;
&lt;br /&gt;
=== Help ===&lt;br /&gt;
&lt;br /&gt;
==== JHelp ====&lt;br /&gt;
*JHelp::createSiteList() the argument $selected has been removed. It was unused.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compatibility]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Platform]]&lt;/div&gt;</summary>
		<author><name>Akfaisel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77480</id>
		<title>Potential backward compatibility issues in Joomla 3 and Joomla Platform 12.2</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77480"/>
		<updated>2012-11-08T05:29:44Z</updated>

		<summary type="html">&lt;p&gt;Akfaisel: /* JRequest */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{incomplete}}{{RightTOC}}This document tracks potential backward compatibility issues for Joomla 3.0 and Joomla Platform 12.1, which is included in Joomla 3.0. Listed are issues which potentially break extensions.&lt;br /&gt;
Please help make this document complete.&lt;br /&gt;
&lt;br /&gt;
The base of this comparison is Joomla 2.5/Platform 11.4.&lt;br /&gt;
&lt;br /&gt;
Backwards compatibility issues were also tracked for Joomla 2.5: [[Potential backward compatibility issues in Joomla 2.5 and Joomla Platform 11.4]]&lt;br /&gt;
&lt;br /&gt;
= Platform =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Updated System Requirements ==&lt;br /&gt;
The system requirements have changed in the following points:&lt;br /&gt;
*PHP 5.3.1&lt;br /&gt;
*register_globals must be off&lt;br /&gt;
*magic_quotes_gpc must be off&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*Almost all functions, methods, members and classes marked as deprecated in Platform 11.4 have been removed. They won&#039;t be listed in this document.&lt;br /&gt;
*Appending ?no_html to an URL to get a RAW view is not supported anymore (this was an old Joomla 1.0 feature).&lt;br /&gt;
*The DS constant has been removed. If you really need it you can use DIRECTORY_SEPARATOR instead.&lt;br /&gt;
*Many more function arguments have been type hinted, including existing classes. Make sure you&#039;re always passing values of the correct type.&lt;br /&gt;
*The name of modules now have to start with &amp;quot;mod_&amp;quot;.&lt;br /&gt;
*Extensions need to set the registeredurlparams now, the fall back on the URL has been removed.&lt;br /&gt;
*Some cookies are only accessible through HTTP (not via JavaScript). For example; the session cookie.&lt;br /&gt;
*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.&lt;br /&gt;
*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)&lt;br /&gt;
*Joomla! 3.0 usually throws exceptions instead of returning JError or JException. Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Changes to extension installation ==&lt;br /&gt;
*Use of the &amp;lt;install&amp;gt; base tag (from 1.5) is no longer supported; use &amp;lt;extension&amp;gt; instead.&lt;br /&gt;
*Suppport for install_script and uninstall_script, and the methods com_install and com_uninstall in these scripts, has been removed; use scriptfile instead.&lt;br /&gt;
*In language extensions, support for client=&amp;quot;both&amp;quot; has been removed; prepare each client as a separate extension and optionally bundle them as a package extension instead.&lt;br /&gt;
*File paths for plugins no longer support the old 1.5 method (i.e. plugins/system/cache.php); each plugin must now be in its own folder (i.e. plugins/system/cache/cache.php).&lt;br /&gt;
&lt;br /&gt;
== Changes to Components ==&lt;br /&gt;
*In admin components the admin.*.php and toolbar.*.php are not automatically included anymore (this was a Joomla 1.0 legacy feature).&lt;br /&gt;
&lt;br /&gt;
== Moved files ==&lt;br /&gt;
All classes listed here should now be autoloadable. Explicit requires and includes have to be modified or removed.&lt;br /&gt;
&lt;br /&gt;
== Plugin Events ==&lt;br /&gt;
* onContentBeforeSave event now receives $article by value not by reference. Sample definition: public function onContentBeforeSave($context, $article, $isNew).&lt;br /&gt;
* onContentAfterSave event now receives $article by value not by reference. Sample definition: public function onContentAfterSave($context, $article, $isNew).&lt;br /&gt;
&lt;br /&gt;
== Renamed classes ==&lt;br /&gt;
*JFTP is now called JClientFtp&lt;br /&gt;
*JLDAP is now called JClientLdap&lt;br /&gt;
*JWebClient is now called JApplicationWebClient&lt;br /&gt;
&lt;br /&gt;
== Removed classes ==&lt;br /&gt;
*JParameter (use JForm instead)&lt;br /&gt;
*JElement and its subclasses&lt;br /&gt;
*JFormFieldEditors (use JFormFieldPlugins instead)&lt;br /&gt;
*JHtmlImage&lt;br /&gt;
*JRules (use JAccessRules instead)&lt;br /&gt;
*JSimpleXML&lt;br /&gt;
*JPane&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Base classes ===&lt;br /&gt;
&lt;br /&gt;
==== JFactory ====&lt;br /&gt;
*JFactory::getXMLParser() has been removed. For RSS and Atom use cases, use JFactory::getFeedParser() instead. To read XML files or strings use JFactory::getXML().&lt;br /&gt;
*JFactory::_createConfig() has been removed. Use JFactory::createConfig() instead.&lt;br /&gt;
*JFactory::_createSession() has been removed. Use JFactory::createSession() instead.&lt;br /&gt;
*JFactory::_createDbo() has been removed. Use JFactory::createDbo() instead.&lt;br /&gt;
*JFactory::_createMailer() has been removed. Use JFactory::createMailer() instead.&lt;br /&gt;
*JFactory::_createDocument() has been removed. Use JFactory::createDocument() instead.&lt;br /&gt;
&lt;br /&gt;
=== Application ===&lt;br /&gt;
&lt;br /&gt;
==== JApplicationHelper ====&lt;br /&gt;
*JApplicationHelper::getPath() has been removed. No replacement.&lt;br /&gt;
*JApplicationHelper::_checkPath() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
=== Component ===&lt;br /&gt;
&lt;br /&gt;
==== JComponentHelper ====&lt;br /&gt;
*The behavior of JComponentHelper::isEnabled() has been changed to match developer expectations.&lt;br /&gt;
&lt;br /&gt;
=== MVC ===&lt;br /&gt;
&lt;br /&gt;
==== JController ====&lt;br /&gt;
*JController::$_acoSection has been removed.&lt;br /&gt;
*JController::$_acoSectionValue has been removed.&lt;br /&gt;
*JController::authorize() has been removed. Use JController::authorise() instead.&lt;br /&gt;
*JController::setAccessControl() has been removed. Use JAccess.&lt;br /&gt;
*JController::getInstance() has been removed. Use JControllerLegacy::getInstance() instead.&lt;br /&gt;
&lt;br /&gt;
==== JControllerLegacy ====&lt;br /&gt;
* JControllerLegacy::display() needs an extra parameter: ($cachable = false, $urlparams = false).&lt;br /&gt;
&lt;br /&gt;
==== JModelAdmin ====&lt;br /&gt;
* JModelAdmin::generateNewTitle() is backwards incompatible with Joomla! 2.5 (first parameter has been removed).&lt;br /&gt;
* JModelAdmin::prepareTable(): first parameter isn&#039;t reference anymore.&lt;br /&gt;
&lt;br /&gt;
=== Archive ===&lt;br /&gt;
&lt;br /&gt;
==== Adapters ====&lt;br /&gt;
*JArchiveBzip2 does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveGzip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveTar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveZip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Base ===&lt;br /&gt;
&lt;br /&gt;
==== JObject ====&lt;br /&gt;
*JObject::toString() has been removed. Use JObject::__toString() instead.&lt;br /&gt;
&lt;br /&gt;
=== Client ===&lt;br /&gt;
&lt;br /&gt;
==== JClientLdap (formerly JLDAP) ====&lt;br /&gt;
*JClientLdap does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Due to lazy-connecting, a connection is only opened when running a query or explicitly calling JDatabaseDriver::connected(). Beware of that when checking JDatabaseDriver::connected().&lt;br /&gt;
&lt;br /&gt;
==== JDatabase ====&lt;br /&gt;
*JDatabase::$hasQuoted has been removed.&lt;br /&gt;
*JDatabase::$quoted has been removed.&lt;br /&gt;
*JDatabase::addQuoted() has been removed.&lt;br /&gt;
*JDatabase::hasUTF() has been removed.&lt;br /&gt;
*JDatabase::debug() has been removed. Use JDatabase::setDebug() instead.&lt;br /&gt;
*JDatabase::explain() has been removed.&lt;br /&gt;
*JDatabase::getEscaped() has been removed. Use JDatabase::escape() instead.&lt;br /&gt;
*JDatabase::getTableFields() has been removed. Use JDatabase::getTableColumns() instead.&lt;br /&gt;
*JDatabase::getTicker() has been removed. Use JDatabase::count() instead.&lt;br /&gt;
*JDatabase::isQuoted() has been removed.&lt;br /&gt;
*JDatabase::loadResultArray() has been removed. Use JDatabase::loadColumn() instead.&lt;br /&gt;
*JDatabase::nameQuote() has been removed. Use JDatabase::quoteName() instead.&lt;br /&gt;
*JDatabase::queryBatch() has been removed.&lt;br /&gt;
*JDatabase::query() has been deprecated. JDatabase::execute() should be used alternatively&lt;br /&gt;
&lt;br /&gt;
=== Document ===&lt;br /&gt;
&lt;br /&gt;
==== JDocument ====&lt;br /&gt;
*JDocument::setMetaData() the $sync argument has been removed. It was broken beyond repair.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentRenderer ====&lt;br /&gt;
*JDocumentRenderer does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentFeed ====&lt;br /&gt;
*JFeedItem does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedEnclosure does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentOpenSearch ====&lt;br /&gt;
*JOpenSearchUrl does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JOpenSearchImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentXml ====&lt;br /&gt;
*JDocumentXml::$_name has been renamed to JDocumentXml::$name.&lt;br /&gt;
&lt;br /&gt;
=== Environment ===&lt;br /&gt;
&lt;br /&gt;
==== JBrowser ====&lt;br /&gt;
*JBrowser does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JBrowser::setQuirk() has been removed.&lt;br /&gt;
*JBrowser::hasQuirk() has been removed.&lt;br /&gt;
*JBrowser::getQuirk() has been removed.&lt;br /&gt;
*JBrowser::setFeature() has been removed.&lt;br /&gt;
*JBrowser::hasFeature() has been removed.&lt;br /&gt;
*JBrowser::getFeature() has been removed.&lt;br /&gt;
*JBrowser::$_majorVersion has been renamed to JBrowser::$majorVersion.&lt;br /&gt;
*JBrowser::$_minorVersion has been renamed to JBrowser::$minorVersion.&lt;br /&gt;
*JBrowser::$_browser has been renamed to JBrowser::$browser.&lt;br /&gt;
*JBrowser::$_agent has been renamed to JBrowser::$agent.&lt;br /&gt;
*JBrowser::$_lowerAgent has been renamed to JBrowser::$lowerAgent.&lt;br /&gt;
*JBrowser::$_accept has been renamed to JBrowser::$accept.&lt;br /&gt;
*JBrowser::$_accept_parsed has been renamed to JBrowser::$acceptParsed.&lt;br /&gt;
*JBrowser::$_platform has been renamed to JBrowser::$platform.&lt;br /&gt;
*JBrowser::$_robots has been renamed to JBrowser::$robots.&lt;br /&gt;
*JBrowser::$_mobile has been renamed to JBrowser::$mobile.&lt;br /&gt;
*JBrowser::$_images has been renamed to JBrowser::$images.&lt;br /&gt;
&lt;br /&gt;
==== JRequest ====&lt;br /&gt;
*JRequest::clean() has been removed.&lt;br /&gt;
*JRequest::_cleanVar() is now protected.&lt;br /&gt;
*JRequest::getCmd() is deprecated. Use JFactory::getApplication()-&amp;gt;input-&amp;gt;get() instead&lt;br /&gt;
*JRequest::getVar() is deprecated. Use JFactory::getApplication()-&amp;gt;input-&amp;gt;get() instead&lt;br /&gt;
*JRequest::checkToken() is deprecated. Use JSession::checkToken() instead&lt;br /&gt;
&lt;br /&gt;
==== JUri ====&lt;br /&gt;
*JURI has been renamed to JUri. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JUri does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JUri::$_uri has been renamed to JUri::$uri.&lt;br /&gt;
*JUri::$_scheme has been renamed to JUri::$scheme.&lt;br /&gt;
*JUri::$_host has been renamed to JUri::$host.&lt;br /&gt;
*JUri::$_port has been renamed to JUri::$port.&lt;br /&gt;
*JUri::$_user has been renamed to JUri::$user.&lt;br /&gt;
*JUri::$_pass has been renamed to JUri::$pass.&lt;br /&gt;
*JUri::$_path has been renamed to JUri::$path.&lt;br /&gt;
*JUri::$_query has been renamed to JUri::$query.&lt;br /&gt;
*JUri::$_fragment has been renamed to JUri::$fragment.&lt;br /&gt;
*JUri::$_vars has been renamed to JUri::$vars.&lt;br /&gt;
&lt;br /&gt;
=== Error ===&lt;br /&gt;
&lt;br /&gt;
==== JError ====&lt;br /&gt;
*JError has been deprecated. Use Exceptions instead.&lt;br /&gt;
*&#039;&#039;&#039;WARNING&#039;&#039;&#039;: Many functions that were previously returning JError or false are now throwing exceptions.&lt;br /&gt;
&lt;br /&gt;
Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
==== JProfiler ====&lt;br /&gt;
*JProfiler does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JProfiler::$_start has been renamed to JProfiler::$start.&lt;br /&gt;
*JProfiler::$_prefix has been renamed to JProfiler::$prefix.&lt;br /&gt;
*JProfiler::$_buffer has been renamed to JProfiler::$buffer.&lt;br /&gt;
*JProfiler::$_previous_time has been renamed to JProfiler::$previousTime.&lt;br /&gt;
*JProfiler::$_previous_mem has been renamed to JProfiler::$previousMem.&lt;br /&gt;
*JProfiler::$_iswin has been renamed to JProfiler::$isWin.&lt;br /&gt;
&lt;br /&gt;
=== Filesystem ===&lt;br /&gt;
&lt;br /&gt;
==== JStream ====&lt;br /&gt;
*JStream::$_fh has been renamed to JStream::$fh.&lt;br /&gt;
*JStream::$_filesize has been renamed to JStream::$filesize.&lt;br /&gt;
*JStream::$_context has been renamed to JStream::$context.&lt;br /&gt;
*JStream::$_contextOptions has been renamed to JStream::$contextOptions.&lt;br /&gt;
*JStream::$_openmode has been renamed to JStream::$openmode.&lt;br /&gt;
&lt;br /&gt;
==== JStreamString ====&lt;br /&gt;
*JStream::$_currentstring has been renamed to JStream::$currentString.&lt;br /&gt;
*JStream::$_path has been renamed to JStream::$path.&lt;br /&gt;
*JStream::$_mode has been renamed to JStream::$mode.&lt;br /&gt;
*JStream::$_options has been renamed to JStream::$options.&lt;br /&gt;
*JStream::$_opened_path has been renamed to JStream::$openedPath.&lt;br /&gt;
*JStream::$_pos has been renamed to JStream::$pos.&lt;br /&gt;
*JStream::$_len has been renamed to JStream::$len.&lt;br /&gt;
*JStream::$_stat has been renamed to JStream::$stat.&lt;br /&gt;
&lt;br /&gt;
=== Filter ===&lt;br /&gt;
&lt;br /&gt;
==== JFilterInput ====&lt;br /&gt;
*JFilterInput does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== HTML ===&lt;br /&gt;
&lt;br /&gt;
==== JHtml ====&lt;br /&gt;
*JHTML has been renamed to JHtml. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JHtml::_includeRelativeFiles() has been removed. Use JHtml::includeRelativeFiles() instead.&lt;br /&gt;
*JHtml::core() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtml::script() doesn&#039;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.&lt;br /&gt;
*JHtml::stylesheet() doesn&#039;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.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlAccess ====&lt;br /&gt;
*JHtmlAccess::assetgroups() the argument $config has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlBehavior ====&lt;br /&gt;
*JHtmlBehavior::mootools() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtmlBehavior::noframes() the argument $location has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlList ====&lt;br /&gt;
*JHtmlList::ordering() the argument $chop has been removed. It was previously unused.&lt;br /&gt;
*JHtmlList::users(), the argument $reg has been removed.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlSelect ====&lt;br /&gt;
*JHtmlSelect::$_optionDefaults has been renamed to JHtmlSelect::$optionDefaults.&lt;br /&gt;
&lt;br /&gt;
==== JToolBar ====&lt;br /&gt;
*JToolBar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JToolBar no longer supports the &#039;X&#039; functions (eg, addNewX, editListX) that hide the main menu before doing the function.&lt;br /&gt;
&lt;br /&gt;
==== JButton ====&lt;br /&gt;
*JButton does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JPagination ====&lt;br /&gt;
*JPagination::$_viewall has been renamed to JPagination::$viewall.&lt;br /&gt;
*JPagination::$_additionalUrlParams has been renamed to JPagination::$additionalUrlParams.&lt;br /&gt;
&lt;br /&gt;
=== Installer ===&lt;br /&gt;
&lt;br /&gt;
==== JInstaller ====&lt;br /&gt;
*JInstaller::getOverwrite() has been removed. Use JInstaller::isOverwrite() instead.&lt;br /&gt;
*JInstaller::getUpgrade() has been removed. Use JInstaller::isUpgrade() instead.&lt;br /&gt;
*JInstaller::$_paths has been renamed to JInstaller::$paths.&lt;br /&gt;
*JInstaller::$_upgrade has been renamed to JInstaller::$upgrade.&lt;br /&gt;
*JInstaller::$_overwrite has been renamed to JInstaller::$overwrite.&lt;br /&gt;
*JInstaller::$_stepStack has been renamed to JInstaller::$stepStack.&lt;br /&gt;
&lt;br /&gt;
==== JInstallerLanguage ====&lt;br /&gt;
*JInstallerLanguage::$_core as been renamed to JInstallerLanguage::$core.&lt;br /&gt;
&lt;br /&gt;
=== Language ===&lt;br /&gt;
&lt;br /&gt;
==== JLanguage ====&lt;br /&gt;
*JLanguage::getPluralSufficesCallback() has been removed. Use JLanguage::getPluralSuffixesCallback() instead.&lt;br /&gt;
*JLanguage::_parseLanguageFiles() has been removed. Use JLanguage::parseLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFiles() has been removed. Use JLanguage::parseXMLLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFile() has been removed. Use JLanguage::parseXMLLanguageFile() instead.&lt;br /&gt;
*JLanguage::loadLanguage() the argument $overwrite has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
=== Registry ===&lt;br /&gt;
&lt;br /&gt;
==== JRegistry ====&lt;br /&gt;
*JRegistry::loadXML() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadINI() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadJSON() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::makeNameSpace() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getNameSpaces() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getValue() has been removed. Use JRegistry::get() instead.&lt;br /&gt;
*JRegistry::setValue() has been removed. Use JRegistry::set() instead.&lt;br /&gt;
*JRegistry::loadSetupFile() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatINI ====&lt;br /&gt;
*JRegistryFormatINI::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatJSON ====&lt;br /&gt;
*JRegistryFormatJSON::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
=== Session ===&lt;br /&gt;
&lt;br /&gt;
==== JSessionStorageDatabase ====&lt;br /&gt;
*JSessionStorageDatabase::$_data has been renamed to JSessionStorageDatabase::$data.&lt;br /&gt;
&lt;br /&gt;
=== Table ===&lt;br /&gt;
&lt;br /&gt;
==== JTable ====&lt;br /&gt;
*JTable::getInstance() parameters are now case sensitive, e.g. &#039;MenuType&#039;.&lt;br /&gt;
*JTable::canDelete() has been removed.&lt;br /&gt;
*JTable::toXML() has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Updater ===&lt;br /&gt;
&lt;br /&gt;
==== JUpdate ====&lt;br /&gt;
*JUpdate::$_xml_parser has been renamed to JUpdate::$xmlParser.&lt;br /&gt;
*JUpdate::$_stack has been renamed to JUpdate::$stack.&lt;br /&gt;
*JUpdate::$_state_store has been renamed to JUpdate::$stateStore.&lt;br /&gt;
*JUpdate::$_current_update has been renamed to JUpdate::$currentUpdate.&lt;br /&gt;
&lt;br /&gt;
==== JUpdater ====&lt;br /&gt;
*JUpdater::arrayUnique() has been removed. Use JArrayHelper::arrayUnique() instead.&lt;br /&gt;
&lt;br /&gt;
=== User ===&lt;br /&gt;
&lt;br /&gt;
==== JAuthentication ====&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_SUCCESS has been removed. Use JAuthentication::STATUS_SUCCESS instead.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_CANCEL has been removed. No replacement.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_FAILURE has been removed. Use JAuthentication::STATUS_FAILURE instead.&lt;br /&gt;
*JAuthentication::$_observers has been renamed to JAuthentication::$observers.&lt;br /&gt;
*JAuthentication::$_state has been renamed to JAuthentication::$state.&lt;br /&gt;
*JAuthentication::$_methods has been renamed to JAuthentication::$methods.&lt;br /&gt;
&lt;br /&gt;
==== JUser ====&lt;br /&gt;
*JUser::getParameters() has been removed.&lt;br /&gt;
*Juser::authorisedLevels() has been removed. Use JUser::getAuthorisedViewLevels() instead.&lt;br /&gt;
*Juser::authorize() has been removed. Use JUser::authorise() instead.&lt;br /&gt;
*JUser::$usertype has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Utility ===&lt;br /&gt;
&lt;br /&gt;
==== JBuffer ====&lt;br /&gt;
*JBuffer::$_buffers has been renamed to JBuffer::$buffers.&lt;br /&gt;
&lt;br /&gt;
==== JDate ====&lt;br /&gt;
*JDate::toMysql() has been removed. Use JDate::toSql() instead.&lt;br /&gt;
*JDate::toFormat() has been removed. Use JDate::format() instead.&lt;br /&gt;
*JDate::setOffset() has been removed. Use JDate::setTimezone() instead&lt;br /&gt;
*JDate::$offsets has been removed.&lt;br /&gt;
*JDate::__construct() doesn&#039;t accept an numeric value for $tz anymore.&lt;br /&gt;
*JDate::$_tz has been renamed to JDate::$tz.&lt;br /&gt;
&lt;br /&gt;
==== JUtility ====&lt;br /&gt;
*JUtility::sendMail() has been removed. Use JMail::sendMail() instead.&lt;br /&gt;
*JUtility::sendAdminMail() has been removed. Use JMail::sendAdminMail() instead.&lt;br /&gt;
*JUtility::getHash() has been removed. Use JApplication::getHash() instead.&lt;br /&gt;
*JUtility::getToken() has been removed. Use JSession::getFormToken() instead. It&#039;s better to use JFactory::getSession()-&amp;gt;getToken() because Joomla might remove JSession in some other framework.&lt;br /&gt;
*JUtility::isWinOS() has been removed. Use JApplication::isWinOS() instead.&lt;br /&gt;
*JUtility::dump() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JXMLElement ====&lt;br /&gt;
*JXMLElement::data() has been removed.&lt;br /&gt;
*JXMLElement::getAttribute() has been removed. Use SimpleXMLElement::attributes() instead.&lt;br /&gt;
&lt;br /&gt;
== JavaScript ==&lt;br /&gt;
*Compatibility with MooTools 1.2 has been removed.&lt;br /&gt;
*Forms that have name=&amp;quot;adminForm&amp;quot; now also require id=&amp;quot;adminForm&amp;quot;.&lt;br /&gt;
*checkAll() has been removed. Use Joomla.checkAll() instead.&lt;br /&gt;
*isChecked() has been removed. Use Joomla.isChecked() instead.&lt;br /&gt;
*popupWindow() has been removed. Use Joomla.popupWindow() instead.&lt;br /&gt;
*tableOrdering() has been removed. Use Joomla.tableOrdering() instead.&lt;br /&gt;
&lt;br /&gt;
= CMS =&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*JUtility is not always loaded. If you need it you have to add jimport(&#039;joomla.utilities.utility&#039;); to your code.&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Component Classes ===&lt;br /&gt;
*MenusModelItem::getItem() no longer returns a JObject but a stdClass.&lt;br /&gt;
&lt;br /&gt;
=== Help ===&lt;br /&gt;
&lt;br /&gt;
==== JHelp ====&lt;br /&gt;
*JHelp::createSiteList() the argument $selected has been removed. It was unused.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compatibility]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Platform]]&lt;/div&gt;</summary>
		<author><name>Akfaisel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Client-side_form_validation&amp;diff=77466</id>
		<title>Client-side form validation</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Client-side_form_validation&amp;diff=77466"/>
		<updated>2012-11-07T10:04:50Z</updated>

		<summary type="html">&lt;p&gt;Akfaisel: /* Custom Handlers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
Joomla 1.5 contains a behavior &#039;&#039;&#039;JHTMLBehavior::formvalidation()&#039;&#039;&#039; which enables the script &#039;&#039;&#039;validate.js&#039;&#039;&#039;.&lt;br /&gt;
It uses &#039;&#039;&#039;mootools&#039;&#039;&#039; and allows your form and its elements to be validated.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For more recent versions of Joomla (1.5.2) use &#039;&#039;&#039;JHTML::_(&#039;behavior.formvalidation&#039;)&#039;&#039;&#039; instead of &#039;&#039;&#039;JHTMLBehavior::formvalidation()&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Enable the Validation==&lt;br /&gt;
The only thing you have to do is set the &#039;&#039;&#039;classes&#039;&#039;&#039; of the form and elements to the specified meanings.&lt;br /&gt;
Classes:&lt;br /&gt;
===Form===&lt;br /&gt;
* form-validate -&amp;gt; enable validation&lt;br /&gt;
===Form elements===&lt;br /&gt;
* required&lt;br /&gt;
* validate-username&lt;br /&gt;
* validate-password&lt;br /&gt;
* validate-numeric&lt;br /&gt;
* validate-email&lt;br /&gt;
* validate-[custom] -&amp;gt; custom handlers have to be set then!&lt;br /&gt;
==Style Invalid Elements==&lt;br /&gt;
If some elements don&#039;t validate they will get the class&lt;br /&gt;
* invalid&lt;br /&gt;
If you style the class in the cascading style sheet, your users will be able to see which fields are wrong. For instance:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
.invalid {color:red;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Only Accept the Form After Validation==&lt;br /&gt;
If you don&#039;t want the form to submit anything unless the values are validated, here&#039;s a nice script:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php JHTMLBehavior::formvalidation(); ?&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function myValidate(f) {&lt;br /&gt;
   if (document.formvalidator.isValid(f)) {&lt;br /&gt;
      f.check.value=&#039;&amp;lt;?php echo JUtility::getToken(); ?&amp;gt;&#039;; //send token&lt;br /&gt;
      return true; &lt;br /&gt;
   }&lt;br /&gt;
   else {&lt;br /&gt;
      var msg = &#039;Some values are not acceptable.  Please retry.&#039;;&lt;br /&gt;
&lt;br /&gt;
      //Example on how to test specific fields&lt;br /&gt;
      if($(&#039;email&#039;).hasClass(&#039;invalid&#039;)){msg += &#039;\n\n\t* Invalid E-Mail Address&#039;;}&lt;br /&gt;
&lt;br /&gt;
      alert(msg);&lt;br /&gt;
   }&lt;br /&gt;
   return false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;form id=&amp;quot;WV-form&amp;quot; method=&amp;quot;post&amp;quot; class=&amp;quot;form-validate&amp;quot; onSubmit=&amp;quot;return myValidate(this);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;check&amp;quot; value=&amp;quot;post&amp;quot;/&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;email&amp;quot; id=&amp;quot;email&amp;quot; size=&amp;quot;30&amp;quot;  class=&amp;quot;required validate-email&amp;quot;/&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Submit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The page that receives the value can check several things:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die( &#039;Restricted access&#039; );  //Verify Joomla enabled&lt;br /&gt;
$jAp=&amp;amp; JFactory::getApplication();&lt;br /&gt;
if ($_POST[&#039;check&#039;]!=JUtility::getToken()) {&lt;br /&gt;
   // First verify (by a Javascript error or other methods) that the form has not been submitted without the validation&lt;br /&gt;
   if ($_POST[&#039;check&#039;]==&#039;post&#039;)	$jAp-&amp;gt;enqueueMessage(&#039;Please check all the fields of the form, aub.&amp;lt;br/&amp;gt;&lt;br /&gt;
If your browser blocks Javascript, then this form will never be successful. This is a security measure.&#039;,&#039;error&#039;);&lt;br /&gt;
   // If the check still isn&#039;t a valid token, do nothing. This might be a spoof attack or other invalid form submission&lt;br /&gt;
   return false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Custom Handlers==&lt;br /&gt;
If you want a custom handler, you can add one to the class, as in the following example (defined AFTER the validate.js):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;Window.onDomReady(function() {&lt;br /&gt;
   document.formvalidator.setHandler(&#039;birth&#039;, function(value) {&lt;br /&gt;
      regex=/^\d{4}(-\d{2}){2}$/;&lt;br /&gt;
      return regex.test(value);&lt;br /&gt;
   })&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
You can then set any class to validate-birth to make it validate as yyyy-mm-dd.  (Valid date is not checked!)&lt;br /&gt;
&lt;br /&gt;
If you want a custom handler to check both the passwords (Password and Confirm Password) are same, please add the following script after the validate.js:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
	window.addEvent(&#039;domready&#039;, function(){&lt;br /&gt;
		document.formvalidator.setHandler(&#039;passverify&#039;, function (value) { return ($(&#039;password&#039;).value == value); &lt;br /&gt;
		});&lt;br /&gt;
	});&lt;br /&gt;
// --&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Add add the class &amp;quot;validate-passverify&amp;quot; to the input field as below:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&amp;lt;input class=&amp;quot;inputbox required validate-passverify&amp;quot; type=&amp;quot;password&amp;quot; id=&amp;quot;password2&amp;quot; name=&amp;quot;password2&amp;quot; size=&amp;quot;40&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Work Around when Using with JToolBar==&lt;br /&gt;
If you are using JHTML::_(&#039;behavior.formvalidation&#039;) with JToolBar, for example use in backend, the above method will not work. This is because it depends on onSubmit event which did not fire when we call form.submit via JavaScript. To work around this, we have to move the code in onSubmit to be in submitbutton function override. This will look like this:-&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
/* Override joomla.javascript, as form-validation not work with ToolBar */&lt;br /&gt;
function submitbutton(pressbutton) {&lt;br /&gt;
    if (pressbutton == &#039;cancel&#039;) {&lt;br /&gt;
        submitform(pressbutton);&lt;br /&gt;
    }else{&lt;br /&gt;
        var f = document.adminForm;&lt;br /&gt;
        if (document.formvalidator.isValid(f)) {&lt;br /&gt;
            f.check.value=&#039;&amp;lt;?php echo JUtility::getToken(); ?&amp;gt;&#039;; //send token&lt;br /&gt;
            submitform(pressbutton);    &lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
            var msg = new Array();&lt;br /&gt;
            msg.push(&#039;Invalid input, please verify again!&#039;);&lt;br /&gt;
            if ($(&#039;title&#039;).hasClass(&#039;invalid&#039;)) {&lt;br /&gt;
                msg.push(&#039;&amp;lt;?php echo JText::_(&#039;COM_JONGMAN_ERROR_SCHEDULE_TITLE_IS_REQUIRED&#039;)?&amp;gt;&#039;);    &lt;br /&gt;
            }&lt;br /&gt;
            if($(&#039;admin_email&#039;).hasClass(&#039;invalid&#039;)){&lt;br /&gt;
                msg.push(&#039;&amp;lt;?php echo JText::_(&#039;COM_JONGMAN_ERROR_INVALID_EMAIL&#039;)?&amp;gt;&#039;);&lt;br /&gt;
            }&lt;br /&gt;
            alert (msg.join(&#039;\n&#039;));&lt;br /&gt;
        }&lt;br /&gt;
    }    &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Tutorials]][[Category:Development]][[Category:Component Development]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Akfaisel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77465</id>
		<title>Potential backward compatibility issues in Joomla 3 and Joomla Platform 12.2</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77465"/>
		<updated>2012-11-07T03:37:14Z</updated>

		<summary type="html">&lt;p&gt;Akfaisel: /* JRequest */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{incomplete}}{{RightTOC}}This document tracks potential backward compatibility issues for Joomla 3.0 and Joomla Platform 12.1, which is included in Joomla 3.0. Listed are issues which potentially break extensions.&lt;br /&gt;
Please help make this document complete.&lt;br /&gt;
&lt;br /&gt;
The base of this comparison is Joomla 2.5/Platform 11.4.&lt;br /&gt;
&lt;br /&gt;
Backwards compatibility issues were also tracked for Joomla 2.5: [[Potential backward compatibility issues in Joomla 2.5 and Joomla Platform 11.4]]&lt;br /&gt;
&lt;br /&gt;
= Platform =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Updated System Requirements ==&lt;br /&gt;
The system requirements have changed in the following points:&lt;br /&gt;
*PHP 5.3.1&lt;br /&gt;
*register_globals must be off&lt;br /&gt;
*magic_quotes_gpc must be off&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*Almost all functions, methods, members and classes marked as deprecated in Platform 11.4 have been removed. They won&#039;t be listed in this document.&lt;br /&gt;
*Appending ?no_html to an URL to get a RAW view is not supported anymore (this was an old Joomla 1.0 feature).&lt;br /&gt;
*The DS constant has been removed. If you really need it you can use DIRECTORY_SEPARATOR instead.&lt;br /&gt;
*Many more function arguments have been type hinted, including existing classes. Make sure you&#039;re always passing values of the correct type.&lt;br /&gt;
*The name of modules now have to start with &amp;quot;mod_&amp;quot;.&lt;br /&gt;
*Extensions need to set the registeredurlparams now, the fall back on the URL has been removed.&lt;br /&gt;
*Some cookies are only accessible through HTTP (not via JavaScript). For example; the session cookie.&lt;br /&gt;
*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.&lt;br /&gt;
*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)&lt;br /&gt;
*Joomla! 3.0 usually throws exceptions instead of returning JError or JException. Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Changes to extension installation ==&lt;br /&gt;
*Use of the &amp;lt;install&amp;gt; base tag (from 1.5) is no longer supported; use &amp;lt;extension&amp;gt; instead.&lt;br /&gt;
*Suppport for install_script and uninstall_script, and the methods com_install and com_uninstall in these scripts, has been removed; use scriptfile instead.&lt;br /&gt;
*In language extensions, support for client=&amp;quot;both&amp;quot; has been removed; prepare each client as a separate extension and optionally bundle them as a package extension instead.&lt;br /&gt;
*File paths for plugins no longer support the old 1.5 method (i.e. plugins/system/cache.php); each plugin must now be in its own folder (i.e. plugins/system/cache/cache.php).&lt;br /&gt;
&lt;br /&gt;
== Changes to Components ==&lt;br /&gt;
*In admin components the admin.*.php and toolbar.*.php are not automatically included anymore (this was a Joomla 1.0 legacy feature).&lt;br /&gt;
&lt;br /&gt;
== Moved files ==&lt;br /&gt;
All classes listed here should now be autoloadable. Explicit requires and includes have to be modified or removed.&lt;br /&gt;
&lt;br /&gt;
== Plugin Events ==&lt;br /&gt;
* onContentBeforeSave event now receives $article by value not by reference. Sample definition: public function onContentBeforeSave($context, $article, $isNew).&lt;br /&gt;
* onContentAfterSave event now receives $article by value not by reference. Sample definition: public function onContentAfterSave($context, $article, $isNew).&lt;br /&gt;
&lt;br /&gt;
== Renamed classes ==&lt;br /&gt;
*JFTP is now called JClientFtp&lt;br /&gt;
*JLDAP is now called JClientLdap&lt;br /&gt;
*JWebClient is now called JApplicationWebClient&lt;br /&gt;
&lt;br /&gt;
== Removed classes ==&lt;br /&gt;
*JParameter (use JForm instead)&lt;br /&gt;
*JElement and its subclasses&lt;br /&gt;
*JFormFieldEditors (use JFormFieldPlugins instead)&lt;br /&gt;
*JHtmlImage&lt;br /&gt;
*JRules (use JAccessRules instead)&lt;br /&gt;
*JSimpleXML&lt;br /&gt;
*JPane&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Base classes ===&lt;br /&gt;
&lt;br /&gt;
==== JFactory ====&lt;br /&gt;
*JFactory::getXMLParser() has been removed. For RSS and Atom use cases, use JFactory::getFeedParser() instead. To read XML files or strings use JFactory::getXML().&lt;br /&gt;
*JFactory::_createConfig() has been removed. Use JFactory::createConfig() instead.&lt;br /&gt;
*JFactory::_createSession() has been removed. Use JFactory::createSession() instead.&lt;br /&gt;
*JFactory::_createDbo() has been removed. Use JFactory::createDbo() instead.&lt;br /&gt;
*JFactory::_createMailer() has been removed. Use JFactory::createMailer() instead.&lt;br /&gt;
*JFactory::_createDocument() has been removed. Use JFactory::createDocument() instead.&lt;br /&gt;
&lt;br /&gt;
=== Application ===&lt;br /&gt;
&lt;br /&gt;
==== JApplicationHelper ====&lt;br /&gt;
*JApplicationHelper::getPath() has been removed. No replacement.&lt;br /&gt;
*JApplicationHelper::_checkPath() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
=== Component ===&lt;br /&gt;
&lt;br /&gt;
==== JComponentHelper ====&lt;br /&gt;
*The behavior of JComponentHelper::isEnabled() has been changed to match developer expectations.&lt;br /&gt;
&lt;br /&gt;
=== MVC ===&lt;br /&gt;
&lt;br /&gt;
==== JController ====&lt;br /&gt;
*JController::$_acoSection has been removed.&lt;br /&gt;
*JController::$_acoSectionValue has been removed.&lt;br /&gt;
*JController::authorize() has been removed. Use JController::authorise() instead.&lt;br /&gt;
*JController::setAccessControl() has been removed. Use JAccess.&lt;br /&gt;
*JController::getInstance() has been removed. Use JControllerLegacy::getInstance() instead.&lt;br /&gt;
&lt;br /&gt;
==== JControllerLegacy ====&lt;br /&gt;
* JControllerLegacy::display() needs an extra parameter: ($cachable = false, $urlparams = false).&lt;br /&gt;
&lt;br /&gt;
==== JModelAdmin ====&lt;br /&gt;
* JModelAdmin::generateNewTitle() is backwards incompatible with Joomla! 2.5 (first parameter has been removed).&lt;br /&gt;
* JModelAdmin::prepareTable(): first parameter isn&#039;t reference anymore.&lt;br /&gt;
&lt;br /&gt;
=== Archive ===&lt;br /&gt;
&lt;br /&gt;
==== Adapters ====&lt;br /&gt;
*JArchiveBzip2 does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveGzip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveTar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveZip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Base ===&lt;br /&gt;
&lt;br /&gt;
==== JObject ====&lt;br /&gt;
*JObject::toString() has been removed. Use JObject::__toString() instead.&lt;br /&gt;
&lt;br /&gt;
=== Client ===&lt;br /&gt;
&lt;br /&gt;
==== JClientLdap (formerly JLDAP) ====&lt;br /&gt;
*JClientLdap does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Due to lazy-connecting, a connection is only opened when running a query or explicitly calling JDatabaseDriver::connected(). Beware of that when checking JDatabaseDriver::connected().&lt;br /&gt;
&lt;br /&gt;
==== JDatabase ====&lt;br /&gt;
*JDatabase::$hasQuoted has been removed.&lt;br /&gt;
*JDatabase::$quoted has been removed.&lt;br /&gt;
*JDatabase::addQuoted() has been removed.&lt;br /&gt;
*JDatabase::hasUTF() has been removed.&lt;br /&gt;
*JDatabase::debug() has been removed. Use JDatabase::setDebug() instead.&lt;br /&gt;
*JDatabase::explain() has been removed.&lt;br /&gt;
*JDatabase::getEscaped() has been removed. Use JDatabase::escape() instead.&lt;br /&gt;
*JDatabase::getTableFields() has been removed. Use JDatabase::getTableColumns() instead.&lt;br /&gt;
*JDatabase::getTicker() has been removed. Use JDatabase::count() instead.&lt;br /&gt;
*JDatabase::isQuoted() has been removed.&lt;br /&gt;
*JDatabase::loadResultArray() has been removed. Use JDatabase::loadColumn() instead.&lt;br /&gt;
*JDatabase::nameQuote() has been removed. Use JDatabase::quoteName() instead.&lt;br /&gt;
*JDatabase::queryBatch() has been removed.&lt;br /&gt;
*JDatabase::query() has been deprecated. JDatabase::execute() should be used alternatively&lt;br /&gt;
&lt;br /&gt;
=== Document ===&lt;br /&gt;
&lt;br /&gt;
==== JDocument ====&lt;br /&gt;
*JDocument::setMetaData() the $sync argument has been removed. It was broken beyond repair.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentRenderer ====&lt;br /&gt;
*JDocumentRenderer does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentFeed ====&lt;br /&gt;
*JFeedItem does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedEnclosure does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentOpenSearch ====&lt;br /&gt;
*JOpenSearchUrl does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JOpenSearchImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentXml ====&lt;br /&gt;
*JDocumentXml::$_name has been renamed to JDocumentXml::$name.&lt;br /&gt;
&lt;br /&gt;
=== Environment ===&lt;br /&gt;
&lt;br /&gt;
==== JBrowser ====&lt;br /&gt;
*JBrowser does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JBrowser::setQuirk() has been removed.&lt;br /&gt;
*JBrowser::hasQuirk() has been removed.&lt;br /&gt;
*JBrowser::getQuirk() has been removed.&lt;br /&gt;
*JBrowser::setFeature() has been removed.&lt;br /&gt;
*JBrowser::hasFeature() has been removed.&lt;br /&gt;
*JBrowser::getFeature() has been removed.&lt;br /&gt;
*JBrowser::$_majorVersion has been renamed to JBrowser::$majorVersion.&lt;br /&gt;
*JBrowser::$_minorVersion has been renamed to JBrowser::$minorVersion.&lt;br /&gt;
*JBrowser::$_browser has been renamed to JBrowser::$browser.&lt;br /&gt;
*JBrowser::$_agent has been renamed to JBrowser::$agent.&lt;br /&gt;
*JBrowser::$_lowerAgent has been renamed to JBrowser::$lowerAgent.&lt;br /&gt;
*JBrowser::$_accept has been renamed to JBrowser::$accept.&lt;br /&gt;
*JBrowser::$_accept_parsed has been renamed to JBrowser::$acceptParsed.&lt;br /&gt;
*JBrowser::$_platform has been renamed to JBrowser::$platform.&lt;br /&gt;
*JBrowser::$_robots has been renamed to JBrowser::$robots.&lt;br /&gt;
*JBrowser::$_mobile has been renamed to JBrowser::$mobile.&lt;br /&gt;
*JBrowser::$_images has been renamed to JBrowser::$images.&lt;br /&gt;
&lt;br /&gt;
==== JRequest ====&lt;br /&gt;
*JRequest::clean() has been removed.&lt;br /&gt;
*JRequest::_cleanVar() is now protected.&lt;br /&gt;
*JRequest::getCmd() is deprecated. User JFactory::getApplication()-&amp;gt;input-&amp;gt;get() instead&lt;br /&gt;
*JRequest::getVar() is deprecated. User JFactory::getApplication()-&amp;gt;input-&amp;gt;get() instead&lt;br /&gt;
&lt;br /&gt;
==== JUri ====&lt;br /&gt;
*JURI has been renamed to JUri. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JUri does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JUri::$_uri has been renamed to JUri::$uri.&lt;br /&gt;
*JUri::$_scheme has been renamed to JUri::$scheme.&lt;br /&gt;
*JUri::$_host has been renamed to JUri::$host.&lt;br /&gt;
*JUri::$_port has been renamed to JUri::$port.&lt;br /&gt;
*JUri::$_user has been renamed to JUri::$user.&lt;br /&gt;
*JUri::$_pass has been renamed to JUri::$pass.&lt;br /&gt;
*JUri::$_path has been renamed to JUri::$path.&lt;br /&gt;
*JUri::$_query has been renamed to JUri::$query.&lt;br /&gt;
*JUri::$_fragment has been renamed to JUri::$fragment.&lt;br /&gt;
*JUri::$_vars has been renamed to JUri::$vars.&lt;br /&gt;
&lt;br /&gt;
=== Error ===&lt;br /&gt;
&lt;br /&gt;
==== JError ====&lt;br /&gt;
*JError has been deprecated. Use Exceptions instead.&lt;br /&gt;
*&#039;&#039;&#039;WARNING&#039;&#039;&#039;: Many functions that were previously returning JError or false are now throwing exceptions.&lt;br /&gt;
&lt;br /&gt;
Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
==== JProfiler ====&lt;br /&gt;
*JProfiler does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JProfiler::$_start has been renamed to JProfiler::$start.&lt;br /&gt;
*JProfiler::$_prefix has been renamed to JProfiler::$prefix.&lt;br /&gt;
*JProfiler::$_buffer has been renamed to JProfiler::$buffer.&lt;br /&gt;
*JProfiler::$_previous_time has been renamed to JProfiler::$previousTime.&lt;br /&gt;
*JProfiler::$_previous_mem has been renamed to JProfiler::$previousMem.&lt;br /&gt;
*JProfiler::$_iswin has been renamed to JProfiler::$isWin.&lt;br /&gt;
&lt;br /&gt;
=== Filesystem ===&lt;br /&gt;
&lt;br /&gt;
==== JStream ====&lt;br /&gt;
*JStream::$_fh has been renamed to JStream::$fh.&lt;br /&gt;
*JStream::$_filesize has been renamed to JStream::$filesize.&lt;br /&gt;
*JStream::$_context has been renamed to JStream::$context.&lt;br /&gt;
*JStream::$_contextOptions has been renamed to JStream::$contextOptions.&lt;br /&gt;
*JStream::$_openmode has been renamed to JStream::$openmode.&lt;br /&gt;
&lt;br /&gt;
==== JStreamString ====&lt;br /&gt;
*JStream::$_currentstring has been renamed to JStream::$currentString.&lt;br /&gt;
*JStream::$_path has been renamed to JStream::$path.&lt;br /&gt;
*JStream::$_mode has been renamed to JStream::$mode.&lt;br /&gt;
*JStream::$_options has been renamed to JStream::$options.&lt;br /&gt;
*JStream::$_opened_path has been renamed to JStream::$openedPath.&lt;br /&gt;
*JStream::$_pos has been renamed to JStream::$pos.&lt;br /&gt;
*JStream::$_len has been renamed to JStream::$len.&lt;br /&gt;
*JStream::$_stat has been renamed to JStream::$stat.&lt;br /&gt;
&lt;br /&gt;
=== Filter ===&lt;br /&gt;
&lt;br /&gt;
==== JFilterInput ====&lt;br /&gt;
*JFilterInput does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== HTML ===&lt;br /&gt;
&lt;br /&gt;
==== JHtml ====&lt;br /&gt;
*JHTML has been renamed to JHtml. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JHtml::_includeRelativeFiles() has been removed. Use JHtml::includeRelativeFiles() instead.&lt;br /&gt;
*JHtml::core() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtml::script() doesn&#039;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.&lt;br /&gt;
*JHtml::stylesheet() doesn&#039;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.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlAccess ====&lt;br /&gt;
*JHtmlAccess::assetgroups() the argument $config has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlBehavior ====&lt;br /&gt;
*JHtmlBehavior::mootools() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtmlBehavior::noframes() the argument $location has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlList ====&lt;br /&gt;
*JHtmlList::ordering() the argument $chop has been removed. It was previously unused.&lt;br /&gt;
*JHtmlList::users(), the argument $reg has been removed.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlSelect ====&lt;br /&gt;
*JHtmlSelect::$_optionDefaults has been renamed to JHtmlSelect::$optionDefaults.&lt;br /&gt;
&lt;br /&gt;
==== JToolBar ====&lt;br /&gt;
*JToolBar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JToolBar no longer supports the &#039;X&#039; functions (eg, addNewX, editListX) that hide the main menu before doing the function.&lt;br /&gt;
&lt;br /&gt;
==== JButton ====&lt;br /&gt;
*JButton does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JPagination ====&lt;br /&gt;
*JPagination::$_viewall has been renamed to JPagination::$viewall.&lt;br /&gt;
*JPagination::$_additionalUrlParams has been renamed to JPagination::$additionalUrlParams.&lt;br /&gt;
&lt;br /&gt;
=== Installer ===&lt;br /&gt;
&lt;br /&gt;
==== JInstaller ====&lt;br /&gt;
*JInstaller::getOverwrite() has been removed. Use JInstaller::isOverwrite() instead.&lt;br /&gt;
*JInstaller::getUpgrade() has been removed. Use JInstaller::isUpgrade() instead.&lt;br /&gt;
*JInstaller::$_paths has been renamed to JInstaller::$paths.&lt;br /&gt;
*JInstaller::$_upgrade has been renamed to JInstaller::$upgrade.&lt;br /&gt;
*JInstaller::$_overwrite has been renamed to JInstaller::$overwrite.&lt;br /&gt;
*JInstaller::$_stepStack has been renamed to JInstaller::$stepStack.&lt;br /&gt;
&lt;br /&gt;
==== JInstallerLanguage ====&lt;br /&gt;
*JInstallerLanguage::$_core as been renamed to JInstallerLanguage::$core.&lt;br /&gt;
&lt;br /&gt;
=== Language ===&lt;br /&gt;
&lt;br /&gt;
==== JLanguage ====&lt;br /&gt;
*JLanguage::getPluralSufficesCallback() has been removed. Use JLanguage::getPluralSuffixesCallback() instead.&lt;br /&gt;
*JLanguage::_parseLanguageFiles() has been removed. Use JLanguage::parseLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFiles() has been removed. Use JLanguage::parseXMLLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFile() has been removed. Use JLanguage::parseXMLLanguageFile() instead.&lt;br /&gt;
*JLanguage::loadLanguage() the argument $overwrite has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
=== Registry ===&lt;br /&gt;
&lt;br /&gt;
==== JRegistry ====&lt;br /&gt;
*JRegistry::loadXML() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadINI() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadJSON() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::makeNameSpace() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getNameSpaces() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getValue() has been removed. Use JRegistry::get() instead.&lt;br /&gt;
*JRegistry::setValue() has been removed. Use JRegistry::set() instead.&lt;br /&gt;
*JRegistry::loadSetupFile() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatINI ====&lt;br /&gt;
*JRegistryFormatINI::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatJSON ====&lt;br /&gt;
*JRegistryFormatJSON::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
=== Session ===&lt;br /&gt;
&lt;br /&gt;
==== JSessionStorageDatabase ====&lt;br /&gt;
*JSessionStorageDatabase::$_data has been renamed to JSessionStorageDatabase::$data.&lt;br /&gt;
&lt;br /&gt;
=== Table ===&lt;br /&gt;
&lt;br /&gt;
==== JTable ====&lt;br /&gt;
*JTable::getInstance() parameters are now case sensitive, e.g. &#039;MenuType&#039;.&lt;br /&gt;
*JTable::canDelete() has been removed.&lt;br /&gt;
*JTable::toXML() has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Updater ===&lt;br /&gt;
&lt;br /&gt;
==== JUpdate ====&lt;br /&gt;
*JUpdate::$_xml_parser has been renamed to JUpdate::$xmlParser.&lt;br /&gt;
*JUpdate::$_stack has been renamed to JUpdate::$stack.&lt;br /&gt;
*JUpdate::$_state_store has been renamed to JUpdate::$stateStore.&lt;br /&gt;
*JUpdate::$_current_update has been renamed to JUpdate::$currentUpdate.&lt;br /&gt;
&lt;br /&gt;
==== JUpdater ====&lt;br /&gt;
*JUpdater::arrayUnique() has been removed. Use JArrayHelper::arrayUnique() instead.&lt;br /&gt;
&lt;br /&gt;
=== User ===&lt;br /&gt;
&lt;br /&gt;
==== JAuthentication ====&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_SUCCESS has been removed. Use JAuthentication::STATUS_SUCCESS instead.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_CANCEL has been removed. No replacement.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_FAILURE has been removed. Use JAuthentication::STATUS_FAILURE instead.&lt;br /&gt;
*JAuthentication::$_observers has been renamed to JAuthentication::$observers.&lt;br /&gt;
*JAuthentication::$_state has been renamed to JAuthentication::$state.&lt;br /&gt;
*JAuthentication::$_methods has been renamed to JAuthentication::$methods.&lt;br /&gt;
&lt;br /&gt;
==== JUser ====&lt;br /&gt;
*JUser::getParameters() has been removed.&lt;br /&gt;
*Juser::authorisedLevels() has been removed. Use JUser::getAuthorisedViewLevels() instead.&lt;br /&gt;
*Juser::authorize() has been removed. Use JUser::authorise() instead.&lt;br /&gt;
*JUser::$usertype has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Utility ===&lt;br /&gt;
&lt;br /&gt;
==== JBuffer ====&lt;br /&gt;
*JBuffer::$_buffers has been renamed to JBuffer::$buffers.&lt;br /&gt;
&lt;br /&gt;
==== JDate ====&lt;br /&gt;
*JDate::toMysql() has been removed. Use JDate::toSql() instead.&lt;br /&gt;
*JDate::toFormat() has been removed. Use JDate::format() instead.&lt;br /&gt;
*JDate::setOffset() has been removed. Use JDate::setTimezone() instead&lt;br /&gt;
*JDate::$offsets has been removed.&lt;br /&gt;
*JDate::__construct() doesn&#039;t accept an numeric value for $tz anymore.&lt;br /&gt;
*JDate::$_tz has been renamed to JDate::$tz.&lt;br /&gt;
&lt;br /&gt;
==== JUtility ====&lt;br /&gt;
*JUtility::sendMail() has been removed. Use JMail::sendMail() instead.&lt;br /&gt;
*JUtility::sendAdminMail() has been removed. Use JMail::sendAdminMail() instead.&lt;br /&gt;
*JUtility::getHash() has been removed. Use JApplication::getHash() instead.&lt;br /&gt;
*JUtility::getToken() has been removed. Use JSession::getFormToken() instead. It&#039;s better to use JFactory::getSession()-&amp;gt;getToken() because Joomla might remove JSession in some other framework.&lt;br /&gt;
*JUtility::isWinOS() has been removed. Use JApplication::isWinOS() instead.&lt;br /&gt;
*JUtility::dump() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JXMLElement ====&lt;br /&gt;
*JXMLElement::data() has been removed.&lt;br /&gt;
*JXMLElement::getAttribute() has been removed. Use SimpleXMLElement::attributes() instead.&lt;br /&gt;
&lt;br /&gt;
== JavaScript ==&lt;br /&gt;
*Compatibility with MooTools 1.2 has been removed.&lt;br /&gt;
*Forms that have name=&amp;quot;adminForm&amp;quot; now also require id=&amp;quot;adminForm&amp;quot;.&lt;br /&gt;
*checkAll() has been removed. Use Joomla.checkAll() instead.&lt;br /&gt;
*isChecked() has been removed. Use Joomla.isChecked() instead.&lt;br /&gt;
*popupWindow() has been removed. Use Joomla.popupWindow() instead.&lt;br /&gt;
*tableOrdering() has been removed. Use Joomla.tableOrdering() instead.&lt;br /&gt;
&lt;br /&gt;
= CMS =&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*JUtility is not always loaded. If you need it you have to add jimport(&#039;joomla.utilities.utility&#039;); to your code.&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Component Classes ===&lt;br /&gt;
*MenusModelItem::getItem() no longer returns a JObject but a stdClass.&lt;br /&gt;
&lt;br /&gt;
=== Help ===&lt;br /&gt;
&lt;br /&gt;
==== JHelp ====&lt;br /&gt;
*JHelp::createSiteList() the argument $selected has been removed. It was unused.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compatibility]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Platform]]&lt;/div&gt;</summary>
		<author><name>Akfaisel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77464</id>
		<title>Potential backward compatibility issues in Joomla 3 and Joomla Platform 12.2</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77464"/>
		<updated>2012-11-07T03:15:43Z</updated>

		<summary type="html">&lt;p&gt;Akfaisel: /* JUtility */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{incomplete}}{{RightTOC}}This document tracks potential backward compatibility issues for Joomla 3.0 and Joomla Platform 12.1, which is included in Joomla 3.0. Listed are issues which potentially break extensions.&lt;br /&gt;
Please help make this document complete.&lt;br /&gt;
&lt;br /&gt;
The base of this comparison is Joomla 2.5/Platform 11.4.&lt;br /&gt;
&lt;br /&gt;
Backwards compatibility issues were also tracked for Joomla 2.5: [[Potential backward compatibility issues in Joomla 2.5 and Joomla Platform 11.4]]&lt;br /&gt;
&lt;br /&gt;
= Platform =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Updated System Requirements ==&lt;br /&gt;
The system requirements have changed in the following points:&lt;br /&gt;
*PHP 5.3.1&lt;br /&gt;
*register_globals must be off&lt;br /&gt;
*magic_quotes_gpc must be off&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*Almost all functions, methods, members and classes marked as deprecated in Platform 11.4 have been removed. They won&#039;t be listed in this document.&lt;br /&gt;
*Appending ?no_html to an URL to get a RAW view is not supported anymore (this was an old Joomla 1.0 feature).&lt;br /&gt;
*The DS constant has been removed. If you really need it you can use DIRECTORY_SEPARATOR instead.&lt;br /&gt;
*Many more function arguments have been type hinted, including existing classes. Make sure you&#039;re always passing values of the correct type.&lt;br /&gt;
*The name of modules now have to start with &amp;quot;mod_&amp;quot;.&lt;br /&gt;
*Extensions need to set the registeredurlparams now, the fall back on the URL has been removed.&lt;br /&gt;
*Some cookies are only accessible through HTTP (not via JavaScript). For example; the session cookie.&lt;br /&gt;
*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.&lt;br /&gt;
*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)&lt;br /&gt;
*Joomla! 3.0 usually throws exceptions instead of returning JError or JException. Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Changes to extension installation ==&lt;br /&gt;
*Use of the &amp;lt;install&amp;gt; base tag (from 1.5) is no longer supported; use &amp;lt;extension&amp;gt; instead.&lt;br /&gt;
*Suppport for install_script and uninstall_script, and the methods com_install and com_uninstall in these scripts, has been removed; use scriptfile instead.&lt;br /&gt;
*In language extensions, support for client=&amp;quot;both&amp;quot; has been removed; prepare each client as a separate extension and optionally bundle them as a package extension instead.&lt;br /&gt;
*File paths for plugins no longer support the old 1.5 method (i.e. plugins/system/cache.php); each plugin must now be in its own folder (i.e. plugins/system/cache/cache.php).&lt;br /&gt;
&lt;br /&gt;
== Changes to Components ==&lt;br /&gt;
*In admin components the admin.*.php and toolbar.*.php are not automatically included anymore (this was a Joomla 1.0 legacy feature).&lt;br /&gt;
&lt;br /&gt;
== Moved files ==&lt;br /&gt;
All classes listed here should now be autoloadable. Explicit requires and includes have to be modified or removed.&lt;br /&gt;
&lt;br /&gt;
== Plugin Events ==&lt;br /&gt;
* onContentBeforeSave event now receives $article by value not by reference. Sample definition: public function onContentBeforeSave($context, $article, $isNew).&lt;br /&gt;
* onContentAfterSave event now receives $article by value not by reference. Sample definition: public function onContentAfterSave($context, $article, $isNew).&lt;br /&gt;
&lt;br /&gt;
== Renamed classes ==&lt;br /&gt;
*JFTP is now called JClientFtp&lt;br /&gt;
*JLDAP is now called JClientLdap&lt;br /&gt;
*JWebClient is now called JApplicationWebClient&lt;br /&gt;
&lt;br /&gt;
== Removed classes ==&lt;br /&gt;
*JParameter (use JForm instead)&lt;br /&gt;
*JElement and its subclasses&lt;br /&gt;
*JFormFieldEditors (use JFormFieldPlugins instead)&lt;br /&gt;
*JHtmlImage&lt;br /&gt;
*JRules (use JAccessRules instead)&lt;br /&gt;
*JSimpleXML&lt;br /&gt;
*JPane&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Base classes ===&lt;br /&gt;
&lt;br /&gt;
==== JFactory ====&lt;br /&gt;
*JFactory::getXMLParser() has been removed. For RSS and Atom use cases, use JFactory::getFeedParser() instead. To read XML files or strings use JFactory::getXML().&lt;br /&gt;
*JFactory::_createConfig() has been removed. Use JFactory::createConfig() instead.&lt;br /&gt;
*JFactory::_createSession() has been removed. Use JFactory::createSession() instead.&lt;br /&gt;
*JFactory::_createDbo() has been removed. Use JFactory::createDbo() instead.&lt;br /&gt;
*JFactory::_createMailer() has been removed. Use JFactory::createMailer() instead.&lt;br /&gt;
*JFactory::_createDocument() has been removed. Use JFactory::createDocument() instead.&lt;br /&gt;
&lt;br /&gt;
=== Application ===&lt;br /&gt;
&lt;br /&gt;
==== JApplicationHelper ====&lt;br /&gt;
*JApplicationHelper::getPath() has been removed. No replacement.&lt;br /&gt;
*JApplicationHelper::_checkPath() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
=== Component ===&lt;br /&gt;
&lt;br /&gt;
==== JComponentHelper ====&lt;br /&gt;
*The behavior of JComponentHelper::isEnabled() has been changed to match developer expectations.&lt;br /&gt;
&lt;br /&gt;
=== MVC ===&lt;br /&gt;
&lt;br /&gt;
==== JController ====&lt;br /&gt;
*JController::$_acoSection has been removed.&lt;br /&gt;
*JController::$_acoSectionValue has been removed.&lt;br /&gt;
*JController::authorize() has been removed. Use JController::authorise() instead.&lt;br /&gt;
*JController::setAccessControl() has been removed. Use JAccess.&lt;br /&gt;
*JController::getInstance() has been removed. Use JControllerLegacy::getInstance() instead.&lt;br /&gt;
&lt;br /&gt;
==== JControllerLegacy ====&lt;br /&gt;
* JControllerLegacy::display() needs an extra parameter: ($cachable = false, $urlparams = false).&lt;br /&gt;
&lt;br /&gt;
==== JModelAdmin ====&lt;br /&gt;
* JModelAdmin::generateNewTitle() is backwards incompatible with Joomla! 2.5 (first parameter has been removed).&lt;br /&gt;
* JModelAdmin::prepareTable(): first parameter isn&#039;t reference anymore.&lt;br /&gt;
&lt;br /&gt;
=== Archive ===&lt;br /&gt;
&lt;br /&gt;
==== Adapters ====&lt;br /&gt;
*JArchiveBzip2 does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveGzip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveTar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveZip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Base ===&lt;br /&gt;
&lt;br /&gt;
==== JObject ====&lt;br /&gt;
*JObject::toString() has been removed. Use JObject::__toString() instead.&lt;br /&gt;
&lt;br /&gt;
=== Client ===&lt;br /&gt;
&lt;br /&gt;
==== JClientLdap (formerly JLDAP) ====&lt;br /&gt;
*JClientLdap does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Due to lazy-connecting, a connection is only opened when running a query or explicitly calling JDatabaseDriver::connected(). Beware of that when checking JDatabaseDriver::connected().&lt;br /&gt;
&lt;br /&gt;
==== JDatabase ====&lt;br /&gt;
*JDatabase::$hasQuoted has been removed.&lt;br /&gt;
*JDatabase::$quoted has been removed.&lt;br /&gt;
*JDatabase::addQuoted() has been removed.&lt;br /&gt;
*JDatabase::hasUTF() has been removed.&lt;br /&gt;
*JDatabase::debug() has been removed. Use JDatabase::setDebug() instead.&lt;br /&gt;
*JDatabase::explain() has been removed.&lt;br /&gt;
*JDatabase::getEscaped() has been removed. Use JDatabase::escape() instead.&lt;br /&gt;
*JDatabase::getTableFields() has been removed. Use JDatabase::getTableColumns() instead.&lt;br /&gt;
*JDatabase::getTicker() has been removed. Use JDatabase::count() instead.&lt;br /&gt;
*JDatabase::isQuoted() has been removed.&lt;br /&gt;
*JDatabase::loadResultArray() has been removed. Use JDatabase::loadColumn() instead.&lt;br /&gt;
*JDatabase::nameQuote() has been removed. Use JDatabase::quoteName() instead.&lt;br /&gt;
*JDatabase::queryBatch() has been removed.&lt;br /&gt;
*JDatabase::query() has been deprecated. JDatabase::execute() should be used alternatively&lt;br /&gt;
&lt;br /&gt;
=== Document ===&lt;br /&gt;
&lt;br /&gt;
==== JDocument ====&lt;br /&gt;
*JDocument::setMetaData() the $sync argument has been removed. It was broken beyond repair.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentRenderer ====&lt;br /&gt;
*JDocumentRenderer does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentFeed ====&lt;br /&gt;
*JFeedItem does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedEnclosure does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentOpenSearch ====&lt;br /&gt;
*JOpenSearchUrl does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JOpenSearchImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentXml ====&lt;br /&gt;
*JDocumentXml::$_name has been renamed to JDocumentXml::$name.&lt;br /&gt;
&lt;br /&gt;
=== Environment ===&lt;br /&gt;
&lt;br /&gt;
==== JBrowser ====&lt;br /&gt;
*JBrowser does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JBrowser::setQuirk() has been removed.&lt;br /&gt;
*JBrowser::hasQuirk() has been removed.&lt;br /&gt;
*JBrowser::getQuirk() has been removed.&lt;br /&gt;
*JBrowser::setFeature() has been removed.&lt;br /&gt;
*JBrowser::hasFeature() has been removed.&lt;br /&gt;
*JBrowser::getFeature() has been removed.&lt;br /&gt;
*JBrowser::$_majorVersion has been renamed to JBrowser::$majorVersion.&lt;br /&gt;
*JBrowser::$_minorVersion has been renamed to JBrowser::$minorVersion.&lt;br /&gt;
*JBrowser::$_browser has been renamed to JBrowser::$browser.&lt;br /&gt;
*JBrowser::$_agent has been renamed to JBrowser::$agent.&lt;br /&gt;
*JBrowser::$_lowerAgent has been renamed to JBrowser::$lowerAgent.&lt;br /&gt;
*JBrowser::$_accept has been renamed to JBrowser::$accept.&lt;br /&gt;
*JBrowser::$_accept_parsed has been renamed to JBrowser::$acceptParsed.&lt;br /&gt;
*JBrowser::$_platform has been renamed to JBrowser::$platform.&lt;br /&gt;
*JBrowser::$_robots has been renamed to JBrowser::$robots.&lt;br /&gt;
*JBrowser::$_mobile has been renamed to JBrowser::$mobile.&lt;br /&gt;
*JBrowser::$_images has been renamed to JBrowser::$images.&lt;br /&gt;
&lt;br /&gt;
==== JRequest ====&lt;br /&gt;
*JRequest::clean() has been removed.&lt;br /&gt;
*JRequest::_cleanVar() is now protected.&lt;br /&gt;
&lt;br /&gt;
==== JUri ====&lt;br /&gt;
*JURI has been renamed to JUri. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JUri does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JUri::$_uri has been renamed to JUri::$uri.&lt;br /&gt;
*JUri::$_scheme has been renamed to JUri::$scheme.&lt;br /&gt;
*JUri::$_host has been renamed to JUri::$host.&lt;br /&gt;
*JUri::$_port has been renamed to JUri::$port.&lt;br /&gt;
*JUri::$_user has been renamed to JUri::$user.&lt;br /&gt;
*JUri::$_pass has been renamed to JUri::$pass.&lt;br /&gt;
*JUri::$_path has been renamed to JUri::$path.&lt;br /&gt;
*JUri::$_query has been renamed to JUri::$query.&lt;br /&gt;
*JUri::$_fragment has been renamed to JUri::$fragment.&lt;br /&gt;
*JUri::$_vars has been renamed to JUri::$vars.&lt;br /&gt;
&lt;br /&gt;
=== Error ===&lt;br /&gt;
&lt;br /&gt;
==== JError ====&lt;br /&gt;
*JError has been deprecated. Use Exceptions instead.&lt;br /&gt;
*&#039;&#039;&#039;WARNING&#039;&#039;&#039;: Many functions that were previously returning JError or false are now throwing exceptions.&lt;br /&gt;
&lt;br /&gt;
Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
==== JProfiler ====&lt;br /&gt;
*JProfiler does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JProfiler::$_start has been renamed to JProfiler::$start.&lt;br /&gt;
*JProfiler::$_prefix has been renamed to JProfiler::$prefix.&lt;br /&gt;
*JProfiler::$_buffer has been renamed to JProfiler::$buffer.&lt;br /&gt;
*JProfiler::$_previous_time has been renamed to JProfiler::$previousTime.&lt;br /&gt;
*JProfiler::$_previous_mem has been renamed to JProfiler::$previousMem.&lt;br /&gt;
*JProfiler::$_iswin has been renamed to JProfiler::$isWin.&lt;br /&gt;
&lt;br /&gt;
=== Filesystem ===&lt;br /&gt;
&lt;br /&gt;
==== JStream ====&lt;br /&gt;
*JStream::$_fh has been renamed to JStream::$fh.&lt;br /&gt;
*JStream::$_filesize has been renamed to JStream::$filesize.&lt;br /&gt;
*JStream::$_context has been renamed to JStream::$context.&lt;br /&gt;
*JStream::$_contextOptions has been renamed to JStream::$contextOptions.&lt;br /&gt;
*JStream::$_openmode has been renamed to JStream::$openmode.&lt;br /&gt;
&lt;br /&gt;
==== JStreamString ====&lt;br /&gt;
*JStream::$_currentstring has been renamed to JStream::$currentString.&lt;br /&gt;
*JStream::$_path has been renamed to JStream::$path.&lt;br /&gt;
*JStream::$_mode has been renamed to JStream::$mode.&lt;br /&gt;
*JStream::$_options has been renamed to JStream::$options.&lt;br /&gt;
*JStream::$_opened_path has been renamed to JStream::$openedPath.&lt;br /&gt;
*JStream::$_pos has been renamed to JStream::$pos.&lt;br /&gt;
*JStream::$_len has been renamed to JStream::$len.&lt;br /&gt;
*JStream::$_stat has been renamed to JStream::$stat.&lt;br /&gt;
&lt;br /&gt;
=== Filter ===&lt;br /&gt;
&lt;br /&gt;
==== JFilterInput ====&lt;br /&gt;
*JFilterInput does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== HTML ===&lt;br /&gt;
&lt;br /&gt;
==== JHtml ====&lt;br /&gt;
*JHTML has been renamed to JHtml. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JHtml::_includeRelativeFiles() has been removed. Use JHtml::includeRelativeFiles() instead.&lt;br /&gt;
*JHtml::core() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtml::script() doesn&#039;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.&lt;br /&gt;
*JHtml::stylesheet() doesn&#039;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.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlAccess ====&lt;br /&gt;
*JHtmlAccess::assetgroups() the argument $config has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlBehavior ====&lt;br /&gt;
*JHtmlBehavior::mootools() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtmlBehavior::noframes() the argument $location has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlList ====&lt;br /&gt;
*JHtmlList::ordering() the argument $chop has been removed. It was previously unused.&lt;br /&gt;
*JHtmlList::users(), the argument $reg has been removed.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlSelect ====&lt;br /&gt;
*JHtmlSelect::$_optionDefaults has been renamed to JHtmlSelect::$optionDefaults.&lt;br /&gt;
&lt;br /&gt;
==== JToolBar ====&lt;br /&gt;
*JToolBar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JToolBar no longer supports the &#039;X&#039; functions (eg, addNewX, editListX) that hide the main menu before doing the function.&lt;br /&gt;
&lt;br /&gt;
==== JButton ====&lt;br /&gt;
*JButton does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JPagination ====&lt;br /&gt;
*JPagination::$_viewall has been renamed to JPagination::$viewall.&lt;br /&gt;
*JPagination::$_additionalUrlParams has been renamed to JPagination::$additionalUrlParams.&lt;br /&gt;
&lt;br /&gt;
=== Installer ===&lt;br /&gt;
&lt;br /&gt;
==== JInstaller ====&lt;br /&gt;
*JInstaller::getOverwrite() has been removed. Use JInstaller::isOverwrite() instead.&lt;br /&gt;
*JInstaller::getUpgrade() has been removed. Use JInstaller::isUpgrade() instead.&lt;br /&gt;
*JInstaller::$_paths has been renamed to JInstaller::$paths.&lt;br /&gt;
*JInstaller::$_upgrade has been renamed to JInstaller::$upgrade.&lt;br /&gt;
*JInstaller::$_overwrite has been renamed to JInstaller::$overwrite.&lt;br /&gt;
*JInstaller::$_stepStack has been renamed to JInstaller::$stepStack.&lt;br /&gt;
&lt;br /&gt;
==== JInstallerLanguage ====&lt;br /&gt;
*JInstallerLanguage::$_core as been renamed to JInstallerLanguage::$core.&lt;br /&gt;
&lt;br /&gt;
=== Language ===&lt;br /&gt;
&lt;br /&gt;
==== JLanguage ====&lt;br /&gt;
*JLanguage::getPluralSufficesCallback() has been removed. Use JLanguage::getPluralSuffixesCallback() instead.&lt;br /&gt;
*JLanguage::_parseLanguageFiles() has been removed. Use JLanguage::parseLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFiles() has been removed. Use JLanguage::parseXMLLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFile() has been removed. Use JLanguage::parseXMLLanguageFile() instead.&lt;br /&gt;
*JLanguage::loadLanguage() the argument $overwrite has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
=== Registry ===&lt;br /&gt;
&lt;br /&gt;
==== JRegistry ====&lt;br /&gt;
*JRegistry::loadXML() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadINI() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadJSON() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::makeNameSpace() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getNameSpaces() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getValue() has been removed. Use JRegistry::get() instead.&lt;br /&gt;
*JRegistry::setValue() has been removed. Use JRegistry::set() instead.&lt;br /&gt;
*JRegistry::loadSetupFile() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatINI ====&lt;br /&gt;
*JRegistryFormatINI::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatJSON ====&lt;br /&gt;
*JRegistryFormatJSON::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
=== Session ===&lt;br /&gt;
&lt;br /&gt;
==== JSessionStorageDatabase ====&lt;br /&gt;
*JSessionStorageDatabase::$_data has been renamed to JSessionStorageDatabase::$data.&lt;br /&gt;
&lt;br /&gt;
=== Table ===&lt;br /&gt;
&lt;br /&gt;
==== JTable ====&lt;br /&gt;
*JTable::getInstance() parameters are now case sensitive, e.g. &#039;MenuType&#039;.&lt;br /&gt;
*JTable::canDelete() has been removed.&lt;br /&gt;
*JTable::toXML() has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Updater ===&lt;br /&gt;
&lt;br /&gt;
==== JUpdate ====&lt;br /&gt;
*JUpdate::$_xml_parser has been renamed to JUpdate::$xmlParser.&lt;br /&gt;
*JUpdate::$_stack has been renamed to JUpdate::$stack.&lt;br /&gt;
*JUpdate::$_state_store has been renamed to JUpdate::$stateStore.&lt;br /&gt;
*JUpdate::$_current_update has been renamed to JUpdate::$currentUpdate.&lt;br /&gt;
&lt;br /&gt;
==== JUpdater ====&lt;br /&gt;
*JUpdater::arrayUnique() has been removed. Use JArrayHelper::arrayUnique() instead.&lt;br /&gt;
&lt;br /&gt;
=== User ===&lt;br /&gt;
&lt;br /&gt;
==== JAuthentication ====&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_SUCCESS has been removed. Use JAuthentication::STATUS_SUCCESS instead.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_CANCEL has been removed. No replacement.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_FAILURE has been removed. Use JAuthentication::STATUS_FAILURE instead.&lt;br /&gt;
*JAuthentication::$_observers has been renamed to JAuthentication::$observers.&lt;br /&gt;
*JAuthentication::$_state has been renamed to JAuthentication::$state.&lt;br /&gt;
*JAuthentication::$_methods has been renamed to JAuthentication::$methods.&lt;br /&gt;
&lt;br /&gt;
==== JUser ====&lt;br /&gt;
*JUser::getParameters() has been removed.&lt;br /&gt;
*Juser::authorisedLevels() has been removed. Use JUser::getAuthorisedViewLevels() instead.&lt;br /&gt;
*Juser::authorize() has been removed. Use JUser::authorise() instead.&lt;br /&gt;
*JUser::$usertype has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Utility ===&lt;br /&gt;
&lt;br /&gt;
==== JBuffer ====&lt;br /&gt;
*JBuffer::$_buffers has been renamed to JBuffer::$buffers.&lt;br /&gt;
&lt;br /&gt;
==== JDate ====&lt;br /&gt;
*JDate::toMysql() has been removed. Use JDate::toSql() instead.&lt;br /&gt;
*JDate::toFormat() has been removed. Use JDate::format() instead.&lt;br /&gt;
*JDate::setOffset() has been removed. Use JDate::setTimezone() instead&lt;br /&gt;
*JDate::$offsets has been removed.&lt;br /&gt;
*JDate::__construct() doesn&#039;t accept an numeric value for $tz anymore.&lt;br /&gt;
*JDate::$_tz has been renamed to JDate::$tz.&lt;br /&gt;
&lt;br /&gt;
==== JUtility ====&lt;br /&gt;
*JUtility::sendMail() has been removed. Use JMail::sendMail() instead.&lt;br /&gt;
*JUtility::sendAdminMail() has been removed. Use JMail::sendAdminMail() instead.&lt;br /&gt;
*JUtility::getHash() has been removed. Use JApplication::getHash() instead.&lt;br /&gt;
*JUtility::getToken() has been removed. Use JSession::getFormToken() instead. It&#039;s better to use JFactory::getSession()-&amp;gt;getToken() because Joomla might remove JSession in some other framework.&lt;br /&gt;
*JUtility::isWinOS() has been removed. Use JApplication::isWinOS() instead.&lt;br /&gt;
*JUtility::dump() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JXMLElement ====&lt;br /&gt;
*JXMLElement::data() has been removed.&lt;br /&gt;
*JXMLElement::getAttribute() has been removed. Use SimpleXMLElement::attributes() instead.&lt;br /&gt;
&lt;br /&gt;
== JavaScript ==&lt;br /&gt;
*Compatibility with MooTools 1.2 has been removed.&lt;br /&gt;
*Forms that have name=&amp;quot;adminForm&amp;quot; now also require id=&amp;quot;adminForm&amp;quot;.&lt;br /&gt;
*checkAll() has been removed. Use Joomla.checkAll() instead.&lt;br /&gt;
*isChecked() has been removed. Use Joomla.isChecked() instead.&lt;br /&gt;
*popupWindow() has been removed. Use Joomla.popupWindow() instead.&lt;br /&gt;
*tableOrdering() has been removed. Use Joomla.tableOrdering() instead.&lt;br /&gt;
&lt;br /&gt;
= CMS =&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*JUtility is not always loaded. If you need it you have to add jimport(&#039;joomla.utilities.utility&#039;); to your code.&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Component Classes ===&lt;br /&gt;
*MenusModelItem::getItem() no longer returns a JObject but a stdClass.&lt;br /&gt;
&lt;br /&gt;
=== Help ===&lt;br /&gt;
&lt;br /&gt;
==== JHelp ====&lt;br /&gt;
*JHelp::createSiteList() the argument $selected has been removed. It was unused.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compatibility]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Platform]]&lt;/div&gt;</summary>
		<author><name>Akfaisel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77429</id>
		<title>Potential backward compatibility issues in Joomla 3 and Joomla Platform 12.2</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77429"/>
		<updated>2012-11-06T03:51:14Z</updated>

		<summary type="html">&lt;p&gt;Akfaisel: /* JDatabase */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{incomplete}}{{RightTOC}}This document tracks potential backward compatibility issues for Joomla 3.0 and Joomla Platform 12.1, which is included in Joomla 3.0. Listed are issues which potentially break extensions.&lt;br /&gt;
Please help make this document complete.&lt;br /&gt;
&lt;br /&gt;
The base of this comparison is Joomla 2.5/Platform 11.4.&lt;br /&gt;
&lt;br /&gt;
Backwards compatibility issues were also tracked for Joomla 2.5: [[Potential backward compatibility issues in Joomla 2.5 and Joomla Platform 11.4]]&lt;br /&gt;
&lt;br /&gt;
= Platform =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Updated System Requirements ==&lt;br /&gt;
The system requirements have changed in the following points:&lt;br /&gt;
*PHP 5.3.1&lt;br /&gt;
*register_globals must be off&lt;br /&gt;
*magic_quotes_gpc must be off&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*Almost all functions, methods, members and classes marked as deprecated in Platform 11.4 have been removed. They won&#039;t be listed in this document.&lt;br /&gt;
*Appending ?no_html to an URL to get a RAW view is not supported anymore (this was an old Joomla 1.0 feature).&lt;br /&gt;
*The DS constant has been removed. If you really need it you can use DIRECTORY_SEPARATOR instead.&lt;br /&gt;
*Many more function arguments have been type hinted, including existing classes. Make sure you&#039;re always passing values of the correct type.&lt;br /&gt;
*The name of modules now have to start with &amp;quot;mod_&amp;quot;.&lt;br /&gt;
*Extensions need to set the registeredurlparams now, the fall back on the URL has been removed.&lt;br /&gt;
*Some cookies are only accessible through HTTP (not via JavaScript). For example; the session cookie.&lt;br /&gt;
*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.&lt;br /&gt;
*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)&lt;br /&gt;
*Joomla! 3.0 usually throws exceptions instead of returning JError or JException. Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Changes to extension installation ==&lt;br /&gt;
*Use of the &amp;lt;install&amp;gt; base tag (from 1.5) is no longer supported; use &amp;lt;extension&amp;gt; instead.&lt;br /&gt;
*Suppport for install_script and uninstall_script, and the methods com_install and com_uninstall in these scripts, has been removed; use scriptfile instead.&lt;br /&gt;
*In language extensions, support for client=&amp;quot;both&amp;quot; has been removed; prepare each client as a separate extension and optionally bundle them as a package extension instead.&lt;br /&gt;
*File paths for plugins no longer support the old 1.5 method (i.e. plugins/system/cache.php); each plugin must now be in its own folder (i.e. plugins/system/cache/cache.php).&lt;br /&gt;
&lt;br /&gt;
== Changes to Components ==&lt;br /&gt;
*In admin components the admin.*.php and toolbar.*.php are not automatically included anymore (this was a Joomla 1.0 legacy feature).&lt;br /&gt;
&lt;br /&gt;
== Moved files ==&lt;br /&gt;
All classes listed here should now be autoloadable. Explicit requires and includes have to be modified or removed.&lt;br /&gt;
&lt;br /&gt;
== Plugin Events ==&lt;br /&gt;
* onContentBeforeSave event now receives $article by value not by reference. Sample definition: public function onContentBeforeSave($context, $article, $isNew).&lt;br /&gt;
* onContentAfterSave event now receives $article by value not by reference. Sample definition: public function onContentAfterSave($context, $article, $isNew).&lt;br /&gt;
&lt;br /&gt;
== Renamed classes ==&lt;br /&gt;
*JFTP is now called JClientFtp&lt;br /&gt;
*JLDAP is now called JClientLdap&lt;br /&gt;
*JWebClient is now called JApplicationWebClient&lt;br /&gt;
&lt;br /&gt;
== Removed classes ==&lt;br /&gt;
*JParameter (use JForm instead)&lt;br /&gt;
*JElement and its subclasses&lt;br /&gt;
*JFormFieldEditors (use JFormFieldPlugins instead)&lt;br /&gt;
*JHtmlImage&lt;br /&gt;
*JRules (use JAccessRules instead)&lt;br /&gt;
*JSimpleXML&lt;br /&gt;
*JPane&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Base classes ===&lt;br /&gt;
&lt;br /&gt;
==== JFactory ====&lt;br /&gt;
*JFactory::getXMLParser() has been removed. For RSS and Atom use cases, use JFactory::getFeedParser() instead. To read XML files or strings use JFactory::getXML().&lt;br /&gt;
*JFactory::_createConfig() has been removed. Use JFactory::createConfig() instead.&lt;br /&gt;
*JFactory::_createSession() has been removed. Use JFactory::createSession() instead.&lt;br /&gt;
*JFactory::_createDbo() has been removed. Use JFactory::createDbo() instead.&lt;br /&gt;
*JFactory::_createMailer() has been removed. Use JFactory::createMailer() instead.&lt;br /&gt;
*JFactory::_createDocument() has been removed. Use JFactory::createDocument() instead.&lt;br /&gt;
&lt;br /&gt;
=== Application ===&lt;br /&gt;
&lt;br /&gt;
==== JApplicationHelper ====&lt;br /&gt;
*JApplicationHelper::getPath() has been removed. No replacement.&lt;br /&gt;
*JApplicationHelper::_checkPath() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
=== Component ===&lt;br /&gt;
&lt;br /&gt;
==== JComponentHelper ====&lt;br /&gt;
*The behavior of JComponentHelper::isEnabled() has been changed to match developer expectations.&lt;br /&gt;
&lt;br /&gt;
=== MVC ===&lt;br /&gt;
&lt;br /&gt;
==== JController ====&lt;br /&gt;
*JController::$_acoSection has been removed.&lt;br /&gt;
*JController::$_acoSectionValue has been removed.&lt;br /&gt;
*JController::authorize() has been removed. Use JController::authorise() instead.&lt;br /&gt;
*JController::setAccessControl() has been removed. Use JAccess.&lt;br /&gt;
*JController::getInstance() has been removed. Use JControllerLegacy::getInstance() instead.&lt;br /&gt;
&lt;br /&gt;
==== JControllerLegacy ====&lt;br /&gt;
* JControllerLegacy::display() needs an extra parameter: ($cachable = false, $urlparams = false).&lt;br /&gt;
&lt;br /&gt;
==== JModelAdmin ====&lt;br /&gt;
* JModelAdmin::generateNewTitle() is backwards incompatible with Joomla! 2.5 (first parameter has been removed).&lt;br /&gt;
* JModelAdmin::prepareTable(): first parameter isn&#039;t reference anymore.&lt;br /&gt;
&lt;br /&gt;
=== Archive ===&lt;br /&gt;
&lt;br /&gt;
==== Adapters ====&lt;br /&gt;
*JArchiveBzip2 does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveGzip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveTar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveZip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Base ===&lt;br /&gt;
&lt;br /&gt;
==== JObject ====&lt;br /&gt;
*JObject::toString() has been removed. Use JObject::__toString() instead.&lt;br /&gt;
&lt;br /&gt;
=== Client ===&lt;br /&gt;
&lt;br /&gt;
==== JClientLdap (formerly JLDAP) ====&lt;br /&gt;
*JClientLdap does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Due to lazy-connecting, a connection is only opened when running a query or explicitly calling JDatabaseDriver::connected(). Beware of that when checking JDatabaseDriver::connected().&lt;br /&gt;
&lt;br /&gt;
==== JDatabase ====&lt;br /&gt;
*JDatabase::$hasQuoted has been removed.&lt;br /&gt;
*JDatabase::$quoted has been removed.&lt;br /&gt;
*JDatabase::addQuoted() has been removed.&lt;br /&gt;
*JDatabase::hasUTF() has been removed.&lt;br /&gt;
*JDatabase::debug() has been removed. Use JDatabase::setDebug() instead.&lt;br /&gt;
*JDatabase::explain() has been removed.&lt;br /&gt;
*JDatabase::getEscaped() has been removed. Use JDatabase::escape() instead.&lt;br /&gt;
*JDatabase::getTableFields() has been removed. Use JDatabase::getTableColumns() instead.&lt;br /&gt;
*JDatabase::getTicker() has been removed. Use JDatabase::count() instead.&lt;br /&gt;
*JDatabase::isQuoted() has been removed.&lt;br /&gt;
*JDatabase::loadResultArray() has been removed. Use JDatabase::loadColumn() instead.&lt;br /&gt;
*JDatabase::nameQuote() has been removed. Use JDatabase::quoteName() instead.&lt;br /&gt;
*JDatabase::queryBatch() has been removed.&lt;br /&gt;
*JDatabase::query() has been deprecated. JDatabase::execute() should be used alternatively&lt;br /&gt;
&lt;br /&gt;
=== Document ===&lt;br /&gt;
&lt;br /&gt;
==== JDocument ====&lt;br /&gt;
*JDocument::setMetaData() the $sync argument has been removed. It was broken beyond repair.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentRenderer ====&lt;br /&gt;
*JDocumentRenderer does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentFeed ====&lt;br /&gt;
*JFeedItem does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedEnclosure does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentOpenSearch ====&lt;br /&gt;
*JOpenSearchUrl does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JOpenSearchImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentXml ====&lt;br /&gt;
*JDocumentXml::$_name has been renamed to JDocumentXml::$name.&lt;br /&gt;
&lt;br /&gt;
=== Environment ===&lt;br /&gt;
&lt;br /&gt;
==== JBrowser ====&lt;br /&gt;
*JBrowser does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JBrowser::setQuirk() has been removed.&lt;br /&gt;
*JBrowser::hasQuirk() has been removed.&lt;br /&gt;
*JBrowser::getQuirk() has been removed.&lt;br /&gt;
*JBrowser::setFeature() has been removed.&lt;br /&gt;
*JBrowser::hasFeature() has been removed.&lt;br /&gt;
*JBrowser::getFeature() has been removed.&lt;br /&gt;
*JBrowser::$_majorVersion has been renamed to JBrowser::$majorVersion.&lt;br /&gt;
*JBrowser::$_minorVersion has been renamed to JBrowser::$minorVersion.&lt;br /&gt;
*JBrowser::$_browser has been renamed to JBrowser::$browser.&lt;br /&gt;
*JBrowser::$_agent has been renamed to JBrowser::$agent.&lt;br /&gt;
*JBrowser::$_lowerAgent has been renamed to JBrowser::$lowerAgent.&lt;br /&gt;
*JBrowser::$_accept has been renamed to JBrowser::$accept.&lt;br /&gt;
*JBrowser::$_accept_parsed has been renamed to JBrowser::$acceptParsed.&lt;br /&gt;
*JBrowser::$_platform has been renamed to JBrowser::$platform.&lt;br /&gt;
*JBrowser::$_robots has been renamed to JBrowser::$robots.&lt;br /&gt;
*JBrowser::$_mobile has been renamed to JBrowser::$mobile.&lt;br /&gt;
*JBrowser::$_images has been renamed to JBrowser::$images.&lt;br /&gt;
&lt;br /&gt;
==== JRequest ====&lt;br /&gt;
*JRequest::clean() has been removed.&lt;br /&gt;
*JRequest::_cleanVar() is now protected.&lt;br /&gt;
&lt;br /&gt;
==== JUri ====&lt;br /&gt;
*JURI has been renamed to JUri. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JUri does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JUri::$_uri has been renamed to JUri::$uri.&lt;br /&gt;
*JUri::$_scheme has been renamed to JUri::$scheme.&lt;br /&gt;
*JUri::$_host has been renamed to JUri::$host.&lt;br /&gt;
*JUri::$_port has been renamed to JUri::$port.&lt;br /&gt;
*JUri::$_user has been renamed to JUri::$user.&lt;br /&gt;
*JUri::$_pass has been renamed to JUri::$pass.&lt;br /&gt;
*JUri::$_path has been renamed to JUri::$path.&lt;br /&gt;
*JUri::$_query has been renamed to JUri::$query.&lt;br /&gt;
*JUri::$_fragment has been renamed to JUri::$fragment.&lt;br /&gt;
*JUri::$_vars has been renamed to JUri::$vars.&lt;br /&gt;
&lt;br /&gt;
=== Error ===&lt;br /&gt;
&lt;br /&gt;
==== JError ====&lt;br /&gt;
*JError has been deprecated. Use Exceptions instead.&lt;br /&gt;
*&#039;&#039;&#039;WARNING&#039;&#039;&#039;: Many functions that were previously returning JError or false are now throwing exceptions.&lt;br /&gt;
&lt;br /&gt;
Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
==== JProfiler ====&lt;br /&gt;
*JProfiler does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JProfiler::$_start has been renamed to JProfiler::$start.&lt;br /&gt;
*JProfiler::$_prefix has been renamed to JProfiler::$prefix.&lt;br /&gt;
*JProfiler::$_buffer has been renamed to JProfiler::$buffer.&lt;br /&gt;
*JProfiler::$_previous_time has been renamed to JProfiler::$previousTime.&lt;br /&gt;
*JProfiler::$_previous_mem has been renamed to JProfiler::$previousMem.&lt;br /&gt;
*JProfiler::$_iswin has been renamed to JProfiler::$isWin.&lt;br /&gt;
&lt;br /&gt;
=== Filesystem ===&lt;br /&gt;
&lt;br /&gt;
==== JStream ====&lt;br /&gt;
*JStream::$_fh has been renamed to JStream::$fh.&lt;br /&gt;
*JStream::$_filesize has been renamed to JStream::$filesize.&lt;br /&gt;
*JStream::$_context has been renamed to JStream::$context.&lt;br /&gt;
*JStream::$_contextOptions has been renamed to JStream::$contextOptions.&lt;br /&gt;
*JStream::$_openmode has been renamed to JStream::$openmode.&lt;br /&gt;
&lt;br /&gt;
==== JStreamString ====&lt;br /&gt;
*JStream::$_currentstring has been renamed to JStream::$currentString.&lt;br /&gt;
*JStream::$_path has been renamed to JStream::$path.&lt;br /&gt;
*JStream::$_mode has been renamed to JStream::$mode.&lt;br /&gt;
*JStream::$_options has been renamed to JStream::$options.&lt;br /&gt;
*JStream::$_opened_path has been renamed to JStream::$openedPath.&lt;br /&gt;
*JStream::$_pos has been renamed to JStream::$pos.&lt;br /&gt;
*JStream::$_len has been renamed to JStream::$len.&lt;br /&gt;
*JStream::$_stat has been renamed to JStream::$stat.&lt;br /&gt;
&lt;br /&gt;
=== Filter ===&lt;br /&gt;
&lt;br /&gt;
==== JFilterInput ====&lt;br /&gt;
*JFilterInput does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== HTML ===&lt;br /&gt;
&lt;br /&gt;
==== JHtml ====&lt;br /&gt;
*JHTML has been renamed to JHtml. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JHtml::_includeRelativeFiles() has been removed. Use JHtml::includeRelativeFiles() instead.&lt;br /&gt;
*JHtml::core() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtml::script() doesn&#039;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.&lt;br /&gt;
*JHtml::stylesheet() doesn&#039;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.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlAccess ====&lt;br /&gt;
*JHtmlAccess::assetgroups() the argument $config has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlBehavior ====&lt;br /&gt;
*JHtmlBehavior::mootools() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtmlBehavior::noframes() the argument $location has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlList ====&lt;br /&gt;
*JHtmlList::ordering() the argument $chop has been removed. It was previously unused.&lt;br /&gt;
*JHtmlList::users(), the argument $reg has been removed.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlSelect ====&lt;br /&gt;
*JHtmlSelect::$_optionDefaults has been renamed to JHtmlSelect::$optionDefaults.&lt;br /&gt;
&lt;br /&gt;
==== JToolBar ====&lt;br /&gt;
*JToolBar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JToolBar no longer supports the &#039;X&#039; functions (eg, addNewX, editListX) that hide the main menu before doing the function.&lt;br /&gt;
&lt;br /&gt;
==== JButton ====&lt;br /&gt;
*JButton does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JPagination ====&lt;br /&gt;
*JPagination::$_viewall has been renamed to JPagination::$viewall.&lt;br /&gt;
*JPagination::$_additionalUrlParams has been renamed to JPagination::$additionalUrlParams.&lt;br /&gt;
&lt;br /&gt;
=== Installer ===&lt;br /&gt;
&lt;br /&gt;
==== JInstaller ====&lt;br /&gt;
*JInstaller::getOverwrite() has been removed. Use JInstaller::isOverwrite() instead.&lt;br /&gt;
*JInstaller::getUpgrade() has been removed. Use JInstaller::isUpgrade() instead.&lt;br /&gt;
*JInstaller::$_paths has been renamed to JInstaller::$paths.&lt;br /&gt;
*JInstaller::$_upgrade has been renamed to JInstaller::$upgrade.&lt;br /&gt;
*JInstaller::$_overwrite has been renamed to JInstaller::$overwrite.&lt;br /&gt;
*JInstaller::$_stepStack has been renamed to JInstaller::$stepStack.&lt;br /&gt;
&lt;br /&gt;
==== JInstallerLanguage ====&lt;br /&gt;
*JInstallerLanguage::$_core as been renamed to JInstallerLanguage::$core.&lt;br /&gt;
&lt;br /&gt;
=== Language ===&lt;br /&gt;
&lt;br /&gt;
==== JLanguage ====&lt;br /&gt;
*JLanguage::getPluralSufficesCallback() has been removed. Use JLanguage::getPluralSuffixesCallback() instead.&lt;br /&gt;
*JLanguage::_parseLanguageFiles() has been removed. Use JLanguage::parseLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFiles() has been removed. Use JLanguage::parseXMLLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFile() has been removed. Use JLanguage::parseXMLLanguageFile() instead.&lt;br /&gt;
*JLanguage::loadLanguage() the argument $overwrite has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
=== Registry ===&lt;br /&gt;
&lt;br /&gt;
==== JRegistry ====&lt;br /&gt;
*JRegistry::loadXML() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadINI() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadJSON() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::makeNameSpace() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getNameSpaces() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getValue() has been removed. Use JRegistry::get() instead.&lt;br /&gt;
*JRegistry::setValue() has been removed. Use JRegistry::set() instead.&lt;br /&gt;
*JRegistry::loadSetupFile() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatINI ====&lt;br /&gt;
*JRegistryFormatINI::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatJSON ====&lt;br /&gt;
*JRegistryFormatJSON::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
=== Session ===&lt;br /&gt;
&lt;br /&gt;
==== JSessionStorageDatabase ====&lt;br /&gt;
*JSessionStorageDatabase::$_data has been renamed to JSessionStorageDatabase::$data.&lt;br /&gt;
&lt;br /&gt;
=== Table ===&lt;br /&gt;
&lt;br /&gt;
==== JTable ====&lt;br /&gt;
*JTable::getInstance() parameters are now case sensitive, e.g. &#039;MenuType&#039;.&lt;br /&gt;
*JTable::canDelete() has been removed.&lt;br /&gt;
*JTable::toXML() has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Updater ===&lt;br /&gt;
&lt;br /&gt;
==== JUpdate ====&lt;br /&gt;
*JUpdate::$_xml_parser has been renamed to JUpdate::$xmlParser.&lt;br /&gt;
*JUpdate::$_stack has been renamed to JUpdate::$stack.&lt;br /&gt;
*JUpdate::$_state_store has been renamed to JUpdate::$stateStore.&lt;br /&gt;
*JUpdate::$_current_update has been renamed to JUpdate::$currentUpdate.&lt;br /&gt;
&lt;br /&gt;
==== JUpdater ====&lt;br /&gt;
*JUpdater::arrayUnique() has been removed. Use JArrayHelper::arrayUnique() instead.&lt;br /&gt;
&lt;br /&gt;
=== User ===&lt;br /&gt;
&lt;br /&gt;
==== JAuthentication ====&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_SUCCESS has been removed. Use JAuthentication::STATUS_SUCCESS instead.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_CANCEL has been removed. No replacement.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_FAILURE has been removed. Use JAuthentication::STATUS_FAILURE instead.&lt;br /&gt;
*JAuthentication::$_observers has been renamed to JAuthentication::$observers.&lt;br /&gt;
*JAuthentication::$_state has been renamed to JAuthentication::$state.&lt;br /&gt;
*JAuthentication::$_methods has been renamed to JAuthentication::$methods.&lt;br /&gt;
&lt;br /&gt;
==== JUser ====&lt;br /&gt;
*JUser::getParameters() has been removed.&lt;br /&gt;
*Juser::authorisedLevels() has been removed. Use JUser::getAuthorisedViewLevels() instead.&lt;br /&gt;
*Juser::authorize() has been removed. Use JUser::authorise() instead.&lt;br /&gt;
*JUser::$usertype has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Utility ===&lt;br /&gt;
&lt;br /&gt;
==== JBuffer ====&lt;br /&gt;
*JBuffer::$_buffers has been renamed to JBuffer::$buffers.&lt;br /&gt;
&lt;br /&gt;
==== JDate ====&lt;br /&gt;
*JDate::toMysql() has been removed. Use JDate::toSql() instead.&lt;br /&gt;
*JDate::toFormat() has been removed. Use JDate::format() instead.&lt;br /&gt;
*JDate::setOffset() has been removed. Use JDate::setTimezone() instead&lt;br /&gt;
*JDate::$offsets has been removed.&lt;br /&gt;
*JDate::__construct() doesn&#039;t accept an numeric value for $tz anymore.&lt;br /&gt;
*JDate::$_tz has been renamed to JDate::$tz.&lt;br /&gt;
&lt;br /&gt;
==== JUtility ====&lt;br /&gt;
*JUtility::sendMail() has been removed. Use JMail::sendMail() instead.&lt;br /&gt;
*JUtility::sendAdminMail() has been removed. Use JMail::sendAdminMail() instead.&lt;br /&gt;
*JUtility::getHash() has been removed. Use JApplication::getHash() instead.&lt;br /&gt;
*JUtility::getToken() has been removed. Use JSession::getFormToken() instead.&lt;br /&gt;
*JUtility::isWinOS() has been removed. Use JApplication::isWinOS() instead.&lt;br /&gt;
*JUtility::dump() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JXMLElement ====&lt;br /&gt;
*JXMLElement::data() has been removed.&lt;br /&gt;
*JXMLElement::getAttribute() has been removed. Use SimpleXMLElement::attributes() instead.&lt;br /&gt;
&lt;br /&gt;
== JavaScript ==&lt;br /&gt;
*Compatibility with MooTools 1.2 has been removed.&lt;br /&gt;
*Forms that have name=&amp;quot;adminForm&amp;quot; now also require id=&amp;quot;adminForm&amp;quot;.&lt;br /&gt;
*checkAll() has been removed. Use Joomla.checkAll() instead.&lt;br /&gt;
*isChecked() has been removed. Use Joomla.isChecked() instead.&lt;br /&gt;
*popupWindow() has been removed. Use Joomla.popupWindow() instead.&lt;br /&gt;
*tableOrdering() has been removed. Use Joomla.tableOrdering() instead.&lt;br /&gt;
&lt;br /&gt;
= CMS =&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*JUtility is not always loaded. If you need it you have to add jimport(&#039;joomla.utilities.utility&#039;); to your code.&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Component Classes ===&lt;br /&gt;
*MenusModelItem::getItem() no longer returns a JObject but a stdClass.&lt;br /&gt;
&lt;br /&gt;
=== Help ===&lt;br /&gt;
&lt;br /&gt;
==== JHelp ====&lt;br /&gt;
*JHelp::createSiteList() the argument $selected has been removed. It was unused.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compatibility]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Platform]]&lt;/div&gt;</summary>
		<author><name>Akfaisel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77325</id>
		<title>Potential backward compatibility issues in Joomla 3 and Joomla Platform 12.2</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77325"/>
		<updated>2012-11-02T06:40:06Z</updated>

		<summary type="html">&lt;p&gt;Akfaisel: /* JController */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{incomplete}}{{RightTOC}}This document tracks potential backward compatibility issues for Joomla 3.0 and Joomla Platform 12.1, which is included in Joomla 3.0. Listed are issues which potentially break extensions.&lt;br /&gt;
Please help make this document complete.&lt;br /&gt;
&lt;br /&gt;
The base of this comparison is Joomla 2.5/Platform 11.4.&lt;br /&gt;
&lt;br /&gt;
Backwards compatibility issues were also tracked for Joomla 2.5: [[Potential backward compatibility issues in Joomla 2.5 and Joomla Platform 11.4]]&lt;br /&gt;
&lt;br /&gt;
= Platform =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Updated System Requirements ==&lt;br /&gt;
The system requirements have changed in the following points:&lt;br /&gt;
*PHP 5.3.1&lt;br /&gt;
*register_globals must be off&lt;br /&gt;
*magic_quotes_gpc must be off&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*Almost all functions, methods, members and classes marked as deprecated in Platform 11.4 have been removed. They won&#039;t be listed in this document.&lt;br /&gt;
*Appending ?no_html to an URL to get a RAW view is not supported anymore (this was an old Joomla 1.0 feature).&lt;br /&gt;
*The DS constant has been removed. If you really need it you can use DIRECTORY_SEPARATOR instead.&lt;br /&gt;
*Many more function arguments have been type hinted, including existing classes. Make sure you&#039;re always passing values of the correct type.&lt;br /&gt;
*The name of modules now have to start with &amp;quot;mod_&amp;quot;.&lt;br /&gt;
*Extensions need to set the registeredurlparams now, the fall back on the URL has been removed.&lt;br /&gt;
*Some cookies are only accessible through HTTP (not via JavaScript). For example; the session cookie.&lt;br /&gt;
*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.&lt;br /&gt;
*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)&lt;br /&gt;
*Joomla! 3.0 usually throws exceptions instead of returning JError or JException. Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Changes to extension installation ==&lt;br /&gt;
*Use of the &amp;lt;install&amp;gt; base tag (from 1.5) is no longer supported; use &amp;lt;extension&amp;gt; instead.&lt;br /&gt;
*Suppport for install_script and uninstall_script, and the methods com_install and com_uninstall in these scripts, has been removed; use scriptfile instead.&lt;br /&gt;
*In language extensions, support for client=&amp;quot;both&amp;quot; has been removed; prepare each client as a separate extension and optionally bundle them as a package extension instead.&lt;br /&gt;
*File paths for plugins no longer support the old 1.5 method (i.e. plugins/system/cache.php); each plugin must now be in its own folder (i.e. plugins/system/cache/cache.php).&lt;br /&gt;
&lt;br /&gt;
== Changes to Components ==&lt;br /&gt;
*In admin components the admin.*.php and toolbar.*.php are not automatically included anymore (this was a Joomla 1.0 legacy feature).&lt;br /&gt;
&lt;br /&gt;
== Moved files ==&lt;br /&gt;
All classes listed here should now be autoloadable. Explicit requires and includes have to be modified or removed.&lt;br /&gt;
&lt;br /&gt;
== Plugin Events ==&lt;br /&gt;
* onContentBeforeSave event now receives $article by value not by reference. Sample definition: public function onContentBeforeSave($context, $article, $isNew).&lt;br /&gt;
* onContentAfterSave event now receives $article by value not by reference. Sample definition: public function onContentAfterSave($context, $article, $isNew).&lt;br /&gt;
&lt;br /&gt;
== Renamed classes ==&lt;br /&gt;
*JFTP is now called JClientFtp&lt;br /&gt;
*JLDAP is now called JClientLdap&lt;br /&gt;
*JWebClient is now called JApplicationWebClient&lt;br /&gt;
&lt;br /&gt;
== Removed classes ==&lt;br /&gt;
*JParameter (use JForm instead)&lt;br /&gt;
*JElement and its subclasses&lt;br /&gt;
*JFormFieldEditors (use JFormFieldPlugins instead)&lt;br /&gt;
*JHtmlImage&lt;br /&gt;
*JRules (use JAccessRules instead)&lt;br /&gt;
*JSimpleXML&lt;br /&gt;
*JPane&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Base classes ===&lt;br /&gt;
&lt;br /&gt;
==== JFactory ====&lt;br /&gt;
*JFactory::getXMLParser() has been removed. For RSS and Atom use cases, use JFactory::getFeedParser() instead. To read XML files or strings use JFactory::getXML().&lt;br /&gt;
*JFactory::_createConfig() has been removed. Use JFactory::createConfig() instead.&lt;br /&gt;
*JFactory::_createSession() has been removed. Use JFactory::createSession() instead.&lt;br /&gt;
*JFactory::_createDbo() has been removed. Use JFactory::createDbo() instead.&lt;br /&gt;
*JFactory::_createMailer() has been removed. Use JFactory::createMailer() instead.&lt;br /&gt;
*JFactory::_createDocument() has been removed. Use JFactory::createDocument() instead.&lt;br /&gt;
&lt;br /&gt;
=== Application ===&lt;br /&gt;
&lt;br /&gt;
==== JApplicationHelper ====&lt;br /&gt;
*JApplicationHelper::getPath() has been removed. No replacement.&lt;br /&gt;
*JApplicationHelper::_checkPath() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
=== Component ===&lt;br /&gt;
&lt;br /&gt;
==== JComponentHelper ====&lt;br /&gt;
*The behavior of JComponentHelper::isEnabled() has been changed to match developer expectations.&lt;br /&gt;
&lt;br /&gt;
=== MVC ===&lt;br /&gt;
&lt;br /&gt;
==== JController ====&lt;br /&gt;
*JController::$_acoSection has been removed.&lt;br /&gt;
*JController::$_acoSectionValue has been removed.&lt;br /&gt;
*JController::authorize() has been removed. Use JController::authorise() instead.&lt;br /&gt;
*JController::setAccessControl() has been removed. Use JAccess.&lt;br /&gt;
*JController::getInstance() has been removed. Use JControllerLegacy::getInstance() instead.&lt;br /&gt;
&lt;br /&gt;
==== JControllerLegacy ====&lt;br /&gt;
* JControllerLegacy::display() needs an extra parameter: ($cachable = false, $urlparams = false).&lt;br /&gt;
&lt;br /&gt;
==== JModelAdmin ====&lt;br /&gt;
* JModelAdmin::generateNewTitle() is backwards incompatible with Joomla! 2.5 (first parameter has been removed).&lt;br /&gt;
* JModelAdmin::prepareTable(): first parameter isn&#039;t reference anymore.&lt;br /&gt;
&lt;br /&gt;
=== Archive ===&lt;br /&gt;
&lt;br /&gt;
==== Adapters ====&lt;br /&gt;
*JArchiveBzip2 does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveGzip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveTar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveZip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Base ===&lt;br /&gt;
&lt;br /&gt;
==== JObject ====&lt;br /&gt;
*JObject::toString() has been removed. Use JObject::__toString() instead.&lt;br /&gt;
&lt;br /&gt;
=== Client ===&lt;br /&gt;
&lt;br /&gt;
==== JClientLdap (formerly JLDAP) ====&lt;br /&gt;
*JClientLdap does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Due to lazy-connecting, a connection is only opened when running a query or explicitly calling JDatabaseDriver::connected(). Beware of that when checking JDatabaseDriver::connected().&lt;br /&gt;
&lt;br /&gt;
==== JDatabase ====&lt;br /&gt;
*JDatabase::$hasQuoted has been removed.&lt;br /&gt;
*JDatabase::$quoted has been removed.&lt;br /&gt;
*JDatabase::addQuoted() has been removed.&lt;br /&gt;
*JDatabase::hasUTF() has been removed.&lt;br /&gt;
*JDatabase::debug() has been removed. Use JDatabase::setDebug() instead.&lt;br /&gt;
*JDatabase::explain() has been removed.&lt;br /&gt;
*JDatabase::getEscaped() has been removed. Use JDatabase::escape() instead.&lt;br /&gt;
*JDatabase::getTableFields() has been removed. Use JDatabase::getTableColumns() instead.&lt;br /&gt;
*JDatabase::getTicker() has been removed. Use JDatabase::count() instead.&lt;br /&gt;
*JDatabase::isQuoted() has been removed.&lt;br /&gt;
*JDatabase::loadResultArray() has been removed. Use JDatabase::loadColumn() instead.&lt;br /&gt;
*JDatabase::nameQuote() has been removed. Use JDatabase::quoteName() instead.&lt;br /&gt;
*JDatabase::queryBatch() has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Document ===&lt;br /&gt;
&lt;br /&gt;
==== JDocument ====&lt;br /&gt;
*JDocument::setMetaData() the $sync argument has been removed. It was broken beyond repair.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentRenderer ====&lt;br /&gt;
*JDocumentRenderer does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentFeed ====&lt;br /&gt;
*JFeedItem does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedEnclosure does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentOpenSearch ====&lt;br /&gt;
*JOpenSearchUrl does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JOpenSearchImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentXml ====&lt;br /&gt;
*JDocumentXml::$_name has been renamed to JDocumentXml::$name.&lt;br /&gt;
&lt;br /&gt;
=== Environment ===&lt;br /&gt;
&lt;br /&gt;
==== JBrowser ====&lt;br /&gt;
*JBrowser does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JBrowser::setQuirk() has been removed.&lt;br /&gt;
*JBrowser::hasQuirk() has been removed.&lt;br /&gt;
*JBrowser::getQuirk() has been removed.&lt;br /&gt;
*JBrowser::setFeature() has been removed.&lt;br /&gt;
*JBrowser::hasFeature() has been removed.&lt;br /&gt;
*JBrowser::getFeature() has been removed.&lt;br /&gt;
*JBrowser::$_majorVersion has been renamed to JBrowser::$majorVersion.&lt;br /&gt;
*JBrowser::$_minorVersion has been renamed to JBrowser::$minorVersion.&lt;br /&gt;
*JBrowser::$_browser has been renamed to JBrowser::$browser.&lt;br /&gt;
*JBrowser::$_agent has been renamed to JBrowser::$agent.&lt;br /&gt;
*JBrowser::$_lowerAgent has been renamed to JBrowser::$lowerAgent.&lt;br /&gt;
*JBrowser::$_accept has been renamed to JBrowser::$accept.&lt;br /&gt;
*JBrowser::$_accept_parsed has been renamed to JBrowser::$acceptParsed.&lt;br /&gt;
*JBrowser::$_platform has been renamed to JBrowser::$platform.&lt;br /&gt;
*JBrowser::$_robots has been renamed to JBrowser::$robots.&lt;br /&gt;
*JBrowser::$_mobile has been renamed to JBrowser::$mobile.&lt;br /&gt;
*JBrowser::$_images has been renamed to JBrowser::$images.&lt;br /&gt;
&lt;br /&gt;
==== JRequest ====&lt;br /&gt;
*JRequest::clean() has been removed.&lt;br /&gt;
*JRequest::_cleanVar() is now protected.&lt;br /&gt;
&lt;br /&gt;
==== JUri ====&lt;br /&gt;
*JURI has been renamed to JUri. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JUri does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JUri::$_uri has been renamed to JUri::$uri.&lt;br /&gt;
*JUri::$_scheme has been renamed to JUri::$scheme.&lt;br /&gt;
*JUri::$_host has been renamed to JUri::$host.&lt;br /&gt;
*JUri::$_port has been renamed to JUri::$port.&lt;br /&gt;
*JUri::$_user has been renamed to JUri::$user.&lt;br /&gt;
*JUri::$_pass has been renamed to JUri::$pass.&lt;br /&gt;
*JUri::$_path has been renamed to JUri::$path.&lt;br /&gt;
*JUri::$_query has been renamed to JUri::$query.&lt;br /&gt;
*JUri::$_fragment has been renamed to JUri::$fragment.&lt;br /&gt;
*JUri::$_vars has been renamed to JUri::$vars.&lt;br /&gt;
&lt;br /&gt;
=== Error ===&lt;br /&gt;
&lt;br /&gt;
==== JError ====&lt;br /&gt;
*JError has been deprecated. Use Exceptions instead.&lt;br /&gt;
*&#039;&#039;&#039;WARNING&#039;&#039;&#039;: Many functions that were previously returning JError or false are now throwing exceptions.&lt;br /&gt;
&lt;br /&gt;
Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
==== JProfiler ====&lt;br /&gt;
*JProfiler does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JProfiler::$_start has been renamed to JProfiler::$start.&lt;br /&gt;
*JProfiler::$_prefix has been renamed to JProfiler::$prefix.&lt;br /&gt;
*JProfiler::$_buffer has been renamed to JProfiler::$buffer.&lt;br /&gt;
*JProfiler::$_previous_time has been renamed to JProfiler::$previousTime.&lt;br /&gt;
*JProfiler::$_previous_mem has been renamed to JProfiler::$previousMem.&lt;br /&gt;
*JProfiler::$_iswin has been renamed to JProfiler::$isWin.&lt;br /&gt;
&lt;br /&gt;
=== Filesystem ===&lt;br /&gt;
&lt;br /&gt;
==== JStream ====&lt;br /&gt;
*JStream::$_fh has been renamed to JStream::$fh.&lt;br /&gt;
*JStream::$_filesize has been renamed to JStream::$filesize.&lt;br /&gt;
*JStream::$_context has been renamed to JStream::$context.&lt;br /&gt;
*JStream::$_contextOptions has been renamed to JStream::$contextOptions.&lt;br /&gt;
*JStream::$_openmode has been renamed to JStream::$openmode.&lt;br /&gt;
&lt;br /&gt;
==== JStreamString ====&lt;br /&gt;
*JStream::$_currentstring has been renamed to JStream::$currentString.&lt;br /&gt;
*JStream::$_path has been renamed to JStream::$path.&lt;br /&gt;
*JStream::$_mode has been renamed to JStream::$mode.&lt;br /&gt;
*JStream::$_options has been renamed to JStream::$options.&lt;br /&gt;
*JStream::$_opened_path has been renamed to JStream::$openedPath.&lt;br /&gt;
*JStream::$_pos has been renamed to JStream::$pos.&lt;br /&gt;
*JStream::$_len has been renamed to JStream::$len.&lt;br /&gt;
*JStream::$_stat has been renamed to JStream::$stat.&lt;br /&gt;
&lt;br /&gt;
=== Filter ===&lt;br /&gt;
&lt;br /&gt;
==== JFilterInput ====&lt;br /&gt;
*JFilterInput does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== HTML ===&lt;br /&gt;
&lt;br /&gt;
==== JHtml ====&lt;br /&gt;
*JHTML has been renamed to JHtml. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JHtml::_includeRelativeFiles() has been removed. Use JHtml::includeRelativeFiles() instead.&lt;br /&gt;
*JHtml::core() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtml::script() doesn&#039;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.&lt;br /&gt;
*JHtml::stylesheet() doesn&#039;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.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlAccess ====&lt;br /&gt;
*JHtmlAccess::assetgroups() the argument $config has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlBehavior ====&lt;br /&gt;
*JHtmlBehavior::mootools() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtmlBehavior::noframes() the argument $location has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlList ====&lt;br /&gt;
*JHtmlList::ordering() the argument $chop has been removed. It was previously unused.&lt;br /&gt;
*JHtmlList::users(), the argument $reg has been removed.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlSelect ====&lt;br /&gt;
*JHtmlSelect::$_optionDefaults has been renamed to JHtmlSelect::$optionDefaults.&lt;br /&gt;
&lt;br /&gt;
==== JToolBar ====&lt;br /&gt;
*JToolBar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JToolBar no longer supports the &#039;X&#039; functions (eg, addNewX, editListX) that hide the main menu before doing the function.&lt;br /&gt;
&lt;br /&gt;
==== JButton ====&lt;br /&gt;
*JButton does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JPagination ====&lt;br /&gt;
*JPagination::$_viewall has been renamed to JPagination::$viewall.&lt;br /&gt;
*JPagination::$_additionalUrlParams has been renamed to JPagination::$additionalUrlParams.&lt;br /&gt;
&lt;br /&gt;
=== Installer ===&lt;br /&gt;
&lt;br /&gt;
==== JInstaller ====&lt;br /&gt;
*JInstaller::getOverwrite() has been removed. Use JInstaller::isOverwrite() instead.&lt;br /&gt;
*JInstaller::getUpgrade() has been removed. Use JInstaller::isUpgrade() instead.&lt;br /&gt;
*JInstaller::$_paths has been renamed to JInstaller::$paths.&lt;br /&gt;
*JInstaller::$_upgrade has been renamed to JInstaller::$upgrade.&lt;br /&gt;
*JInstaller::$_overwrite has been renamed to JInstaller::$overwrite.&lt;br /&gt;
*JInstaller::$_stepStack has been renamed to JInstaller::$stepStack.&lt;br /&gt;
&lt;br /&gt;
==== JInstallerLanguage ====&lt;br /&gt;
*JInstallerLanguage::$_core as been renamed to JInstallerLanguage::$core.&lt;br /&gt;
&lt;br /&gt;
=== Language ===&lt;br /&gt;
&lt;br /&gt;
==== JLanguage ====&lt;br /&gt;
*JLanguage::getPluralSufficesCallback() has been removed. Use JLanguage::getPluralSuffixesCallback() instead.&lt;br /&gt;
*JLanguage::_parseLanguageFiles() has been removed. Use JLanguage::parseLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFiles() has been removed. Use JLanguage::parseXMLLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFile() has been removed. Use JLanguage::parseXMLLanguageFile() instead.&lt;br /&gt;
*JLanguage::loadLanguage() the argument $overwrite has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
=== Registry ===&lt;br /&gt;
&lt;br /&gt;
==== JRegistry ====&lt;br /&gt;
*JRegistry::loadXML() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadINI() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadJSON() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::makeNameSpace() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getNameSpaces() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getValue() has been removed. Use JRegistry::get() instead.&lt;br /&gt;
*JRegistry::setValue() has been removed. Use JRegistry::set() instead.&lt;br /&gt;
*JRegistry::loadSetupFile() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatINI ====&lt;br /&gt;
*JRegistryFormatINI::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatJSON ====&lt;br /&gt;
*JRegistryFormatJSON::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
=== Session ===&lt;br /&gt;
&lt;br /&gt;
==== JSessionStorageDatabase ====&lt;br /&gt;
*JSessionStorageDatabase::$_data has been renamed to JSessionStorageDatabase::$data.&lt;br /&gt;
&lt;br /&gt;
=== Table ===&lt;br /&gt;
&lt;br /&gt;
==== JTable ====&lt;br /&gt;
*JTable::getInstance() parameters are now case sensitive, e.g. &#039;MenuType&#039;.&lt;br /&gt;
*JTable::canDelete() has been removed.&lt;br /&gt;
*JTable::toXML() has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Updater ===&lt;br /&gt;
&lt;br /&gt;
==== JUpdate ====&lt;br /&gt;
*JUpdate::$_xml_parser has been renamed to JUpdate::$xmlParser.&lt;br /&gt;
*JUpdate::$_stack has been renamed to JUpdate::$stack.&lt;br /&gt;
*JUpdate::$_state_store has been renamed to JUpdate::$stateStore.&lt;br /&gt;
*JUpdate::$_current_update has been renamed to JUpdate::$currentUpdate.&lt;br /&gt;
&lt;br /&gt;
==== JUpdater ====&lt;br /&gt;
*JUpdater::arrayUnique() has been removed. Use JArrayHelper::arrayUnique() instead.&lt;br /&gt;
&lt;br /&gt;
=== User ===&lt;br /&gt;
&lt;br /&gt;
==== JAuthentication ====&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_SUCCESS has been removed. Use JAuthentication::STATUS_SUCCESS instead.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_CANCEL has been removed. No replacement.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_FAILURE has been removed. Use JAuthentication::STATUS_FAILURE instead.&lt;br /&gt;
*JAuthentication::$_observers has been renamed to JAuthentication::$observers.&lt;br /&gt;
*JAuthentication::$_state has been renamed to JAuthentication::$state.&lt;br /&gt;
*JAuthentication::$_methods has been renamed to JAuthentication::$methods.&lt;br /&gt;
&lt;br /&gt;
==== JUser ====&lt;br /&gt;
*JUser::getParameters() has been removed.&lt;br /&gt;
*Juser::authorisedLevels() has been removed. Use JUser::getAuthorisedViewLevels() instead.&lt;br /&gt;
*Juser::authorize() has been removed. Use JUser::authorise() instead.&lt;br /&gt;
*JUser::$usertype has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Utility ===&lt;br /&gt;
&lt;br /&gt;
==== JBuffer ====&lt;br /&gt;
*JBuffer::$_buffers has been renamed to JBuffer::$buffers.&lt;br /&gt;
&lt;br /&gt;
==== JDate ====&lt;br /&gt;
*JDate::toMysql() has been removed. Use JDate::toSql() instead.&lt;br /&gt;
*JDate::toFormat() has been removed. Use JDate::format() instead.&lt;br /&gt;
*JDate::setOffset() has been removed. Use JDate::setTimezone() instead&lt;br /&gt;
*JDate::$offsets has been removed.&lt;br /&gt;
*JDate::__construct() doesn&#039;t accept an numeric value for $tz anymore.&lt;br /&gt;
*JDate::$_tz has been renamed to JDate::$tz.&lt;br /&gt;
&lt;br /&gt;
==== JUtility ====&lt;br /&gt;
*JUtility::sendMail() has been removed. Use JMail::sendMail() instead.&lt;br /&gt;
*JUtility::sendAdminMail() has been removed. Use JMail::sendAdminMail() instead.&lt;br /&gt;
*JUtility::getHash() has been removed. Use JApplication::getHash() instead.&lt;br /&gt;
*JUtility::getToken() has been removed. Use JSession::getFormToken() instead.&lt;br /&gt;
*JUtility::isWinOS() has been removed. Use JApplication::isWinOS() instead.&lt;br /&gt;
*JUtility::dump() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JXMLElement ====&lt;br /&gt;
*JXMLElement::data() has been removed.&lt;br /&gt;
*JXMLElement::getAttribute() has been removed. Use SimpleXMLElement::attributes() instead.&lt;br /&gt;
&lt;br /&gt;
== JavaScript ==&lt;br /&gt;
*Compatibility with MooTools 1.2 has been removed.&lt;br /&gt;
*Forms that have name=&amp;quot;adminForm&amp;quot; now also require id=&amp;quot;adminForm&amp;quot;.&lt;br /&gt;
*checkAll() has been removed. Use Joomla.checkAll() instead.&lt;br /&gt;
*isChecked() has been removed. Use Joomla.isChecked() instead.&lt;br /&gt;
*popupWindow() has been removed. Use Joomla.popupWindow() instead.&lt;br /&gt;
*tableOrdering() has been removed. Use Joomla.tableOrdering() instead.&lt;br /&gt;
&lt;br /&gt;
= CMS =&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*JUtility is not always loaded. If you need it you have to add jimport(&#039;joomla.utilities.utility&#039;); to your code.&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Component Classes ===&lt;br /&gt;
*MenusModelItem::getItem() no longer returns a JObject but a stdClass.&lt;br /&gt;
&lt;br /&gt;
=== Help ===&lt;br /&gt;
&lt;br /&gt;
==== JHelp ====&lt;br /&gt;
*JHelp::createSiteList() the argument $selected has been removed. It was unused.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compatibility]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Platform]]&lt;/div&gt;</summary>
		<author><name>Akfaisel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77324</id>
		<title>Potential backward compatibility issues in Joomla 3 and Joomla Platform 12.2</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=77324"/>
		<updated>2012-11-02T06:39:36Z</updated>

		<summary type="html">&lt;p&gt;Akfaisel: /* JController */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{incomplete}}{{RightTOC}}This document tracks potential backward compatibility issues for Joomla 3.0 and Joomla Platform 12.1, which is included in Joomla 3.0. Listed are issues which potentially break extensions.&lt;br /&gt;
Please help make this document complete.&lt;br /&gt;
&lt;br /&gt;
The base of this comparison is Joomla 2.5/Platform 11.4.&lt;br /&gt;
&lt;br /&gt;
Backwards compatibility issues were also tracked for Joomla 2.5: [[Potential backward compatibility issues in Joomla 2.5 and Joomla Platform 11.4]]&lt;br /&gt;
&lt;br /&gt;
= Platform =&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Updated System Requirements ==&lt;br /&gt;
The system requirements have changed in the following points:&lt;br /&gt;
*PHP 5.3.1&lt;br /&gt;
*register_globals must be off&lt;br /&gt;
*magic_quotes_gpc must be off&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*Almost all functions, methods, members and classes marked as deprecated in Platform 11.4 have been removed. They won&#039;t be listed in this document.&lt;br /&gt;
*Appending ?no_html to an URL to get a RAW view is not supported anymore (this was an old Joomla 1.0 feature).&lt;br /&gt;
*The DS constant has been removed. If you really need it you can use DIRECTORY_SEPARATOR instead.&lt;br /&gt;
*Many more function arguments have been type hinted, including existing classes. Make sure you&#039;re always passing values of the correct type.&lt;br /&gt;
*The name of modules now have to start with &amp;quot;mod_&amp;quot;.&lt;br /&gt;
*Extensions need to set the registeredurlparams now, the fall back on the URL has been removed.&lt;br /&gt;
*Some cookies are only accessible through HTTP (not via JavaScript). For example; the session cookie.&lt;br /&gt;
*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.&lt;br /&gt;
*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)&lt;br /&gt;
*Joomla! 3.0 usually throws exceptions instead of returning JError or JException. Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
== Changes to extension installation ==&lt;br /&gt;
*Use of the &amp;lt;install&amp;gt; base tag (from 1.5) is no longer supported; use &amp;lt;extension&amp;gt; instead.&lt;br /&gt;
*Suppport for install_script and uninstall_script, and the methods com_install and com_uninstall in these scripts, has been removed; use scriptfile instead.&lt;br /&gt;
*In language extensions, support for client=&amp;quot;both&amp;quot; has been removed; prepare each client as a separate extension and optionally bundle them as a package extension instead.&lt;br /&gt;
*File paths for plugins no longer support the old 1.5 method (i.e. plugins/system/cache.php); each plugin must now be in its own folder (i.e. plugins/system/cache/cache.php).&lt;br /&gt;
&lt;br /&gt;
== Changes to Components ==&lt;br /&gt;
*In admin components the admin.*.php and toolbar.*.php are not automatically included anymore (this was a Joomla 1.0 legacy feature).&lt;br /&gt;
&lt;br /&gt;
== Moved files ==&lt;br /&gt;
All classes listed here should now be autoloadable. Explicit requires and includes have to be modified or removed.&lt;br /&gt;
&lt;br /&gt;
== Plugin Events ==&lt;br /&gt;
* onContentBeforeSave event now receives $article by value not by reference. Sample definition: public function onContentBeforeSave($context, $article, $isNew).&lt;br /&gt;
* onContentAfterSave event now receives $article by value not by reference. Sample definition: public function onContentAfterSave($context, $article, $isNew).&lt;br /&gt;
&lt;br /&gt;
== Renamed classes ==&lt;br /&gt;
*JFTP is now called JClientFtp&lt;br /&gt;
*JLDAP is now called JClientLdap&lt;br /&gt;
*JWebClient is now called JApplicationWebClient&lt;br /&gt;
&lt;br /&gt;
== Removed classes ==&lt;br /&gt;
*JParameter (use JForm instead)&lt;br /&gt;
*JElement and its subclasses&lt;br /&gt;
*JFormFieldEditors (use JFormFieldPlugins instead)&lt;br /&gt;
*JHtmlImage&lt;br /&gt;
*JRules (use JAccessRules instead)&lt;br /&gt;
*JSimpleXML&lt;br /&gt;
*JPane&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Base classes ===&lt;br /&gt;
&lt;br /&gt;
==== JFactory ====&lt;br /&gt;
*JFactory::getXMLParser() has been removed. For RSS and Atom use cases, use JFactory::getFeedParser() instead. To read XML files or strings use JFactory::getXML().&lt;br /&gt;
*JFactory::_createConfig() has been removed. Use JFactory::createConfig() instead.&lt;br /&gt;
*JFactory::_createSession() has been removed. Use JFactory::createSession() instead.&lt;br /&gt;
*JFactory::_createDbo() has been removed. Use JFactory::createDbo() instead.&lt;br /&gt;
*JFactory::_createMailer() has been removed. Use JFactory::createMailer() instead.&lt;br /&gt;
*JFactory::_createDocument() has been removed. Use JFactory::createDocument() instead.&lt;br /&gt;
&lt;br /&gt;
=== Application ===&lt;br /&gt;
&lt;br /&gt;
==== JApplicationHelper ====&lt;br /&gt;
*JApplicationHelper::getPath() has been removed. No replacement.&lt;br /&gt;
*JApplicationHelper::_checkPath() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
=== Component ===&lt;br /&gt;
&lt;br /&gt;
==== JComponentHelper ====&lt;br /&gt;
*The behavior of JComponentHelper::isEnabled() has been changed to match developer expectations.&lt;br /&gt;
&lt;br /&gt;
=== MVC ===&lt;br /&gt;
&lt;br /&gt;
==== JController ====&lt;br /&gt;
*JController::$_acoSection has been removed.&lt;br /&gt;
*JController::$_acoSectionValue has been removed.&lt;br /&gt;
*JController::authorize() has been removed. Use JController::authorise() instead.&lt;br /&gt;
*JController::setAccessControl() has been removed. Use JAccess.&lt;br /&gt;
JController::getInstance() has been removed. Use JControllerLegacy::getInstance() instead.&lt;br /&gt;
&lt;br /&gt;
==== JControllerLegacy ====&lt;br /&gt;
* JControllerLegacy::display() needs an extra parameter: ($cachable = false, $urlparams = false).&lt;br /&gt;
&lt;br /&gt;
==== JModelAdmin ====&lt;br /&gt;
* JModelAdmin::generateNewTitle() is backwards incompatible with Joomla! 2.5 (first parameter has been removed).&lt;br /&gt;
* JModelAdmin::prepareTable(): first parameter isn&#039;t reference anymore.&lt;br /&gt;
&lt;br /&gt;
=== Archive ===&lt;br /&gt;
&lt;br /&gt;
==== Adapters ====&lt;br /&gt;
*JArchiveBzip2 does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveGzip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveTar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JArchiveZip does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Base ===&lt;br /&gt;
&lt;br /&gt;
==== JObject ====&lt;br /&gt;
*JObject::toString() has been removed. Use JObject::__toString() instead.&lt;br /&gt;
&lt;br /&gt;
=== Client ===&lt;br /&gt;
&lt;br /&gt;
==== JClientLdap (formerly JLDAP) ====&lt;br /&gt;
*JClientLdap does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Due to lazy-connecting, a connection is only opened when running a query or explicitly calling JDatabaseDriver::connected(). Beware of that when checking JDatabaseDriver::connected().&lt;br /&gt;
&lt;br /&gt;
==== JDatabase ====&lt;br /&gt;
*JDatabase::$hasQuoted has been removed.&lt;br /&gt;
*JDatabase::$quoted has been removed.&lt;br /&gt;
*JDatabase::addQuoted() has been removed.&lt;br /&gt;
*JDatabase::hasUTF() has been removed.&lt;br /&gt;
*JDatabase::debug() has been removed. Use JDatabase::setDebug() instead.&lt;br /&gt;
*JDatabase::explain() has been removed.&lt;br /&gt;
*JDatabase::getEscaped() has been removed. Use JDatabase::escape() instead.&lt;br /&gt;
*JDatabase::getTableFields() has been removed. Use JDatabase::getTableColumns() instead.&lt;br /&gt;
*JDatabase::getTicker() has been removed. Use JDatabase::count() instead.&lt;br /&gt;
*JDatabase::isQuoted() has been removed.&lt;br /&gt;
*JDatabase::loadResultArray() has been removed. Use JDatabase::loadColumn() instead.&lt;br /&gt;
*JDatabase::nameQuote() has been removed. Use JDatabase::quoteName() instead.&lt;br /&gt;
*JDatabase::queryBatch() has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Document ===&lt;br /&gt;
&lt;br /&gt;
==== JDocument ====&lt;br /&gt;
*JDocument::setMetaData() the $sync argument has been removed. It was broken beyond repair.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentRenderer ====&lt;br /&gt;
*JDocumentRenderer does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentFeed ====&lt;br /&gt;
*JFeedItem does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedEnclosure does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JFeedImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentOpenSearch ====&lt;br /&gt;
*JOpenSearchUrl does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JOpenSearchImage does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JDocumentXml ====&lt;br /&gt;
*JDocumentXml::$_name has been renamed to JDocumentXml::$name.&lt;br /&gt;
&lt;br /&gt;
=== Environment ===&lt;br /&gt;
&lt;br /&gt;
==== JBrowser ====&lt;br /&gt;
*JBrowser does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JBrowser::setQuirk() has been removed.&lt;br /&gt;
*JBrowser::hasQuirk() has been removed.&lt;br /&gt;
*JBrowser::getQuirk() has been removed.&lt;br /&gt;
*JBrowser::setFeature() has been removed.&lt;br /&gt;
*JBrowser::hasFeature() has been removed.&lt;br /&gt;
*JBrowser::getFeature() has been removed.&lt;br /&gt;
*JBrowser::$_majorVersion has been renamed to JBrowser::$majorVersion.&lt;br /&gt;
*JBrowser::$_minorVersion has been renamed to JBrowser::$minorVersion.&lt;br /&gt;
*JBrowser::$_browser has been renamed to JBrowser::$browser.&lt;br /&gt;
*JBrowser::$_agent has been renamed to JBrowser::$agent.&lt;br /&gt;
*JBrowser::$_lowerAgent has been renamed to JBrowser::$lowerAgent.&lt;br /&gt;
*JBrowser::$_accept has been renamed to JBrowser::$accept.&lt;br /&gt;
*JBrowser::$_accept_parsed has been renamed to JBrowser::$acceptParsed.&lt;br /&gt;
*JBrowser::$_platform has been renamed to JBrowser::$platform.&lt;br /&gt;
*JBrowser::$_robots has been renamed to JBrowser::$robots.&lt;br /&gt;
*JBrowser::$_mobile has been renamed to JBrowser::$mobile.&lt;br /&gt;
*JBrowser::$_images has been renamed to JBrowser::$images.&lt;br /&gt;
&lt;br /&gt;
==== JRequest ====&lt;br /&gt;
*JRequest::clean() has been removed.&lt;br /&gt;
*JRequest::_cleanVar() is now protected.&lt;br /&gt;
&lt;br /&gt;
==== JUri ====&lt;br /&gt;
*JURI has been renamed to JUri. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JUri does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JUri::$_uri has been renamed to JUri::$uri.&lt;br /&gt;
*JUri::$_scheme has been renamed to JUri::$scheme.&lt;br /&gt;
*JUri::$_host has been renamed to JUri::$host.&lt;br /&gt;
*JUri::$_port has been renamed to JUri::$port.&lt;br /&gt;
*JUri::$_user has been renamed to JUri::$user.&lt;br /&gt;
*JUri::$_pass has been renamed to JUri::$pass.&lt;br /&gt;
*JUri::$_path has been renamed to JUri::$path.&lt;br /&gt;
*JUri::$_query has been renamed to JUri::$query.&lt;br /&gt;
*JUri::$_fragment has been renamed to JUri::$fragment.&lt;br /&gt;
*JUri::$_vars has been renamed to JUri::$vars.&lt;br /&gt;
&lt;br /&gt;
=== Error ===&lt;br /&gt;
&lt;br /&gt;
==== JError ====&lt;br /&gt;
*JError has been deprecated. Use Exceptions instead.&lt;br /&gt;
*&#039;&#039;&#039;WARNING&#039;&#039;&#039;: Many functions that were previously returning JError or false are now throwing exceptions.&lt;br /&gt;
&lt;br /&gt;
Please see [[Exceptions and Logging in Joomla 1.7 and Joomla Platform 11.1]] for more information.&lt;br /&gt;
&lt;br /&gt;
==== JProfiler ====&lt;br /&gt;
*JProfiler does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JProfiler::$_start has been renamed to JProfiler::$start.&lt;br /&gt;
*JProfiler::$_prefix has been renamed to JProfiler::$prefix.&lt;br /&gt;
*JProfiler::$_buffer has been renamed to JProfiler::$buffer.&lt;br /&gt;
*JProfiler::$_previous_time has been renamed to JProfiler::$previousTime.&lt;br /&gt;
*JProfiler::$_previous_mem has been renamed to JProfiler::$previousMem.&lt;br /&gt;
*JProfiler::$_iswin has been renamed to JProfiler::$isWin.&lt;br /&gt;
&lt;br /&gt;
=== Filesystem ===&lt;br /&gt;
&lt;br /&gt;
==== JStream ====&lt;br /&gt;
*JStream::$_fh has been renamed to JStream::$fh.&lt;br /&gt;
*JStream::$_filesize has been renamed to JStream::$filesize.&lt;br /&gt;
*JStream::$_context has been renamed to JStream::$context.&lt;br /&gt;
*JStream::$_contextOptions has been renamed to JStream::$contextOptions.&lt;br /&gt;
*JStream::$_openmode has been renamed to JStream::$openmode.&lt;br /&gt;
&lt;br /&gt;
==== JStreamString ====&lt;br /&gt;
*JStream::$_currentstring has been renamed to JStream::$currentString.&lt;br /&gt;
*JStream::$_path has been renamed to JStream::$path.&lt;br /&gt;
*JStream::$_mode has been renamed to JStream::$mode.&lt;br /&gt;
*JStream::$_options has been renamed to JStream::$options.&lt;br /&gt;
*JStream::$_opened_path has been renamed to JStream::$openedPath.&lt;br /&gt;
*JStream::$_pos has been renamed to JStream::$pos.&lt;br /&gt;
*JStream::$_len has been renamed to JStream::$len.&lt;br /&gt;
*JStream::$_stat has been renamed to JStream::$stat.&lt;br /&gt;
&lt;br /&gt;
=== Filter ===&lt;br /&gt;
&lt;br /&gt;
==== JFilterInput ====&lt;br /&gt;
*JFilterInput does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
=== HTML ===&lt;br /&gt;
&lt;br /&gt;
==== JHtml ====&lt;br /&gt;
*JHTML has been renamed to JHtml. Autoloader is still able to regognise the old capitalized name.&lt;br /&gt;
*JHtml::_includeRelativeFiles() has been removed. Use JHtml::includeRelativeFiles() instead.&lt;br /&gt;
*JHtml::core() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtml::script() doesn&#039;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.&lt;br /&gt;
*JHtml::stylesheet() doesn&#039;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.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlAccess ====&lt;br /&gt;
*JHtmlAccess::assetgroups() the argument $config has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlBehavior ====&lt;br /&gt;
*JHtmlBehavior::mootools() has been removed. Use JHtmlBehavior::framework() instead.&lt;br /&gt;
*JHtmlBehavior::noframes() the argument $location has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlList ====&lt;br /&gt;
*JHtmlList::ordering() the argument $chop has been removed. It was previously unused.&lt;br /&gt;
*JHtmlList::users(), the argument $reg has been removed.&lt;br /&gt;
&lt;br /&gt;
==== JHtmlSelect ====&lt;br /&gt;
*JHtmlSelect::$_optionDefaults has been renamed to JHtmlSelect::$optionDefaults.&lt;br /&gt;
&lt;br /&gt;
==== JToolBar ====&lt;br /&gt;
*JToolBar does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
*JToolBar no longer supports the &#039;X&#039; functions (eg, addNewX, editListX) that hide the main menu before doing the function.&lt;br /&gt;
&lt;br /&gt;
==== JButton ====&lt;br /&gt;
*JButton does not extend JObject anymore. You must not use any of JObject&#039;s methods.&lt;br /&gt;
&lt;br /&gt;
==== JPagination ====&lt;br /&gt;
*JPagination::$_viewall has been renamed to JPagination::$viewall.&lt;br /&gt;
*JPagination::$_additionalUrlParams has been renamed to JPagination::$additionalUrlParams.&lt;br /&gt;
&lt;br /&gt;
=== Installer ===&lt;br /&gt;
&lt;br /&gt;
==== JInstaller ====&lt;br /&gt;
*JInstaller::getOverwrite() has been removed. Use JInstaller::isOverwrite() instead.&lt;br /&gt;
*JInstaller::getUpgrade() has been removed. Use JInstaller::isUpgrade() instead.&lt;br /&gt;
*JInstaller::$_paths has been renamed to JInstaller::$paths.&lt;br /&gt;
*JInstaller::$_upgrade has been renamed to JInstaller::$upgrade.&lt;br /&gt;
*JInstaller::$_overwrite has been renamed to JInstaller::$overwrite.&lt;br /&gt;
*JInstaller::$_stepStack has been renamed to JInstaller::$stepStack.&lt;br /&gt;
&lt;br /&gt;
==== JInstallerLanguage ====&lt;br /&gt;
*JInstallerLanguage::$_core as been renamed to JInstallerLanguage::$core.&lt;br /&gt;
&lt;br /&gt;
=== Language ===&lt;br /&gt;
&lt;br /&gt;
==== JLanguage ====&lt;br /&gt;
*JLanguage::getPluralSufficesCallback() has been removed. Use JLanguage::getPluralSuffixesCallback() instead.&lt;br /&gt;
*JLanguage::_parseLanguageFiles() has been removed. Use JLanguage::parseLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFiles() has been removed. Use JLanguage::parseXMLLanguageFiles() instead.&lt;br /&gt;
*JLanguage::_parseXMLLanguageFile() has been removed. Use JLanguage::parseXMLLanguageFile() instead.&lt;br /&gt;
*JLanguage::loadLanguage() the argument $overwrite has been removed. It was previously unused.&lt;br /&gt;
&lt;br /&gt;
=== Registry ===&lt;br /&gt;
&lt;br /&gt;
==== JRegistry ====&lt;br /&gt;
*JRegistry::loadXML() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadINI() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::loadJSON() has been removed. Use JRegistry::loadString() instead.&lt;br /&gt;
*JRegistry::makeNameSpace() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getNameSpaces() has been removed. No replacement.&lt;br /&gt;
*JRegistry::getValue() has been removed. Use JRegistry::get() instead.&lt;br /&gt;
*JRegistry::setValue() has been removed. Use JRegistry::set() instead.&lt;br /&gt;
*JRegistry::loadSetupFile() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatINI ====&lt;br /&gt;
*JRegistryFormatINI::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
==== JRegistryFormatJSON ====&lt;br /&gt;
*JRegistryFormatJSON::stringToObject() the second argument ($option) may not be a boolean anymore.&lt;br /&gt;
&lt;br /&gt;
=== Session ===&lt;br /&gt;
&lt;br /&gt;
==== JSessionStorageDatabase ====&lt;br /&gt;
*JSessionStorageDatabase::$_data has been renamed to JSessionStorageDatabase::$data.&lt;br /&gt;
&lt;br /&gt;
=== Table ===&lt;br /&gt;
&lt;br /&gt;
==== JTable ====&lt;br /&gt;
*JTable::getInstance() parameters are now case sensitive, e.g. &#039;MenuType&#039;.&lt;br /&gt;
*JTable::canDelete() has been removed.&lt;br /&gt;
*JTable::toXML() has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Updater ===&lt;br /&gt;
&lt;br /&gt;
==== JUpdate ====&lt;br /&gt;
*JUpdate::$_xml_parser has been renamed to JUpdate::$xmlParser.&lt;br /&gt;
*JUpdate::$_stack has been renamed to JUpdate::$stack.&lt;br /&gt;
*JUpdate::$_state_store has been renamed to JUpdate::$stateStore.&lt;br /&gt;
*JUpdate::$_current_update has been renamed to JUpdate::$currentUpdate.&lt;br /&gt;
&lt;br /&gt;
==== JUpdater ====&lt;br /&gt;
*JUpdater::arrayUnique() has been removed. Use JArrayHelper::arrayUnique() instead.&lt;br /&gt;
&lt;br /&gt;
=== User ===&lt;br /&gt;
&lt;br /&gt;
==== JAuthentication ====&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_SUCCESS has been removed. Use JAuthentication::STATUS_SUCCESS instead.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_CANCEL has been removed. No replacement.&lt;br /&gt;
*The constant JAUTHENTICATE_STATUS_FAILURE has been removed. Use JAuthentication::STATUS_FAILURE instead.&lt;br /&gt;
*JAuthentication::$_observers has been renamed to JAuthentication::$observers.&lt;br /&gt;
*JAuthentication::$_state has been renamed to JAuthentication::$state.&lt;br /&gt;
*JAuthentication::$_methods has been renamed to JAuthentication::$methods.&lt;br /&gt;
&lt;br /&gt;
==== JUser ====&lt;br /&gt;
*JUser::getParameters() has been removed.&lt;br /&gt;
*Juser::authorisedLevels() has been removed. Use JUser::getAuthorisedViewLevels() instead.&lt;br /&gt;
*Juser::authorize() has been removed. Use JUser::authorise() instead.&lt;br /&gt;
*JUser::$usertype has been removed.&lt;br /&gt;
&lt;br /&gt;
=== Utility ===&lt;br /&gt;
&lt;br /&gt;
==== JBuffer ====&lt;br /&gt;
*JBuffer::$_buffers has been renamed to JBuffer::$buffers.&lt;br /&gt;
&lt;br /&gt;
==== JDate ====&lt;br /&gt;
*JDate::toMysql() has been removed. Use JDate::toSql() instead.&lt;br /&gt;
*JDate::toFormat() has been removed. Use JDate::format() instead.&lt;br /&gt;
*JDate::setOffset() has been removed. Use JDate::setTimezone() instead&lt;br /&gt;
*JDate::$offsets has been removed.&lt;br /&gt;
*JDate::__construct() doesn&#039;t accept an numeric value for $tz anymore.&lt;br /&gt;
*JDate::$_tz has been renamed to JDate::$tz.&lt;br /&gt;
&lt;br /&gt;
==== JUtility ====&lt;br /&gt;
*JUtility::sendMail() has been removed. Use JMail::sendMail() instead.&lt;br /&gt;
*JUtility::sendAdminMail() has been removed. Use JMail::sendAdminMail() instead.&lt;br /&gt;
*JUtility::getHash() has been removed. Use JApplication::getHash() instead.&lt;br /&gt;
*JUtility::getToken() has been removed. Use JSession::getFormToken() instead.&lt;br /&gt;
*JUtility::isWinOS() has been removed. Use JApplication::isWinOS() instead.&lt;br /&gt;
*JUtility::dump() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
*JUtility::array_unshift_ref() has been removed. No replacement.&lt;br /&gt;
&lt;br /&gt;
==== JXMLElement ====&lt;br /&gt;
*JXMLElement::data() has been removed.&lt;br /&gt;
*JXMLElement::getAttribute() has been removed. Use SimpleXMLElement::attributes() instead.&lt;br /&gt;
&lt;br /&gt;
== JavaScript ==&lt;br /&gt;
*Compatibility with MooTools 1.2 has been removed.&lt;br /&gt;
*Forms that have name=&amp;quot;adminForm&amp;quot; now also require id=&amp;quot;adminForm&amp;quot;.&lt;br /&gt;
*checkAll() has been removed. Use Joomla.checkAll() instead.&lt;br /&gt;
*isChecked() has been removed. Use Joomla.isChecked() instead.&lt;br /&gt;
*popupWindow() has been removed. Use Joomla.popupWindow() instead.&lt;br /&gt;
*tableOrdering() has been removed. Use Joomla.tableOrdering() instead.&lt;br /&gt;
&lt;br /&gt;
= CMS =&lt;br /&gt;
&lt;br /&gt;
== General changes ==&lt;br /&gt;
*JUtility is not always loaded. If you need it you have to add jimport(&#039;joomla.utilities.utility&#039;); to your code.&lt;br /&gt;
&lt;br /&gt;
== Changes to classes ==&lt;br /&gt;
&lt;br /&gt;
=== Component Classes ===&lt;br /&gt;
*MenusModelItem::getItem() no longer returns a JObject but a stdClass.&lt;br /&gt;
&lt;br /&gt;
=== Help ===&lt;br /&gt;
&lt;br /&gt;
==== JHelp ====&lt;br /&gt;
*JHelp::createSiteList() the argument $selected has been removed. It was unused.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Compatibility]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Platform]]&lt;/div&gt;</summary>
		<author><name>Akfaisel</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Client-side_form_validation&amp;diff=36910</id>
		<title>Client-side form validation</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Client-side_form_validation&amp;diff=36910"/>
		<updated>2011-02-10T02:50:22Z</updated>

		<summary type="html">&lt;p&gt;Akfaisel: /* Custom Handlers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
Joomla 1.5 contains a behavior &#039;&#039;&#039;JHTMLBehavior::formvalidation()&#039;&#039;&#039; which enables the script &#039;&#039;&#039;validate.js&#039;&#039;&#039;.&lt;br /&gt;
It uses &#039;&#039;&#039;mootools&#039;&#039;&#039; and allows your form and its elements to be validated.  &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; For more recent versions of Joomla (1.5.2) use &#039;&#039;&#039;JHTML::_(&#039;behavior.formvalidation&#039;)&#039;&#039;&#039; instead of &#039;&#039;&#039;JHTMLBehavior::formvalidation()&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Enable the Validation==&lt;br /&gt;
The only thing you have to do is set the &#039;&#039;&#039;classes&#039;&#039;&#039; of the form and elements to the specified meanings.&lt;br /&gt;
Classes:&lt;br /&gt;
===Form===&lt;br /&gt;
* form-validate -&amp;gt; enable validation&lt;br /&gt;
===Form elements===&lt;br /&gt;
* required&lt;br /&gt;
* validate-username&lt;br /&gt;
* validate-password&lt;br /&gt;
* validate-numeric&lt;br /&gt;
* validate-email&lt;br /&gt;
* validate-[custom] -&amp;gt; custom handlers have to be set then!&lt;br /&gt;
==Style Invalid Elements==&lt;br /&gt;
If some elements don&#039;t validate they will get the class&lt;br /&gt;
* invalid&lt;br /&gt;
If you style the class in the cascading style sheet, your users will be able to see which fields are wrong. For instance:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
.invalid {color:red;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Only Accept the Form After Validation==&lt;br /&gt;
If you don&#039;t want the form to submit anything unless the values are validated, here&#039;s a nice script:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php JHTMLBehavior::formvalidation(); ?&amp;gt;&lt;br /&gt;
&amp;lt;script language=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function myValidate(f) {&lt;br /&gt;
   if (document.formvalidator.isValid(f)) {&lt;br /&gt;
      f.check.value=&#039;&amp;lt;?php echo JUtility::getToken(); ?&amp;gt;&#039;; //send token&lt;br /&gt;
      return true; &lt;br /&gt;
   }&lt;br /&gt;
   else {&lt;br /&gt;
      var msg = &#039;Some values are not acceptable.  Please retry.&#039;;&lt;br /&gt;
&lt;br /&gt;
      //Example on how to test specific fields&lt;br /&gt;
      if($(&#039;email&#039;).hasClass(&#039;invalid&#039;)){msg += &#039;\n\n\t* Invalid E-Mail Address&#039;;}&lt;br /&gt;
&lt;br /&gt;
      alert(msg);&lt;br /&gt;
   }&lt;br /&gt;
   return false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;form id=&amp;quot;WV-form&amp;quot; method=&amp;quot;post&amp;quot; class=&amp;quot;form-validate&amp;quot; onSubmit=&amp;quot;return myValidate(this);&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;check&amp;quot; value=&amp;quot;post&amp;quot;/&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;email&amp;quot; id=&amp;quot;email&amp;quot; size=&amp;quot;30&amp;quot;  class=&amp;quot;required validate-email&amp;quot;/&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Submit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The page that receives the value can check several things:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
defined( &#039;_JEXEC&#039; ) or die( &#039;Restricted access&#039; );  //Verify Joomla enabled&lt;br /&gt;
$jAp=&amp;amp; JFactory::getApplication();&lt;br /&gt;
if ($_POST[&#039;check&#039;]!=JUtility::getToken()) {&lt;br /&gt;
   // First verify (by a Javascript error or other methods) that the form has not been submitted without the validation&lt;br /&gt;
   if ($_POST[&#039;check&#039;]==&#039;post&#039;)	$jAp-&amp;gt;enqueueMessage(&#039;Please check all the fields of the form, aub.&amp;lt;br/&amp;gt;&lt;br /&gt;
If your browser blocks Javascript, then this form will never be successful. This is a security measure.&#039;,&#039;error&#039;);&lt;br /&gt;
   // If the check still isn&#039;t a valid token, do nothing. This might be a spoof attack or other invalid form submission&lt;br /&gt;
   return false;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Custom Handlers==&lt;br /&gt;
If you want a custom handler, you can add one to the class, as in the following example (defined AFTER the validate.js):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;Window.onDomReady(function() {&lt;br /&gt;
   document.formvalidator.setHandler(&#039;birth&#039;, function(value) {&lt;br /&gt;
      regex=/^\d{4}(-\d{2}){2}$/;&lt;br /&gt;
      return regex.test(value);&lt;br /&gt;
   })&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
You can then set any class to validate-birth to make it validate as yyyy-mm-dd.  (Valid date is not checked!)&lt;br /&gt;
&lt;br /&gt;
If you want a custom handler to check both the passwords (Password and Confirm Password) are same, please add the following script after the validate.js:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
	Window.onDomReady(function(){&lt;br /&gt;
		document.formvalidator.setHandler(&#039;passverify&#039;, function (value) { return ($(&#039;password&#039;).value == value); }	);&lt;br /&gt;
	});&lt;br /&gt;
// --&amp;gt;&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Add add the class &amp;quot;validate-passverify&amp;quot; to the input field as below:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&amp;lt;input class=&amp;quot;inputbox required validate-passverify&amp;quot; type=&amp;quot;password&amp;quot; id=&amp;quot;password2&amp;quot; name=&amp;quot;password2&amp;quot; size=&amp;quot;40&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Work Around when Using with JToolBar==&lt;br /&gt;
If you are using JHTML::_(&#039;behavior.formvalidation&#039;) with JToolBar, for example use in backend, the above method will not work. This is because it depends on onSubmit event which did not fire when we call form.submit via JavaScript. To work around this, we have to move the code in onSubmit to be in submitbutton function override. This will look like this:-&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;
/* Override joomla.javascript, as form-validation not work with ToolBar */&lt;br /&gt;
function submitbutton(pressbutton) {&lt;br /&gt;
    if (pressbutton == &#039;cancel&#039;) {&lt;br /&gt;
        submitform(pressbutton);&lt;br /&gt;
    }else{&lt;br /&gt;
        var f = document.adminForm;&lt;br /&gt;
        if (document.formvalidator.isValid(f)) {&lt;br /&gt;
            submitform(pressbutton);    &lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
            var msg = new Array();&lt;br /&gt;
            msg.push(&#039;Invalid input, please verify again!&#039;);&lt;br /&gt;
            if ($(&#039;title&#039;).hasClass(&#039;invalid&#039;)) {&lt;br /&gt;
                msg.push(&#039;&amp;lt;?php echo JText::_(&#039;COM_JONGMAN_ERROR_SCHEDULE_TITLE_IS_REQUIRED&#039;)?&amp;gt;&#039;);    &lt;br /&gt;
            }&lt;br /&gt;
            if($(&#039;admin_email&#039;).hasClass(&#039;invalid&#039;)){&lt;br /&gt;
                msg.push(&#039;&amp;lt;?php echo JText::_(&#039;COM_JONGMAN_ERROR_INVALID_EMAIL&#039;)?&amp;gt;&#039;);&lt;br /&gt;
            }&lt;br /&gt;
            alert (msg.join(&#039;\n&#039;));&lt;br /&gt;
        }&lt;br /&gt;
    }    &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Tutorials]][[Category:Development]][[Category:Component Development]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Akfaisel</name></author>
	</entry>
</feed>