<?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=Evinyatar</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=Evinyatar"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Evinyatar"/>
	<updated>2026-10-10T19:52:50Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Security_Checklist/Getting_Started&amp;diff=37087</id>
		<title>Security Checklist/Getting Started</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Security_Checklist/Getting_Started&amp;diff=37087"/>
		<updated>2011-02-12T02:58:28Z</updated>

		<summary type="html">&lt;p&gt;Evinyatar: /* Security matters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RightTOC}}&lt;br /&gt;
== Read Me First==&lt;br /&gt;
&lt;br /&gt;
=== Security matters ===&lt;br /&gt;
&lt;br /&gt;
:Internet security is a fast moving challenge and ever present threat. There is no one right way to secure a website, and all security methods are subject to instant obsolescence, incremental improvement, and constant revision. All public facing websites are open to constant attack. Are you willing and able to invest the time it takes to administer a dynamic, 24x7, world-accessible, database-driven, interactive, user-authenticated website? Do you have the time and resources to respond to the constant flow of new Internet security issues? The [[Top 10 Stupidest Administrator Tricks]] is a comic/tragic look at what can go wrong. Don&#039;t learn these tricks the hard way! Depending on your own experience, reading the &#039;&#039;Stupidest Tricks&#039;&#039; will either make you laugh or cry. Luckily, there are some well-established principles upon which to base your defensive plans. The following checklists point you toward current best practices for Joomla security.&lt;br /&gt;
&lt;br /&gt;
=== How to read these documents ===&lt;br /&gt;
#Not all techniques are appropriate for every level of experience. Apply the techniques you understand and read up on the ones you don&#039;t.&lt;br /&gt;
#Not all techniques are appropriate for every server. If you use a shared server, you must depend on the settings established by your hosting provider. If you are using a virtual or dedicated server, you can apply more creative security tactics.&lt;br /&gt;
#Not all security tactics are appropriate for all versions of Joomla. Where a technique applies to only one version it is noted by one of the following icons: {{JVer|1.0}}{{JVer|1.5}}{{JVer|1.6}}.&lt;br /&gt;
&lt;br /&gt;
=== The most important guidelines===&lt;br /&gt;
:These checklists are long and growing because the full plot is thick, complex, and expanding, but don&#039;t despair! Here are a few essential guidelines for securing any website. Following them will protect you from most catastrophes.&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Backup early and often:&#039;&#039;&#039; Setup (and use and test) a regular backup and recovery process. When done well, this ensures that you can recover from almost any imaginable disaster.&lt;br /&gt;
# &#039;&#039;&#039;Update early and often:&#039;&#039;&#039; Promptly update to the latest &#039;&#039;stable&#039;&#039; version of Joomla! and any installed third-party extensions. This ensures that your site is protected from the newest vulnerabilities as soon as a fix is released and from the latest attack methods as soon as a defense is developed. &lt;br /&gt;
# &#039;&#039;&#039;Use a secure host&#039;&#039;&#039; Use a high-quality Web host. Do not be fooled by offers of &#039;unlimited bandwidth, unlimited hard drive space, unlimited databases, etc. &lt;br /&gt;
# &#039;&#039;&#039;Use the community&#039;&#039;&#039; Don&#039;t forget the truism, &amp;quot;If a deal is too good to be true, it is.&amp;quot; It seems that nothing on Earth is unlimited--except perhaps the gullibility of fools and the greed of those who prey upon them. Consider hiring professional assistance if you have inadequate experience or knowledge in this area. One of the advantages of GNU software is that user support is free. Take good advantage of this by asking good questions within the [http://forum.joomla.org Joomla! Forums]. When doing so, be sure to use the the most appropriate board, such as Installation, Migration and Updating, Administration. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::The most helpful posts in the Joomla! Security Forum are converted into [[Security and Performance FAQs]]. Many of the items on this list are explained in much greater detail in the FAQs. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::You may want to read the excellent [[Beginners|Absolute Beginners Guide to Joomla!]] It has wealth of tips and tricks presented in an easy to understand format. Even experienced Joomlaists find great ideas here. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::Hunt down the many nuggets of wisdom found in the [http://forum.joomla.org Joomla! Forums], in particular the [http://forum.joomla.org/viewforum.php?f=432 Joomla! 1.5 Security Forum] and the [http://forum.joomla.org/viewforum.php?f=267 Joomla! 1.0 Security Forum].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::To receive all Joomla security announcements, subscribe to Joomla Security News. There are several ways to subscribe: &lt;br /&gt;
&lt;br /&gt;
::# [http://feedburner.google.com/fb/a/mailverify?uri=JoomlaSecurityNews Automatic Email Notification]&lt;br /&gt;
::# [http://feeds.joomla.org/JoomlaSecurityNews RSS feed].&lt;br /&gt;
&lt;br /&gt;
=== The bad news === &lt;br /&gt;
#&#039;&#039;&#039;There is no perfect security on the Web!&#039;&#039;&#039; As economists would say, &amp;quot;There&#039;s no free lunch.&amp;quot; Don&#039;t be fooled by Joomla&#039;s award winning ease-of-use. Maintaining a secure Web site on the open Internet is not easy. Maintaining adequate security requires a wide and ever-growing range of skills and knowledge, constant watchfulness, and a robust backup and recovery process.&lt;br /&gt;
#&#039;&#039;&#039;There&#039;s no one right way!&#039;&#039;&#039; Due to the variety and complexity of modern web systems, security issues can&#039;t be resolved with simple, one-size-fits-all solutions. You (or someone you trust) must learn enough about your server infrastructure to make valid security decisions. Strong security is a moving target. Today&#039;s expert might be tomorrow&#039;s victim. Welcome to the game...&lt;br /&gt;
#&#039;&#039;&#039;There&#039;s no substitute for experience!&#039;&#039;&#039; To secure your Web site, you must gain real experience (some of which will be bitter), or get experienced help from others. If you haven&#039;t invested the considerable time it takes to learn how to maintain a secure Web site, be sure you can consult with someone who has. Read this tongue-in-cheek description of the [[Top_10_Stupidest_Administrator_Tricks|Top 10 Stupidest Administrator Tricks]] which illustrates typical, blow-by-blow examples of how to learn Web security the hard way.&lt;br /&gt;
&lt;br /&gt;
=== The good news === &lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;Even a beginner can start at the head of the herd&#039;&#039;&#039; User forums for many systems are clogged with [http://www.google.com/search?q=Help!+I&#039;ve+been+hacked Help! I&#039;ve been hacked] posts by people who did NOT follow standard security practices. If you are studying this checklist before your site is attacked, congratulations, you&#039;re already ahead of the herd.&lt;br /&gt;
#&#039;&#039;&#039;It&#039;s not as hard as it looks&#039;&#039;&#039; If this is one of your first websites, security issues may seem overwhelming, but you don&#039;t have to deal with all of them at once. Start with the most critical issues. As you become more familiar with [http://www.gnu.org GNU] tools and techniques, including [http://www.gnu.org/ GNU/Linux], [http://www.apache.org Apache], [http://www.mysql.com MySQL], [http://en.wikipedia.org/wiki/SQL SQL], [http://www.php.net PHP], [http://en.wikipedia.org/wiki/HTTP HTTP], [http://en.wikipedia.org/wiki/CSS CSS], [http://en.wikipedia.org/wiki/XML XML], [http://en.wikipedia.org/wiki/RSS RSS], [http://en.wikipedia.org/wiki/TCP/IP TCP/IP], [http://en.wikipedia.org/wiki/FTP FTP], [http://subversion.tigris.org/ Subversion], [http://en.wikipedia.org/wiki/JavaScript JavaScript], and [http://www.joomla.org Joomla!], you&#039;ll add refinements to your set of security tactics.&lt;br /&gt;
#&#039;&#039;&#039;You can get help&#039;&#039;&#039; If you believe your website was attacked, &#039;&#039;&#039;do not&#039;&#039;&#039; simply post an announcement with full details in the Joomla! forums. If you are dealing with a new vulnerability or new form of attack, publishing that information could put other websites at risk. Instead, report possible security vulnerabilities to the [http://developer.joomla.org/security/contact-the-team.html Joomla! Security Task Force].&lt;br /&gt;
&lt;br /&gt;
== Security Checklists Table of Contents==&lt;br /&gt;
# [[Security Checklist 1 - Getting Started|Getting Started]] &lt;br /&gt;
# [[Security Checklist 2 - Hosting and Server Setup|Hosting and Server Setup]]&lt;br /&gt;
# [[Security Checklist 3 - Testing and Development|Testing and Development]]&lt;br /&gt;
# [[Security Checklist 4 - Joomla Setup|Joomla Setup]]&lt;br /&gt;
# [[Security Checklist 5 - Site Administration|Site Administration]]&lt;br /&gt;
# [[Security Checklist 6 - Site Recovery|Site Recovery]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- KEEP THIS AT THE END OF THE PAGE --&amp;gt;&lt;br /&gt;
[[Category:Security Checklist]]&lt;br /&gt;
&lt;br /&gt;
== Edited by==&lt;br /&gt;
[http://forum.joomla.org/memberlist.php?mode=viewprofile&amp;amp;u=39784 rliskey]&lt;/div&gt;</summary>
		<author><name>Evinyatar</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J2.5:What%27s_new_in_Joomla_2.5&amp;diff=36124</id>
		<title>J2.5:What&#039;s new in Joomla 2.5</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J2.5:What%27s_new_in_Joomla_2.5&amp;diff=36124"/>
		<updated>2011-01-26T14:51:34Z</updated>

		<summary type="html">&lt;p&gt;Evinyatar: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The principal changes introduced in Joomla 1.6 are:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;New Access Control System&#039;&#039;&#039; - Allows site administrators control over who can view and manage content.&lt;br /&gt;
* &#039;&#039;&#039;Unlimited Depth Organizational Model&#039;&#039;&#039; - Gives site administrators and content creators user-defined category levels that allow for the creation of a category tree with as many or as few levels for organizing articles and other content as needed.&lt;br /&gt;
* &#039;&#039;&#039;One-Click Extension Updates&#039;&#039;&#039; - Allows users to keep sites secure and controlled by simplifying the process of updating extensions.&lt;br /&gt;
* &#039;&#039;&#039;Semantic XHTML Layouts&#039;&#039;&#039; - Provides a better baseline for content presentation.&lt;br /&gt;
&lt;br /&gt;
The following is a more complete list of changes.&lt;br /&gt;
==Administrators==&lt;br /&gt;
===Introduction===&lt;br /&gt;
*Consistent UI&lt;br /&gt;
*Consistent Features&lt;br /&gt;
*Richer sample data&lt;br /&gt;
*IE 7+, Firefox 3.x, Safari 4.x&lt;br /&gt;
*PHP 5.2.4+&lt;br /&gt;
*MySQL 5.0.4 (allows for wide varchars)&lt;br /&gt;
&lt;br /&gt;
===Administrator===&lt;br /&gt;
*Menu Changes&lt;br /&gt;
*Submenu consistency&lt;br /&gt;
&lt;br /&gt;
====Toolbar Features====&lt;br /&gt;
*Save&lt;br /&gt;
*Save &amp;amp; Close&lt;br /&gt;
*Save &amp;amp; New&lt;br /&gt;
*Save as Copy&lt;br /&gt;
*Expired session will return to the page you were on when you got logged out (can be hit and miss)&lt;br /&gt;
*Most search filters allow you to search for a record id via [ id:123 ]&lt;br /&gt;
*&amp;quot;Parameters&amp;quot; are now referred to as &amp;quot;Options&amp;quot;&lt;br /&gt;
*Template Styles&lt;br /&gt;
*Integrated Trash Management&lt;br /&gt;
*Consistent archive support for most content&lt;br /&gt;
*Extension Installer Improvements&lt;br /&gt;
&lt;br /&gt;
===Module Enhancements===&lt;br /&gt;
*Publish up and down&lt;br /&gt;
*Add option to display on all pages &amp;quot;except&amp;quot; selected&lt;br /&gt;
*Expanded Category System&lt;br /&gt;
*404 Page Redirection&lt;br /&gt;
*Better Menu Management&lt;br /&gt;
*Alternative layouts for content, modules and menus (taken from the home template)&lt;br /&gt;
&lt;br /&gt;
===New Templates===&lt;br /&gt;
*Atomic&lt;br /&gt;
*Beez2&lt;br /&gt;
*(Administrator) Bluestork (replaces Khephri)&lt;br /&gt;
*(Administrator) Hathor&lt;br /&gt;
*Legacy layer in Milkyway&lt;br /&gt;
*Backend supports layout overrides&lt;br /&gt;
*New Modules&lt;br /&gt;
*New Plugins&lt;br /&gt;
*Content Languages&lt;br /&gt;
*User Login Permissions&lt;br /&gt;
*Activate selected users from the user list now (and filter)&lt;br /&gt;
*Administrator registration approval&lt;br /&gt;
*Polls component removed&lt;br /&gt;
*New codemirror editor&lt;br /&gt;
&lt;br /&gt;
===SEO Improvements===&lt;br /&gt;
*Meta decription and keywords for categories&lt;br /&gt;
*Articles can change the page title and page header separately&lt;br /&gt;
&lt;br /&gt;
===Global Configuration===&lt;br /&gt;
*Add site name to titles&lt;br /&gt;
*Default Access Level&lt;br /&gt;
*Set Metadata Language (buggy)&lt;br /&gt;
*Unicode Aliases&lt;br /&gt;
*Cookie domain and path&lt;br /&gt;
*User Setting moved to User Manager -&amp;gt; Options&lt;br /&gt;
*Media Settings moved to Media Manager -&amp;gt; Options&lt;br /&gt;
*Server Timezone now a location, not an integer offset&lt;br /&gt;
*New Global Permissions tab&lt;br /&gt;
&lt;br /&gt;
===User Manager===&lt;br /&gt;
*Can activate a user from the list now&lt;br /&gt;
*User can be assigned to multiple groups&lt;br /&gt;
*Manage user groups&lt;br /&gt;
*Manager content access levels&lt;br /&gt;
&lt;br /&gt;
===Media Manager===&lt;br /&gt;
*Flash uploader fixed&lt;br /&gt;
&lt;br /&gt;
===Menu Manager===&lt;br /&gt;
====Menus List====&lt;br /&gt;
*Rebuild button to press when you brick the menu&lt;br /&gt;
*Clicking the menu name brings up the menu items list rather than going into Edit Menu. To edit the menu, click on the check box next to the name and click on the Edit icon in the toolbar.&lt;br /&gt;
&lt;br /&gt;
====Items List====&lt;br /&gt;
*Menus support the language filter&lt;br /&gt;
*Default now called Home&lt;br /&gt;
*Home is now clickable in the menu item list&lt;br /&gt;
*A separate home can be set for different languages&lt;br /&gt;
&lt;br /&gt;
=====New batch operations=====&lt;br /&gt;
*Set access level&lt;br /&gt;
*Copy or move to another part of this or another menu&lt;br /&gt;
&lt;br /&gt;
====Edit Item====&lt;br /&gt;
*Improved &amp;quot;Type&amp;quot; selector with human readable view and layout names&lt;br /&gt;
*Note field added&lt;br /&gt;
*New window target&lt;br /&gt;
*New Language assignment&lt;br /&gt;
*New Template style&lt;br /&gt;
*Ability to add &amp;amp; edit Module assignments from this page&lt;br /&gt;
*Ability to create alternative menu items with customised parameters&lt;br /&gt;
*Ability to create multiple alternative layouts for one template&lt;br /&gt;
&lt;br /&gt;
=====New options for the menu links and pages themselves=====&lt;br /&gt;
*Link title attribute&lt;br /&gt;
*Link CSS style&lt;br /&gt;
*Menu image is changed to a modal selector&lt;br /&gt;
*CSS class for page heading&lt;br /&gt;
*Page meta description&lt;br /&gt;
*Page meta keywords&lt;br /&gt;
*Robots options&lt;br /&gt;
&lt;br /&gt;
===Articles Manager===&lt;br /&gt;
*Frontpage is now referred to as Featured&lt;br /&gt;
*Article manager uses submenu to quickly skip between articles , categories and featured&lt;br /&gt;
*Sections and categories are now merged.&lt;br /&gt;
&lt;br /&gt;
====Articles List====&lt;br /&gt;
*&#039;&#039;&amp;quot;Missing move and copy; filter by author&amp;quot;&#039;&#039;&lt;br /&gt;
*New column to show language&lt;br /&gt;
*Filtering by language available&lt;br /&gt;
&lt;br /&gt;
====Article Edit====&lt;br /&gt;
*Created by user now selected by modal popup&lt;br /&gt;
*New ability to set the page title from the article&lt;br /&gt;
*Define create, delete, edit and publishing permissions&lt;br /&gt;
&lt;br /&gt;
====Archived Articles====&lt;br /&gt;
*In 1.5, Archived Articles had to first be changed to Published or Unpublished before update. &lt;br /&gt;
*In 1.6, an Article with an Archived Status *can* be changed without changing the State first.&lt;br /&gt;
&lt;br /&gt;
===Categories===&lt;br /&gt;
====Category List====&lt;br /&gt;
*Nested view&lt;br /&gt;
*Filtering on language&lt;br /&gt;
&lt;br /&gt;
====Edit Category====&lt;br /&gt;
*New note field&lt;br /&gt;
*Section replaced with ability to assign a parent category&lt;br /&gt;
*Ability to assign content language&lt;br /&gt;
&lt;br /&gt;
=====New Options (not previously available in 1.5)=====&lt;br /&gt;
*Assign alternate layout&lt;br /&gt;
*Define create, delete, edit and publishing permissions&lt;br /&gt;
*Meta description&lt;br /&gt;
*Meta keywords&lt;br /&gt;
*Alternative page title&lt;br /&gt;
*Meta author&lt;br /&gt;
*Meta robots&lt;br /&gt;
&lt;br /&gt;
===Banners===&lt;br /&gt;
====Banners list====&lt;br /&gt;
* Missing copy toolbar button&lt;br /&gt;
*New archive toolbar button&lt;br /&gt;
*New columns to show meta keywords, purchase type and language&lt;br /&gt;
*New filtering by client and language&lt;br /&gt;
&lt;br /&gt;
====Edit Banner====&lt;br /&gt;
*New type toggle for Image or Custom (dynamically changes the available form fields)&lt;br /&gt;
*New alt text field for image&lt;br /&gt;
*New language field&lt;br /&gt;
&lt;br /&gt;
=====New Options=====&lt;br /&gt;
*Ability to set the created date&lt;br /&gt;
*Ability to set start and finish publishing times&lt;br /&gt;
*Ability to set the purchase type&lt;br /&gt;
*Ability to track impressions&lt;br /&gt;
*Ability to track clicks&lt;br /&gt;
*Use own prefix ?&lt;br /&gt;
*Tags renamed to meta &lt;br /&gt;
*Contacts&lt;br /&gt;
*Messaging&lt;br /&gt;
*Newsfeeds&lt;br /&gt;
*Search&lt;br /&gt;
*Weblinks&lt;br /&gt;
*Redirect&lt;br /&gt;
&lt;br /&gt;
===Extensions Manager===&lt;br /&gt;
====Discover====&lt;br /&gt;
*Module mgr&lt;br /&gt;
*Plugin Mgr&lt;br /&gt;
*Template Mgr&lt;br /&gt;
*Language mgr&lt;br /&gt;
&lt;br /&gt;
===Templates Manager===&lt;br /&gt;
*Options - allows you to enable/disable the tp=1 feature&lt;br /&gt;
&lt;br /&gt;
===Misc===&lt;br /&gt;
*Auto create linked contact when creating new user ??&lt;br /&gt;
&lt;br /&gt;
==Access Controls==&lt;br /&gt;
*Introduction&lt;br /&gt;
*User Groups&lt;br /&gt;
*Access Levels&lt;br /&gt;
*Permission Layers&lt;br /&gt;
*How Permissions are Inherited&lt;br /&gt;
*How to debrick your site&lt;br /&gt;
&lt;br /&gt;
==Developers==&lt;br /&gt;
===Introduction===&lt;br /&gt;
*PHP 5.2.4+&lt;br /&gt;
*MySQL 5.0.4 (allows for wide varchars)&lt;br /&gt;
*IE7+, Firefox 3+, Safari 4+&lt;br /&gt;
*Focus on code consistency&lt;br /&gt;
*Focus on code reduction&lt;br /&gt;
&lt;br /&gt;
Usage of PHP Native Functions where possible, for example:&lt;br /&gt;
*[[JXMLElement]] extends the native [http://php.net/manual/en/book.simplexml.php SimpleXML] class&lt;br /&gt;
*[[JDate]] extends the [http://www.php.net/manual/en/class.datetime.php DateTime] class&lt;br /&gt;
*Native INI parser to load languages&lt;br /&gt;
&lt;br /&gt;
===Removed features===&lt;br /&gt;
*ADODB compatibility methods in database classes&lt;br /&gt;
*DOMIT (unsupported XML library)&lt;br /&gt;
*Legacy mode (includes global $mainframe, etc)&lt;br /&gt;
*JTemplate (based on patTemplate)&lt;br /&gt;
*patTemplate (templating engine)&lt;br /&gt;
*PDF support&lt;br /&gt;
*PEAR libraries (due to license incompatibilities)&lt;br /&gt;
*phpgacl&lt;br /&gt;
*PHP 4.0 and 5.0 compatibility files&lt;br /&gt;
*XStandard Editor&lt;br /&gt;
&lt;br /&gt;
===Deprecated Features===&lt;br /&gt;
*JController::_acoSection&lt;br /&gt;
*JController::_acoSectionValue&lt;br /&gt;
*JController::authorize()&lt;br /&gt;
*JController::setAccessControl()&lt;br /&gt;
*JDatabase::stderr()&lt;br /&gt;
*JDate::offest&lt;br /&gt;
*JDate::setOffset()&lt;br /&gt;
*JDate::toFormat() - use JDate::format() instead&lt;br /&gt;
*JException::toString()&lt;br /&gt;
*JFactory::getXMLParser()&lt;br /&gt;
*JHtmlBehavior::mootools() - use JHtmlBehavior::framework instead&lt;br /&gt;
*JHtmlGird::access()&lt;br /&gt;
*JHtmlImage::administrator - use JHtml::image instead&lt;br /&gt;
*JHtmlImage::site - use JHtml::image instead&lt;br /&gt;
*JHtmlList::accesslevel()&lt;br /&gt;
*JHtmlList::specificordering() - use JHtml::_(&#039;list.ordering&#039;)&lt;br /&gt;
*JHtmlList::category()&lt;br /&gt;
*JHtmlSelect::optgroup() - see JHtmlSelect::groupedList()&lt;br /&gt;
*JLanguage::_parseLanguageFiles - renamed to parseLanguageFiles&lt;br /&gt;
*JLanguage::_parseXMLLanguageFile - renamed to parseXMLLanguageFile&lt;br /&gt;
*JLanguage::_parseXMLLanguageFiles - renamed to parseXMLLanguageFiles&lt;br /&gt;
*JObject::toString - replaced with magic method&lt;br /&gt;
*JRegistry::getNameSpaces()&lt;br /&gt;
*JRegistry::getValue()&lt;br /&gt;
*JRegistry::makeNameSpace()&lt;br /&gt;
*JRegistry::setValue()&lt;br /&gt;
*JPane - See JHtmlSliders&lt;br /&gt;
*JParameter - replaced by JForm&lt;br /&gt;
*JSimpleXML, JSimpleXMLElement - Use JXMLElement instead, based on the native SimpleXMLElement&lt;br /&gt;
*JTable::canDelete() - models or controllers should be doing the access checks&lt;br /&gt;
*JTable::toXML()&lt;br /&gt;
*JToolbarHelper customX(), addNewX(), editListX(), editHtmlX(), editCssX(), deleteListX()&lt;br /&gt;
*JUser::authorize() - Use JUser::authorise()&lt;br /&gt;
*JUtility::dump()&lt;br /&gt;
*JUtility::array_unshift_ref() - Not needed in PHP 5&lt;br /&gt;
*JUtility::getHash() - Use JApplication::getHash()&lt;br /&gt;
*JUtility::getToken() - Use JFactory::getSession()-&amp;gt;getFormToken()&lt;br /&gt;
*JUtility::isWinOS() - Use JApplication::isWinOS()&lt;br /&gt;
*JUtility::return_bytes() - See InstallerModelWarnings::return_bytes()&lt;br /&gt;
*JUtility::sendMail() - Use JFactory::getMailer()-&amp;gt;sendMail()&lt;br /&gt;
*JUtility::sendAdminMail() - Use JFactory::getMailer()-&amp;gt;sendMail()&lt;br /&gt;
*JXMLElement::data() - Provided for backward compatibility&lt;br /&gt;
*JXMLElement::getAttribute() - Provided for backward compatibility&lt;br /&gt;
&lt;br /&gt;
===Database===&lt;br /&gt;
*JTable now automatically looks up the fields from the database schema&lt;br /&gt;
*New JDatabaseQuery - A chained CRUD query builder&lt;br /&gt;
*New JDatabase::getNextRow&lt;br /&gt;
*New JDatabase::getNextObject&lt;br /&gt;
*JDatabase::loadAssocList  - Now takes a second argument to just return the value of a column&lt;br /&gt;
*JDatabase::setQuery  - Added chaining support&lt;br /&gt;
&lt;br /&gt;
====Important Schema Changes====&lt;br /&gt;
*New jos_extensions table to list all extensions&lt;br /&gt;
*Components table information moved and split between jos_extensions and jos_menu (special menu called _adminmenu)&lt;br /&gt;
&lt;br /&gt;
The old phpgacl (jos_core_acl*) and jos_groups tables have been reworked into:&lt;br /&gt;
*jos_assets&lt;br /&gt;
*jos_user_usergroup_map&lt;br /&gt;
*jos_usergroups&lt;br /&gt;
*jos_viewlevels&lt;br /&gt;
*Archived state changed from a value of -1 to +2&lt;br /&gt;
&lt;br /&gt;
===Improved MVC===&lt;br /&gt;
====Models====&lt;br /&gt;
*JModelList&lt;br /&gt;
*JModelForm&lt;br /&gt;
*JModelAdmin&lt;br /&gt;
*Format handling (eg JSON)&lt;br /&gt;
*Sub-controller handling&lt;br /&gt;
&lt;br /&gt;
====Controllers====&lt;br /&gt;
*JControllerForm&lt;br /&gt;
*JControllerAdmin&lt;br /&gt;
*JController::setMessage takes second arg to set the message type&lt;br /&gt;
*JController can set the default view&lt;br /&gt;
*Added chaining support to several JController methods&lt;br /&gt;
&lt;br /&gt;
====Views====&lt;br /&gt;
*Semantic core output&lt;br /&gt;
*Milkyway legacy layouts&lt;br /&gt;
*The old component parameters are not automatically added to the menu anymore. You need to explicitly put them in the layout XML files.&lt;br /&gt;
*The menu manager will now detect additional layouts for a given view in the default template.&lt;br /&gt;
&lt;br /&gt;
===Form API===&lt;br /&gt;
====Event manipulation====&lt;br /&gt;
*onContentPrepareForm&lt;br /&gt;
*onContentPrepareData&lt;br /&gt;
&lt;br /&gt;
===Translation and Language Support===&lt;br /&gt;
&#039;&#039;See [[International Enhancements for Version 1.6]] for a more complete list of changes in internationalisation features.&#039;&#039;&lt;br /&gt;
*Support for unicode slugs, eg, SEF URL&#039;s with Greek characters&lt;br /&gt;
*3-letter languages now supported, xxx-XX&lt;br /&gt;
*All existing language keys have been refactored&lt;br /&gt;
&lt;br /&gt;
====INI files must validate====&lt;br /&gt;
*Upper case key with no spaces, alphanumeric characters and underscores&lt;br /&gt;
*Quoted values&lt;br /&gt;
*Double quotes within literal strings must use _QQ_ in the form KEY=&amp;quot;&amp;lt;a href=&amp;quot;_QQ_&amp;quot;index.php&amp;quot;_QQ_&amp;quot;&amp;gt;Click&amp;lt;/a&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
====Javascript translation layer====&lt;br /&gt;
*See the flash uploader script for an example&lt;br /&gt;
Local extension language files&lt;br /&gt;
&lt;br /&gt;
====Language file API====&lt;br /&gt;
*Pluralisation support&lt;br /&gt;
*Transliteration support for ASCII or Unicode slugs&lt;br /&gt;
*Ignore Search Words&lt;br /&gt;
*Minimum search word length&lt;br /&gt;
*Custom language overrides&lt;br /&gt;
*System language file to support administrator menu and installation (.sys.ini)&lt;br /&gt;
&lt;br /&gt;
====Language switcher====&lt;br /&gt;
*Language Filter plugin enables language switching&lt;br /&gt;
*Sets the automatic filtering via JFactory::getApplication()-&amp;gt;setLanguageFilter(true)&lt;br /&gt;
*A frontend component with language support would test JFactory::getApplication()-&amp;gt;getLanguageFilter(), which returns the selected language code from the Languages Module&lt;br /&gt;
*The language field can be a language code for a single language, or &amp;quot;*&amp;quot; to be displayed for all languages&lt;br /&gt;
*Community extension for language maintenance com_localise&lt;br /&gt;
&lt;br /&gt;
===Extension management===&lt;br /&gt;
See /tests/_data/installer_packages/ for complete examples of all extensions and manifests.&lt;br /&gt;
&lt;br /&gt;
====New installation types====&lt;br /&gt;
=====Libraries=====&lt;br /&gt;
*Must include an XML manifest where type=&amp;quot;library&amp;quot;&lt;br /&gt;
*Can only be installed into a sub-folder of /libraries/&lt;br /&gt;
*Can extend parts of an existing library, eg /libraries/joomla/database/database/oracle.php&lt;br /&gt;
&lt;br /&gt;
=====Packages multi-installer=====&lt;br /&gt;
*Must include an XML manifest where type=&amp;quot;package&amp;quot;&lt;br /&gt;
*A package is a zip of zip&#039;s&lt;br /&gt;
&lt;br /&gt;
New install script can be provided with 5 methods:&lt;br /&gt;
=====preflight=====&lt;br /&gt;
*Runs before anything is run and while the extracted files are in the uploaded temp folder&lt;br /&gt;
&lt;br /&gt;
======Could allow for:======&lt;br /&gt;
*secondary extraction of custom zip&#039;s&lt;br /&gt;
*version checks to be performed&lt;br /&gt;
*halting the installer on an error&lt;br /&gt;
&lt;br /&gt;
=====install / update=====&lt;br /&gt;
*Runs after the database scripts are executed&lt;br /&gt;
*If the extension is new, the install method is run&lt;br /&gt;
*If the extension exists then update method is run if method=&amp;quot;upgrade&amp;quot;, otherwise assumes that the extension is not meant to be upgradable&lt;br /&gt;
&lt;br /&gt;
=====postflight=====&lt;br /&gt;
*Runs after the extension is registered in the database&lt;br /&gt;
*Is not run for the uninstall process (nothing left to do obviously)&lt;br /&gt;
&lt;br /&gt;
====Discover====&lt;br /&gt;
*Does not do any file copying, only works with what it finds&lt;br /&gt;
*Performs preflight, install and postflight&lt;br /&gt;
*Developer of installer has two language files??&lt;br /&gt;
&lt;br /&gt;
====Update site====&lt;br /&gt;
*Can publish an XML manifest on your site that can include individual extensions and extension sets.&lt;br /&gt;
&lt;br /&gt;
====XML Manifest Changes====&lt;br /&gt;
*&amp;lt;install&amp;gt; is deprecated - use &amp;lt;extension&amp;gt;&lt;br /&gt;
*New &amp;lt;update&amp;gt; tag. Takes a &amp;lt;schemas&amp;gt; tag which can define &amp;lt;schemapath&amp;gt;&lt;br /&gt;
*&amp;lt;params&amp;gt; and &amp;lt;param&amp;gt; tags are deprecated, use &amp;lt;fields&amp;gt;, &amp;lt;fieldsets&amp;gt; and &amp;lt;field&amp;gt; instead&lt;br /&gt;
&lt;br /&gt;
====File changes====&lt;br /&gt;
*Installation manifest must be the same name as the extension, eg com_foobar/foobar.xml  This helps with discovery (otherwise the function has to go through all the files in the extension folder&lt;br /&gt;
*Plugins are now in folders like modules and components&lt;br /&gt;
*See SVN/tests/_data/installer_packages/ for complete examples of all extensions and manifests.&lt;br /&gt;
*The method=&amp;quot;upgrade&amp;quot; will compare individual files in the original and incoming manifests and will remove files as appropriate.  However, it will not remove differences in the &amp;lt;folder&amp;gt; tags.&lt;br /&gt;
*Future support for rollback&lt;br /&gt;
&lt;br /&gt;
===Events===&lt;br /&gt;
====New Events====&lt;br /&gt;
*onBeforeCompileHead&lt;br /&gt;
*onBeforeRender&lt;br /&gt;
*onContentBeforeDelete&lt;br /&gt;
*onContentAfterDelete&lt;br /&gt;
*onContentChangeState&lt;br /&gt;
*onContentPrepare&lt;br /&gt;
*onContentPrepareData&lt;br /&gt;
*onContentPrepareForm&lt;br /&gt;
*onExtensionBeforeInstall&lt;br /&gt;
*onExtensionBeforeUpdate&lt;br /&gt;
*onExtensionBeforeUninstall&lt;br /&gt;
*onExtensionAfterInstall&lt;br /&gt;
*onExtensionAfterUpdate&lt;br /&gt;
*onExtensionAfterUninstall&lt;br /&gt;
&lt;br /&gt;
====Renamed Events====&lt;br /&gt;
*onContentAfterSave&lt;br /&gt;
*onContentAfterTitle&lt;br /&gt;
*onContentAfterDisplay&lt;br /&gt;
*onContentBeforeDisplay&lt;br /&gt;
*onContentBeforeSave&lt;br /&gt;
*onContentSearch&lt;br /&gt;
*onContentSearchAreas&lt;br /&gt;
*onUserAuthenticate&lt;br /&gt;
*onUserAfterDelete&lt;br /&gt;
*onUserAfterSave&lt;br /&gt;
*onUserBeforeDelete&lt;br /&gt;
*onUserBeforeSave&lt;br /&gt;
*onUserLogin&lt;br /&gt;
*onUserLogout&lt;br /&gt;
*All content events (except for search and search areas) now pass a &#039;context&#039; as the first argument to alert the plugin as to what type of content is being passed.  The plugin event may or may not heed this context.&lt;br /&gt;
&lt;br /&gt;
===Categories===&lt;br /&gt;
*Component can provide custom options for its own categories via optional category.xml&lt;br /&gt;
*Supported via JTableNested&lt;br /&gt;
&lt;br /&gt;
===Access Controls===&lt;br /&gt;
*A thing that can be controlled by permissions is registered in the assets table&lt;br /&gt;
*JTable handles this transparently via asset_id field&lt;br /&gt;
*For view permissions, support is as simple as adding&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$user = JFactory::getUser();&lt;br /&gt;
$groups = implode(&#039;,&#039;, $user-&amp;gt;authorisedLevels());&lt;br /&gt;
$query-&amp;gt;where(&#039;a.access IN (&#039; . $groups . &#039;)&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For action permissions, same format as in 1.5:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$user-&amp;gt;authorise($actionName, $assetName)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*OpenID library has been removed&lt;br /&gt;
*Geshi library moved to plugin folder&lt;br /&gt;
*JRegistry notes defaults to JSON (new format), dynamically converting existing data in INI format&lt;br /&gt;
*New JStream&lt;br /&gt;
*New JApplicationHelper::getComponentName&lt;br /&gt;
*Core icons moved to /media/&lt;br /&gt;
*Backward incompatible change to JEditor::display&lt;br /&gt;
*Added chaining support to JMail&lt;br /&gt;
*JFilterInput can no longer be called statically&lt;br /&gt;
*JHtml::image now supports relative paths&lt;br /&gt;
*All system images are overridable in the default template&lt;br /&gt;
*New JHtmlString&lt;br /&gt;
*Added wincache session handler for IIS&lt;br /&gt;
*New JFilterOutput::stripImages&lt;br /&gt;
*JPath::check takes second arg for separator (to pass to JPath::clean)&lt;br /&gt;
*Expanded configuration support through config.xml (multiple tabs)&lt;br /&gt;
&lt;br /&gt;
====Core actions====&lt;br /&gt;
*core.login.site&lt;br /&gt;
*core.login.admin&lt;br /&gt;
*core.admin&lt;br /&gt;
*core.manage&lt;br /&gt;
*core.create&lt;br /&gt;
*core.edit&lt;br /&gt;
*core.edit.state&lt;br /&gt;
*edit.own&lt;br /&gt;
*core.delete&lt;br /&gt;
*Miscellaneous changes&lt;br /&gt;
&lt;br /&gt;
===Debug Plugin===&lt;br /&gt;
*More tools for assisting with translation&lt;br /&gt;
&lt;br /&gt;
===JavaScript===&lt;br /&gt;
Some JavaScript (noteable the submitform() and submitbutton() functions have been namespaced and changed to expect id=&amp;quot;adminForm&amp;quot; instead of name=&amp;quot;adminForm&amp;quot;. It is still possible to use name=&amp;quot;adminForm&amp;quot; with these functions in Joomla 1.6, however this functionality will likely be removed in the next version.&lt;br /&gt;
Some old, non-namespaced, functions, for example isChecked() and changeDynaList(), still need name=&amp;quot;adminForm&amp;quot;. So if you need to use one of these functions you need to use both and id=&amp;quot;adminForm&amp;quot; and name=&amp;quot;adminForm&amp;quot; or you overwrite Joomla.submitbutton() to customize it, there are some examples of the latter in backend edit layouts.&lt;br /&gt;
====Deprecated====&lt;br /&gt;
*submitform() - use Joomla.submitform() instead&lt;br /&gt;
*submitbutton() - use Joomla.submitbutton() instead&lt;br /&gt;
&lt;br /&gt;
====Mootools 1.3====&lt;br /&gt;
*Need to use document.id instead of $&lt;br /&gt;
&lt;br /&gt;
==Cache changes ==&lt;br /&gt;
===API changes relevant to 3rd party developers===&lt;br /&gt;
====Component view cache==== &lt;br /&gt;
&lt;br /&gt;
Component view cache now takes an array of url parameters and their types to create Cacheid. This is a replacement for a previous unsafe way which took the whole URL for this and so opened the doors for DOS attacks via random url parameters added to request URL&#039;s. &lt;br /&gt;
&lt;br /&gt;
Com_contact example: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$safeurlparams = array(&lt;br /&gt;
    &#039;id&#039;=&amp;gt;&#039;INT&#039;, &lt;br /&gt;
    &#039;catid&#039;=&amp;gt;&#039;INT&#039;, &#039;limit&#039;=&amp;gt;&#039;INT&#039;, &lt;br /&gt;
    &#039;limitstart&#039;=&amp;gt;&#039;INT&#039;, &lt;br /&gt;
    &#039;filter_order&#039;=&amp;gt;&#039;CMD&#039;, &lt;br /&gt;
    &#039;filter_order_Dir&#039;=&amp;gt;&#039;CMD&#039;&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
parent::display($cachable,$safeurlparams);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Old cacheid created from URL was retained for backwards compatibility and takes effect if there are no $safeurlparams.&lt;br /&gt;
&lt;br /&gt;
====Module cache====&lt;br /&gt;
This has been completly reconceptualized. Module cache now has 5 different modes of operation, 3 of them are to be set from module XML file, while 2 are meant to be used from within the module itself. Default is backwards compatible oldstatic mode that requires no changes to a module. &lt;br /&gt;
&lt;br /&gt;
Modes to be set in XML: &lt;br /&gt;
*&#039;&#039;&#039;static&#039;&#039;&#039; - one cache file for all pages with the same module parameters &lt;br /&gt;
*&#039;&#039;&#039;oldstatic&#039;&#039;&#039; - 1.5. definition of module caching, one cache file for all pages with the same module id and user aid. Default for backwards compatibility &lt;br /&gt;
*&#039;&#039;&#039;itemid&#039;&#039;&#039; - changes on itemid change &lt;br /&gt;
&lt;br /&gt;
In addition to cache field that was required in 1.5 there is now another hidden field called cachemode that sets any of the above modes. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;field name=&amp;quot;cachemode&amp;quot; type=&amp;quot;hidden&amp;quot; label=&amp;quot;&amp;quot; default=&amp;quot;static&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;option value=&amp;quot;static&amp;quot;&amp;gt;&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Modes to be called from inside the module: &lt;br /&gt;
*&#039;&#039;&#039;safeuri&#039;&#039;&#039; - id is created from $cacheparams-&amp;gt;modeparams array, the same as in component view cache &lt;br /&gt;
*&#039;&#039;&#039;id&#039;&#039;&#039; - module sets own cache id&#039;s &lt;br /&gt;
&lt;br /&gt;
To use this modes one must rename cache field in xml to owncache field and call JModuleHelper::ModuleCache from within the module&#039;s main php file. This is actually a shortcut to cache callback to avoid code duplication in every module. &lt;br /&gt;
&lt;br /&gt;
An example that uses safeuri mode and replaces uncached&lt;br /&gt;
$list = modRelatedItemsHelper::getList($params) : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$cacheparams = new stdClass; &lt;br /&gt;
$cacheparams-&amp;gt;cachemode = &#039;safeuri&#039;; &lt;br /&gt;
$cacheparams-&amp;gt;class = &#039;modRelatedItemsHelper&#039;; &lt;br /&gt;
$cacheparams-&amp;gt;method = &#039;getList&#039;; &lt;br /&gt;
$cacheparams-&amp;gt;methodparams = $params; &lt;br /&gt;
$cacheparams-&amp;gt;modeparams = array(&#039;id&#039;=&amp;gt;&#039;int&#039;,&#039;Itemid&#039;=&amp;gt;&#039;int&#039;); &lt;br /&gt;
$list = JModuleHelper::ModuleCache ($module, $params, $cacheparams);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Functional changes==== &lt;br /&gt;
&#039;&#039;&#039;Cache administration (Clean cache, Purge cache) now works with all drivers&#039;&#039;&#039;, not only with file cache. &lt;br /&gt;
&#039;&#039;&#039;New standalone garbage collect script&#039;&#039;&#039; that is to be called from crontab has been added. It can be found in libraries/joomla/utilities/garbagecron.php . For safety reasons it is recommended that it is renamed to something unique.&lt;br /&gt;
&lt;br /&gt;
====CMS and framework level functional changes==== &lt;br /&gt;
&#039;&#039;&#039;Caching is implemented in all components and modules&#039;&#039;&#039; that can potentially gain from cache.&lt;br /&gt;
Caching has also been added to some most expensive and frequent framework calls JComponentHelper::_load(), JModuleHelper::_load(),JMenuSite::load(); &lt;br /&gt;
&lt;br /&gt;
====Cache library changes====&lt;br /&gt;
Cache library has been completely refactored. &lt;br /&gt;
*Cache &#039;&#039;&#039;handlers have been renamed to controllers&#039;&#039;&#039; to better reflect their role and avoid confusion with cache storage handlers (referred to as drivers in following text). &lt;br /&gt;
*&#039;&#039;&#039;New JCacheController&#039;&#039;&#039; parent class has been added and inheritance has been changed to prevent bugs occurring from controller&#039;s and storage handler&#039;s get method clashes. &lt;br /&gt;
&lt;br /&gt;
====JCache==== &lt;br /&gt;
*&#039;&#039;&#039;getAll()&#039;&#039;&#039; method was added to JCache, JCacheStorage and all drivers, and it returns all cached items (this was previously possible only with file driver and hardcoded in administration) &lt;br /&gt;
*New &#039;&#039;&#039;lock and unlock&#039;&#039;&#039; methods were added to JCache, JCacheStorage and drivers. They enable cache item locking and unlocking to prevent errors on parallel accesses and double saves. This functionally was also implemented in controllers. &lt;br /&gt;
*Workarounds are now consolidated in new &#039;&#039;&#039;JCache getWorkarounds and setWorkarounds&#039;&#039;&#039; methods, are now used by all controllers and their use has been made optional. &lt;br /&gt;
*New makeId() method in JCache that creates cache id from registered url parameters set by components and system plugins&lt;br /&gt;
&lt;br /&gt;
====JCacheController==== &lt;br /&gt;
New parent class to Controllers that also functions as an intermediate to JCache. There is no JObject inheritance as otherwise magic __call doesn&#039;t work. &lt;br /&gt;
Change was needed to prevent bugs occurring from controller&#039;s and storage handler&#039;s get method clashes. They could be renamed but this would break backwards compatibility.&lt;br /&gt;
&lt;br /&gt;
====JCacheStorage==== &lt;br /&gt;
*_getCacheId method was moved from drivers to their parent JCacheStorage and all drives now use the same method by default &lt;br /&gt;
*CacheItem was moved from cache admin to framework JCacheStorageHelper, it is used by getAll &lt;br /&gt;
*There are new cachelite and wincache drivers. All other drivers have been fixed with missing functions (gc, clean) added, their code cleaned and tested they should be now working properly. &lt;br /&gt;
*Replaced separate _expire files in filecache driver with timestamps (this should amount to cca. 40% speed gain). The same in all drivers that had this. &lt;br /&gt;
*Numerous bugfixes on all levels, most important is proper use of options defaulting to configuration parameters settings and correctly passing from level to level.&lt;br /&gt;
&lt;br /&gt;
====Other framework level changes==== &lt;br /&gt;
*Safe url parameters registration added to JControler view method. &lt;br /&gt;
*New ModuleCache method in JModuleHelper that performs the above described module cache (in 5 modes) for both, modules and module renderer. &lt;br /&gt;
*JFactory::getFeedParser has been changed to use Joomla caching instead of simplepie&#039;s.&lt;br /&gt;
&lt;br /&gt;
==Performance==&lt;br /&gt;
===Eliminate the usage of JTable for general browsing on the frontend===&lt;br /&gt;
*Session drops the usage of JTable&lt;br /&gt;
*Item views use a dedicated question, not JTable-&amp;gt;load&lt;br /&gt;
&lt;br /&gt;
==Known Issues==&lt;br /&gt;
*Scaling issues to address&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
===Releases===&lt;br /&gt;
*Alpha 1: 22 June 2009&lt;br /&gt;
*Alpha 2: 25 October 2009&lt;br /&gt;
*Beta 01: 18 May 2010&lt;br /&gt;
*Beta 02: 31 May 2010&lt;br /&gt;
*Beta 03: 14 June 2010&lt;br /&gt;
*Beta 04: 28 June 2010&lt;br /&gt;
*Beta 05: 12 July 2010&lt;br /&gt;
*Beta 06: 26 July 2010&lt;br /&gt;
*Beta 07: 09 August 2010&lt;br /&gt;
*Beta 08: 23 August 2010&lt;br /&gt;
*Beta 09: 06 September 2010&lt;br /&gt;
*Beta 10: 20 September 2010&lt;br /&gt;
*Beta 11: 03 October 2010&lt;br /&gt;
*Beta 12: 17 October 2010&lt;br /&gt;
*Beta 13: 31 October 2010&lt;br /&gt;
*Beta 14: 14 November 2010&lt;br /&gt;
*Beta 15: 29 November 2010&lt;br /&gt;
*Release Candidate 1: 13 December 2010&lt;br /&gt;
*Version 1.6.0 released 10 January 2011&lt;br /&gt;
&lt;br /&gt;
==Infographic==&lt;br /&gt;
There&#039;s an official [http://downloads.joomlacode.org/frsrelease/6/0/2/60295/joomla-1-6-infographic-official-MC.jpg Joomla 1.6 infographic] available, which shows 10 of the new functions with screenshots.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Joomla! 1.6]]&lt;/div&gt;</summary>
		<author><name>Evinyatar</name></author>
	</entry>
</feed>