<?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=Alfred</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=Alfred"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Alfred"/>
	<updated>2026-06-17T20:56:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Potential_backward_compatibility_issues_in_Joomla_3_and_Joomla_Platform_12.2&amp;diff=68272</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=68272"/>
		<updated>2012-07-13T19:53:49Z</updated>

		<summary type="html">&lt;p&gt;Alfred: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{incomplete}}{{RightTOC}}This documents track 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 making 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 classed marked as deprecated 12.1 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 mod_&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 trough 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;
&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; package 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 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;
=== Classes moved to the CMS ===&lt;br /&gt;
*JFormFieldHelpsite&lt;br /&gt;
*JFormFieldMedia&lt;br /&gt;
*JFormFieldMenuitem&lt;br /&gt;
*JFormFieldUser&lt;br /&gt;
*JHelp&lt;br /&gt;
*JTableContent&lt;br /&gt;
&lt;br /&gt;
=== Classes moved within the platform ===&lt;br /&gt;
*JDatabaseQuery subclasses&lt;br /&gt;
*JInput (and all subclasses)&lt;br /&gt;
*JTable (and all subclasses)&lt;br /&gt;
*JArchive (and all subclasses)&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;
*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;
==== 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;
&lt;br /&gt;
==== JControllerLegacy ====&lt;br /&gt;
* JControllerLegacy::display() needs an extra parameter: ($cachable = false, $urlparams = false).&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 JDatabseDriver::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 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::isError() has been removed. Use instance of Exception instead.&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::_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;
&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::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.&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;/div&gt;</summary>
		<author><name>Alfred</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Creating_a_profile_plugin&amp;diff=58956</id>
		<title>Creating a profile plugin</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Creating_a_profile_plugin&amp;diff=58956"/>
		<updated>2011-05-29T20:22:13Z</updated>

		<summary type="html">&lt;p&gt;Alfred: Fixed error in the setFieldAttribute $group parameter&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Profile plugin is a new extension in Joomla! 1.6. It allows the addition of supplemental fields in the registration and profile forms of the com_user front end and in the user create/edit form in the back end.&lt;br /&gt;
&lt;br /&gt;
A simple example plugin is included in the basic Joomla! installation as a proof of concept. Much more complex plugins are possible.&lt;br /&gt;
&lt;br /&gt;
The example plugin takes advantage of on the onContentPrepareForm and onUserAfterSave events. &lt;br /&gt;
&lt;br /&gt;
Multiple profile plugins may be included and will be rendered in sequence.&lt;br /&gt;
&lt;br /&gt;
There are four separate places where profiles forms are used in core extensions, and each of these four can be manipulated separately if that is desired. The two locations in the front end are the user registration form and the user profile edit form. In the back end the locations are the edit screen for users in the user manager and the My Profile view found in the Admin menu.&lt;br /&gt;
&lt;br /&gt;
This page shows an example of a second plugin, named profile5. It adds a single field called something.&lt;br /&gt;
&lt;br /&gt;
This is the file structure&lt;br /&gt;
&lt;br /&gt;
 profile5.php&lt;br /&gt;
 profile5.xml&lt;br /&gt;
 en-GB.plg_user_profile5.ini&lt;br /&gt;
 en-GB.plg_user_profile5.sys.ini&lt;br /&gt;
 /profiles/profile.xml&lt;br /&gt;
&lt;br /&gt;
The supplemental fields are created with xml file in the profiles folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
&amp;lt;form&amp;gt;&lt;br /&gt;
	&amp;lt;fields name=&amp;quot;profile5&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;fieldset name=&amp;quot;profile5&amp;quot;&lt;br /&gt;
			label=&amp;quot;PLG_USER_PROFILE5_SLIDER_LABEL&amp;quot;&lt;br /&gt;
		&amp;gt;&lt;br /&gt;
			&amp;lt;field&lt;br /&gt;
				name=&amp;quot;something&amp;quot;&lt;br /&gt;
				type=&amp;quot;text&amp;quot;&lt;br /&gt;
				id=&amp;quot;something&amp;quot;&lt;br /&gt;
				description=&amp;quot;PLG_USER_PROFILE5_FIELD_SOMETHING_DESC&amp;quot;&lt;br /&gt;
				filter=&amp;quot;string&amp;quot;&lt;br /&gt;
				label=&amp;quot;PLG_USER_PROFILE5_FIELD_SOMETHING_LABEL&amp;quot;&lt;br /&gt;
				message=&amp;quot;PLG_USER_PROFILE5_FIELD_SOMETHING_MESSAGE&amp;quot;&lt;br /&gt;
				size=&amp;quot;30&amp;quot;&lt;br /&gt;
			/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
	&amp;lt;/fields&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
profile5.php &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;PHP&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
 /**&lt;br /&gt;
  * @version		&lt;br /&gt;
  * @copyright	Copyright (C) 2005 - 2010 Open Source Matters, Inc. All rights reserved.&lt;br /&gt;
  * @license		GNU General Public License version 2 or later; see LICENSE.txt&lt;br /&gt;
  */&lt;br /&gt;
&lt;br /&gt;
 defined(&#039;JPATH_BASE&#039;) or die;&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * An example custom profile plugin.&lt;br /&gt;
   *&lt;br /&gt;
   * @package		Joomla.Plugins&lt;br /&gt;
   * @subpackage	user.profile&lt;br /&gt;
   * @version		1.6&lt;br /&gt;
   */&lt;br /&gt;
  class plgUserProfile5 extends JPlugin&lt;br /&gt;
  {&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param	string	The context for the data&lt;br /&gt;
	 * @param	int		The user id&lt;br /&gt;
	 * @param	object&lt;br /&gt;
	 * @return	boolean&lt;br /&gt;
	 * @since	1.6&lt;br /&gt;
	 */&lt;br /&gt;
	function onContentPrepareData($context, $data)&lt;br /&gt;
	{&lt;br /&gt;
		// Check we are manipulating a valid form.&lt;br /&gt;
		if (!in_array($context, array(&#039;com_users.profile&#039;,&#039;com_users.registration&#039;,&#039;com_users.user&#039;,&#039;com_admin.profile&#039;))){&lt;br /&gt;
			return true;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		$userId = isset($data-&amp;gt;id) ? $data-&amp;gt;id : 0;&lt;br /&gt;
&lt;br /&gt;
		// Load the profile data from the database.&lt;br /&gt;
		$db = &amp;amp;JFactory::getDbo();&lt;br /&gt;
		$db-&amp;gt;setQuery(&lt;br /&gt;
			&#039;SELECT profile_key, profile_value FROM #__user_profiles&#039; .&lt;br /&gt;
			&#039; WHERE user_id = &#039;.(int) $userId .&lt;br /&gt;
			&#039; AND profile_key LIKE \&#039;profile5.%\&#039;&#039; .&lt;br /&gt;
			&#039; ORDER BY ordering&#039;&lt;br /&gt;
		);&lt;br /&gt;
		$results = $db-&amp;gt;loadRowList();&lt;br /&gt;
&lt;br /&gt;
		// Check for a database error.&lt;br /&gt;
		if ($db-&amp;gt;getErrorNum()) {&lt;br /&gt;
			$this-&amp;gt;_subject-&amp;gt;setError($db-&amp;gt;getErrorMsg());&lt;br /&gt;
			return false;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// Merge the profile data.&lt;br /&gt;
		$data-&amp;gt;profile5 = array();&lt;br /&gt;
		foreach ($results as $v) {&lt;br /&gt;
			$k = str_replace(&#039;profile5.&#039;, &#039;&#039;, $v[0]);&lt;br /&gt;
			$data-&amp;gt;profile5[$k] = $v[1];&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param	JForm	The form to be altered.&lt;br /&gt;
	 * @param	array	The associated data for the form.&lt;br /&gt;
	 * @return	boolean&lt;br /&gt;
	 * @since	1.6&lt;br /&gt;
	 */&lt;br /&gt;
	function onContentPrepareForm($form, $data)&lt;br /&gt;
	{&lt;br /&gt;
		// Load user_profile plugin language&lt;br /&gt;
		$lang = JFactory::getLanguage();&lt;br /&gt;
		$lang-&amp;gt;load(&#039;plg_user_profile5&#039;, JPATH_ADMINISTRATOR);&lt;br /&gt;
&lt;br /&gt;
		if (!($form instanceof JForm)) {&lt;br /&gt;
			$this-&amp;gt;_subject-&amp;gt;setError(&#039;JERROR_NOT_A_FORM&#039;);&lt;br /&gt;
			return false;&lt;br /&gt;
		}&lt;br /&gt;
		// Check we are manipulating a valid form.&lt;br /&gt;
		if (!in_array($form-&amp;gt;getName(), array(&#039;com_users.profile&#039;, &#039;com_users.registration&#039;,&#039;com_users.user&#039;,&#039;com_admin.profile&#039;))) {&lt;br /&gt;
			return true;&lt;br /&gt;
		}&lt;br /&gt;
		if ($form-&amp;gt;getName()==&#039;com_users.profile&#039;)&lt;br /&gt;
		{&lt;br /&gt;
			// Add the profile fields to the form.&lt;br /&gt;
			JForm::addFormPath(dirname(__FILE__).&#039;/profiles&#039;);&lt;br /&gt;
			$form-&amp;gt;loadFile(&#039;profile&#039;, false);&lt;br /&gt;
	&lt;br /&gt;
			// Toggle whether the something field is required.&lt;br /&gt;
			if ($this-&amp;gt;params-&amp;gt;get(&#039;profile-require_something&#039;, 1) &amp;gt; 0) {&lt;br /&gt;
				$form-&amp;gt;setFieldAttribute(&#039;something&#039;, &#039;required&#039;, $this-&amp;gt;params-&amp;gt;get(&#039;profile-require_something&#039;) == 2, &#039;profile5&#039;);&lt;br /&gt;
			} else {&lt;br /&gt;
				$form-&amp;gt;removeField(&#039;something&#039;, &#039;profile5&#039;);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		//In this example, we treat the frontend registration and the back end user create or edit as the same. &lt;br /&gt;
		elseif ($form-&amp;gt;getName()==&#039;com_users.registration&#039; || $form-&amp;gt;getName()==&#039;com_users.user&#039; )&lt;br /&gt;
		{		&lt;br /&gt;
			// Add the registration fields to the form.&lt;br /&gt;
			JForm::addFormPath(dirname(__FILE__).&#039;/profiles&#039;);&lt;br /&gt;
			$form-&amp;gt;loadFile(&#039;profile&#039;, false);&lt;br /&gt;
			&lt;br /&gt;
			// Toggle whether the something field is required.&lt;br /&gt;
			if ($this-&amp;gt;params-&amp;gt;get(&#039;register-require_something&#039;, 1) &amp;gt; 0) {&lt;br /&gt;
				$form-&amp;gt;setFieldAttribute(&#039;something&#039;, &#039;required&#039;, $this-&amp;gt;params-&amp;gt;get(&#039;register-require_something&#039;) == 2, &#039;profile5&#039;);&lt;br /&gt;
			} else {&lt;br /&gt;
				$form-&amp;gt;removeField(&#039;something&#039;, &#039;profile5&#039;);&lt;br /&gt;
			}&lt;br /&gt;
		}			&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	function onUserAfterSave($data, $isNew, $result, $error)&lt;br /&gt;
	{&lt;br /&gt;
		$userId	= JArrayHelper::getValue($data, &#039;id&#039;, 0, &#039;int&#039;);&lt;br /&gt;
&lt;br /&gt;
		if ($userId &amp;amp;&amp;amp; $result &amp;amp;&amp;amp; isset($data[&#039;profile5&#039;]) &amp;amp;&amp;amp; (count($data[&#039;profile5&#039;])))&lt;br /&gt;
		{&lt;br /&gt;
			try&lt;br /&gt;
			{&lt;br /&gt;
				$db = &amp;amp;JFactory::getDbo();&lt;br /&gt;
				$db-&amp;gt;setQuery(&#039;DELETE FROM #__user_profiles WHERE user_id = &#039;.$userId.&#039; AND profile_key LIKE \&#039;profile5.%\&#039;&#039;);&lt;br /&gt;
				if (!$db-&amp;gt;query()) {&lt;br /&gt;
					throw new Exception($db-&amp;gt;getErrorMsg());&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				$tuples = array();&lt;br /&gt;
				$order	= 1;&lt;br /&gt;
				foreach ($data[&#039;profile5&#039;] as $k =&amp;gt; $v) {&lt;br /&gt;
					$tuples[] = &#039;(&#039;.$userId.&#039;, &#039;.$db-&amp;gt;quote(&#039;profile5.&#039;.$k).&#039;, &#039;.$db-&amp;gt;quote($v).&#039;, &#039;.$order++.&#039;)&#039;;&lt;br /&gt;
				}&lt;br /&gt;
&lt;br /&gt;
				$db-&amp;gt;setQuery(&#039;INSERT INTO #__user_profiles VALUES &#039;.implode(&#039;, &#039;, $tuples));&lt;br /&gt;
				if (!$db-&amp;gt;query()) {&lt;br /&gt;
					throw new Exception($db-&amp;gt;getErrorMsg());&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			catch (JException $e) {&lt;br /&gt;
				$this-&amp;gt;_subject-&amp;gt;setError($e-&amp;gt;getMessage());&lt;br /&gt;
				return false;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Remove all user profile information for the given user ID&lt;br /&gt;
	 *&lt;br /&gt;
	 * Method is called after user data is deleted from the database&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param	array		$user		Holds the user data&lt;br /&gt;
	 * @param	boolean		$success	True if user was succesfully stored in the database&lt;br /&gt;
	 * @param	string		$msg		Message&lt;br /&gt;
	 */&lt;br /&gt;
	function onUserAfterDelete($user, $success, $msg)&lt;br /&gt;
	{&lt;br /&gt;
		if (!$success) {&lt;br /&gt;
			return false;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		$userId	= JArrayHelper::getValue($user, &#039;id&#039;, 0, &#039;int&#039;);&lt;br /&gt;
&lt;br /&gt;
		if ($userId)&lt;br /&gt;
		{&lt;br /&gt;
			try&lt;br /&gt;
			{&lt;br /&gt;
				$db = JFactory::getDbo();&lt;br /&gt;
				$db-&amp;gt;setQuery(&lt;br /&gt;
					&#039;DELETE FROM #__user_profiles WHERE user_id = &#039;.$userId .&lt;br /&gt;
					&amp;quot; AND profile_key LIKE &#039;profile5.%&#039;&amp;quot;&lt;br /&gt;
				);&lt;br /&gt;
&lt;br /&gt;
				if (!$db-&amp;gt;query()) {&lt;br /&gt;
					throw new Exception($db-&amp;gt;getErrorMsg());&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			catch (JException $e)&lt;br /&gt;
			{&lt;br /&gt;
				$this-&amp;gt;_subject-&amp;gt;setError($e-&amp;gt;getMessage());&lt;br /&gt;
				return false;&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Profile5.xml controls whether the field is required, disabled or optional in the forms. Since profile5.php says to treat backend create/edit the same as registration only two sets of options are required, register and profile.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
	&amp;lt;!-- $Id:  --&amp;gt;&lt;br /&gt;
 &amp;lt;extension version=&amp;quot;1.6&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;user&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;plg_user_profile5&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;January 2008&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;(C) 2005 - 2010 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;1.6.0&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;PLG_USER_PROFILE5_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
		&amp;lt;filename plugin=&amp;quot;profile5&amp;quot;&amp;gt;profile5.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;profiles&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;languages&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_user_profile5.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.plg_user_profile5.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;config&amp;gt;&lt;br /&gt;
		&amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&lt;br /&gt;
				&amp;lt;field name=&amp;quot;register-require-user&amp;quot; type=&amp;quot;spacer&amp;quot;&lt;br /&gt;
					label=&amp;quot;PLG_USER_PROFILE5_FIELD_NAME_REGISTER_REQUIRE_USER&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;register-something&amp;quot; type=&amp;quot;list&amp;quot;&lt;br /&gt;
					description=&amp;quot;PLG_USER_PROFILE5_FIELD_SOMETHING_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;PLG_USER_PROFILE5_FIELD_SOMETHING_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;2&amp;quot;&amp;gt;JOPTION_REQUIRED&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JOPTION_OPTIONAL&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JDISABLED&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;profile-require-user&amp;quot; type=&amp;quot;spacer&amp;quot;&lt;br /&gt;
					label=&amp;quot;PLG_USER_PROFILE5_FIELD_NAME_PROFILE_REQUIRE_USER&amp;quot;&lt;br /&gt;
				/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
				&amp;lt;field name=&amp;quot;profile-require_something&amp;quot; type=&amp;quot;list&amp;quot;&lt;br /&gt;
					description=&amp;quot;PLG_USER_PROFILE5_FIELD_SOMETHING_DESC&amp;quot;&lt;br /&gt;
					label=&amp;quot;PLG_USER_PROFILE5_FIELD_SOMETHING_LABEL&amp;quot;&lt;br /&gt;
				&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;2&amp;quot;&amp;gt;JOPTION_REQUIRED&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;JOPTION_OPTIONAL&amp;lt;/option&amp;gt;&lt;br /&gt;
					&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JDISABLED&amp;lt;/option&amp;gt;&lt;br /&gt;
				&amp;lt;/field&amp;gt;&lt;br /&gt;
&lt;br /&gt;
			&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;/config&amp;gt;&lt;br /&gt;
 &amp;lt;/extension&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
en-GB.plg_user_profile5.ini&lt;br /&gt;
&lt;br /&gt;
 ; &lt;br /&gt;
 ; Joomla! Project&lt;br /&gt;
 ; Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.&lt;br /&gt;
 ; License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php&lt;br /&gt;
 ; Note : All ini files need to be saved as UTF-8&lt;br /&gt;
 &lt;br /&gt;
 PLG_USER_PROFILE5_XML_DESCRIPTION=&amp;quot;User Profile 5 Plug-in&amp;quot;&lt;br /&gt;
 PLG_USER_PROFILE5=&amp;quot;User - Profile 5&amp;quot;&lt;br /&gt;
 PLG_USER_PROFILE5_SLIDER_LABEL=&amp;quot;User Profile 5&amp;quot;&lt;br /&gt;
 PLG_USER_PROFILE5_FIELD_NAME_REGISTER_REQUIRE_USER=&amp;quot;User profile fields for registration and administrator user profile 5 forms&amp;quot;&lt;br /&gt;
 PLG_USER_PROFILE5_FIELD_NAME_PROFILE_REQUIRE_USER=&amp;quot;User profile fields for profile 5 edit form&amp;quot;&lt;br /&gt;
 PLG_USER_PROFILE5_FIELD_SOMETHING_DESC=&amp;quot;Choose an option for the something filed&amp;quot;&lt;br /&gt;
 PLG_USER_PROFILE5_FIELD_SOMETHING_LABEL=&amp;quot;Something!&amp;quot;&lt;br /&gt;
 PLG_USER_PROFILE5_FIELD_SOMETHING_MESSAGE=&amp;quot;A Message for something!&amp;quot;&lt;br /&gt;
 PLG_USER_PROFILE5_XML_DESCRIPTION=&amp;quot;User Profile 5 Plug-in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
en-GB.plg_user_profile5.sys.ini&lt;br /&gt;
&lt;br /&gt;
 ; $Id: en-GB.plg_user_profile.sys.ini 17052 2010-05-14 14:05:58Z infograf768 $&lt;br /&gt;
 ; Joomla! Project&lt;br /&gt;
 ; Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.&lt;br /&gt;
 ; License http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL, see LICENSE.php&lt;br /&gt;
 ; Note : All ini files need to be saved as UTF-8&lt;br /&gt;
 &lt;br /&gt;
 PLG_USER_PROFILE5=&amp;quot;User - Profile 5 &amp;quot;&lt;br /&gt;
 PLG_USER_PROFILE5_XML_DESCRIPTION=&amp;quot;User Profile 5 Plug-in&amp;quot;&lt;br /&gt;
&lt;br /&gt;
By installing profile5 you can add new fields in addition to the ones in profile. You can also control which view levels see those fields.&lt;br /&gt;
Alternatively, you can write a more complex common plugin with varying controls for different groups.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]][[Category:Plugin Development]]&lt;/div&gt;</summary>
		<author><name>Alfred</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5_talk:Component_parameters&amp;diff=10900</id>
		<title>J1.5 talk:Component parameters</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5_talk:Component_parameters&amp;diff=10900"/>
		<updated>2008-09-25T18:12:30Z</updated>

		<summary type="html">&lt;p&gt;Alfred: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I find the terms &amp;quot;frontend&amp;quot; and &amp;quot;backend&amp;quot; confusing when applied in this context.&lt;br /&gt;
&lt;br /&gt;
also, links to the standard parameter types would be extremely useful.&lt;br /&gt;
http://docs.joomla.org/Standard_parameter_types&lt;br /&gt;
&lt;br /&gt;
Overall, I found the article extremely useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Commercemeister, thanks for your comments.  Could you please explain what you find confusing about frontend and backend?  They are commonly used to refer to the main site and the administration parts of a Joomla! website, respectively.  It would be helpful to know how you think they should be clarified (or you could even just do it yourself - that&#039;s the beauty of a wiki!).  Thanks too for the note about parameter types - the article did originally link to a page with this information, but then that page was changed.  I will update it.&lt;br /&gt;
&lt;br /&gt;
One final point - please sign your comments using the four tildes at the end (&amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt;).  Thanks, [[User:Mike dowler|Mike]] 16:18, 3 September 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
I&#039;m confused about the differences between the types of parameters.&lt;br /&gt;
So you&#039;ve got Parameters (Basic), (Advanced), (Component) and (System).&lt;br /&gt;
&lt;br /&gt;
Now what kind of parameters would you put in (basic) and what in (component) if both can be overriden in the menu you create for the component ?&lt;br /&gt;
I just don&#039;t see the distinction between the two...&lt;br /&gt;
[[User:Alfred|Alfred]] 14:12, 25 September 2008 (EDT)&lt;/div&gt;</summary>
		<author><name>Alfred</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5_talk:Component_parameters&amp;diff=10899</id>
		<title>J1.5 talk:Component parameters</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5_talk:Component_parameters&amp;diff=10899"/>
		<updated>2008-09-25T18:11:24Z</updated>

		<summary type="html">&lt;p&gt;Alfred: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I find the terms &amp;quot;frontend&amp;quot; and &amp;quot;backend&amp;quot; confusing when applied in this context.&lt;br /&gt;
&lt;br /&gt;
also, links to the standard parameter types would be extremely useful.&lt;br /&gt;
http://docs.joomla.org/Standard_parameter_types&lt;br /&gt;
&lt;br /&gt;
Overall, I found the article extremely useful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Commercemeister, thanks for your comments.  Could you please explain what you find confusing about frontend and backend?  They are commonly used to refer to the main site and the administration parts of a Joomla! website, respectively.  It would be helpful to know how you think they should be clarified (or you could even just do it yourself - that&#039;s the beauty of a wiki!).  Thanks too for the note about parameter types - the article did originally link to a page with this information, but then that page was changed.  I will update it.&lt;br /&gt;
&lt;br /&gt;
One final point - please sign your comments using the four tildes at the end (&amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt;).  Thanks, [[User:Mike dowler|Mike]] 16:18, 3 September 2008 (EDT)&lt;br /&gt;
&lt;br /&gt;
I&#039;m confused about the differences between the types of parameters.&lt;br /&gt;
So you&#039;ve got Parameters (Basic), (Advanced), (Component) and (System).&lt;br /&gt;
&lt;br /&gt;
Now what kind of parameters would you put in (basic) and what in (component) if both can be overriden in the menu you create for the component ?&lt;br /&gt;
I just don&#039;t see the distinction between the two...&lt;/div&gt;</summary>
		<author><name>Alfred</name></author>
	</entry>
</feed>