<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://docs.joomla.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://docs.joomla.org/api.php?action=feedcontributions&amp;user=Akede&amp;feedformat=atom</id>
		<title>Joomla! Documentation - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://docs.joomla.org/api.php?action=feedcontributions&amp;user=Akede&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Special:Contributions/Akede"/>
		<updated>2013-05-22T07:36:05Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.19.3</generator>

	<entry>
		<id>http://docs.joomla.org/Manifest_files</id>
		<title>Manifest files</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Manifest_files"/>
				<updated>2011-05-28T14:42:58Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{incomplete}}&lt;br /&gt;
{{inuse}}&lt;br /&gt;
=General information=&lt;br /&gt;
{{RightTOC}}&lt;br /&gt;
Within Joomla there are manifest files for all of the extensions. These files include the general installation information as well as parameters for the configuration of the [[extension]] itself. The general structure of these files is similar for types extensions. &lt;br /&gt;
&lt;br /&gt;
The article here will describe the general structure and elements of all manifest files. In the following special articles you will find detailed information about the related topics:&lt;br /&gt;
* [[Component manifest files]]&lt;br /&gt;
* [[Module manifest files]]&lt;br /&gt;
* [[Plugin manifest files]]&lt;br /&gt;
* [[Template manifest files]]&lt;br /&gt;
* [[Language manifest files]]&lt;br /&gt;
* [[Library manifest files]]&lt;br /&gt;
&lt;br /&gt;
==Naming conventions==&lt;br /&gt;
The file must be named manifest.xml or &amp;lt;extension_name&amp;gt;.xml and located in the root directory of the installation package.&lt;br /&gt;
&lt;br /&gt;
The primary tag of the installation file is: &lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This starting and closing tags are now valid for all extensions. The new tag &amp;lt;extension&amp;gt; replaces the old &amp;lt;install&amp;gt;&amp;lt;/install&amp;gt; from Joomla {{JVer|1.5}}. The following attributes are allowed within the tag:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribute || style=&amp;quot;width: 150px&amp;quot; | Values || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || component&amp;lt;br /&amp;gt; module&amp;lt;br /&amp;gt; plugin&amp;lt;br /&amp;gt;template &lt;br /&gt;
| This attribute describes the type of the extension for the installer. Based on this type further requirements to sub-tags apply.&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| 1.6&lt;br /&gt;
| String that identifies the version of Joomla for which this extension is developed. For Joomla 1.6 a version higher than 1.5 is required.&lt;br /&gt;
|-&lt;br /&gt;
| method&lt;br /&gt;
| new&amp;lt;br /&amp;gt;upgrade&lt;br /&gt;
| The default value install will be also used if the method attribute is not used. In these cases the installer will gracefully stop if he finds any existing file/folder of the new extension&lt;br /&gt;
|-&lt;br /&gt;
| client&lt;br /&gt;
| site&amp;lt;br /&amp;gt;administrator&lt;br /&gt;
| ''Applicable for modules'' The client allows to specify for which application client the new module is available.&lt;br /&gt;
|-&lt;br /&gt;
| group&lt;br /&gt;
| &amp;lt;free name&amp;gt;&lt;br /&gt;
| &amp;quot;Applicable for plugins&amp;quot; The group name specifies for which group of plugins the new plugin is available. The existing groups are the folder names within the directory /plugins. The installer will create new folder names for group names that do not exist yet.&lt;br /&gt;
|}			&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
== Contributors ==&lt;br /&gt;
*[[User:akede|Alex Kempkens]]&lt;br /&gt;
*[[User:dperaza|Daniel Peraza]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development Working Group]]&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Manifest_files</id>
		<title>Manifest files</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Manifest_files"/>
				<updated>2010-04-16T17:08:17Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{incomplete}}&lt;br /&gt;
{{inuse}}&lt;br /&gt;
{{future|1.6}}&lt;br /&gt;
=General information=&lt;br /&gt;
{{RightTOC}}&lt;br /&gt;
Within Joomla there are manifest files for all of the extensions. These files include the general installation information as well as parameters for the configuration of the [[extension]] itself. The general structure of these files is similar for types extensions. &lt;br /&gt;
&lt;br /&gt;
The article here will describe the general structure and elements of all manifest files. In the following special articles you will find detailed information about the related topics:&lt;br /&gt;
* [[Component manifest files]]&lt;br /&gt;
* [[Module manifest files]]&lt;br /&gt;
* [[Plugin manifest files]]&lt;br /&gt;
* [[Template manifest files]]&lt;br /&gt;
* [[Language manifest files]]&lt;br /&gt;
&lt;br /&gt;
==Naming conventions==&lt;br /&gt;
The file must be named manifest.xml or &amp;lt;extension_name&amp;gt;.xml and located in the root directory of the installation package.&lt;br /&gt;
&lt;br /&gt;
The primary tag of the installation file is: &lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This starting and closing tags are now valid for all extensions. The new tag &amp;lt;extension&amp;gt; replaces the old &amp;lt;install&amp;gt;&amp;lt;/install&amp;gt; from Joomla {{JVer|1.5}}. The following attributes are allowed within the tag:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribute || style=&amp;quot;width: 150px&amp;quot; | Values || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || component&amp;lt;br /&amp;gt; module&amp;lt;br /&amp;gt; plugin&amp;lt;br /&amp;gt;template &lt;br /&gt;
| This attribute describes the type of the extension for the installer. Based on this type further requirements to sub-tags apply.&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| 1.6&lt;br /&gt;
| String that identifies the version of Joomla for which this extension is developed. For Joomla 1.6 a version higher than 1.5 is required.&lt;br /&gt;
|-&lt;br /&gt;
| method&lt;br /&gt;
| new&amp;lt;br /&amp;gt;upgrade&lt;br /&gt;
| The default value install will be also used if the method attribute is not used. In these cases the installer will gracefully stop if he finds any existing file/folder of the new extension&lt;br /&gt;
|-&lt;br /&gt;
| client&lt;br /&gt;
| site&amp;lt;br /&amp;gt;administrator&lt;br /&gt;
| ''Applicable for modules'' The client allows to specify for which application client the new module is available.&lt;br /&gt;
|-&lt;br /&gt;
| group&lt;br /&gt;
| &amp;lt;free name&amp;gt;&lt;br /&gt;
| &amp;quot;Applicable for plugins&amp;quot; The group name specifies for which group of plugins the new plugin is available. The existing groups are the folder names within the directory /plugins. The installer will create new folder names for group names that do not exist yet.&lt;br /&gt;
|}			&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
== Contributors ==&lt;br /&gt;
*[[User:akede|Alex Kempkens]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development Working Group]]&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Manifest_files</id>
		<title>Manifest files</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Manifest_files"/>
				<updated>2010-04-16T16:58:59Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: Initial version&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{incomplete}}&lt;br /&gt;
{{inuse}}&lt;br /&gt;
{{RightTOC}}&lt;br /&gt;
{{future|1.6}}&lt;br /&gt;
=General information=&lt;br /&gt;
Within Joomla there are manifest files for all of the extensions. These files include the general installation information as well as parameters for the configuration of the [[extension]] itself. The general structure of these files is similar for types extensions. &lt;br /&gt;
&lt;br /&gt;
The article here will describe the general structure and elements of all manifest files. In the following special articles you will find detailed information about the related topics:&lt;br /&gt;
* [Component manifest files]&lt;br /&gt;
* [Module manifest files]&lt;br /&gt;
* [Plugin manifest files]&lt;br /&gt;
* [Template manifest files]&lt;br /&gt;
* [Language manifest files]&lt;br /&gt;
&lt;br /&gt;
==Naming conventions==&lt;br /&gt;
The file must be named manifest.xml or &amp;lt;extension_name&amp;gt;.xml and located in the root directory of the installation package.&lt;br /&gt;
&lt;br /&gt;
The primary tag of the installation file is: &lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This starting and closing tags are now valid for all extensions. The new tag &amp;lt;extension&amp;gt; replaces the old &amp;lt;install&amp;gt;&amp;lt;/install&amp;gt; from Joomla {{JVer|1.5}}. The following attributes are allowed within the tag:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
! Attribute&lt;br /&gt;
! Values&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| type&lt;br /&gt;
| component&amp;lt;br /&amp;gt; module&amp;lt;br /&amp;gt; plugin&amp;lt;br /&amp;gt;template&lt;br /&gt;
| This attribute describes the type of the extension for the installer. Based on this type further requirements to sub-tags apply.&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| 1.6&lt;br /&gt;
| String that identifies the version of Joomla for which this extension is developed. For Joomla 1.6 a version higher than 1.5 is required.&lt;br /&gt;
|-&lt;br /&gt;
| method&lt;br /&gt;
| new&amp;lt;br /&amp;gt;upgrade&lt;br /&gt;
| The default value install will be also used if the method attribute is not used. In these cases the installer will gracefully stop if he finds any existing file/folder of the new extension&lt;br /&gt;
|-&lt;br /&gt;
| client&lt;br /&gt;
| site&amp;lt;br /&amp;gt;administrator&lt;br /&gt;
| ''Applicable for modules'' The client allows to specify for which application client the new module is available.&lt;br /&gt;
|-&lt;br /&gt;
| group&lt;br /&gt;
| &amp;lt;free name&amp;gt;&lt;br /&gt;
| &amp;quot;Applicable for plugins&amp;quot; The group name specifies for which group of plugins the new plugin is available. The existing groups are the folder names within the directory /plugins. The installer will create new folder names for group names that do not exist yet.&lt;br /&gt;
|}			&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
== Contributors ==&lt;br /&gt;
*[[User:akede|Alex Kempkens]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development Working Group]]&lt;br /&gt;
[[Category:Extensions]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Developers</id>
		<title>Developers</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Developers"/>
				<updated>2010-04-16T16:17:28Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: /* Other component topics */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Developer profile}}&lt;br /&gt;
&lt;br /&gt;
A complete contents list of all pages of interest to developers can be found in the [[:Category:Development|development category]].&lt;br /&gt;
&lt;br /&gt;
== Reference Material ==&lt;br /&gt;
&lt;br /&gt;
* [[Framework|Joomla Framework]].&lt;br /&gt;
* [http://api.joomla.org API documentation] automatically generated using phpDocumentor.&lt;br /&gt;
&lt;br /&gt;
== Articles and Tutorials ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.&lt;br /&gt;
* [[Setting up your workstation for extension development]] A guide to Joomla Extension development&lt;br /&gt;
* [http://community.joomla.org/blogs/community/828-webinar-using-eclipse-for-joomla-development.html Using Eclipse for Joomla! Development] Video webinar demonstrating overview of Eclipse features for Joomla! development&lt;br /&gt;
* [[Running Automated Tests for Version 1.6]] {{JVer|1.6}}&lt;br /&gt;
* [[Do not use die to debug]]&lt;br /&gt;
* [[How to debug your code]]&lt;br /&gt;
* [[Tutorial:Adapting Joomla 1.0 extensions to Joomla 1.5]]&lt;br /&gt;
* [[Version 1.6 Developer Notes]] {{JVer|1.6}}&lt;br /&gt;
* [[Tutorial:Joomla Beginning Developer Course]]&lt;br /&gt;
&lt;br /&gt;
=== Components ===&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.5}}====&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 1]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 2 - Adding a Model]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 3 - Using the Database]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 4 - Creating an Administrator Interface]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 5 - Basic Backend Framework]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 6 - Adding Backend Actions]]&lt;br /&gt;
&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.6}}====&lt;br /&gt;
* [[Developing a Model-View-Controller (MVC) Component for Joomla!1.6|Introduction]]&lt;br /&gt;
{{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla!1.6 - Contents}}&lt;br /&gt;
&lt;br /&gt;
====Other component topics====&lt;br /&gt;
* [[File Structure and Naming Conventions]] and [[Naming conventions]] (these pages should be merged).&lt;br /&gt;
* [[Component parameters]]&lt;br /&gt;
* [[Components:xml installfile]].  An example component XML installation file. {{JVer|1.5}}&lt;br /&gt;
* [[Manifest files]] for the installation of extensions {{JVer|1.6}}&lt;br /&gt;
* [[How to use the JPane classes in a component]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[Supporting plugins in your component]]&lt;br /&gt;
* [[Tutorial:Adding Javascript moo.fx to your component WIP]]&lt;br /&gt;
* [[Creating a toolbar for your component]]&lt;br /&gt;
* [[Adding view layout configuration parameters]]&lt;br /&gt;
* [[How to implement XML-RPC in a component]]&lt;br /&gt;
* [[Using JPagination in your component]]&lt;br /&gt;
* [[Adding sortable columns to a table in a component]]&lt;br /&gt;
* [[Using multiple models in an MVC component]]&lt;br /&gt;
* [[Ajax using MooTools]]&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
* [[Tutorial:Creating a Hello World Module for Joomla 1.5]]&lt;br /&gt;
* [[How to create a module]]&lt;br /&gt;
&lt;br /&gt;
=== Plugins ===&lt;br /&gt;
* [[Plugin Developer Overview]]&lt;br /&gt;
* [[Tutorial:Plugins]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/184-how-to-create-a-joomla-plugin.html How to create a Joomla! Plugin]&lt;br /&gt;
* [[How to create a content plugin]]&lt;br /&gt;
* [[How to create a search plugin]]&lt;br /&gt;
* [[Supporting plugins in your component]]&lt;br /&gt;
* [[Tutorial:Creating an Authentication Plugin for Joomla 1.5]]&lt;br /&gt;
* [[Tutorial:Using plugins in your own extension]]&lt;br /&gt;
* [[Refactoring Plugins]] {{JVer|1.6}}&lt;br /&gt;
&lt;br /&gt;
=== Templates ===&lt;br /&gt;
* [[Understanding Output Overrides]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/165-understanding-output-overrides-in-joomla.html Understanding Output Overrides in Joomla! 1.5]&lt;br /&gt;
* [[Creating custom template parameter types]]&lt;br /&gt;
* [[How are templates executed?]]&lt;br /&gt;
* [[How to determine if the user is viewing the front page]]&lt;br /&gt;
* [[Tutorial:Template parameters]]&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
* [[Standard parameter types]]&lt;br /&gt;
* [[Custom parameter types]]&lt;br /&gt;
* [[Component parameters]]&lt;br /&gt;
* [[Creating custom template parameter types]]&lt;br /&gt;
See also: [[:Category:Parameters]]&lt;br /&gt;
&lt;br /&gt;
=== Core extensions summary ===&lt;br /&gt;
* [[Banner component]] {{JVer|1.6}}&lt;br /&gt;
&lt;br /&gt;
=== Security ===&lt;br /&gt;
* [[How to add CSRF anti-spoofing to forms]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/181-preventing-sql-injections.html Preventing SQL Injections]&lt;br /&gt;
* [[Tutorial:How to make your Joomla addon more secure WIP]]&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* [[How to use the database classes in your script]]&lt;br /&gt;
* [[How to use the JTable class]]&lt;br /&gt;
* [[How to connect to an external database]]&lt;br /&gt;
&lt;br /&gt;
=== Localisation ===&lt;br /&gt;
* [http://community.joomla.org/magazine/article/508-developer-localization-advancements-in-joomla-15.html Localization Advancements in Joomla! 1.5]&lt;br /&gt;
* [[Adding multi-language support]]&lt;br /&gt;
* [[Language Guidelines for 3rd Party Extensions]]&lt;br /&gt;
* [[Adding Joomfish functionality to custom components]]&lt;br /&gt;
* [[Specification of language files]] {{JVer|1.6}}&lt;br /&gt;
* [[Language Metadata]] {{JVer|1.6}}&lt;br /&gt;
&lt;br /&gt;
=== Access Control ===&lt;br /&gt;
* [[Access Control System In Joomla 1.6]] {{JVer|1.6}}&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
* [[How to use the filesystem package]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[Adding AJAX to your component]].&lt;br /&gt;
* [[How to send email from components]]&lt;br /&gt;
* [[How to use the JToolBar class in the frontend]]&lt;br /&gt;
* [[Routing]]&lt;br /&gt;
* [[Joomla Routes and SEF]]&lt;br /&gt;
* [[API Execution Order]]&lt;br /&gt;
* [[Accessing the current user object]]&lt;br /&gt;
* [[Adding JavaScript and CSS to the page]]&lt;br /&gt;
* [[Constants]] used in the Joomla [[Framework]].&lt;br /&gt;
* [[Form validation]]&lt;br /&gt;
* [[How to create a custom button]]&lt;br /&gt;
* [[How to create a stand-alone application using the Joomla! Framework]]&lt;br /&gt;
* [[How to use user state variables]]&lt;br /&gt;
* [[Adding template overridable images in your extension]]&lt;br /&gt;
* [[Retrieving data from GET and POST requests]]&lt;br /&gt;
* [[Cache]] and [[Using caching to speed up your code]]&lt;br /&gt;
* [[Using a custom image in the menu bar title]]&lt;br /&gt;
* [[Using the installer API to support package installation]]&lt;br /&gt;
* [[Tutorial:How to add tooltips to your Joomla! website]]&lt;br /&gt;
* [[Xml-rpc changes in Joomla! 1.6]]&lt;br /&gt;
* [[How to add breadcrumbs]]&lt;br /&gt;
* [[Creating a file uploader in your component]].&lt;br /&gt;
* [[Display error messages and notices]].&lt;br /&gt;
* [[Errors]]&lt;br /&gt;
&lt;br /&gt;
== Contributing to Joomla Development ==&lt;br /&gt;
The development of Joomla itself is carried out by the [[Development Working Group]] and third party developers.&lt;br /&gt;
&lt;br /&gt;
* [[Participating in the community]]: a brief description of how people can get involved.&lt;br /&gt;
* [[Developer Email lists]]: a list of email lists for developers, including third party developers.&lt;br /&gt;
* [[Coding style and standards]] (To be reviewed).&lt;br /&gt;
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.&lt;br /&gt;
* [http://docs.joomla.org/Setting_up_your_workstation_for_Joomla!_development_--_Part_2#Check_Out_Joomla.21_Source_Code How to check out SVN Code]&lt;br /&gt;
* [[Patch submission guidelines]].&lt;br /&gt;
* [[Filing bugs and issues]].&lt;br /&gt;
* [[How to release a distribution tarball]].&lt;br /&gt;
&lt;br /&gt;
== Contributing to Joomla Developer Documentation ==&lt;br /&gt;
The development of Joomla developer documentation is carried out primarily by the [[Documentation Working Group]].  There are currently two sub-projects of interest to developers:&lt;br /&gt;
* [[Joomla! 1.5 Template Tutorials Project]]&lt;br /&gt;
* [[API Reference Project]]&lt;br /&gt;
&lt;br /&gt;
When creating a new page, ensure you place the following marker at the bottom of the page so it is included in the category list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;[[Category:Development]]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you locate other articles you think are relevant to developers, please add this marker to those pages.&lt;br /&gt;
&lt;br /&gt;
=== Suggested topics ===&lt;br /&gt;
This is a short list of articles that might be written to support developers.  Please feel free to add further topic ideas.&lt;br /&gt;
&lt;br /&gt;
* [[Adding configuration objects to modules and plugins]].&lt;br /&gt;
* [[Storing data in the session between page loads]].&lt;br /&gt;
* [[Suppressing output of extra HTML]].&lt;br /&gt;
* [[How to use the filter package]].&lt;br /&gt;
*: Describe how and when to use the Filter package and explain what needs to be filtered for various situations (for queries, for URLs, etc)&lt;br /&gt;
* [[How to use the registry package]]&lt;br /&gt;
* [[How to use JSimpleXML]].&lt;br /&gt;
*: How to load and store XML files and how to work with them&lt;br /&gt;
* [[How to create component feeds]] (RSS/ATOM)&lt;br /&gt;
* [[How to create PDF views]]&lt;br /&gt;
* [[How to generate paths for client side and server side]]&lt;br /&gt;
* [[How to access information from the request]]&lt;br /&gt;
*: This focuses on using the JBrowser class to retrieve information about the features available in the user's browser.&lt;br /&gt;
* [[How to create an editor plugin]]&lt;br /&gt;
* [[What can be done with a user plugin]]&lt;br /&gt;
* [[How to work with parameters]]&lt;br /&gt;
* [[How to cloak email addresses]]&lt;br /&gt;
* [[Using the caching system in your component]]. This might be enough (for now?) -&amp;gt; [[Cache]]&lt;br /&gt;
&lt;br /&gt;
==Joomla Security Guide==&lt;br /&gt;
Developers should also be aware of security issues.&lt;br /&gt;
{{Security Guide}}&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Category:Dev_cookie_jar</id>
		<title>Category:Dev cookie jar</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Category:Dev_cookie_jar"/>
				<updated>2010-03-26T12:41:18Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The development cookie jar is a documentation resource for tasks in the 1.6 development of Joomla.&lt;br /&gt;
&lt;br /&gt;
Detailed information on the tasks and related discussions can be found in the various google groups by searching for the keyword '''&amp;quot;patchwork: &amp;quot;''' in the subject line:&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/search?hl=en-GB&amp;amp;group=joomla-dev-cms&amp;amp;q=patchwork%3A&amp;amp;qt_g=Search+this+group CMS Development group patchwork]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-framework/search?hl=en-GB&amp;amp;group=joomla-dev-framework&amp;amp;q=patchwork%3A&amp;amp;qt_g=Search+this+group Joomla Development group patchwork]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-general/search?hl=en-GB&amp;amp;group=joomla-dev-general&amp;amp;q=patchwork&amp;amp;qt_g=Search+this+group General Development group]&lt;br /&gt;
&lt;br /&gt;
If you would like to work on any of these items you are welcome to do so.  It is recommended that you add a note in the thread as well as create a wiki page here which you tag with {{tl|inuse}} and your name at the top of the page while you are working on the item so we don't get unnecessary duplication of effort. Before you mark a branch, patch or anything else as complete / for review you should make sure that the wiki page is updated and explains your work, tests and anything related.&lt;br /&gt;
&lt;br /&gt;
It is helpful if you keep us informed about your progress by sending some notes to the google groups or updating your wiki page regularly. To get write access to this wiki you need to [[Special:Userlogin|create an account]].  This requires a valid email address.  Once the registration process is complete you will automatically be granted write access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development Working Group]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Category:Dev_cookie_jar</id>
		<title>Category:Dev cookie jar</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Category:Dev_cookie_jar"/>
				<updated>2010-02-15T17:46:24Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The development tasks listed below need to be completed before we can release Joomla 1.6.&lt;br /&gt;
&lt;br /&gt;
If you would like to work on any of these items you are welcome to do so.  Please add {{tl|inuse}} and your name at the top of the page while you are working on the item so we don't get unnecessary duplication of effort. More items can be found in the various google groups by searching for the keyword &amp;quot;patchwork: &amp;quot; in the subject line:&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/search?hl=en-GB&amp;amp;group=joomla-dev-cms&amp;amp;q=patchwork%3A&amp;amp;qt_g=Search+this+group CMS Development group patchwork]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-framework/search?hl=en-GB&amp;amp;group=joomla-dev-framework&amp;amp;q=patchwork%3A&amp;amp;qt_g=Search+this+group Joomla Development group patchwork]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-general/search?hl=en-GB&amp;amp;group=joomla-dev-general&amp;amp;q=patchwork&amp;amp;qt_g=Search+this+group General Development group]&lt;br /&gt;
&lt;br /&gt;
Feel free to add notes to the task page in order to clarify the task, but questions or discussion should be made on the talk page or on the [http://groups.google.com/group/joomla-dev-general development mailing list].&lt;br /&gt;
&lt;br /&gt;
Keep us informed about your progress by adding something to the page regularly.  If you don't update the page after 3 days we may release the task so someone else can work on it.  If you need help, don't be afraid to ask.&lt;br /&gt;
&lt;br /&gt;
To get write access to this wiki you need to [[Special:Userlogin|create an account]].  This requires a valid email address.  Once the registration process is complete you will automatically be granted write access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development Working Group]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Language_switcher_frontend</id>
		<title>Language switcher frontend</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Language_switcher_frontend"/>
				<updated>2010-02-15T16:40:20Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: /* Language switcher {{JVer|1.6}} */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Language switcher {{JVer|1.6}}==&lt;br /&gt;
Reference from: [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/3a84e3c0004404d3]&lt;br /&gt;
&lt;br /&gt;
It has been decided that 1.6 would not be fully multilingual, i.e. it would not be a replacement for Joomfish where each item has its equivalent. Was also decided to have a language Switcher (specially to use on frontpage) to display the items tagged for a specific language (Articles, categories, modules, ..) &lt;br /&gt;
&lt;br /&gt;
===The idea===&lt;br /&gt;
The Switcher would, if also present on other pages than the Home, redirect to the home page and display these items. &lt;br /&gt;
To get this, language fields have been created in the db and an interface in the UI where the items can be tagged. &lt;br /&gt;
The Language Manager has 2 parts (Tabs): &lt;br /&gt;
# Listing site and admin languages available (installed) on the site. Same function as in 1.5. &lt;br /&gt;
# A Content part specifically designed to use for the language tagging/assign. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This &amp;quot;Content&amp;quot; part, if used, lets designate a language (even if it is not yet installed) to populate the lists proposed for all Language fields tagging in the UI. &lt;br /&gt;
The idea is that, &lt;br /&gt;
# if the site language is present AND &lt;br /&gt;
#  the same language is designated as a &amp;quot;Content&amp;quot; language AND published, &lt;br /&gt;
#:---&amp;gt; then the Switcher will display that language as a choice and ONLY  the items tagged for that language. &lt;br /&gt;
# A parameter would let display or not untagged items with the language chosen (That parameter may have to be elsewhere than in the module, maybe in J! Global Config) &lt;br /&gt;
This lets user prepare a complete set of items assigned to a specific language without even installing that language. Then release it when ready. &lt;br /&gt;
Logically, a non-registered user should get a cookie and a registered user should get its user's language params changed on the fly.&lt;br /&gt;
&lt;br /&gt;
[[Category:Dev_cookie_jar]]&lt;br /&gt;
[[Category: Languages]]&lt;br /&gt;
[[Category:Specifications]]&lt;br /&gt;
[[Category:Specifications Version 1.6]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Language_switcher_frontend</id>
		<title>Language switcher frontend</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Language_switcher_frontend"/>
				<updated>2010-02-15T16:28:08Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: New page: ==Language switcher {{JVer|1.6}}==  It has been decided that 1.6 would not be fully multilingual, i.e. it  would not be a replacement for Joomfish where each item has its  equivalent.  Was...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Language switcher {{JVer|1.6}}==&lt;br /&gt;
&lt;br /&gt;
It has been decided that 1.6 would not be fully multilingual, i.e. it &lt;br /&gt;
would not be a replacement for Joomfish where each item has its &lt;br /&gt;
equivalent. &lt;br /&gt;
Was also decided to have a language Switcher (specially to use on &lt;br /&gt;
frontpage) to display the items tagged for a specific language &lt;br /&gt;
(Articles, categories, modules, ..) &lt;br /&gt;
The Switcher would, if also present on other pages than the Home, &lt;br /&gt;
redirect to the home page and display these items. &lt;br /&gt;
To get this, language fields have been created in the db and an &lt;br /&gt;
interface in the UI where the items can be tagged. &lt;br /&gt;
The Language Manager has 2 parts (Tabs): &lt;br /&gt;
1. Listing site and admin languages available (installed) on the site. &lt;br /&gt;
Same function as in 1.5. &lt;br /&gt;
2. A Content part specifically designed to use for the language &lt;br /&gt;
tagging/assign. &lt;br /&gt;
This &amp;quot;Content&amp;quot; part, if used, lets designate a language (even if it is &lt;br /&gt;
not yet installed) to populate the lists proposed for all Language &lt;br /&gt;
fields tagging in the UI. &lt;br /&gt;
The idea is that, &lt;br /&gt;
1. if the site language is present &lt;br /&gt;
AND &lt;br /&gt;
2.  the same language is designated as a &amp;quot;Content&amp;quot; language AND &lt;br /&gt;
published, &lt;br /&gt;
---&amp;gt; then the Switcher will display that language as a choice and ONLY &lt;br /&gt;
the items tagged for that language. &lt;br /&gt;
3. A parameter would let display or not untagged items with the &lt;br /&gt;
language chosen (That parameter may have to be elsewhere than in the &lt;br /&gt;
module, maybe in J! Global Config) &lt;br /&gt;
This lets user prepare a complete set of items assigned to a specific &lt;br /&gt;
language without even installing that language. Then release it when &lt;br /&gt;
ready. &lt;br /&gt;
Logically, a non-registered user should get a cookie and a registered &lt;br /&gt;
user should get its user's language params changed on the fly.&lt;br /&gt;
&lt;br /&gt;
[[Category:Dev_cookie_jar]]&lt;br /&gt;
[[Category: Languages]]&lt;br /&gt;
[[Category:Specifications]]&lt;br /&gt;
[[Category:Specifications Version 1.6]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Archived:Joomla!_1.6_Development_Status</id>
		<title>Archived:Joomla! 1.6 Development Status</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Archived:Joomla!_1.6_Development_Status"/>
				<updated>2010-02-15T16:26:13Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: 95%; padding:4px; width: auto;&amp;quot;&lt;br /&gt;
!'''Task'''&lt;br /&gt;
!'''Blocker'''&lt;br /&gt;
!'''Status'''&lt;br /&gt;
!'''Contact person'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|Implement JForm library&lt;br /&gt;
|Alpha&lt;br /&gt;
|100%&lt;br /&gt;
|Rob Schley, Andrew Eddie&lt;br /&gt;
|This library allows to create forms from XML definition files. See the introduction at http://tinyurl.com/psj6c6&lt;br /&gt;
|-&lt;br /&gt;
|Implement new event triggers&lt;br /&gt;
|Alpha&lt;br /&gt;
|60%&lt;br /&gt;
|&lt;br /&gt;
|onBeforeRender, triggers in JForm, onContentDisplay etc.&lt;br /&gt;
|-&lt;br /&gt;
|Implement new controller dispatcher&lt;br /&gt;
|Alpha&lt;br /&gt;
|100%&lt;br /&gt;
|&lt;br /&gt;
|See the discussion at http://tinyurl.com/qlh5bg where Louis explained how this works in 1.6. See related article in wiki here: [[Xml-rpc#XML-RPC_changes_in_J1.6]].&lt;br /&gt;
|-&lt;br /&gt;
|Upgrade to Mootools 1.2&lt;br /&gt;
|Alpha&lt;br /&gt;
|100%&lt;br /&gt;
|Louis Landry, Ercan Özkaya&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Javascript translation&lt;br /&gt;
|Alpha&lt;br /&gt;
|100%&lt;br /&gt;
|&lt;br /&gt;
|This is implemented and finished. Take a look at JOpenID Javascript class and mod_login for details&lt;br /&gt;
|-&lt;br /&gt;
|New extension updater work&lt;br /&gt;
|Alpha&lt;br /&gt;
|100%&lt;br /&gt;
|Samuel  Moffatt&lt;br /&gt;
|New extension updater is implemented, but not finished yet.&lt;br /&gt;
|-&lt;br /&gt;
|Conversion of INI to JSON&lt;br /&gt;
|Alpha&lt;br /&gt;
|100%&lt;br /&gt;
|&lt;br /&gt;
|We now use JSON format for storing parameters in the database. This is completed for core components.&lt;br /&gt;
|-&lt;br /&gt;
|Nested categories&lt;br /&gt;
|Alpha&lt;br /&gt;
|70%&lt;br /&gt;
|Hannes Papenberg&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Access control list (ACL)&lt;br /&gt;
|Alpha&lt;br /&gt;
|10%&lt;br /&gt;
|Hannes Papenberg, Louis Landry&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|User management system&lt;br /&gt;
|Alpha&lt;br /&gt;
|75%&lt;br /&gt;
|&lt;br /&gt;
|The new com_members needs to be proof checked.&lt;br /&gt;
|-&lt;br /&gt;
|Documenting the triggers, finishing them&lt;br /&gt;
|&lt;br /&gt;
|10%&lt;br /&gt;
|Louis Landry, Rob Schley, Andrew Eddie&lt;br /&gt;
|The triggers for JForm need to be implemented in the respective extension, which has not happened yet. We need a plan for this one.&lt;br /&gt;
|-&lt;br /&gt;
|MVCing backend components&lt;br /&gt;
|&lt;br /&gt;
|90%&lt;br /&gt;
|&lt;br /&gt;
|Most of the back-end components have MVC file structure, but they are not fully MVC yet&lt;br /&gt;
|-&lt;br /&gt;
|Parameters for templates in the database&lt;br /&gt;
|&lt;br /&gt;
|100%&lt;br /&gt;
|Hannes Papenberg&lt;br /&gt;
|Especially the UI will take a lot of work, we might have to change the database for this one.&lt;br /&gt;
|-&lt;br /&gt;
|Add template parameter set to menu item creation&lt;br /&gt;
|&lt;br /&gt;
|10%&lt;br /&gt;
|Hannes Papenberg&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Refactoring parameters&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|&lt;br /&gt;
|A review of the current parameters and implementing new ones for the new category system.&lt;br /&gt;
|-&lt;br /&gt;
|Comments system&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|Louis Landry, Andrew Eddie, Rob Schley&lt;br /&gt;
|It will be donated by JXtended and will be added to trunk somewhere in the beta phase.&lt;br /&gt;
|-&lt;br /&gt;
|Hooks for external authentication systems&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|&lt;br /&gt;
|Need to be implemented in JUser and in the code where Usergroups are managed. Maybe we need a JUsergroupclass&lt;br /&gt;
|-&lt;br /&gt;
|Database driven install log&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|Samuel Moffatt&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Convert all layouts to semantic and XHTML strict&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|Ron Severdia&lt;br /&gt;
|There are some efforts going on for this. See the topic at http://tinyurl.com/qrb39k&lt;br /&gt;
|-&lt;br /&gt;
|Timezones, JDate and Datetime (gregorian, julian, shamsi, hijri, jewish, buddhist, ethiopian, chinese and french calendar)&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|Hannes Papenberg&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Refactoring all components to use JForm&lt;br /&gt;
|&lt;br /&gt;
|70%&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|Localising invalid token message&lt;br /&gt;
|&lt;br /&gt;
|100%&lt;br /&gt;
|&lt;br /&gt;
|die('Invalid Token') will be replaced by jexit(JText::_('JInvalid_Token'))&lt;br /&gt;
|-&lt;br /&gt;
|Ability to select multiple categories for some views&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|New sample content&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|Ron Severdia&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Reformat translation files to adhere to proper INI specs&lt;br /&gt;
|&lt;br /&gt;
|5%&lt;br /&gt;
|Ole Ottosen&lt;br /&gt;
|In 1.6 we will use PHP's own INI parser and will namespace strings. For example &amp;quot;Weblinks_Category_Fieldname&amp;quot; or &amp;quot;Config_Application_Name&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Migration script from 1.5 to 1.6&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Add module assignment to menu items creation&lt;br /&gt;
|&lt;br /&gt;
|100%&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ability to load additional layouts with a template&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|Hannes Papenberg&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Language switcher frontend]]&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|Christophe Demko&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Development Working Group]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Archived:Joomla!_1.6_Development_Status</id>
		<title>Archived:Joomla! 1.6 Development Status</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Archived:Joomla!_1.6_Development_Status"/>
				<updated>2010-02-15T16:25:40Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font-size: 95%; padding:4px; width: auto;&amp;quot;&lt;br /&gt;
!'''Task'''&lt;br /&gt;
!'''Blocker'''&lt;br /&gt;
!'''Status'''&lt;br /&gt;
!'''Contact person'''&lt;br /&gt;
!'''Description'''&lt;br /&gt;
|-&lt;br /&gt;
|Implement JForm library&lt;br /&gt;
|Alpha&lt;br /&gt;
|100%&lt;br /&gt;
|Rob Schley, Andrew Eddie&lt;br /&gt;
|This library allows to create forms from XML definition files. See the introduction at http://tinyurl.com/psj6c6&lt;br /&gt;
|-&lt;br /&gt;
|Implement new event triggers&lt;br /&gt;
|Alpha&lt;br /&gt;
|60%&lt;br /&gt;
|&lt;br /&gt;
|onBeforeRender, triggers in JForm, onContentDisplay etc.&lt;br /&gt;
|-&lt;br /&gt;
|Implement new controller dispatcher&lt;br /&gt;
|Alpha&lt;br /&gt;
|100%&lt;br /&gt;
|&lt;br /&gt;
|See the discussion at http://tinyurl.com/qlh5bg where Louis explained how this works in 1.6. See related article in wiki here: [[Xml-rpc#XML-RPC_changes_in_J1.6]].&lt;br /&gt;
|-&lt;br /&gt;
|Upgrade to Mootools 1.2&lt;br /&gt;
|Alpha&lt;br /&gt;
|100%&lt;br /&gt;
|Louis Landry, Ercan Özkaya&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Javascript translation&lt;br /&gt;
|Alpha&lt;br /&gt;
|100%&lt;br /&gt;
|&lt;br /&gt;
|This is implemented and finished. Take a look at JOpenID Javascript class and mod_login for details&lt;br /&gt;
|-&lt;br /&gt;
|New extension updater work&lt;br /&gt;
|Alpha&lt;br /&gt;
|100%&lt;br /&gt;
|Samuel  Moffatt&lt;br /&gt;
|New extension updater is implemented, but not finished yet.&lt;br /&gt;
|-&lt;br /&gt;
|Conversion of INI to JSON&lt;br /&gt;
|Alpha&lt;br /&gt;
|100%&lt;br /&gt;
|&lt;br /&gt;
|We now use JSON format for storing parameters in the database. This is completed for core components.&lt;br /&gt;
|-&lt;br /&gt;
|Nested categories&lt;br /&gt;
|Alpha&lt;br /&gt;
|70%&lt;br /&gt;
|Hannes Papenberg&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Access control list (ACL)&lt;br /&gt;
|Alpha&lt;br /&gt;
|10%&lt;br /&gt;
|Hannes Papenberg, Louis Landry&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|User management system&lt;br /&gt;
|Alpha&lt;br /&gt;
|75%&lt;br /&gt;
|&lt;br /&gt;
|The new com_members needs to be proof checked.&lt;br /&gt;
|-&lt;br /&gt;
|Documenting the triggers, finishing them&lt;br /&gt;
|&lt;br /&gt;
|10%&lt;br /&gt;
|Louis Landry, Rob Schley, Andrew Eddie&lt;br /&gt;
|The triggers for JForm need to be implemented in the respective extension, which has not happened yet. We need a plan for this one.&lt;br /&gt;
|-&lt;br /&gt;
|MVCing backend components&lt;br /&gt;
|&lt;br /&gt;
|90%&lt;br /&gt;
|&lt;br /&gt;
|Most of the back-end components have MVC file structure, but they are not fully MVC yet&lt;br /&gt;
|-&lt;br /&gt;
|Parameters for templates in the database&lt;br /&gt;
|&lt;br /&gt;
|100%&lt;br /&gt;
|Hannes Papenberg&lt;br /&gt;
|Especially the UI will take a lot of work, we might have to change the database for this one.&lt;br /&gt;
|-&lt;br /&gt;
|Add template parameter set to menu item creation&lt;br /&gt;
|&lt;br /&gt;
|10%&lt;br /&gt;
|Hannes Papenberg&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Refactoring parameters&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|&lt;br /&gt;
|A review of the current parameters and implementing new ones for the new category system.&lt;br /&gt;
|-&lt;br /&gt;
|Comments system&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|Louis Landry, Andrew Eddie, Rob Schley&lt;br /&gt;
|It will be donated by JXtended and will be added to trunk somewhere in the beta phase.&lt;br /&gt;
|-&lt;br /&gt;
|Hooks for external authentication systems&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|&lt;br /&gt;
|Need to be implemented in JUser and in the code where Usergroups are managed. Maybe we need a JUsergroupclass&lt;br /&gt;
|-&lt;br /&gt;
|Database driven install log&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|Samuel Moffatt&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Convert all layouts to semantic and XHTML strict&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|Ron Severdia&lt;br /&gt;
|There are some efforts going on for this. See the topic at http://tinyurl.com/qrb39k&lt;br /&gt;
|-&lt;br /&gt;
|Timezones, JDate and Datetime (gregorian, julian, shamsi, hijri, jewish, buddhist, ethiopian, chinese and french calendar)&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|Hannes Papenberg&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Refactoring all components to use JForm&lt;br /&gt;
|&lt;br /&gt;
|70%&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|Localising invalid token message&lt;br /&gt;
|&lt;br /&gt;
|100%&lt;br /&gt;
|&lt;br /&gt;
|die('Invalid Token') will be replaced by jexit(JText::_('JInvalid_Token'))&lt;br /&gt;
|-&lt;br /&gt;
|Ability to select multiple categories for some views&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|New sample content&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|Ron Severdia&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Reformat translation files to adhere to proper INI specs&lt;br /&gt;
|&lt;br /&gt;
|5%&lt;br /&gt;
|Ole Ottosen&lt;br /&gt;
|In 1.6 we will use PHP's own INI parser and will namespace strings. For example &amp;quot;Weblinks_Category_Fieldname&amp;quot; or &amp;quot;Config_Application_Name&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|Migration script from 1.5 to 1.6&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Add module assignment to menu items creation&lt;br /&gt;
|&lt;br /&gt;
|100%&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Ability to load additional layouts with a template&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|Hannes Papenberg&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[Language switcher frontend]&lt;br /&gt;
|&lt;br /&gt;
|0%&lt;br /&gt;
|Christophe Demko&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
[[Category:Development Working Group]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Specification_of_language_files</id>
		<title>Specification of language files</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Specification_of_language_files"/>
				<updated>2010-02-15T16:18:52Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains the changes of the language file specification from version 1.5 to 1.6. As this is currently under development it is not merged back to the central specification page.&lt;br /&gt;
&lt;br /&gt;
The 1.5 specification is described in [[Creating a language definition file]].&lt;br /&gt;
&lt;br /&gt;
==Overview of changes in Joomla 1.6== {{JVer|1.6}}&lt;br /&gt;
# The KEY is now defined to be&lt;br /&gt;
##  without any whitespace. All whitespace shall be converted into a underscore '_'&lt;br /&gt;
## All KEY's in the frontend shall include a prefix of the extension&lt;br /&gt;
&lt;br /&gt;
Additional information from a new [http://groups.google.com/group/joomla-dev-framework/browse_thread/thread/4cfac49cddb8c54a?hl=en-GB thread]&lt;br /&gt;
&lt;br /&gt;
So, the implications on ini file format:&lt;br /&gt;
# As previously mentioned, our keys will have to change.  Spaces are not allowed.  The general practice will be to use underscores for spacing.  Also, the plan is to name space strings, so that you would end up with something like COM_EXAMPLE_MYKEY for your key.  According to the php manual, The characters {}|&amp;amp;~![()^&amp;quot; cannot be used in keys.  There are also reserved words for keys: null, yes, no, true, false, on, off, none.&lt;br /&gt;
# The syntax for the value will also change.  According to the PHP manual, if a value in the ini file contains any non-alphanumeric characters it needs to be enclosed in double-quotes (&amp;quot;).  That will basically mean all of our values will have to be enclosed in quotes, as a space is non alpha numeric.  From what I gather, if you want to include a double-quote in your string, you use two double-quotes.  Finally, according to the PHP manual, the {}|&amp;amp;~![()^&amp;quot; characters have a special meaning in the value.  Unfortunately, they don't really unpack what that special meaning is - anybody have experience in this area?&lt;br /&gt;
#  Comment syntax will change, as we are typically using pound signs (#) and the standard parser requires semi colons (;).&lt;br /&gt;
&lt;br /&gt;
Problems are related to the different behavior of PHP 5.2 and 5.3 related the build in ini-parser. Current idea is to move to a JSON based format like:&lt;br /&gt;
&lt;br /&gt;
The difference would be something like:&lt;br /&gt;
&lt;br /&gt;
JDISABLED=Disabled&lt;br /&gt;
JENABLED=Enabled&lt;br /&gt;
JNO=No&lt;br /&gt;
JYES=Yes&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
'JDISABLED': 'Disabled',&lt;br /&gt;
'JENABLED': 'Enabled',&lt;br /&gt;
'JNO': 'No',&lt;br /&gt;
'JYES': 'Yes'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Decisions are not made yet - please follow the thread.&lt;br /&gt;
&lt;br /&gt;
==Related discussion threads in the development mailing list==&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/af76ac17eecbfe2d/fbfbbd15c5c60d71?lnk=gst&amp;amp;q=language#fbfbbd15c5c60d71 Another language question concerning 1.6 Optionen]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/213f8e6a885e42fe/310bb187a26d5965?lnk=gst&amp;amp;q=language#310bb187a26d5965 Here is a proposal from the com_localise team - Comments?]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/8ef8d089546b7734/ffea9ba8a60a5927?lnk=gst&amp;amp;q=language#ffea9ba8a60a5927 Hardcoded punctuation creates issues in language files Optionen]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/446ccaa42baafc66/af422d0b2de81c2f?lnk=gst&amp;amp;q=language#af422d0b2de81c2f Language String Namespaces]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Dev_cookie_jar]]&lt;br /&gt;
[[Category: Languages]]&lt;br /&gt;
[[Category:Specifications]]&lt;br /&gt;
[[Category:Specifications Version 1.6]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Specification_of_language_files</id>
		<title>Specification of language files</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Specification_of_language_files"/>
				<updated>2009-12-14T17:56:11Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: /* Overview of changes in Joomla 1.6 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains the changes of the language file specification from version 1.5 to 1.6. As this is currently under development it is not merged back to the central specification page.&lt;br /&gt;
&lt;br /&gt;
The 1.5 specification is described in [[Creating a language definition file]].&lt;br /&gt;
&lt;br /&gt;
==Overview of changes in Joomla 1.6== {JVer:1.6}&lt;br /&gt;
# The KEY is now defined to be&lt;br /&gt;
##  without any whitespace. All whitespace shall be converted into a underscore '_'&lt;br /&gt;
## All KEY's in the frontend shall include a prefix of the extension&lt;br /&gt;
&lt;br /&gt;
Additional information from a new [http://groups.google.com/group/joomla-dev-framework/browse_thread/thread/4cfac49cddb8c54a?hl=en-GB thread]&lt;br /&gt;
&lt;br /&gt;
So, the implications on ini file format:&lt;br /&gt;
# As previously mentioned, our keys will have to change.  Spaces are not allowed.  The general practice will be to use underscores for spacing.  Also, the plan is to name space strings, so that you would end up with something like COM_EXAMPLE_MYKEY for your key.  According to the php manual, The characters {}|&amp;amp;~![()^&amp;quot; cannot be used in keys.  There are also reserved words for keys: null, yes, no, true, false, on, off, none.&lt;br /&gt;
# The syntax for the value will also change.  According to the PHP manual, if a value in the ini file contains any non-alphanumeric characters it needs to be enclosed in double-quotes (&amp;quot;).  That will basically mean all of our values will have to be enclosed in quotes, as a space is non alpha numeric.  From what I gather, if you want to include a double-quote in your string, you use two double-quotes.  Finally, according to the PHP manual, the {}|&amp;amp;~![()^&amp;quot; characters have a special meaning in the value.  Unfortunately, they don't really unpack what that special meaning is - anybody have experience in this area?&lt;br /&gt;
#  Comment syntax will change, as we are typically using pound signs (#) and the standard parser requires semi colons (;).&lt;br /&gt;
&lt;br /&gt;
Problems are related to the different behavior of PHP 5.2 and 5.3 related the build in ini-parser. Current idea is to move to a JSON based format like:&lt;br /&gt;
&lt;br /&gt;
The difference would be something like:&lt;br /&gt;
&lt;br /&gt;
JDISABLED=Disabled&lt;br /&gt;
JENABLED=Enabled&lt;br /&gt;
JNO=No&lt;br /&gt;
JYES=Yes&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
{&lt;br /&gt;
'JDISABLED': 'Disabled',&lt;br /&gt;
'JENABLED': 'Enabled',&lt;br /&gt;
'JNO': 'No',&lt;br /&gt;
'JYES': 'Yes'&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Decisions are not made yet - please follow the thread.&lt;br /&gt;
&lt;br /&gt;
==Related discussion threads in the development mailing list==&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/af76ac17eecbfe2d/fbfbbd15c5c60d71?lnk=gst&amp;amp;q=language#fbfbbd15c5c60d71 Another language question concerning 1.6 Optionen]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/213f8e6a885e42fe/310bb187a26d5965?lnk=gst&amp;amp;q=language#310bb187a26d5965 Here is a proposal from the com_localise team - Comments?]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/8ef8d089546b7734/ffea9ba8a60a5927?lnk=gst&amp;amp;q=language#ffea9ba8a60a5927 Hardcoded punctuation creates issues in language files Optionen]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/446ccaa42baafc66/af422d0b2de81c2f?lnk=gst&amp;amp;q=language#af422d0b2de81c2f Language String Namespaces]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Dev_cookie_jar]]&lt;br /&gt;
[[Category: Languages]]&lt;br /&gt;
[[Category:Specifications]]&lt;br /&gt;
[[Category:Specifications Version 1.6]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/User:Akede</id>
		<title>User:Akede</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/User:Akede"/>
				<updated>2009-11-25T12:56:50Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: New page: My name is Alex Kempkens, living in Munich Germany and co-founder of the Joomla project. Beside working for the Joomla project in various roles I develop the multilingual extension [http:/...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My name is Alex Kempkens, living in Munich Germany and co-founder of the Joomla project.&lt;br /&gt;
Beside working for the Joomla project in various roles I develop the multilingual extension [http://www.joomfish.net/ Joomfish] and run a consulting business for the usage of open source technology within corporate environments.&lt;br /&gt;
&lt;br /&gt;
==Development activities==&lt;br /&gt;
* [[Language Metadata]]&lt;br /&gt;
* [[Specification of language files]]&lt;br /&gt;
&lt;br /&gt;
==Useful links and notes==&lt;br /&gt;
* [http://openmrs.org/wiki/Subversion_Branching_and_Merging_Techniques#Updating_your_Branch_.28Merging_from_trunk.29 a great tutorial about branching and merging with Subversion]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Developers</id>
		<title>Developers</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Developers"/>
				<updated>2009-11-25T09:06:28Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Developer profile}}&lt;br /&gt;
&lt;br /&gt;
A complete contents list of all pages of interest to developers can be found in the [[:Category:Development|development category]].&lt;br /&gt;
&lt;br /&gt;
== Reference Material ==&lt;br /&gt;
&lt;br /&gt;
* [[Framework|Joomla Framework]].&lt;br /&gt;
* [http://api.joomla.org API documentation] automatically generated using phpDocumentor.&lt;br /&gt;
&lt;br /&gt;
== Articles and Tutorials ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.&lt;br /&gt;
* [[Setting up your workstation for extension development]] A guide to Joomla Extension development&lt;br /&gt;
* [http://community.joomla.org/blogs/community/828-webinar-using-eclipse-for-joomla-development.html Using Eclipse for Joomla! Development] Video webinar demonstrating overview of Eclipse features for Joomla! development&lt;br /&gt;
* [[Do not use die to debug]]&lt;br /&gt;
* [[How to debug your code]]&lt;br /&gt;
* [[Tutorial:Adapting Joomla 1.0 extensions to Joomla 1.5]]&lt;br /&gt;
* [[Version 1.6 Developer Notes]] {{JVer|1.6}}&lt;br /&gt;
* [[Tutorial:Joomla Beginning Developer Course]]&lt;br /&gt;
&lt;br /&gt;
=== Components ===&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.5}}====&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 1]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 2 - Adding a Model]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 3 - Using the Database]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 4 - Creating an Administrator Interface]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 5 - Basic Backend Framework]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 6 - Adding Backend Actions]]&lt;br /&gt;
&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.6}}====&lt;br /&gt;
* [[Developing a Model-View-Controller (MVC) Component for Joomla!1.6|Introduction]]&lt;br /&gt;
{{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla!1.6 - Contents}}&lt;br /&gt;
&lt;br /&gt;
====Other component topics====&lt;br /&gt;
* [[File Structure and Naming Conventions]]&lt;br /&gt;
* [[Component parameters]]&lt;br /&gt;
* [[Components:xml installfile]].  An example component XML installation file.&lt;br /&gt;
* [[How to use the JPane classes in a component]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[Supporting plugins in your component]]&lt;br /&gt;
* [[Tutorial:Adding Javascript moo.fx to your component WIP]]&lt;br /&gt;
* [[Creating a toolbar for your component]]&lt;br /&gt;
* [[Adding view layout configuration parameters]]&lt;br /&gt;
* [[How to implement XML-RPC in a component]]&lt;br /&gt;
* [[Using JPagination in your component]]&lt;br /&gt;
* [[Adding sortable columns to a table in a component]]&lt;br /&gt;
* [[Using multiple models in an MVC component]]&lt;br /&gt;
* [[Ajax using MooTools]]&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
* [[Tutorial:Creating a Hello World Module for Joomla 1.5]]&lt;br /&gt;
* [[How to create a module]]&lt;br /&gt;
&lt;br /&gt;
=== Plugins ===&lt;br /&gt;
* [[Plugin Developer Overview]]&lt;br /&gt;
* [[Tutorial:Plugins]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/184-how-to-create-a-joomla-plugin.html How to create a Joomla! Plugin]&lt;br /&gt;
* [[How to create a content plugin]]&lt;br /&gt;
* [[How to create a search plugin]]&lt;br /&gt;
* [[Supporting plugins in your component]]&lt;br /&gt;
* [[Tutorial:Creating an Authentication Plugin for Joomla 1.5]]&lt;br /&gt;
* [[Tutorial:Using plugins in your own extension]]&lt;br /&gt;
* [[Refactoring Plugins]] {{JVer|1.6}}&lt;br /&gt;
&lt;br /&gt;
=== Templates ===&lt;br /&gt;
* [[Understanding Output Overrides]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/165-understanding-output-overrides-in-joomla.html Understanding Output Overrides in Joomla! 1.5]&lt;br /&gt;
* [[Creating custom template parameter types]]&lt;br /&gt;
* [[How are templates executed?]]&lt;br /&gt;
* [[How to determine if the user is viewing the front page]]&lt;br /&gt;
* [[Tutorial:Template parameters]]&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
* [[Standard parameter types]]&lt;br /&gt;
* [[Custom parameter types]]&lt;br /&gt;
* [[Component parameters]]&lt;br /&gt;
* [[Creating custom template parameter types]]&lt;br /&gt;
See also: [[:Category:Parameters]]&lt;br /&gt;
&lt;br /&gt;
=== Core extensions summary ===&lt;br /&gt;
* [[Banner component]] {{JVer|1.6}}&lt;br /&gt;
&lt;br /&gt;
=== Security ===&lt;br /&gt;
* [[How to add CSRF anti-spoofing to forms]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/181-preventing-sql-injections.html Preventing SQL Injections]&lt;br /&gt;
* [[Tutorial:How to make your Joomla addon more secure WIP]]&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* [[How to use the database classes in your script]]&lt;br /&gt;
* [[How to use the JTable class]]&lt;br /&gt;
* [[How to connect to an external database]]&lt;br /&gt;
&lt;br /&gt;
=== Localisation ===&lt;br /&gt;
* [http://community.joomla.org/magazine/article/508-developer-localization-advancements-in-joomla-15.html Localization Advancements in Joomla! 1.5]&lt;br /&gt;
* [[Adding multi-language support]]&lt;br /&gt;
* [[Adding Joomfish functionality to custom components]]&lt;br /&gt;
* [[Specification of language files]] {{JVer|1.6}}&lt;br /&gt;
* [[Language Metadata]] {{JVer|1.6}}&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
* [[How to use the filesystem package]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[Adding AJAX to your component]].&lt;br /&gt;
* [[How to send email from components]]&lt;br /&gt;
* [[How to use the JToolBar class in the frontend]]&lt;br /&gt;
* [[Routing]]&lt;br /&gt;
* [[Joomla Routes and SEF]]&lt;br /&gt;
* [[API Execution Order]]&lt;br /&gt;
* [[Accessing the current user object]]&lt;br /&gt;
* [[Adding JavaScript and CSS to the page]]&lt;br /&gt;
* [[Constants]] used in the Joomla [[Framework]].&lt;br /&gt;
* [[Form validation]]&lt;br /&gt;
* [[How to create a custom button]]&lt;br /&gt;
* [[How to create a stand-alone application using the Joomla! Framework]]&lt;br /&gt;
* [[How to use user state variables]]&lt;br /&gt;
* [[Adding template overridable images in your extension]]&lt;br /&gt;
* [[Retrieving data from GET and POST requests]]&lt;br /&gt;
* [[Using caching to speed up your code]]&lt;br /&gt;
* [[Using a custom image in the menu bar title]]&lt;br /&gt;
* [[Using the installer API to support package installation]]&lt;br /&gt;
* [[Tutorial:How to add tooltips to your Joomla! website]]&lt;br /&gt;
* [[Xml-rpc|XML-RPC]]&lt;br /&gt;
* [[How to add breadcrumbs]]&lt;br /&gt;
* [[Creating a file uploader in your component]].&lt;br /&gt;
* [[Display error messages and notices]].&lt;br /&gt;
&lt;br /&gt;
== Contributing to Joomla Development ==&lt;br /&gt;
The development of Joomla itself is carried out by the [[Development Working Group]] and third party developers.&lt;br /&gt;
&lt;br /&gt;
* [[Participating in the community]]: a brief description of how people can get involved.&lt;br /&gt;
* [[Developer Email lists]]: a list of email lists for developers, including third party developers.&lt;br /&gt;
* [[Coding style and standards]] (To be reviewed).&lt;br /&gt;
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.&lt;br /&gt;
* [http://docs.joomla.org/Setting_up_your_workstation_for_Joomla!_development_--_Part_2#Check_Out_Joomla.21_Source_Code How to check out SVN Code]&lt;br /&gt;
* [[Patch submission guidelines]].&lt;br /&gt;
* [[Filing bugs and issues]].&lt;br /&gt;
* [[How to release a distribution tarball]].&lt;br /&gt;
&lt;br /&gt;
== Contributing to Joomla Developer Documentation ==&lt;br /&gt;
The development of Joomla developer documentation is carried out primarily by the [[Documentation Working Group]].  There are currently two sub-projects of interest to developers:&lt;br /&gt;
* [[Joomla! 1.5 Template Tutorials Project]]&lt;br /&gt;
* [[API Reference Project]]&lt;br /&gt;
&lt;br /&gt;
When creating a new page, ensure you place the following marker at the bottom of the page so it is included in the category list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;[[Category:Development]]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you locate other articles you think are relevant to developers, please add this marker to those pages.&lt;br /&gt;
&lt;br /&gt;
=== Suggested topics ===&lt;br /&gt;
This is a short list of articles that might be written to support developers.  Please feel free to add further topic ideas.&lt;br /&gt;
&lt;br /&gt;
* [[Adding configuration objects to modules and plugins]].&lt;br /&gt;
* [[Storing data in the session between page loads]].&lt;br /&gt;
* [[Suppressing output of extra HTML]].&lt;br /&gt;
* [[How to use the filter package]].&lt;br /&gt;
*: Describe how and when to use the Filter package and explain what needs to be filtered for various situations (for queries, for URLs, etc)&lt;br /&gt;
* [[How to use the registry package]]&lt;br /&gt;
* [[How to use JSimpleXML]].&lt;br /&gt;
*: How to load and store XML files and how to work with them&lt;br /&gt;
* [[How to create component feeds]] (RSS/ATOM)&lt;br /&gt;
* [[How to create PDF views]]&lt;br /&gt;
* [[How to generate paths for client side and server side]]&lt;br /&gt;
* [[How to access information from the request]]&lt;br /&gt;
*: This focuses on using the JBrowser class to retrieve information about the features available in the user's browser.&lt;br /&gt;
* [[How to create an editor plugin]]&lt;br /&gt;
* [[What can be done with a user plugin]]&lt;br /&gt;
* [[How to work with parameters]]&lt;br /&gt;
* [[How to cloak email addresses]]&lt;br /&gt;
* [[Using the caching system in your component]].&lt;br /&gt;
&lt;br /&gt;
==Joomla Security Guide==&lt;br /&gt;
Developers should also be aware of security issues.&lt;br /&gt;
{{Security Guide}}&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Developers</id>
		<title>Developers</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Developers"/>
				<updated>2009-11-24T12:35:26Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: /* Localisation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Developer profile}}&lt;br /&gt;
&lt;br /&gt;
A complete contents list of all pages of interest to developers can be found in the [[:Category:Development|development category]].&lt;br /&gt;
&lt;br /&gt;
== Reference Material ==&lt;br /&gt;
&lt;br /&gt;
* [[Framework|Joomla Framework]].&lt;br /&gt;
* [http://api.joomla.org API documentation] automatically generated using phpDocumentor.&lt;br /&gt;
&lt;br /&gt;
== Articles and Tutorials ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.&lt;br /&gt;
* [[Setting up your workstation for extension development]] A guide to Joomla Extension development&lt;br /&gt;
* [http://community.joomla.org/blogs/community/828-webinar-using-eclipse-for-joomla-development.html Using Eclipse for Joomla! Development] Video webinar demonstrating overview of Eclipse features for Joomla! development&lt;br /&gt;
* [[Do not use die to debug]]&lt;br /&gt;
* [[How to debug your code]]&lt;br /&gt;
* [[Tutorial:Adapting Joomla 1.0 extensions to Joomla 1.5]]&lt;br /&gt;
* [[Version 1.6 Developer Notes]] {{JVer|1.6}}&lt;br /&gt;
* [[Tutorial:Joomla Beginning Developer Course]]&lt;br /&gt;
&lt;br /&gt;
=== Components ===&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.5}}====&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 1]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 2 - Adding a Model]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 3 - Using the Database]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 4 - Creating an Administrator Interface]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 5 - Basic Backend Framework]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 6 - Adding Backend Actions]]&lt;br /&gt;
&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.6}}====&lt;br /&gt;
* [[Developing a Model-View-Controller (MVC) Component for Joomla!1.6|Introduction]]&lt;br /&gt;
{{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla!1.6 - Contents}}&lt;br /&gt;
&lt;br /&gt;
====Other component topics====&lt;br /&gt;
* [[File Structure and Naming Conventions]]&lt;br /&gt;
* [[Component parameters]]&lt;br /&gt;
* [[Components:xml installfile]].  An example component XML installation file.&lt;br /&gt;
* [[How to use the JPane classes in a component]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[Supporting plugins in your component]]&lt;br /&gt;
* [[Tutorial:Adding Javascript moo.fx to your component WIP]]&lt;br /&gt;
* [[Creating a toolbar for your component]]&lt;br /&gt;
* [[Adding view layout configuration parameters]]&lt;br /&gt;
* [[How to implement XML-RPC in a component]]&lt;br /&gt;
* [[Using JPagination in your component]]&lt;br /&gt;
* [[Adding sortable columns to a table in a component]]&lt;br /&gt;
* [[Using multiple models in an MVC component]]&lt;br /&gt;
* [[Ajax using MooTools]]&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
* [[Tutorial:Creating a Hello World Module for Joomla 1.5]]&lt;br /&gt;
* [[How to create a module]]&lt;br /&gt;
&lt;br /&gt;
=== Plugins ===&lt;br /&gt;
* [[Plugin Developer Overview]]&lt;br /&gt;
* [[Tutorial:Plugins]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/184-how-to-create-a-joomla-plugin.html How to create a Joomla! Plugin]&lt;br /&gt;
* [[How to create a content plugin]]&lt;br /&gt;
* [[How to create a search plugin]]&lt;br /&gt;
* [[Supporting plugins in your component]]&lt;br /&gt;
* [[Tutorial:Creating an Authentication Plugin for Joomla 1.5]]&lt;br /&gt;
* [[Tutorial:Using plugins in your own extension]]&lt;br /&gt;
* [[Refactoring Plugins]] {{JVer|1.6}}&lt;br /&gt;
&lt;br /&gt;
=== Templates ===&lt;br /&gt;
* [[Understanding Output Overrides]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/165-understanding-output-overrides-in-joomla.html Understanding Output Overrides in Joomla! 1.5]&lt;br /&gt;
* [[Creating custom template parameter types]]&lt;br /&gt;
* [[How are templates executed?]]&lt;br /&gt;
* [[How to determine if the user is viewing the front page]]&lt;br /&gt;
* [[Tutorial:Template parameters]]&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
* [[Standard parameter types]]&lt;br /&gt;
* [[Custom parameter types]]&lt;br /&gt;
* [[Component parameters]]&lt;br /&gt;
* [[Creating custom template parameter types]]&lt;br /&gt;
See also: [[:Category:Parameters]]&lt;br /&gt;
&lt;br /&gt;
=== Security ===&lt;br /&gt;
* [[How to add CSRF anti-spoofing to forms]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/181-preventing-sql-injections.html Preventing SQL Injections]&lt;br /&gt;
* [[Tutorial:How to make your Joomla addon more secure WIP]]&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* [[How to use the database classes in your script]]&lt;br /&gt;
* [[How to use the JTable class]]&lt;br /&gt;
* [[How to connect to an external database]]&lt;br /&gt;
&lt;br /&gt;
=== Localisation ===&lt;br /&gt;
* [http://community.joomla.org/magazine/article/508-developer-localization-advancements-in-joomla-15.html Localization Advancements in Joomla! 1.5]&lt;br /&gt;
* [[Adding multi-language support]]&lt;br /&gt;
* [[Adding Joomfish functionality to custom components]]&lt;br /&gt;
* [[Specification of language files]] {{JVer|1.6}}&lt;br /&gt;
* [[Language Metadata]] {{JVer|1.6}}&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
* [[How to use the filesystem package]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[Adding AJAX to your component]].&lt;br /&gt;
* [[How to send email from components]]&lt;br /&gt;
* [[How to use the JToolBar class in the frontend]]&lt;br /&gt;
* [[Routing]]&lt;br /&gt;
* [[Joomla Routes and SEF]]&lt;br /&gt;
* [[API Execution Order]]&lt;br /&gt;
* [[Accessing the current user object]]&lt;br /&gt;
* [[Adding JavaScript and CSS to the page]]&lt;br /&gt;
* [[Constants]] used in the Joomla [[Framework]].&lt;br /&gt;
* [[Form validation]]&lt;br /&gt;
* [[How to create a custom button]]&lt;br /&gt;
* [[How to create a stand-alone application using the Joomla! Framework]]&lt;br /&gt;
* [[How to use user state variables]]&lt;br /&gt;
* [[Adding template overridable images in your extension]]&lt;br /&gt;
* [[Retrieving data from GET and POST requests]]&lt;br /&gt;
* [[Using caching to speed up your code]]&lt;br /&gt;
* [[Using a custom image in the menu bar title]]&lt;br /&gt;
* [[Using the installer API to support package installation]]&lt;br /&gt;
* [[Tutorial:How to add tooltips to your Joomla! website]]&lt;br /&gt;
* [[Xml-rpc|XML-RPC]]&lt;br /&gt;
* [[How to add breadcrumbs]]&lt;br /&gt;
* [[Creating a file uploader in your component]].&lt;br /&gt;
* [[Display error messages and notices]].&lt;br /&gt;
&lt;br /&gt;
== Contributing to Joomla Development ==&lt;br /&gt;
The development of Joomla itself is carried out by the [[Development Working Group]] and third party developers.&lt;br /&gt;
&lt;br /&gt;
* [[Participating in the community]]: a brief description of how people can get involved.&lt;br /&gt;
* [[Developer Email lists]]: a list of email lists for developers, including third party developers.&lt;br /&gt;
* [[Coding style and standards]] (To be reviewed).&lt;br /&gt;
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.&lt;br /&gt;
* [http://docs.joomla.org/Setting_up_your_workstation_for_Joomla!_development_--_Part_2#Check_Out_Joomla.21_Source_Code How to check out SVN Code]&lt;br /&gt;
* [[Patch submission guidelines]].&lt;br /&gt;
* [[Filing bugs and issues]].&lt;br /&gt;
* [[How to release a distribution tarball]].&lt;br /&gt;
&lt;br /&gt;
== Contributing to Joomla Developer Documentation ==&lt;br /&gt;
The development of Joomla developer documentation is carried out primarily by the [[Documentation Working Group]].  There are currently two sub-projects of interest to developers:&lt;br /&gt;
* [[Joomla! 1.5 Template Tutorials Project]]&lt;br /&gt;
* [[API Reference Project]]&lt;br /&gt;
&lt;br /&gt;
When creating a new page, ensure you place the following marker at the bottom of the page so it is included in the category list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;[[Category:Development]]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you locate other articles you think are relevant to developers, please add this marker to those pages.&lt;br /&gt;
&lt;br /&gt;
=== Suggested topics ===&lt;br /&gt;
This is a short list of articles that might be written to support developers.  Please feel free to add further topic ideas.&lt;br /&gt;
&lt;br /&gt;
* [[Adding configuration objects to modules and plugins]].&lt;br /&gt;
* [[Storing data in the session between page loads]].&lt;br /&gt;
* [[Suppressing output of extra HTML]].&lt;br /&gt;
* [[How to use the filter package]].&lt;br /&gt;
*: Describe how and when to use the Filter package and explain what needs to be filtered for various situations (for queries, for URLs, etc)&lt;br /&gt;
* [[How to use the registry package]]&lt;br /&gt;
* [[How to use JSimpleXML]].&lt;br /&gt;
*: How to load and store XML files and how to work with them&lt;br /&gt;
* [[How to create component feeds]] (RSS/ATOM)&lt;br /&gt;
* [[How to create PDF views]]&lt;br /&gt;
* [[How to generate paths for client side and server side]]&lt;br /&gt;
* [[How to access information from the request]]&lt;br /&gt;
*: This focuses on using the JBrowser class to retrieve information about the features available in the user's browser.&lt;br /&gt;
* [[How to create an editor plugin]]&lt;br /&gt;
* [[What can be done with a user plugin]]&lt;br /&gt;
* [[How to work with parameters]]&lt;br /&gt;
* [[How to cloak email addresses]]&lt;br /&gt;
* [[Using the caching system in your component]].&lt;br /&gt;
&lt;br /&gt;
==Joomla Security Guide==&lt;br /&gt;
Developers should also be aware of security issues.&lt;br /&gt;
{{Security Guide}}&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Language_Metadata</id>
		<title>Language Metadata</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Language_Metadata"/>
				<updated>2009-11-24T12:32:36Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General information about Language Metadata {{JVer|1.6}}==&lt;br /&gt;
Within Joomla the specific language related meta information for articles, modules, menus and any other content is understood as &amp;quot;language metadata&amp;quot;. Within Joomla 1.5 it is already possible to tag an article with the specific language it is written in. However there is the limitation that you can only select languages which are installed as front-end language extension.&lt;br /&gt;
&lt;br /&gt;
===Joomla language extensions===&lt;br /&gt;
The CMS Joomla! supports many different languages in the frontend and backend applications already [http://extensions.joomla.org/extensions/languages/translations-for-joomla].&lt;br /&gt;
The language extensions are in-depended from the language metadata as you might want to provide additional translations of your content without having the requirement to translate your whole site. The result is that you can have two separate lists related your language configuration of your whole system.&lt;br /&gt;
&lt;br /&gt;
===Purpose of additional language metadata===&lt;br /&gt;
In order to group/select section/category descriptions, module content or menu names based on their language an additional reference to the language is useful. This meta information will the improve the possibilities of extensions to sort out language specific content. E.g. a RSS feed extension can present information for different languages or a content list can present the number of articles in one specific language without complex and time intensive database queries over a 'text' type filed.&lt;br /&gt;
&lt;br /&gt;
==Specification &amp;amp; Discussion==&lt;br /&gt;
The idea of this change is described and discussed in the following threads:&lt;br /&gt;
===Whitepaper:===&lt;br /&gt;
* [http://forum.joomla.org/viewtopic.php?f=502&amp;amp;t=276920&amp;amp;start=0 13: Make Joomla! information more language aware]&lt;br /&gt;
&lt;br /&gt;
===Mailing list:===&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/f373aa9481a2b730?hl=en-GB# 1.6 and languages/internationalisation]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/fceebbb8e4d546e3?hl=en-GB# Can we implement a &amp;quot;language&amp;quot; parameter/field for other aspects than articles?]&lt;br /&gt;
&lt;br /&gt;
===Status variations in the published field===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|:=&lt;br /&gt;
|Published - active on the frontend.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
|:=&lt;br /&gt;
| Unpublished - not active on the frontend but able to be set by anyone with edit rights to be able to prepare content for that language.&lt;br /&gt;
|-&lt;br /&gt;
| -1&lt;br /&gt;
|:=&lt;br /&gt;
|Archived/Disabled - not shown in any lists, but available to turn on if you want it.&lt;br /&gt;
|-&lt;br /&gt;
|  2&lt;br /&gt;
|:=&lt;br /&gt;
|Trashed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Action items==&lt;br /&gt;
# we add the language field to all tables (as specified in the White paper, those having an alias so far?)&lt;br /&gt;
# we improve the language installer to keep this table in synch with the language extensions added&lt;br /&gt;
# if you remove a front-end language pack - should the language be unpublished (at least as it is not removed)?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Dev_cookie_jar]]&lt;br /&gt;
[[Category: Languages]]&lt;br /&gt;
[[Category:Specifications]]&lt;br /&gt;
[[Category:Specifications Version 1.6]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Language_Metadata</id>
		<title>Language Metadata</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Language_Metadata"/>
				<updated>2009-11-24T12:32:06Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: Added summary from our discussion on list&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General information about Language Metadata==&lt;br /&gt;
Within Joomla the specific language related meta information for articles, modules, menus and any other content is understood as &amp;quot;language metadata&amp;quot;. Within Joomla 1.5 it is already possible to tag an article with the specific language it is written in. However there is the limitation that you can only select languages which are installed as front-end language extension.&lt;br /&gt;
&lt;br /&gt;
===Joomla language extensions===&lt;br /&gt;
The CMS Joomla! supports many different languages in the frontend and backend applications already [http://extensions.joomla.org/extensions/languages/translations-for-joomla].&lt;br /&gt;
The language extensions are in-depended from the language metadata as you might want to provide additional translations of your content without having the requirement to translate your whole site. The result is that you can have two separate lists related your language configuration of your whole system.&lt;br /&gt;
&lt;br /&gt;
===Purpose of additional language metadata===&lt;br /&gt;
In order to group/select section/category descriptions, module content or menu names based on their language an additional reference to the language is useful. This meta information will the improve the possibilities of extensions to sort out language specific content. E.g. a RSS feed extension can present information for different languages or a content list can present the number of articles in one specific language without complex and time intensive database queries over a 'text' type filed.&lt;br /&gt;
&lt;br /&gt;
==Specification &amp;amp; Discussion==&lt;br /&gt;
The idea of this change is described and discussed in the following threads:&lt;br /&gt;
===Whitepaper:===&lt;br /&gt;
* [http://forum.joomla.org/viewtopic.php?f=502&amp;amp;t=276920&amp;amp;start=0 13: Make Joomla! information more language aware]&lt;br /&gt;
&lt;br /&gt;
===Mailing list:===&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/f373aa9481a2b730?hl=en-GB# 1.6 and languages/internationalisation]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/fceebbb8e4d546e3?hl=en-GB# Can we implement a &amp;quot;language&amp;quot; parameter/field for other aspects than articles?]&lt;br /&gt;
&lt;br /&gt;
===Status variations in the published field===&lt;br /&gt;
{|&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
|:=&lt;br /&gt;
|Published - active on the frontend.&lt;br /&gt;
|-&lt;br /&gt;
| 0&lt;br /&gt;
|:=&lt;br /&gt;
| Unpublished - not active on the frontend but able to be set by anyone with edit rights to be able to prepare content for that language.&lt;br /&gt;
|-&lt;br /&gt;
| -1&lt;br /&gt;
|:=&lt;br /&gt;
|Archived/Disabled - not shown in any lists, but available to turn on if you want it.&lt;br /&gt;
|-&lt;br /&gt;
|  2&lt;br /&gt;
|:=&lt;br /&gt;
|Trashed&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Action items==&lt;br /&gt;
# we add the language field to all tables (as specified in the White paper, those having an alias so far?)&lt;br /&gt;
# we improve the language installer to keep this table in synch with the language extensions added&lt;br /&gt;
# if you remove a front-end language pack - should the language be unpublished (at least as it is not removed)?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Dev_cookie_jar]]&lt;br /&gt;
[[Category: Languages]]&lt;br /&gt;
[[Category:Specifications]]&lt;br /&gt;
[[Category:Specifications Version 1.6]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Improving_the_language_awareness</id>
		<title>Improving the language awareness</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Improving_the_language_awareness"/>
				<updated>2009-11-24T12:07:24Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: Improving the language awareness moved to Language Metadata: Differentiation from language extensions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Language Metadata]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Language_Metadata</id>
		<title>Language Metadata</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Language_Metadata"/>
				<updated>2009-11-24T12:06:37Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: Improving the language awareness moved to Language Metadata: Differentiation from language extensions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CMS Joomla! supports many different languages in the frontend and backend applications already. Since Joomla! 1.5 the articles also do have a language parameter which allows to identify the language in which an article is written. However all other information such as section/category descriptions, module content or menu names do not have such a tag. This tag will the improve the possibilities of extensions to sort out language specific content. E.g. a RSS feed extension can present information for different languages or a content list can present the number of articles in one specific language without complex and time intensive database queries over a 'text' type filed.&lt;br /&gt;
&lt;br /&gt;
==Specification &amp;amp; Discussion==&lt;br /&gt;
The idea of this change is described and discussed in the following threads:&lt;br /&gt;
=Whitepaper:=&lt;br /&gt;
* [http://forum.joomla.org/viewtopic.php?f=502&amp;amp;t=276920&amp;amp;start=0 13: Make Joomla! information more language aware]&lt;br /&gt;
&lt;br /&gt;
=Mailing list:=&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/f373aa9481a2b730?hl=en-GB# 1.6 and languages/internationalisation]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/fceebbb8e4d546e3?hl=en-GB# Can we implement a &amp;quot;language&amp;quot; parameter/field for other aspects than articles?]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Developers</id>
		<title>Developers</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Developers"/>
				<updated>2009-11-23T21:12:32Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: /* Plugins */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Developer profile}}&lt;br /&gt;
&lt;br /&gt;
A complete contents list of all pages of interest to developers can be found in the [[:Category:Development|development category]].&lt;br /&gt;
&lt;br /&gt;
== Reference Material ==&lt;br /&gt;
&lt;br /&gt;
* [[Framework|Joomla Framework]].&lt;br /&gt;
* [http://api.joomla.org API documentation] automatically generated using phpDocumentor.&lt;br /&gt;
&lt;br /&gt;
== Articles and Tutorials ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.&lt;br /&gt;
* [[Setting up your workstation for extension development]] A guide to Joomla Extension development&lt;br /&gt;
* [http://community.joomla.org/blogs/community/828-webinar-using-eclipse-for-joomla-development.html Using Eclipse for Joomla! Development] Video webinar demonstrating overview of Eclipse features for Joomla! development&lt;br /&gt;
* [[Do not use die to debug]]&lt;br /&gt;
* [[How to debug your code]]&lt;br /&gt;
* [[Tutorial:Adapting Joomla 1.0 extensions to Joomla 1.5]]&lt;br /&gt;
* [[Version 1.6 Developer Notes]] {{JVer|1.6}}&lt;br /&gt;
* [[Tutorial:Joomla Beginning Developer Course]]&lt;br /&gt;
&lt;br /&gt;
=== Components ===&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.5}}====&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 1]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 2 - Adding a Model]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 3 - Using the Database]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 4 - Creating an Administrator Interface]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 5 - Basic Backend Framework]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 6 - Adding Backend Actions]]&lt;br /&gt;
&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.6}}====&lt;br /&gt;
* [[Developing a Model-View-Controller (MVC) Component for Joomla!1.6|Introduction]]&lt;br /&gt;
{{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla!1.6 - Contents}}&lt;br /&gt;
&lt;br /&gt;
====Other component topics====&lt;br /&gt;
* [[File Structure and Naming Conventions]]&lt;br /&gt;
* [[Component parameters]]&lt;br /&gt;
* [[Components:xml installfile]].  An example component XML installation file.&lt;br /&gt;
* [[How to use the JPane classes in a component]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[Supporting plugins in your component]]&lt;br /&gt;
* [[Tutorial:Adding Javascript moo.fx to your component WIP]]&lt;br /&gt;
* [[Creating a toolbar for your component]]&lt;br /&gt;
* [[Adding view layout configuration parameters]]&lt;br /&gt;
* [[How to implement XML-RPC in a component]]&lt;br /&gt;
* [[Using JPagination in your component]]&lt;br /&gt;
* [[Adding sortable columns to a table in a component]]&lt;br /&gt;
* [[Using multiple models in an MVC component]]&lt;br /&gt;
* [[Ajax using MooTools]]&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
* [[Tutorial:Creating a Hello World Module for Joomla 1.5]]&lt;br /&gt;
* [[How to create a module]]&lt;br /&gt;
&lt;br /&gt;
=== Plugins ===&lt;br /&gt;
* [[Plugin Developer Overview]]&lt;br /&gt;
* [[Tutorial:Plugins]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/184-how-to-create-a-joomla-plugin.html How to create a Joomla! Plugin]&lt;br /&gt;
* [[How to create a content plugin]]&lt;br /&gt;
* [[How to create a search plugin]]&lt;br /&gt;
* [[Supporting plugins in your component]]&lt;br /&gt;
* [[Tutorial:Creating an Authentication Plugin for Joomla 1.5]]&lt;br /&gt;
* [[Tutorial:Using plugins in your own extension]]&lt;br /&gt;
* [[Refactoring Plugins]] {{JVer|1.6}}&lt;br /&gt;
&lt;br /&gt;
=== Templates ===&lt;br /&gt;
* [[Understanding Output Overrides]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/165-understanding-output-overrides-in-joomla.html Understanding Output Overrides in Joomla! 1.5]&lt;br /&gt;
* [[Creating custom template parameter types]]&lt;br /&gt;
* [[How are templates executed?]]&lt;br /&gt;
* [[How to determine if the user is viewing the front page]]&lt;br /&gt;
* [[Tutorial:Template parameters]]&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
* [[Standard parameter types]]&lt;br /&gt;
* [[Custom parameter types]]&lt;br /&gt;
* [[Component parameters]]&lt;br /&gt;
* [[Creating custom template parameter types]]&lt;br /&gt;
See also: [[:Category:Parameters]]&lt;br /&gt;
&lt;br /&gt;
=== Security ===&lt;br /&gt;
* [[How to add CSRF anti-spoofing to forms]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/181-preventing-sql-injections.html Preventing SQL Injections]&lt;br /&gt;
* [[Tutorial:How to make your Joomla addon more secure WIP]]&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* [[How to use the database classes in your script]]&lt;br /&gt;
* [[How to use the JTable class]]&lt;br /&gt;
* [[How to connect to an external database]]&lt;br /&gt;
&lt;br /&gt;
=== Localisation ===&lt;br /&gt;
* [http://community.joomla.org/magazine/article/508-developer-localization-advancements-in-joomla-15.html Localization Advancements in Joomla! 1.5]&lt;br /&gt;
* [[Adding multi-language support]]&lt;br /&gt;
* [[Adding Joomfish functionality to custom components]]&lt;br /&gt;
* [[Specification of language files]] {{JVer|1.6}}&lt;br /&gt;
* [[Improving the language awareness]] of Joomla database and core (future versions)&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
* [[How to use the filesystem package]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[Adding AJAX to your component]].&lt;br /&gt;
* [[How to send email from components]]&lt;br /&gt;
* [[How to use the JToolBar class in the frontend]]&lt;br /&gt;
* [[Routing]]&lt;br /&gt;
* [[Joomla Routes and SEF]]&lt;br /&gt;
* [[API Execution Order]]&lt;br /&gt;
* [[Accessing the current user object]]&lt;br /&gt;
* [[Adding JavaScript and CSS to the page]]&lt;br /&gt;
* [[Constants]] used in the Joomla [[Framework]].&lt;br /&gt;
* [[Form validation]]&lt;br /&gt;
* [[How to create a custom button]]&lt;br /&gt;
* [[How to create a stand-alone application using the Joomla! Framework]]&lt;br /&gt;
* [[How to use user state variables]]&lt;br /&gt;
* [[Adding template overridable images in your extension]]&lt;br /&gt;
* [[Retrieving data from GET and POST requests]]&lt;br /&gt;
* [[Using caching to speed up your code]]&lt;br /&gt;
* [[Using a custom image in the menu bar title]]&lt;br /&gt;
* [[Using the installer API to support package installation]]&lt;br /&gt;
* [[Tutorial:How to add tooltips to your Joomla! website]]&lt;br /&gt;
* [[Xml-rpc|XML-RPC]]&lt;br /&gt;
* [[How to add breadcrumbs]]&lt;br /&gt;
* [[Creating a file uploader in your component]].&lt;br /&gt;
* [[Display error messages and notices]].&lt;br /&gt;
&lt;br /&gt;
== Contributing to Joomla Development ==&lt;br /&gt;
The development of Joomla itself is carried out by the [[Development Working Group]] and third party developers.&lt;br /&gt;
&lt;br /&gt;
* [[Participating in the community]]: a brief description of how people can get involved.&lt;br /&gt;
* [[Developer Email lists]]: a list of email lists for developers, including third party developers.&lt;br /&gt;
* [[Coding style and standards]] (To be reviewed).&lt;br /&gt;
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.&lt;br /&gt;
* [http://docs.joomla.org/Setting_up_your_workstation_for_Joomla!_development_--_Part_2#Check_Out_Joomla.21_Source_Code How to check out SVN Code]&lt;br /&gt;
* [[Patch submission guidelines]].&lt;br /&gt;
* [[Filing bugs and issues]].&lt;br /&gt;
* [[How to release a distribution tarball]].&lt;br /&gt;
&lt;br /&gt;
== Contributing to Joomla Developer Documentation ==&lt;br /&gt;
The development of Joomla developer documentation is carried out primarily by the [[Documentation Working Group]].  There are currently two sub-projects of interest to developers:&lt;br /&gt;
* [[Joomla! 1.5 Template Tutorials Project]]&lt;br /&gt;
* [[API Reference Project]]&lt;br /&gt;
&lt;br /&gt;
When creating a new page, ensure you place the following marker at the bottom of the page so it is included in the category list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;[[Category:Development]]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you locate other articles you think are relevant to developers, please add this marker to those pages.&lt;br /&gt;
&lt;br /&gt;
=== Suggested topics ===&lt;br /&gt;
This is a short list of articles that might be written to support developers.  Please feel free to add further topic ideas.&lt;br /&gt;
&lt;br /&gt;
* [[Adding configuration objects to modules and plugins]].&lt;br /&gt;
* [[Storing data in the session between page loads]].&lt;br /&gt;
* [[Suppressing output of extra HTML]].&lt;br /&gt;
* [[How to use the filter package]].&lt;br /&gt;
*: Describe how and when to use the Filter package and explain what needs to be filtered for various situations (for queries, for URLs, etc)&lt;br /&gt;
* [[How to use the registry package]]&lt;br /&gt;
* [[How to use JSimpleXML]].&lt;br /&gt;
*: How to load and store XML files and how to work with them&lt;br /&gt;
* [[How to create component feeds]] (RSS/ATOM)&lt;br /&gt;
* [[How to create PDF views]]&lt;br /&gt;
* [[How to generate paths for client side and server side]]&lt;br /&gt;
* [[How to access information from the request]]&lt;br /&gt;
*: This focuses on using the JBrowser class to retrieve information about the features available in the user's browser.&lt;br /&gt;
* [[How to create an editor plugin]]&lt;br /&gt;
* [[What can be done with a user plugin]]&lt;br /&gt;
* [[How to work with parameters]]&lt;br /&gt;
* [[How to cloak email addresses]]&lt;br /&gt;
* [[Using the caching system in your component]].&lt;br /&gt;
&lt;br /&gt;
==Joomla Security Guide==&lt;br /&gt;
Developers should also be aware of security issues.&lt;br /&gt;
{{Security Guide}}&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Specification_of_language_files</id>
		<title>Specification of language files</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Specification_of_language_files"/>
				<updated>2009-11-23T07:37:16Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains the changes of the language file specification from version 1.5 to 1.6. As this is currently under development it is not merged back to the central specification page.&lt;br /&gt;
&lt;br /&gt;
The 1.5 specification is described in [[Creating a language definition file]].&lt;br /&gt;
&lt;br /&gt;
==Overview of changes in Joomla 1.6==&lt;br /&gt;
# The KEY is now defined to be&lt;br /&gt;
##  without any whitespace. All whitespace shall be converted into a underscore '_'&lt;br /&gt;
## All KEY's in the frontend shall include a prefix of the extension&lt;br /&gt;
&lt;br /&gt;
==Related discussion threads in the development mailing list==&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/af76ac17eecbfe2d/fbfbbd15c5c60d71?lnk=gst&amp;amp;q=language#fbfbbd15c5c60d71 Another language question concerning 1.6 Optionen]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/213f8e6a885e42fe/310bb187a26d5965?lnk=gst&amp;amp;q=language#310bb187a26d5965 Here is a proposal from the com_localise team - Comments?]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/8ef8d089546b7734/ffea9ba8a60a5927?lnk=gst&amp;amp;q=language#ffea9ba8a60a5927 Hardcoded punctuation creates issues in language files Optionen]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/446ccaa42baafc66/af422d0b2de81c2f?lnk=gst&amp;amp;q=language#af422d0b2de81c2f Language String Namespaces]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Dev_cookie_jar]]&lt;br /&gt;
[[Category: Languages]]&lt;br /&gt;
[[Category:Specifications]]&lt;br /&gt;
[[Category:Specifications Version 1.6]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Language_Metadata</id>
		<title>Language Metadata</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Language_Metadata"/>
				<updated>2009-11-23T07:36:30Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CMS Joomla! supports many different languages in the frontend and backend applications already. Since Joomla! 1.5 the articles also do have a language parameter which allows to identify the language in which an article is written. However all other information such as section/category descriptions, module content or menu names do not have such a tag. This tag will the improve the possibilities of extensions to sort out language specific content. E.g. a RSS feed extension can present information for different languages or a content list can present the number of articles in one specific language without complex and time intensive database queries over a 'text' type filed.&lt;br /&gt;
&lt;br /&gt;
==Specification &amp;amp; Discussion==&lt;br /&gt;
The idea of this change is described and discussed in the following threads:&lt;br /&gt;
=Whitepaper:=&lt;br /&gt;
* [http://forum.joomla.org/viewtopic.php?f=502&amp;amp;t=276920&amp;amp;start=0 13: Make Joomla! information more language aware]&lt;br /&gt;
&lt;br /&gt;
=Mailing list:=&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/f373aa9481a2b730?hl=en-GB# 1.6 and languages/internationalisation]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/fceebbb8e4d546e3?hl=en-GB# Can we implement a &amp;quot;language&amp;quot; parameter/field for other aspects than articles?]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Language_Metadata</id>
		<title>Language Metadata</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Language_Metadata"/>
				<updated>2009-11-23T07:15:57Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: New page: The CMS Joomla! supports many different languages in the frontend and backend applications already. Since Joomla! 1.5 the articles also do have a language parameter which allows to identif...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The CMS Joomla! supports many different languages in the frontend and backend applications already. Since Joomla! 1.5 the articles also do have a language parameter which allows to identify the language in which an article is written. However all other information such as section/category descriptions, module content or menu names do not have such a tag. This tag will the improve the possibilities of extensions to sort out language specific content. E.g. a RSS feed extension can present information for different languages or a content list can present the number of articles in one specific language without complex and time intensive database queries over a 'text' type filed.&lt;br /&gt;
&lt;br /&gt;
==Specification &amp;amp; Discussion==&lt;br /&gt;
The idea of this change is described and discussed in the following threads:&lt;br /&gt;
=Whitepaper:=&lt;br /&gt;
* [http://forum.joomla.org/viewtopic.php?f=502&amp;amp;t=276920&amp;amp;start=0|13: Make Joomla! information more language aware]&lt;br /&gt;
&lt;br /&gt;
=Mailing list:=&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/f373aa9481a2b730?hl=en-GB#|1.6 and languages/internationalisation]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/fceebbb8e4d546e3?hl=en-GB#|Can we implement a &amp;quot;language&amp;quot; parameter/field for other aspects than articles?]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Developers</id>
		<title>Developers</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Developers"/>
				<updated>2009-11-23T07:01:44Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: /* Localisation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Developer profile}}&lt;br /&gt;
&lt;br /&gt;
A complete contents list of all pages of interest to developers can be found in the [[:Category:Development|development category]].&lt;br /&gt;
&lt;br /&gt;
== Reference Material ==&lt;br /&gt;
&lt;br /&gt;
* [[Framework|Joomla Framework]].&lt;br /&gt;
* [http://api.joomla.org API documentation] automatically generated using phpDocumentor.&lt;br /&gt;
&lt;br /&gt;
== Articles and Tutorials ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.&lt;br /&gt;
* [[Setting up your workstation for extension development]] A guide to Joomla Extension development&lt;br /&gt;
* [http://community.joomla.org/blogs/community/828-webinar-using-eclipse-for-joomla-development.html Using Eclipse for Joomla! Development] Video webinar demonstrating overview of Eclipse features for Joomla! development&lt;br /&gt;
* [[Do not use die to debug]]&lt;br /&gt;
* [[How to debug your code]]&lt;br /&gt;
* [[Tutorial:Adapting Joomla 1.0 extensions to Joomla 1.5]]&lt;br /&gt;
* [[Version 1.6 Developer Notes]] {{JVer|1.6}}&lt;br /&gt;
* [[Tutorial:Joomla Beginning Developer Course]]&lt;br /&gt;
&lt;br /&gt;
=== Components ===&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.5}}====&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 1]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 2 - Adding a Model]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 3 - Using the Database]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 4 - Creating an Administrator Interface]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 5 - Basic Backend Framework]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 6 - Adding Backend Actions]]&lt;br /&gt;
&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.6}}====&lt;br /&gt;
* [[Developing a Model-View-Controller (MVC) Component for Joomla!1.6|Introduction]]&lt;br /&gt;
{{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla!1.6 - Contents}}&lt;br /&gt;
&lt;br /&gt;
====Other component topics====&lt;br /&gt;
* [[File Structure and Naming Conventions]]&lt;br /&gt;
* [[Component parameters]]&lt;br /&gt;
* [[Components:xml installfile]].  An example component XML installation file.&lt;br /&gt;
* [[How to use the JPane classes in a component]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[Supporting plugins in your component]]&lt;br /&gt;
* [[Tutorial:Adding Javascript moo.fx to your component WIP]]&lt;br /&gt;
* [[Creating a toolbar for your component]]&lt;br /&gt;
* [[Adding view layout configuration parameters]]&lt;br /&gt;
* [[How to implement XML-RPC in a component]]&lt;br /&gt;
* [[Using JPagination in your component]]&lt;br /&gt;
* [[Adding sortable columns to a table in a component]]&lt;br /&gt;
* [[Using multiple models in an MVC component]]&lt;br /&gt;
* [[Ajax using MooTools]]&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
* [[Tutorial:Creating a Hello World Module for Joomla 1.5]]&lt;br /&gt;
* [[How to create a module]]&lt;br /&gt;
&lt;br /&gt;
=== Plugins ===&lt;br /&gt;
* [[Plugin Developer Overview]]&lt;br /&gt;
* [[Tutorial:Plugins]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/184-how-to-create-a-joomla-plugin.html How to create a Joomla! Plugin]&lt;br /&gt;
* [[How to create a content plugin]]&lt;br /&gt;
* [[How to create a search plugin]]&lt;br /&gt;
* [[Supporting plugins in your component]]&lt;br /&gt;
* [[Tutorial:Creating an Authentication Plugin for Joomla 1.5]]&lt;br /&gt;
* [[Tutorial:Using plugins in your own extension]]&lt;br /&gt;
&lt;br /&gt;
=== Templates ===&lt;br /&gt;
* [[Understanding Output Overrides]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/165-understanding-output-overrides-in-joomla.html Understanding Output Overrides in Joomla! 1.5]&lt;br /&gt;
* [[Creating custom template parameter types]]&lt;br /&gt;
* [[How are templates executed?]]&lt;br /&gt;
* [[How to determine if the user is viewing the front page]]&lt;br /&gt;
* [[Tutorial:Template parameters]]&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
* [[Standard parameter types]]&lt;br /&gt;
* [[Custom parameter types]]&lt;br /&gt;
* [[Component parameters]]&lt;br /&gt;
* [[Creating custom template parameter types]]&lt;br /&gt;
See also: [[:Category:Parameters]]&lt;br /&gt;
&lt;br /&gt;
=== Security ===&lt;br /&gt;
* [[How to add CSRF anti-spoofing to forms]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/181-preventing-sql-injections.html Preventing SQL Injections]&lt;br /&gt;
* [[Tutorial:How to make your Joomla addon more secure WIP]]&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* [[How to use the database classes in your script]]&lt;br /&gt;
* [[How to use the JTable class]]&lt;br /&gt;
* [[How to connect to an external database]]&lt;br /&gt;
&lt;br /&gt;
=== Localisation ===&lt;br /&gt;
* [http://community.joomla.org/magazine/article/508-developer-localization-advancements-in-joomla-15.html Localization Advancements in Joomla! 1.5]&lt;br /&gt;
* [[Adding multi-language support]]&lt;br /&gt;
* [[Adding Joomfish functionality to custom components]]&lt;br /&gt;
* [[Specification of language files]] {{JVer|1.6}}&lt;br /&gt;
* [[Improving the language awareness]] of Joomla database and core (future versions)&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
* [[How to use the filesystem package]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[Adding AJAX to your component]].&lt;br /&gt;
* [[How to send email from components]]&lt;br /&gt;
* [[How to use the JToolBar class in the frontend]]&lt;br /&gt;
* [[Routing]]&lt;br /&gt;
* [[Joomla Routes and SEF]]&lt;br /&gt;
* [[API Execution Order]]&lt;br /&gt;
* [[Accessing the current user object]]&lt;br /&gt;
* [[Adding JavaScript and CSS to the page]]&lt;br /&gt;
* [[Constants]] used in the Joomla [[Framework]].&lt;br /&gt;
* [[Form validation]]&lt;br /&gt;
* [[How to create a custom button]]&lt;br /&gt;
* [[How to create a stand-alone application using the Joomla! Framework]]&lt;br /&gt;
* [[How to use user state variables]]&lt;br /&gt;
* [[Adding template overridable images in your extension]]&lt;br /&gt;
* [[Retrieving data from GET and POST requests]]&lt;br /&gt;
* [[Using caching to speed up your code]]&lt;br /&gt;
* [[Using a custom image in the menu bar title]]&lt;br /&gt;
* [[Using the installer API to support package installation]]&lt;br /&gt;
* [[Tutorial:How to add tooltips to your Joomla! website]]&lt;br /&gt;
* [[Xml-rpc|XML-RPC]]&lt;br /&gt;
* [[How to add breadcrumbs]]&lt;br /&gt;
* [[Creating a file uploader in your component]].&lt;br /&gt;
* [[Display error messages and notices]].&lt;br /&gt;
&lt;br /&gt;
== Contributing to Joomla Development ==&lt;br /&gt;
The development of Joomla itself is carried out by the [[Development Working Group]] and third party developers.&lt;br /&gt;
&lt;br /&gt;
* [[Participating in the community]]: a brief description of how people can get involved.&lt;br /&gt;
* [[Developer Email lists]]: a list of email lists for developers, including third party developers.&lt;br /&gt;
* [[Coding style and standards]] (To be reviewed).&lt;br /&gt;
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.&lt;br /&gt;
* [http://docs.joomla.org/Setting_up_your_workstation_for_Joomla!_development_--_Part_2#Check_Out_Joomla.21_Source_Code How to check out SVN Code]&lt;br /&gt;
* [[Patch submission guidelines]].&lt;br /&gt;
* [[Filing bugs and issues]].&lt;br /&gt;
* [[How to release a distribution tarball]].&lt;br /&gt;
&lt;br /&gt;
== Contributing to Joomla Developer Documentation ==&lt;br /&gt;
The development of Joomla developer documentation is carried out primarily by the [[Documentation Working Group]].  There are currently two sub-projects of interest to developers:&lt;br /&gt;
* [[Joomla! 1.5 Template Tutorials Project]]&lt;br /&gt;
* [[API Reference Project]]&lt;br /&gt;
&lt;br /&gt;
When creating a new page, ensure you place the following marker at the bottom of the page so it is included in the category list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;[[Category:Development]]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you locate other articles you think are relevant to developers, please add this marker to those pages.&lt;br /&gt;
&lt;br /&gt;
=== Suggested topics ===&lt;br /&gt;
This is a short list of articles that might be written to support developers.  Please feel free to add further topic ideas.&lt;br /&gt;
&lt;br /&gt;
* [[Adding configuration objects to modules and plugins]].&lt;br /&gt;
* [[Storing data in the session between page loads]].&lt;br /&gt;
* [[Suppressing output of extra HTML]].&lt;br /&gt;
* [[How to use the filter package]].&lt;br /&gt;
*: Describe how and when to use the Filter package and explain what needs to be filtered for various situations (for queries, for URLs, etc)&lt;br /&gt;
* [[How to use the registry package]]&lt;br /&gt;
* [[How to use JSimpleXML]].&lt;br /&gt;
*: How to load and store XML files and how to work with them&lt;br /&gt;
* [[How to create component feeds]] (RSS/ATOM)&lt;br /&gt;
* [[How to create PDF views]]&lt;br /&gt;
* [[How to generate paths for client side and server side]]&lt;br /&gt;
* [[How to access information from the request]]&lt;br /&gt;
*: This focuses on using the JBrowser class to retrieve information about the features available in the user's browser.&lt;br /&gt;
* [[How to create an editor plugin]]&lt;br /&gt;
* [[What can be done with a user plugin]]&lt;br /&gt;
* [[How to work with parameters]]&lt;br /&gt;
* [[How to cloak email addresses]]&lt;br /&gt;
* [[Using the caching system in your component]].&lt;br /&gt;
&lt;br /&gt;
==Joomla Security Guide==&lt;br /&gt;
Developers should also be aware of security issues.&lt;br /&gt;
{{Security Guide}}&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Creating_a_language_definition_file</id>
		<title>Creating a language definition file</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Creating_a_language_definition_file"/>
				<updated>2009-11-22T19:27:00Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Important note: Joomla language INI files must be saved as UTF-8 without the Byte Order Mark (BOM)&amp;lt;ref name=&amp;quot;ftn2&amp;quot;&amp;gt;For more information on Byte Order Mark see [http://unicode.org/faq/utf_bom.html#BOM http://unicode.org/faq/utf_bom.html#BOM]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The format of language definition files is very basic. Blanks lines and lines beginning with “#” are ignored and the latter may be used to add comments to the file. Each line consists of a pair of strings separated by an equals sign like this&lt;br /&gt;
&lt;br /&gt;
 KEY=Value&lt;br /&gt;
&lt;br /&gt;
where “''KEY''” is a string to be translated and “''Value''” is the translated string. For example&lt;br /&gt;
&lt;br /&gt;
 ADDITIONAL INFORMATION=Additional Information&lt;br /&gt;
&lt;br /&gt;
The “''KEY''” must be in all capitals or the string will not be found. The case of the source string does not matter as strings are folded to upper case before searching takes place. So “additional information”, “Additional Information” or even “AdDiTiOnAl InFoRmAtIoN” will be matched.&lt;br /&gt;
&lt;br /&gt;
The “''KEY''” can include spaces and other punctuation characters but there should not be any spaces either side of the equals sign as spaces are significant.  If more than one entry has the same left-hand side, the last one to be encountered is the one that will be used.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;''VALUE''&amp;quot; cannot include double-quote characters (&amp;quot;).  To get a double-quote character you must use the HTML special character sequence &amp;quot;&amp;amp;amp;quot;&amp;quot; instead.  Single-quote characters (') are valid.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;references/&amp;gt;[[Category:Languages]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
More information about the discussed changed for Joomla 1.6 can be found on the page [[Specification of language files]] {{JVer|1.6}}&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Developers</id>
		<title>Developers</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Developers"/>
				<updated>2009-11-22T19:24:11Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: /* Localisation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Developer profile}}&lt;br /&gt;
&lt;br /&gt;
A complete contents list of all pages of interest to developers can be found in the [[:Category:Development|development category]].&lt;br /&gt;
&lt;br /&gt;
== Reference Material ==&lt;br /&gt;
&lt;br /&gt;
* [[Framework|Joomla Framework]].&lt;br /&gt;
* [http://api.joomla.org API documentation] automatically generated using phpDocumentor.&lt;br /&gt;
&lt;br /&gt;
== Articles and Tutorials ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.&lt;br /&gt;
* [[Setting up your workstation for extension development]] A guide to Joomla Extension development&lt;br /&gt;
* [http://community.joomla.org/blogs/community/828-webinar-using-eclipse-for-joomla-development.html Using Eclipse for Joomla! Development] Video webinar demonstrating overview of Eclipse features for Joomla! development&lt;br /&gt;
* [[Do not use die to debug]]&lt;br /&gt;
* [[How to debug your code]]&lt;br /&gt;
* [[Tutorial:Adapting Joomla 1.0 extensions to Joomla 1.5]]&lt;br /&gt;
* [[Version 1.6 Developer Notes]] {{JVer|1.6}}&lt;br /&gt;
* [[Tutorial:Joomla Beginning Developer Course]]&lt;br /&gt;
&lt;br /&gt;
=== Components ===&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.5}}====&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 1]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 2 - Adding a Model]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 3 - Using the Database]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 4 - Creating an Administrator Interface]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 5 - Basic Backend Framework]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 6 - Adding Backend Actions]]&lt;br /&gt;
&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.6}}====&lt;br /&gt;
* [[Developing a Model-View-Controller (MVC) Component for Joomla!1.6|Introduction]]&lt;br /&gt;
{{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla!1.6 - Contents}}&lt;br /&gt;
&lt;br /&gt;
====Other component topics====&lt;br /&gt;
* [[File Structure and Naming Conventions]]&lt;br /&gt;
* [[Component parameters]]&lt;br /&gt;
* [[Components:xml installfile]].  An example component XML installation file.&lt;br /&gt;
* [[How to use the JPane classes in a component]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[Supporting plugins in your component]]&lt;br /&gt;
* [[Tutorial:Adding Javascript moo.fx to your component WIP]]&lt;br /&gt;
* [[Creating a toolbar for your component]]&lt;br /&gt;
* [[Adding view layout configuration parameters]]&lt;br /&gt;
* [[How to implement XML-RPC in a component]]&lt;br /&gt;
* [[Using JPagination in your component]]&lt;br /&gt;
* [[Adding sortable columns to a table in a component]]&lt;br /&gt;
* [[Using multiple models in an MVC component]]&lt;br /&gt;
* [[Ajax using MooTools]]&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
* [[Tutorial:Creating a Hello World Module for Joomla 1.5]]&lt;br /&gt;
* [[How to create a module]]&lt;br /&gt;
&lt;br /&gt;
=== Plugins ===&lt;br /&gt;
* [[Plugin Developer Overview]]&lt;br /&gt;
* [[Tutorial:Plugins]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/184-how-to-create-a-joomla-plugin.html How to create a Joomla! Plugin]&lt;br /&gt;
* [[How to create a content plugin]]&lt;br /&gt;
* [[How to create a search plugin]]&lt;br /&gt;
* [[Supporting plugins in your component]]&lt;br /&gt;
* [[Tutorial:Creating an Authentication Plugin for Joomla 1.5]]&lt;br /&gt;
* [[Tutorial:Using plugins in your own extension]]&lt;br /&gt;
&lt;br /&gt;
=== Templates ===&lt;br /&gt;
* [[Understanding Output Overrides]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/165-understanding-output-overrides-in-joomla.html Understanding Output Overrides in Joomla! 1.5]&lt;br /&gt;
* [[Creating custom template parameter types]]&lt;br /&gt;
* [[How are templates executed?]]&lt;br /&gt;
* [[How to determine if the user is viewing the front page]]&lt;br /&gt;
* [[Tutorial:Template parameters]]&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
* [[Standard parameter types]]&lt;br /&gt;
* [[Custom parameter types]]&lt;br /&gt;
* [[Component parameters]]&lt;br /&gt;
* [[Creating custom template parameter types]]&lt;br /&gt;
See also: [[:Category:Parameters]]&lt;br /&gt;
&lt;br /&gt;
=== Security ===&lt;br /&gt;
* [[How to add CSRF anti-spoofing to forms]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/181-preventing-sql-injections.html Preventing SQL Injections]&lt;br /&gt;
* [[Tutorial:How to make your Joomla addon more secure WIP]]&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* [[How to use the database classes in your script]]&lt;br /&gt;
* [[How to use the JTable class]]&lt;br /&gt;
* [[How to connect to an external database]]&lt;br /&gt;
&lt;br /&gt;
=== Localisation ===&lt;br /&gt;
* [http://community.joomla.org/magazine/article/508-developer-localization-advancements-in-joomla-15.html Localization Advancements in Joomla! 1.5]&lt;br /&gt;
* [[Adding multi-language support]]&lt;br /&gt;
* [[Adding Joomfish functionality to custom components]]&lt;br /&gt;
* [[Specification of language files]] {{JVer|1.6}}&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
* [[How to use the filesystem package]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[Adding AJAX to your component]].&lt;br /&gt;
* [[How to send email from components]]&lt;br /&gt;
* [[How to use the JToolBar class in the frontend]]&lt;br /&gt;
* [[Routing]]&lt;br /&gt;
* [[Joomla Routes and SEF]]&lt;br /&gt;
* [[API Execution Order]]&lt;br /&gt;
* [[Accessing the current user object]]&lt;br /&gt;
* [[Adding JavaScript and CSS to the page]]&lt;br /&gt;
* [[Constants]] used in the Joomla [[Framework]].&lt;br /&gt;
* [[Form validation]]&lt;br /&gt;
* [[How to create a custom button]]&lt;br /&gt;
* [[How to create a stand-alone application using the Joomla! Framework]]&lt;br /&gt;
* [[How to use user state variables]]&lt;br /&gt;
* [[Adding template overridable images in your extension]]&lt;br /&gt;
* [[Retrieving data from GET and POST requests]]&lt;br /&gt;
* [[Using caching to speed up your code]]&lt;br /&gt;
* [[Using a custom image in the menu bar title]]&lt;br /&gt;
* [[Using the installer API to support package installation]]&lt;br /&gt;
* [[Tutorial:How to add tooltips to your Joomla! website]]&lt;br /&gt;
* [[Xml-rpc|XML-RPC]]&lt;br /&gt;
* [[How to add breadcrumbs]]&lt;br /&gt;
* [[Creating a file uploader in your component]].&lt;br /&gt;
* [[Display error messages and notices]].&lt;br /&gt;
&lt;br /&gt;
== Contributing to Joomla Development ==&lt;br /&gt;
The development of Joomla itself is carried out by the [[Development Working Group]] and third party developers.&lt;br /&gt;
&lt;br /&gt;
* [[Participating in the community]]: a brief description of how people can get involved.&lt;br /&gt;
* [[Developer Email lists]]: a list of email lists for developers, including third party developers.&lt;br /&gt;
* [[Coding style and standards]] (To be reviewed).&lt;br /&gt;
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.&lt;br /&gt;
* [http://docs.joomla.org/Setting_up_your_workstation_for_Joomla!_development_--_Part_2#Check_Out_Joomla.21_Source_Code How to check out SVN Code]&lt;br /&gt;
* [[Patch submission guidelines]].&lt;br /&gt;
* [[Filing bugs and issues]].&lt;br /&gt;
* [[How to release a distribution tarball]].&lt;br /&gt;
&lt;br /&gt;
== Contributing to Joomla Developer Documentation ==&lt;br /&gt;
The development of Joomla developer documentation is carried out primarily by the [[Documentation Working Group]].  There are currently two sub-projects of interest to developers:&lt;br /&gt;
* [[Joomla! 1.5 Template Tutorials Project]]&lt;br /&gt;
* [[API Reference Project]]&lt;br /&gt;
&lt;br /&gt;
When creating a new page, ensure you place the following marker at the bottom of the page so it is included in the category list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;[[Category:Development]]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you locate other articles you think are relevant to developers, please add this marker to those pages.&lt;br /&gt;
&lt;br /&gt;
=== Suggested topics ===&lt;br /&gt;
This is a short list of articles that might be written to support developers.  Please feel free to add further topic ideas.&lt;br /&gt;
&lt;br /&gt;
* [[Adding configuration objects to modules and plugins]].&lt;br /&gt;
* [[Storing data in the session between page loads]].&lt;br /&gt;
* [[Suppressing output of extra HTML]].&lt;br /&gt;
* [[How to use the filter package]].&lt;br /&gt;
*: Describe how and when to use the Filter package and explain what needs to be filtered for various situations (for queries, for URLs, etc)&lt;br /&gt;
* [[How to use the registry package]]&lt;br /&gt;
* [[How to use JSimpleXML]].&lt;br /&gt;
*: How to load and store XML files and how to work with them&lt;br /&gt;
* [[How to create component feeds]] (RSS/ATOM)&lt;br /&gt;
* [[How to create PDF views]]&lt;br /&gt;
* [[How to generate paths for client side and server side]]&lt;br /&gt;
* [[How to access information from the request]]&lt;br /&gt;
*: This focuses on using the JBrowser class to retrieve information about the features available in the user's browser.&lt;br /&gt;
* [[How to create an editor plugin]]&lt;br /&gt;
* [[What can be done with a user plugin]]&lt;br /&gt;
* [[How to work with parameters]]&lt;br /&gt;
* [[How to cloak email addresses]]&lt;br /&gt;
* [[Using the caching system in your component]].&lt;br /&gt;
&lt;br /&gt;
==Joomla Security Guide==&lt;br /&gt;
Developers should also be aware of security issues.&lt;br /&gt;
{{Security Guide}}&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/1.6:_Specification_of_language_files</id>
		<title>1.6: Specification of language files</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/1.6:_Specification_of_language_files"/>
				<updated>2009-11-22T19:23:38Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: 1.6: Specification of language files moved to Specification of language files: Removing the 1.6 tag in the name, added the version info with the new icon&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Specification of language files]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Specification_of_language_files</id>
		<title>Specification of language files</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Specification_of_language_files"/>
				<updated>2009-11-22T19:23:38Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: 1.6: Specification of language files moved to Specification of language files: Removing the 1.6 tag in the name, added the version info with the new icon&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains the changes of the language file specification from version 1.5 to 1.6. As this is currently under development it is not merged back to the central specification page.&lt;br /&gt;
&lt;br /&gt;
The 1.5 specification is described in [[Creating a language definition file]].&lt;br /&gt;
&lt;br /&gt;
==Overview of changes in Joomla 1.6==&lt;br /&gt;
# The KEY is now defined to be&lt;br /&gt;
##  without any whitespace. All whitespace shall be converted into a underscore '_'&lt;br /&gt;
## All KEY's in the frontend shall include a prefix of the extension&lt;br /&gt;
&lt;br /&gt;
==Related discussion threads in the development mailing list==&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/af76ac17eecbfe2d/fbfbbd15c5c60d71?lnk=gst&amp;amp;q=language#fbfbbd15c5c60d71|Another language question concerning 1.6 Optionen]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/213f8e6a885e42fe/310bb187a26d5965?lnk=gst&amp;amp;q=language#310bb187a26d5965|Here is a proposal from the com_localise team - Comments?]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/8ef8d089546b7734/ffea9ba8a60a5927?lnk=gst&amp;amp;q=language#ffea9ba8a60a5927|Hardcoded punctuation creates issues in language files Optionen]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/446ccaa42baafc66/af422d0b2de81c2f?lnk=gst&amp;amp;q=language#af422d0b2de81c2f|Language String Namespaces]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Dev_cookie_jar]]&lt;br /&gt;
[[Category: Languages]]&lt;br /&gt;
[[Category:Specifications]]&lt;br /&gt;
[[Category:Specifications Version 1.6]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Developers</id>
		<title>Developers</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Developers"/>
				<updated>2009-11-22T19:22:46Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: /* Localisation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Developer profile}}&lt;br /&gt;
&lt;br /&gt;
A complete contents list of all pages of interest to developers can be found in the [[:Category:Development|development category]].&lt;br /&gt;
&lt;br /&gt;
== Reference Material ==&lt;br /&gt;
&lt;br /&gt;
* [[Framework|Joomla Framework]].&lt;br /&gt;
* [http://api.joomla.org API documentation] automatically generated using phpDocumentor.&lt;br /&gt;
&lt;br /&gt;
== Articles and Tutorials ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.&lt;br /&gt;
* [[Setting up your workstation for extension development]] A guide to Joomla Extension development&lt;br /&gt;
* [http://community.joomla.org/blogs/community/828-webinar-using-eclipse-for-joomla-development.html Using Eclipse for Joomla! Development] Video webinar demonstrating overview of Eclipse features for Joomla! development&lt;br /&gt;
* [[Do not use die to debug]]&lt;br /&gt;
* [[How to debug your code]]&lt;br /&gt;
* [[Tutorial:Adapting Joomla 1.0 extensions to Joomla 1.5]]&lt;br /&gt;
* [[Version 1.6 Developer Notes]] {{JVer|1.6}}&lt;br /&gt;
* [[Tutorial:Joomla Beginning Developer Course]]&lt;br /&gt;
&lt;br /&gt;
=== Components ===&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.5}}====&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 1]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 2 - Adding a Model]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 3 - Using the Database]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 4 - Creating an Administrator Interface]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 5 - Basic Backend Framework]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 6 - Adding Backend Actions]]&lt;br /&gt;
&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.6}}====&lt;br /&gt;
* [[Developing a Model-View-Controller (MVC) Component for Joomla!1.6|Introduction]]&lt;br /&gt;
{{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla!1.6 - Contents}}&lt;br /&gt;
&lt;br /&gt;
====Other component topics====&lt;br /&gt;
* [[File Structure and Naming Conventions]]&lt;br /&gt;
* [[Component parameters]]&lt;br /&gt;
* [[Components:xml installfile]].  An example component XML installation file.&lt;br /&gt;
* [[How to use the JPane classes in a component]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[Supporting plugins in your component]]&lt;br /&gt;
* [[Tutorial:Adding Javascript moo.fx to your component WIP]]&lt;br /&gt;
* [[Creating a toolbar for your component]]&lt;br /&gt;
* [[Adding view layout configuration parameters]]&lt;br /&gt;
* [[How to implement XML-RPC in a component]]&lt;br /&gt;
* [[Using JPagination in your component]]&lt;br /&gt;
* [[Adding sortable columns to a table in a component]]&lt;br /&gt;
* [[Using multiple models in an MVC component]]&lt;br /&gt;
* [[Ajax using MooTools]]&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
* [[Tutorial:Creating a Hello World Module for Joomla 1.5]]&lt;br /&gt;
* [[How to create a module]]&lt;br /&gt;
&lt;br /&gt;
=== Plugins ===&lt;br /&gt;
* [[Plugin Developer Overview]]&lt;br /&gt;
* [[Tutorial:Plugins]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/184-how-to-create-a-joomla-plugin.html How to create a Joomla! Plugin]&lt;br /&gt;
* [[How to create a content plugin]]&lt;br /&gt;
* [[How to create a search plugin]]&lt;br /&gt;
* [[Supporting plugins in your component]]&lt;br /&gt;
* [[Tutorial:Creating an Authentication Plugin for Joomla 1.5]]&lt;br /&gt;
* [[Tutorial:Using plugins in your own extension]]&lt;br /&gt;
&lt;br /&gt;
=== Templates ===&lt;br /&gt;
* [[Understanding Output Overrides]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/165-understanding-output-overrides-in-joomla.html Understanding Output Overrides in Joomla! 1.5]&lt;br /&gt;
* [[Creating custom template parameter types]]&lt;br /&gt;
* [[How are templates executed?]]&lt;br /&gt;
* [[How to determine if the user is viewing the front page]]&lt;br /&gt;
* [[Tutorial:Template parameters]]&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
* [[Standard parameter types]]&lt;br /&gt;
* [[Custom parameter types]]&lt;br /&gt;
* [[Component parameters]]&lt;br /&gt;
* [[Creating custom template parameter types]]&lt;br /&gt;
See also: [[:Category:Parameters]]&lt;br /&gt;
&lt;br /&gt;
=== Security ===&lt;br /&gt;
* [[How to add CSRF anti-spoofing to forms]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/181-preventing-sql-injections.html Preventing SQL Injections]&lt;br /&gt;
* [[Tutorial:How to make your Joomla addon more secure WIP]]&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* [[How to use the database classes in your script]]&lt;br /&gt;
* [[How to use the JTable class]]&lt;br /&gt;
* [[How to connect to an external database]]&lt;br /&gt;
&lt;br /&gt;
=== Localisation ===&lt;br /&gt;
* [http://community.joomla.org/magazine/article/508-developer-localization-advancements-in-joomla-15.html Localization Advancements in Joomla! 1.5]&lt;br /&gt;
* [[Adding multi-language support]]&lt;br /&gt;
* [[Adding Joomfish functionality to custom components]]&lt;br /&gt;
* [[1.6: Specification of language files]] {{JVer|1.6}}&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
* [[How to use the filesystem package]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[Adding AJAX to your component]].&lt;br /&gt;
* [[How to send email from components]]&lt;br /&gt;
* [[How to use the JToolBar class in the frontend]]&lt;br /&gt;
* [[Routing]]&lt;br /&gt;
* [[Joomla Routes and SEF]]&lt;br /&gt;
* [[API Execution Order]]&lt;br /&gt;
* [[Accessing the current user object]]&lt;br /&gt;
* [[Adding JavaScript and CSS to the page]]&lt;br /&gt;
* [[Constants]] used in the Joomla [[Framework]].&lt;br /&gt;
* [[Form validation]]&lt;br /&gt;
* [[How to create a custom button]]&lt;br /&gt;
* [[How to create a stand-alone application using the Joomla! Framework]]&lt;br /&gt;
* [[How to use user state variables]]&lt;br /&gt;
* [[Adding template overridable images in your extension]]&lt;br /&gt;
* [[Retrieving data from GET and POST requests]]&lt;br /&gt;
* [[Using caching to speed up your code]]&lt;br /&gt;
* [[Using a custom image in the menu bar title]]&lt;br /&gt;
* [[Using the installer API to support package installation]]&lt;br /&gt;
* [[Tutorial:How to add tooltips to your Joomla! website]]&lt;br /&gt;
* [[Xml-rpc|XML-RPC]]&lt;br /&gt;
* [[How to add breadcrumbs]]&lt;br /&gt;
* [[Creating a file uploader in your component]].&lt;br /&gt;
* [[Display error messages and notices]].&lt;br /&gt;
&lt;br /&gt;
== Contributing to Joomla Development ==&lt;br /&gt;
The development of Joomla itself is carried out by the [[Development Working Group]] and third party developers.&lt;br /&gt;
&lt;br /&gt;
* [[Participating in the community]]: a brief description of how people can get involved.&lt;br /&gt;
* [[Developer Email lists]]: a list of email lists for developers, including third party developers.&lt;br /&gt;
* [[Coding style and standards]] (To be reviewed).&lt;br /&gt;
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.&lt;br /&gt;
* [http://docs.joomla.org/Setting_up_your_workstation_for_Joomla!_development_--_Part_2#Check_Out_Joomla.21_Source_Code How to check out SVN Code]&lt;br /&gt;
* [[Patch submission guidelines]].&lt;br /&gt;
* [[Filing bugs and issues]].&lt;br /&gt;
* [[How to release a distribution tarball]].&lt;br /&gt;
&lt;br /&gt;
== Contributing to Joomla Developer Documentation ==&lt;br /&gt;
The development of Joomla developer documentation is carried out primarily by the [[Documentation Working Group]].  There are currently two sub-projects of interest to developers:&lt;br /&gt;
* [[Joomla! 1.5 Template Tutorials Project]]&lt;br /&gt;
* [[API Reference Project]]&lt;br /&gt;
&lt;br /&gt;
When creating a new page, ensure you place the following marker at the bottom of the page so it is included in the category list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;[[Category:Development]]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you locate other articles you think are relevant to developers, please add this marker to those pages.&lt;br /&gt;
&lt;br /&gt;
=== Suggested topics ===&lt;br /&gt;
This is a short list of articles that might be written to support developers.  Please feel free to add further topic ideas.&lt;br /&gt;
&lt;br /&gt;
* [[Adding configuration objects to modules and plugins]].&lt;br /&gt;
* [[Storing data in the session between page loads]].&lt;br /&gt;
* [[Suppressing output of extra HTML]].&lt;br /&gt;
* [[How to use the filter package]].&lt;br /&gt;
*: Describe how and when to use the Filter package and explain what needs to be filtered for various situations (for queries, for URLs, etc)&lt;br /&gt;
* [[How to use the registry package]]&lt;br /&gt;
* [[How to use JSimpleXML]].&lt;br /&gt;
*: How to load and store XML files and how to work with them&lt;br /&gt;
* [[How to create component feeds]] (RSS/ATOM)&lt;br /&gt;
* [[How to create PDF views]]&lt;br /&gt;
* [[How to generate paths for client side and server side]]&lt;br /&gt;
* [[How to access information from the request]]&lt;br /&gt;
*: This focuses on using the JBrowser class to retrieve information about the features available in the user's browser.&lt;br /&gt;
* [[How to create an editor plugin]]&lt;br /&gt;
* [[What can be done with a user plugin]]&lt;br /&gt;
* [[How to work with parameters]]&lt;br /&gt;
* [[How to cloak email addresses]]&lt;br /&gt;
* [[Using the caching system in your component]].&lt;br /&gt;
&lt;br /&gt;
==Joomla Security Guide==&lt;br /&gt;
Developers should also be aware of security issues.&lt;br /&gt;
{{Security Guide}}&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Creating_a_language_definition_file</id>
		<title>Creating a language definition file</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Creating_a_language_definition_file"/>
				<updated>2009-11-19T09:58:40Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Important note: Joomla language INI files must be saved as UTF-8 without the Byte Order Mark (BOM)&amp;lt;ref name=&amp;quot;ftn2&amp;quot;&amp;gt;For more information on Byte Order Mark see [http://unicode.org/faq/utf_bom.html#BOM http://unicode.org/faq/utf_bom.html#BOM]&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The format of language definition files is very basic. Blanks lines and lines beginning with “#” are ignored and the latter may be used to add comments to the file. Each line consists of a pair of strings separated by an equals sign like this&lt;br /&gt;
&lt;br /&gt;
 KEY=Value&lt;br /&gt;
&lt;br /&gt;
where “''KEY''” is a string to be translated and “''Value''” is the translated string. For example&lt;br /&gt;
&lt;br /&gt;
 ADDITIONAL INFORMATION=Additional Information&lt;br /&gt;
&lt;br /&gt;
The “''KEY''” must be in all capitals or the string will not be found. The case of the source string does not matter as strings are folded to upper case before searching takes place. So “additional information”, “Additional Information” or even “AdDiTiOnAl InFoRmAtIoN” will be matched.&lt;br /&gt;
&lt;br /&gt;
The “''KEY''” can include spaces and other punctuation characters but there should not be any spaces either side of the equals sign as spaces are significant.  If more than one entry has the same left-hand side, the last one to be encountered is the one that will be used.&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;''VALUE''&amp;quot; cannot include double-quote characters (&amp;quot;).  To get a double-quote character you must use the HTML special character sequence &amp;quot;&amp;amp;amp;quot;&amp;quot; instead.  Single-quote characters (') are valid.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;references/&amp;gt;[[Category:Languages]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
More information about the discussed changed for Joomla 1.6 can be found on the page [[1.6: Specification of language files]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Specification_of_language_files</id>
		<title>Specification of language files</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Specification_of_language_files"/>
				<updated>2009-11-19T09:08:11Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains the changes of the language file specification from version 1.5 to 1.6. As this is currently under development it is not merged back to the central specification page.&lt;br /&gt;
&lt;br /&gt;
The 1.5 specification is described in [[Creating a language definition file]].&lt;br /&gt;
&lt;br /&gt;
==Overview of changes in Joomla 1.6==&lt;br /&gt;
# The KEY is now defined to be&lt;br /&gt;
##  without any whitespace. All whitespace shall be converted into a underscore '_'&lt;br /&gt;
## All KEY's in the frontend shall include a prefix of the extension&lt;br /&gt;
&lt;br /&gt;
==Related discussion threads in the development mailing list==&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/af76ac17eecbfe2d/fbfbbd15c5c60d71?lnk=gst&amp;amp;q=language#fbfbbd15c5c60d71|Another language question concerning 1.6 Optionen]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/213f8e6a885e42fe/310bb187a26d5965?lnk=gst&amp;amp;q=language#310bb187a26d5965|Here is a proposal from the com_localise team - Comments?]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/8ef8d089546b7734/ffea9ba8a60a5927?lnk=gst&amp;amp;q=language#ffea9ba8a60a5927|Hardcoded punctuation creates issues in language files Optionen]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/446ccaa42baafc66/af422d0b2de81c2f?lnk=gst&amp;amp;q=language#af422d0b2de81c2f|Language String Namespaces]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Dev_cookie_jar]]&lt;br /&gt;
[[Category: Languages]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Specification_of_language_files</id>
		<title>Specification of language files</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Specification_of_language_files"/>
				<updated>2009-11-19T09:05:56Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains the changes of the language file specification from version 1.5 to 1.6. As this is currently under development it is not merged back to the central specification page.&lt;br /&gt;
&lt;br /&gt;
The 1.5 specification is described in [[Creating a language definition file]].&lt;br /&gt;
&lt;br /&gt;
==Overview of changes in Joomla 1.6==&lt;br /&gt;
# The KEY is now defined to be&lt;br /&gt;
##  without any whitespace. All whitespace shall be converted into a underscore '_'&lt;br /&gt;
## All KEY's in the frontend shall include a prefix of the extension&lt;br /&gt;
&lt;br /&gt;
==Related discussion threads in the development mailing list==&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/af76ac17eecbfe2d/fbfbbd15c5c60d71?lnk=gst&amp;amp;q=language#fbfbbd15c5c60d71|Another language question concerning 1.6 Optionen]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/213f8e6a885e42fe/310bb187a26d5965?lnk=gst&amp;amp;q=language#310bb187a26d5965|Here is a proposal from the com_localise team - Comments?]&lt;br /&gt;
* [http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/8ef8d089546b7734/ffea9ba8a60a5927?lnk=gst&amp;amp;q=language#ffea9ba8a60a5927|Hardcoded punctuation creates issues in language files Optionen]&lt;br /&gt;
[[Category:Dev_cookie_jar]]&lt;br /&gt;
[[Category: Languages]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Category:Dev_cookie_jar</id>
		<title>Category:Dev cookie jar</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Category:Dev_cookie_jar"/>
				<updated>2009-11-19T08:42:31Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: /* Joomla! CMS Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The development tasks listed below need to be completed before we can release Joomla 1.6.&lt;br /&gt;
&lt;br /&gt;
If you would like to work on any of these items you are welcome to do so.  Please add {{tl|inuse}} and your name at the top of the page while you are working on the item so we don't get unnecessary duplication of effort.&lt;br /&gt;
&lt;br /&gt;
Feel free to add notes to the task page in order to clarify the task, but questions or discussion should be made on the talk page or on the [http://groups.google.com/group/joomla-dev-general development mailing list].&lt;br /&gt;
&lt;br /&gt;
Keep us informed about your progress by adding something to the page regularly.  If you don't update the page after 3 days we may release the task so someone else can work on it.  If you need help, don't be afraid to ask.&lt;br /&gt;
&lt;br /&gt;
To get write access to this wiki you need to [[Special:Userlogin|create an account]].  This requires a valid email address.  Once the registration process is complete you will automatically be granted write access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Development Working Group]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Specification_of_language_files</id>
		<title>Specification of language files</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Specification_of_language_files"/>
				<updated>2009-11-19T08:39:14Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: New page: This page explains the specification of the language files in 1.6   Category:Dev_cookie_jar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains the specification of the language files in 1.6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Dev_cookie_jar]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Developers</id>
		<title>Developers</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Developers"/>
				<updated>2009-11-19T08:33:35Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: /* Localisation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Developer profile}}&lt;br /&gt;
&lt;br /&gt;
A complete contents list of all pages of interest to developers can be found in the [[:Category:Development|development category]].&lt;br /&gt;
&lt;br /&gt;
== Reference Material ==&lt;br /&gt;
&lt;br /&gt;
* [[Framework|Joomla Framework]].&lt;br /&gt;
* [http://api.joomla.org API documentation] automatically generated using phpDocumentor.&lt;br /&gt;
&lt;br /&gt;
== Articles and Tutorials ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.&lt;br /&gt;
* [[Setting up your workstation for extension development]] A guide to Joomla Extension development&lt;br /&gt;
* [http://community.joomla.org/blogs/community/828-webinar-using-eclipse-for-joomla-development.html Using Eclipse for Joomla! Development] Video webinar demonstrating overview of Eclipse features for Joomla! development&lt;br /&gt;
* [[Do not use die to debug]]&lt;br /&gt;
* [[How to debug your code]]&lt;br /&gt;
* [[Tutorial:Adapting Joomla 1.0 extensions to Joomla 1.5]]&lt;br /&gt;
* [[Version 1.6 Developer Notes]] {{JVer|1.6}}&lt;br /&gt;
* [[Tutorial:Joomla Beginning Developer Course]]&lt;br /&gt;
&lt;br /&gt;
=== Components ===&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.5}}====&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 1]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 2 - Adding a Model]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 3 - Using the Database]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 4 - Creating an Administrator Interface]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 5 - Basic Backend Framework]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 6 - Adding Backend Actions]]&lt;br /&gt;
&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.6}}====&lt;br /&gt;
* [[Developing a Model-View-Controller (MVC) Component for Joomla!1.6|Introduction]]&lt;br /&gt;
{{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla!1.6 - Contents}}&lt;br /&gt;
&lt;br /&gt;
====Other component topics====&lt;br /&gt;
* [[File Structure and Naming Conventions]]&lt;br /&gt;
* [[Component parameters]]&lt;br /&gt;
* [[Components:xml installfile]].  An example component XML installation file.&lt;br /&gt;
* [[How to use the JPane classes in a component]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[Supporting plugins in your component]]&lt;br /&gt;
* [[Tutorial:Adding Javascript moo.fx to your component WIP]]&lt;br /&gt;
* [[Creating a toolbar for your component]]&lt;br /&gt;
* [[Adding view layout configuration parameters]]&lt;br /&gt;
* [[How to implement XML-RPC in a component]]&lt;br /&gt;
* [[Using JPagination in your component]]&lt;br /&gt;
* [[Adding sortable columns to a table in a component]]&lt;br /&gt;
* [[Using multiple models in an MVC component]]&lt;br /&gt;
* [[Ajax using MooTools]]&lt;br /&gt;
&lt;br /&gt;
=== Modules ===&lt;br /&gt;
* [[Tutorial:Creating a Hello World Module for Joomla 1.5]]&lt;br /&gt;
* [[How to create a module]]&lt;br /&gt;
&lt;br /&gt;
=== Plugins ===&lt;br /&gt;
* [[Plugin Developer Overview]]&lt;br /&gt;
* [[Tutorial:Plugins]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/184-how-to-create-a-joomla-plugin.html How to create a Joomla! Plugin]&lt;br /&gt;
* [[How to create a content plugin]]&lt;br /&gt;
* [[How to create a search plugin]]&lt;br /&gt;
* [[Supporting plugins in your component]]&lt;br /&gt;
* [[Tutorial:Creating an Authentication Plugin for Joomla 1.5]]&lt;br /&gt;
* [[Tutorial:Using plugins in your own extension]]&lt;br /&gt;
&lt;br /&gt;
=== Templates ===&lt;br /&gt;
* [[Understanding Output Overrides]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/165-understanding-output-overrides-in-joomla.html Understanding Output Overrides in Joomla! 1.5]&lt;br /&gt;
* [[Creating custom template parameter types]]&lt;br /&gt;
* [[How are templates executed?]]&lt;br /&gt;
* [[How to determine if the user is viewing the front page]]&lt;br /&gt;
* [[Tutorial:Template parameters]]&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
* [[Standard parameter types]]&lt;br /&gt;
* [[Custom parameter types]]&lt;br /&gt;
* [[Component parameters]]&lt;br /&gt;
* [[Creating custom template parameter types]]&lt;br /&gt;
See also: [[:Category:Parameters]]&lt;br /&gt;
&lt;br /&gt;
=== Security ===&lt;br /&gt;
* [[How to add CSRF anti-spoofing to forms]]&lt;br /&gt;
* [http://developer.joomla.org/tutorials/181-preventing-sql-injections.html Preventing SQL Injections]&lt;br /&gt;
* [[Tutorial:How to make your Joomla addon more secure WIP]]&lt;br /&gt;
&lt;br /&gt;
=== Database ===&lt;br /&gt;
* [[How to use the database classes in your script]]&lt;br /&gt;
* [[How to use the JTable class]]&lt;br /&gt;
* [[How to connect to an external database]]&lt;br /&gt;
&lt;br /&gt;
=== Localisation ===&lt;br /&gt;
* [http://community.joomla.org/magazine/article/508-developer-localization-advancements-in-joomla-15.html Localization Advancements in Joomla! 1.5]&lt;br /&gt;
* [[Adding multi-language support]]&lt;br /&gt;
* [[Adding Joomfish functionality to custom components]]&lt;br /&gt;
* [[1.6: Specification of language files]]&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous ===&lt;br /&gt;
* [[How to use the filesystem package]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[Adding AJAX to your component]].&lt;br /&gt;
* [[How to send email from components]]&lt;br /&gt;
* [[How to use the JToolBar class in the frontend]]&lt;br /&gt;
* [[Routing]]&lt;br /&gt;
* [[Joomla Routes and SEF]]&lt;br /&gt;
* [[API Execution Order]]&lt;br /&gt;
* [[Accessing the current user object]]&lt;br /&gt;
* [[Adding JavaScript and CSS to the page]]&lt;br /&gt;
* [[Constants]] used in the Joomla [[Framework]].&lt;br /&gt;
* [[Form validation]]&lt;br /&gt;
* [[How to create a custom button]]&lt;br /&gt;
* [[How to create a stand-alone application using the Joomla! Framework]]&lt;br /&gt;
* [[How to use user state variables]]&lt;br /&gt;
* [[Adding template overridable images in your extension]]&lt;br /&gt;
* [[Retrieving data from GET and POST requests]]&lt;br /&gt;
* [[Using caching to speed up your code]]&lt;br /&gt;
* [[Using a custom image in the menu bar title]]&lt;br /&gt;
* [[Using the installer API to support package installation]]&lt;br /&gt;
* [[Tutorial:How to add tooltips to your Joomla! website]]&lt;br /&gt;
* [[Xml-rpc|XML-RPC]]&lt;br /&gt;
* [[How to add breadcrumbs]]&lt;br /&gt;
* [[Creating a file uploader in your component]].&lt;br /&gt;
* [[Display error messages and notices]].&lt;br /&gt;
&lt;br /&gt;
== Contributing to Joomla Development ==&lt;br /&gt;
The development of Joomla itself is carried out by the [[Development Working Group]] and third party developers.&lt;br /&gt;
&lt;br /&gt;
* [[Participating in the community]]: a brief description of how people can get involved.&lt;br /&gt;
* [[Developer Email lists]]: a list of email lists for developers, including third party developers.&lt;br /&gt;
* [[Coding style and standards]] (To be reviewed).&lt;br /&gt;
* [[Setting up your workstation for Joomla! development]].  A step-by-step guide to installing the Eclipse IDE on your local workstation for Joomla! development.&lt;br /&gt;
* [http://docs.joomla.org/Setting_up_your_workstation_for_Joomla!_development_--_Part_2#Check_Out_Joomla.21_Source_Code How to check out SVN Code]&lt;br /&gt;
* [[Patch submission guidelines]].&lt;br /&gt;
* [[Filing bugs and issues]].&lt;br /&gt;
* [[How to release a distribution tarball]].&lt;br /&gt;
&lt;br /&gt;
== Contributing to Joomla Developer Documentation ==&lt;br /&gt;
The development of Joomla developer documentation is carried out primarily by the [[Documentation Working Group]].  There are currently two sub-projects of interest to developers:&lt;br /&gt;
* [[Joomla! 1.5 Template Tutorials Project]]&lt;br /&gt;
* [[API Reference Project]]&lt;br /&gt;
&lt;br /&gt;
When creating a new page, ensure you place the following marker at the bottom of the page so it is included in the category list:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;[[Category:Development]]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you locate other articles you think are relevant to developers, please add this marker to those pages.&lt;br /&gt;
&lt;br /&gt;
=== Suggested topics ===&lt;br /&gt;
This is a short list of articles that might be written to support developers.  Please feel free to add further topic ideas.&lt;br /&gt;
&lt;br /&gt;
* [[Adding configuration objects to modules and plugins]].&lt;br /&gt;
* [[Storing data in the session between page loads]].&lt;br /&gt;
* [[Suppressing output of extra HTML]].&lt;br /&gt;
* [[How to use the filter package]].&lt;br /&gt;
*: Describe how and when to use the Filter package and explain what needs to be filtered for various situations (for queries, for URLs, etc)&lt;br /&gt;
* [[How to use the registry package]]&lt;br /&gt;
* [[How to use JSimpleXML]].&lt;br /&gt;
*: How to load and store XML files and how to work with them&lt;br /&gt;
* [[How to create component feeds]] (RSS/ATOM)&lt;br /&gt;
* [[How to create PDF views]]&lt;br /&gt;
* [[How to generate paths for client side and server side]]&lt;br /&gt;
* [[How to access information from the request]]&lt;br /&gt;
*: This focuses on using the JBrowser class to retrieve information about the features available in the user's browser.&lt;br /&gt;
* [[How to create an editor plugin]]&lt;br /&gt;
* [[What can be done with a user plugin]]&lt;br /&gt;
* [[How to work with parameters]]&lt;br /&gt;
* [[How to cloak email addresses]]&lt;br /&gt;
* [[Using the caching system in your component]].&lt;br /&gt;
&lt;br /&gt;
==Joomla Security Guide==&lt;br /&gt;
Developers should also be aware of security issues.&lt;br /&gt;
{{Security Guide}}&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Category:Dev_cookie_jar</id>
		<title>Category:Dev cookie jar</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Category:Dev_cookie_jar"/>
				<updated>2009-11-18T17:39:59Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: /* Joomla! CMS Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The development tasks listed below need to be completed before we can release Joomla 1.6.&lt;br /&gt;
&lt;br /&gt;
If you would like to work on any of these items you are welcome to do so.  Please add {{tl|inuse}} and your name at the top of the page while you are working on the item so we don't get unnecessary duplication of effort.&lt;br /&gt;
&lt;br /&gt;
Feel free to add notes to the task page in order to clarify the task, but questions or discussion should be made on the talk page or on the [http://groups.google.com/group/joomla-dev-general development mailing list].&lt;br /&gt;
&lt;br /&gt;
Keep us informed about your progress by adding something to the page regularly.  If you don't update the page after 3 days we may release the task so someone else can work on it.  If you need help, don't be afraid to ask.&lt;br /&gt;
&lt;br /&gt;
To get write access to this wiki you need to [[Special:Userlogin|create an account]].  This requires a valid email address.  Once the registration process is complete you will automatically be granted write access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Joomla! CMS Development ==&lt;br /&gt;
* [[UTF8 slugs &amp;amp; domain names]] ([http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/1a8e1b122a5c2f03?hl=en-GB|joomla dev cms thread])&lt;br /&gt;
&lt;br /&gt;
[[Category:Development Working Group]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Category:Dev_cookie_jar</id>
		<title>Category:Dev cookie jar</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Category:Dev_cookie_jar"/>
				<updated>2009-11-18T17:26:08Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The development tasks listed below need to be completed before we can release Joomla 1.6.&lt;br /&gt;
&lt;br /&gt;
If you would like to work on any of these items you are welcome to do so.  Please add {{tl|inuse}} and your name at the top of the page while you are working on the item so we don't get unnecessary duplication of effort.&lt;br /&gt;
&lt;br /&gt;
Feel free to add notes to the task page in order to clarify the task, but questions or discussion should be made on the talk page or on the [http://groups.google.com/group/joomla-dev-general development mailing list].&lt;br /&gt;
&lt;br /&gt;
Keep us informed about your progress by adding something to the page regularly.  If you don't update the page after 3 days we may release the task so someone else can work on it.  If you need help, don't be afraid to ask.&lt;br /&gt;
&lt;br /&gt;
To get write access to this wiki you need to [[Special:Userlogin|create an account]].  This requires a valid email address.  Once the registration process is complete you will automatically be granted write access.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Joomla! CMS Development ==&lt;br /&gt;
* UTF8 slugs &amp;amp; domain names ([http://groups.google.com/group/joomla-dev-cms/browse_thread/thread/1a8e1b122a5c2f03?hl=en-GB|joomla dev cms thread])&lt;br /&gt;
&lt;br /&gt;
[[Category:Development Working Group]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Category:Version_1.5.10_FAQ</id>
		<title>Category:Version 1.5.10 FAQ</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Category:Version_1.5.10_FAQ"/>
				<updated>2009-03-04T18:05:23Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: New page: These FAQs are specific to the Joomla! 1.5.10 release.  Only issues that are specific to this release will be listed here, together with suggested resolutions.  Please add information to t...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These FAQs are specific to the Joomla! 1.5.10 release.  Only issues that are specific to this release will be listed here, together with suggested resolutions.  Please add information to this resource. The Joomla! [[Bug Squad]] will watch over this page to ensure any new bugs are added to the tracker and resolved. Continue to use the Joomla! forums for support requests as this is not a substitute for posting there, but rather a common location for the community to gather release issues.&lt;br /&gt;
&lt;br /&gt;
[[Category:Version 1.5 FAQ]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Events_Working_Group</id>
		<title>Events Working Group</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Events_Working_Group"/>
				<updated>2009-02-05T12:16:05Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The events working group or better the team of events mentors is responsible for the support for all world wide events. There is a small team of mentors that assist the regional organizers in their preparation for Joomla!Days or help the regional JUG's to participate on an exhibition or conference.&lt;br /&gt;
&lt;br /&gt;
You can find further details about Joomla! events on the community page at: [http://community.joomla.org/events.html http://community.joomla.org/events.html]&lt;br /&gt;
&lt;br /&gt;
==Requesting a Joomla!Day or support for an other event==&lt;br /&gt;
If you are interested in organizing a Joomla! related event such as Joomla!Day or a exhibition in which you promote Joomla! a formal request is required.&lt;br /&gt;
&lt;br /&gt;
Please sent this request directly to ''events at lists.joomla.org''. A member of the supporting events mentors will get in touch with you and will formally give you the required approval.&lt;br /&gt;
&lt;br /&gt;
==Public information related events==&lt;br /&gt;
All event discussions are taking place in the [http://forum.joomla.org/viewforum.php?f=306 joomla forum]. Within this forum the team of event organizers world wide also has a private sub-forum in which you can freely speak about your issues and problems with your events. You will find others who are also trying to get their events organized and help.&lt;br /&gt;
&lt;br /&gt;
We have a set of public documents and templates for event which are located in the [http://joomlacode.org/gf/project/jmarcom_assets/ joomlacode project]. There is more material available after your registered your event (see above).&lt;br /&gt;
&lt;br /&gt;
==Events Team Wiki==&lt;br /&gt;
We intend to grow this wiki with further information and guidelines how to organize your event. If you have suggestions ideas and so on please feel free to add a page to this wiki below.&lt;br /&gt;
&lt;br /&gt;
== Upcoming Joomla!Days ==&lt;br /&gt;
&lt;br /&gt;
'''Joomla!Day Las Vegas, USA - April 3,4 &amp;amp; 5 2009'''&lt;br /&gt;
&lt;br /&gt;
The Joomla Project will be landing in the southwest U.S. for Joomla Day Las Vegas on April 3-5, 2009. Taking place at the Montelago Village Resort, the theme of the event is &amp;quot;See Joomla's Future.&amp;quot; With the rapid development of Joomla 1.6, all developers, designers, integrators, and site administrators will want to get first hand knowledge of how to take advantage of new features and keep their work cutting-edge. Speakers will include Development Coordinators Andrew Eddie, Anthony Ferrara, Louis Landry, and Wilco Jansen.&lt;br /&gt;
&lt;br /&gt;
In a peaceful venue outside exciting Las Vegas, Nevada, an engaging lineup of speakers (including SEO expert Steve Burge and development team member and cutting edge extension developer Rob Schley) will cover a wide range of topics, from beginners new to Joomla to advanced development. &lt;br /&gt;
&lt;br /&gt;
Training classes on Friday, April 3 will cover three distinct tracks for Beginner, Intermediate, and Advanced users—ranging from setting up your first Joomla site to security and programming. Those with Joomla 1.0.x sites and extensions willl get plenty of help moving into the future from core developers.&lt;br /&gt;
&lt;br /&gt;
Saturday’s conference will cover a wide breadth of topics from an Introduction to Joomla to design and development. Whether you're a seasoned developer or someone just getting their feet wet, there will be plenty to learn and all will gain valuable guidance and networking opportunities.&lt;br /&gt;
&lt;br /&gt;
Taking advantage of all the developers and project leaders gathered for the event, Sunday will be reserved for a code event like &amp;quot;Pizza, Bugs &amp;amp; Fun&amp;quot; or a code sprint and focused on Joomla 1.6 development. This is a great chance to join the community-oriented development process recently outlined for Joomla 1.6.&lt;br /&gt;
&lt;br /&gt;
More information on the speakers and the venue can be found at http://lasvegas.joomladayusa.org. Register by February 15th for Joomla Day Saturday to guarantee a personalized Joomla Day t-shirt. Thanks to all event sponsors such as Rochen Performance Hosting, JoomlaTraining.com, JCal Pro and Beyond Innovation Studios.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Joomla!Day Madistone, UK - March 13 &amp;amp; 14 2009'''&lt;br /&gt;
&lt;br /&gt;
The second UK Joomla! Day is set to take place over Friday, 13th and Saturday, 14th March 2009, at the Oakwood House Conference Centre, Maidstone, Kent. This is a community event and accordingly is not split into separate business and community days. We will however be running multiple tracks of presentations during the two days. These will appeal to all levels of Joomla! user from all business sectors. You choose which presentations you wish to attend.&lt;br /&gt;
&lt;br /&gt;
The main tracks for the presentations cover Administration, Hosting and Security, Development, Design, and industry Sectors, and within those there will be content applicable to Newcomers, Intermediates, Developers, Designers, Web hosts, and pretty much anyone else you can think of with an interest in Joomla! Most of the presentations are scheduled for 45 minutes each.&lt;br /&gt;
&lt;br /&gt;
In addition there will be plenary presentations on:&lt;br /&gt;
&lt;br /&gt;
- Q&amp;amp;A sessions at the end of each day&lt;br /&gt;
- creating JUG’s in the UK&lt;br /&gt;
- where the project is currently … with 1.5&lt;br /&gt;
- where the project is going … with 1.6 and beyond&lt;br /&gt;
- Fame-4-5 (9 x 5 minutes)&lt;br /&gt;
- Lump it on Louis&lt;br /&gt;
&lt;br /&gt;
We have a tremendous line-up of the Joomla! good and great (and others ;) ) all aiming to make this a memorable event for the UK Joomla! community.&lt;br /&gt;
&lt;br /&gt;
There are social activities for the event too; on Thursday night we will be holding the Eleventh Hour event for the early arrivals to get together and socialise with the Joomla! Core Team and OSM Board members, and your peers; and on Friday night we will have the Shining event (well it is Friday the 13th after all!) which will follow a similar vein. There will also be plenty of other opportunities to network with many of the good and great as well as your own peers.&lt;br /&gt;
&lt;br /&gt;
The event cost is just £45 per day, plus a small ticket purchase fee. This price includes the presentations, coffee breaks, and a buffet luncheon. There are no separate charges for any of the presentations, breakout groups, or workshops that will take place. There is wireless connectivity throughout the conference centre in case you have time to check your e-mails. We will also be providing a CD of the event, and there will be a &amp;quot;goodie bag&amp;quot;. Please note that this is an advanced ticket sales event only; there will be no tickets available at the door on the days of the event.&lt;br /&gt;
&lt;br /&gt;
This is a not-for-profit community event based on the ideals of Joomla!&lt;br /&gt;
&lt;br /&gt;
We remain open for sponsorship offers and are still looking for volunteers to help out over the two days.&lt;br /&gt;
&lt;br /&gt;
For the very latest details be sure to check out http://joomladay.org.uk as often as possible.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Joomla!Day Melbourne AU, February 7 &amp;amp; 8 2009'''&lt;br /&gt;
&lt;br /&gt;
On February 7 &amp;amp; 8, 2009, is a weekend packed with presentations and workshops, embracing and catering for the entire Joomla community—from beginners to developers.&lt;br /&gt;
&lt;br /&gt;
The program on Saturday (7 Feb) comprises a progression of Joomla related topics. We begin with essential background information, setting up a Joomla site, moving through design, extensions, security and improvements, before unleashing Joomla's largely unknown features that make a developer's life much easier. And there won't be a JoomlaDay in Melbourne without a major release just out or imminent: Get to know Joomla 1.6 with all its exciting new features and the long awaited extended access control level.&lt;br /&gt;
&lt;br /&gt;
On Sunday (8 Feb) we offer two amazing workshops with Andrew Eddie and Jim Stewart for people who are serious about Joomla.&lt;br /&gt;
&lt;br /&gt;
All details are on http://melbourne.joomladay.org.au.&lt;br /&gt;
&lt;br /&gt;
Please note that Melbourne JoomlaDay 08 was sold out. Register early to secure your spot. We are able to upgrade the lecture theatre if registrations come in EARLY!!!&lt;br /&gt;
&lt;br /&gt;
Melbourne JoomlaDay 09 is sponsored by Zac-Ware, Rochen Hosting, and the Australian Mathematical Science Insitute.&lt;br /&gt;
&lt;br /&gt;
If you like to get the full exposure to a large Australia wide Joomla audience, read more about our Melbourne JoomlaDay 09 Sponsorship Packages.&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Events_Working_Group</id>
		<title>Events Working Group</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Events_Working_Group"/>
				<updated>2009-01-23T16:42:11Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The events working group or better the team of events mentors is responsible for the support for all world wide events. There is a small team of mentors that assist the regional organizers in their preparation for Joomla!Days or help the regional JUG's to participate on an exhibition or conference.&lt;br /&gt;
&lt;br /&gt;
You can find further details about Joomla! events on the community page at: [http://community.joomla.org/events.html http://community.joomla.org/events.html]&lt;br /&gt;
&lt;br /&gt;
==Requesting a Joomla!Day or support for an other event==&lt;br /&gt;
If you are interested in organizing a Joomla! related event such as Joomla!Day or a exhibition in which you promote Joomla! a formal request is required.&lt;br /&gt;
&lt;br /&gt;
Please sent this request directly to ''events at lists.joomla.org''. A member of the supporting events mentors will get in touch with you and will formally give you the required approval.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Public information related events==&lt;br /&gt;
All event discussions are taking place in the [http://forum.joomla.org/viewforum.php?f=306|joomla forum]. Within this forum the team of event organizers world wide also has a private sub-forum in which you can freely speak about your issues and problems with your events. You will find others who are also trying to get their events organized and help.&lt;br /&gt;
&lt;br /&gt;
We have a set of public documents and templates for event which are located in the [http://joomlacode.org/gf/project/joomla_events/docman/|joomlacode project]. There is more material available after your registered your event (see above).&lt;br /&gt;
&lt;br /&gt;
==Events Team Wiki==&lt;br /&gt;
We intend to grow this wiki with further information and guidelines how to organize your event. If you have suggestions ideas and so on please feel free to add a page to this wiki below.&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Events_Working_Group</id>
		<title>Events Working Group</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Events_Working_Group"/>
				<updated>2009-01-06T20:04:42Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: New page: The events working group or better the team of events mentors is responsible for the support for all world wide events. There is a small team of mentors that assist the regional organizers...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The events working group or better the team of events mentors is responsible for the support for all world wide events. There is a small team of mentors that assist the regional organizers in their preparation for Joomla!Days or help the regional JUG's to participate on an exhibition or conference.&lt;br /&gt;
&lt;br /&gt;
You can find further details about Joomla! events on the community page at: [http://community.joomla.org/events.html http://community.joomla.org/events.html]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Developers</id>
		<title>Developers</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Developers"/>
				<updated>2008-03-24T16:20:46Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Developer profile}}&lt;br /&gt;
&lt;br /&gt;
* Developer guidelines.&lt;br /&gt;
* [[Participating in the community]]: a brief description of how people can get involved.&lt;br /&gt;
* [[Coding style and standards]] (To be reviewed).&lt;br /&gt;
* Secure coding guidelines.&lt;br /&gt;
* Error message conventions.&lt;br /&gt;
* Exception handling.&lt;br /&gt;
* [[Patch submission guidelines]].&lt;br /&gt;
* [[Filing bugs and issues]].&lt;br /&gt;
* [[How to release a distribution tarball]].&lt;br /&gt;
* Release numbering, compatibility and deprecation.&lt;br /&gt;
* [[Localisation]] (L18N): an explanation of how localisation is implemented in Joomla! 1.5 and how to use it.&lt;br /&gt;
* [[Routing]]: how it works and how to use it&lt;br /&gt;
&lt;br /&gt;
* Complete/update/review the wiki API reference (assumes this has been moved from DocuWiki to MediaWiki).&lt;br /&gt;
* Update developer tutorials and how-to's currently on dev.joomla.org&lt;br /&gt;
** Review all material under the tutorials heading at http://dev.joomla.org/component/option,com_jd-wiki/Itemid,32/&lt;br /&gt;
** Recommend material to be migrated over to docs.joomla.org&lt;br /&gt;
** Update material that is to be migrated over to docs.joomla.org&lt;br /&gt;
* [[How to debug your code]].&lt;br /&gt;
** Write a tutorial giving debugging tips for new developers.  Perhaps list different kinds of problems code might have and suggested approaches to locating the problem and fixing it.&lt;br /&gt;
* [[Using the core parameter types]] (To be reviewed)&lt;br /&gt;
* [[Creating custom XML parameter types]].&lt;br /&gt;
** Write a document detailing the steps to creating a custom XML Parameter type.  Explain how these types can be used in templates, modules, components and plugins.&lt;br /&gt;
* [[Creating component preferences]] (ready for review).&lt;br /&gt;
** Write a document describing how to create an xml file for modifying component preferences and how to add a Parameters button to an administrator toolbar.&lt;br /&gt;
* [[Adding JavaScript and CSS to the page]].&lt;br /&gt;
** Write a document describing how to add JavaScript and CSS to the page.  Explain how to decide whether JavaScript should go in the head block or in the page itself and how to insert the JavaScript.&lt;br /&gt;
* [[Accessing the current user object]].&lt;br /&gt;
** Write a document describing how to access the current user object and also indicate what type of information can be found in the object, and how that data should be retrieved and/or set.&lt;br /&gt;
* [[Adding AJAX to your component]].&lt;br /&gt;
** Write a document describing how to add AJAX to an MVC component.  If desired, use the MVC Hello World tutorial as a base.  Describe where various elements should go in the MVC design pattern.  Also describe how to implement MVC in a module (these need supporting components to do AJAX).&lt;br /&gt;
* [[Using JPagination in your component]] (frontend and backend).&lt;br /&gt;
** Describe the steps necessary to add pagination to a component using the JPagination class.  Describe the differences between frontend and backend.&lt;br /&gt;
* [[Creating a toolbar for your component]].&lt;br /&gt;
* [[Adding configuration objects to modules and plugins]].&lt;br /&gt;
* [[Storing data in the session between page loads]].&lt;br /&gt;
* [[Using the caching system in your component]].&lt;br /&gt;
* [[Creating a file uploader in your component]].&lt;br /&gt;
* [[Suppressing output of extra HTML]].&lt;br /&gt;
* [[Supporting plugins in your component]].&lt;br /&gt;
** Explain how to add triggers so that your component can fire custom events.&lt;br /&gt;
* [[Adding multi-language support]].&lt;br /&gt;
* [[Retrieving data from GET and POST requests]] - the Joomla! way.&lt;br /&gt;
* [[Adding view layout configuration parameters]].&lt;br /&gt;
** Explain how to create an XML file that will allow users to configure views.&lt;br /&gt;
* [[Using the installer API to support package installation]].&lt;br /&gt;
** Explain how to use the JInstaller API to install add-ons to components&lt;br /&gt;
* [[How to implement XML-RPC in a component]]&lt;br /&gt;
** There are two ways to do this:&lt;br /&gt;
*** Implement it using an XML-RPC plugin&lt;br /&gt;
*** Implement it in the component itself using raw views&lt;br /&gt;
* [[How to use the filesystem package]]&lt;br /&gt;
* [[How to use the filter package]]&lt;br /&gt;
** Describe how and when to use the Filter package and explain what needs to be filtered for various situations (for queries, for URLs, etc)&lt;br /&gt;
* [[How to use the registry package]]&lt;br /&gt;
* [[How to use JSimpleXML]]&lt;br /&gt;
** How to load and store XML files and how to work with them&lt;br /&gt;
* [[How to use JDate]]&lt;br /&gt;
** What JDate does and how to use it...&lt;br /&gt;
* [[How to add CSRF anti-spoofing to forms]]&lt;br /&gt;
** How to use JHTML::_( 'form.token' ) and token checking to secure components&lt;br /&gt;
* [[How to add breadcrumbs]]&lt;br /&gt;
* [[How to use the JTable class]]&lt;br /&gt;
* [[How to create component feeds]] (RSS/ATOM)&lt;br /&gt;
* [[How to create PDF views]]&lt;br /&gt;
* [[How to send email from components]]&lt;br /&gt;
* [[What's available in the JFactory class]]&lt;br /&gt;
* [[How to generate paths for client side and server side]]&lt;br /&gt;
* How to access information from the request/browser&lt;br /&gt;
** This focuses on using the JBrowser class to retrieve information about the features available in the user's browser.&lt;br /&gt;
* [[How to create a search plugin]] (To be reviewed)&lt;br /&gt;
* [[How to create a content plugin]] (To be reviewed)&lt;br /&gt;
* [[How to create an editor plugin]]&lt;br /&gt;
* [[How to create a system plugin]]&lt;br /&gt;
* [[What can be done with a user plugin]]&lt;br /&gt;
* [[How to create a module]]&lt;br /&gt;
* [[How to create a stand-alone application using the Joomla! Framework]]&lt;br /&gt;
* [[How to work with parameters]]&lt;br /&gt;
* [[How to use the JToolBar class in the frontend]]&lt;br /&gt;
* [[How to create a custom button]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[How to use the JPane classes in a component]]&lt;br /&gt;
* [[How to cloak email addresses]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Coding_style_and_standards</id>
		<title>Coding style and standards</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Coding_style_and_standards"/>
				<updated>2008-03-22T12:55:28Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: /* Models */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{review}}&lt;br /&gt;
{{RightTOC}}&lt;br /&gt;
remark: The following information are copied from the old WIKI archive and not yet reviewed.&lt;br /&gt;
See: http://dev.joomla.org/component/option,com_jd-wiki/Itemid,/id,standards:coding/&lt;br /&gt;
&lt;br /&gt;
Good coding standards are important in any development project, but particularly when multiple developers are working on the same project. Having coding standards helps ensure that the code is of high quality, has fewer bugs, and is easily maintained.&lt;br /&gt;
&lt;br /&gt;
==== Coding Standards ====&lt;br /&gt;
&lt;br /&gt;
=== Indenting and Line Length ===&lt;br /&gt;
&lt;br /&gt;
Use tabs to indent, not spaces, with the tab-stops set to an equivalent of 4 spaces.&lt;br /&gt;
&lt;br /&gt;
It is recommended that you break lines at approximately 75-85 characters. There is no standard rule for the best way to break a line, use your judgment and, when in doubt.&lt;br /&gt;
&lt;br /&gt;
=== Control Structures ===&lt;br /&gt;
&lt;br /&gt;
These include if, for, while, switch, etc. Here is an example if statement, since it is the most complicated of them:&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;
if ((condition1) || (condition2)) {&lt;br /&gt;
    action1();&lt;br /&gt;
} elseif ((condition3) &amp;amp;&amp;amp; (condition4)) {&lt;br /&gt;
    action2();&lt;br /&gt;
} else&lt;br /&gt;
{&lt;br /&gt;
   // Use one true brace in control structures&lt;br /&gt;
   // when the block is longer than one line&lt;br /&gt;
    defaultaction();&lt;br /&gt;
    anotheraction();&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Control statements should have one space between the control keyword and opening parenthesis, to distinguish them from function calls.&lt;br /&gt;
&lt;br /&gt;
You are strongly encouraged to always use curly braces even in situations where they are technically optional. Having them increases readability and decreases the likelihood of logic errors being introduced when new lines are added.&lt;br /&gt;
&lt;br /&gt;
For switch statements:&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;
switch (condition)&lt;br /&gt;
{&lt;br /&gt;
    case 1:&lt;br /&gt;
        action1;&lt;br /&gt;
        break;&lt;br /&gt;
&lt;br /&gt;
    case 2:&lt;br /&gt;
        action2;&lt;br /&gt;
        break;&lt;br /&gt;
&lt;br /&gt;
    default:&lt;br /&gt;
        defaultaction;&lt;br /&gt;
        break;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function Calls ===&lt;br /&gt;
&lt;br /&gt;
Functions should be called with no spaces between the function name and the opening parenthesis, one space for the first parameter; spaces between commas and each parameter, and one space between the last parameter, no space between the closing parenthesis, and the semicolon. Here's an example:&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;
$var = foo( $bar, $baz, $quux );&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As displayed above, there should be one space on either side of an equals sign used to assign the return value of a function to a variable. In the case of a block of related assignments, tabs may be inserted to promote readability:&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;
$short         = foo( $bar );&lt;br /&gt;
$long_variable = foo( $baz );&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function Definitions ===&lt;br /&gt;
&lt;br /&gt;
Class and function declarations follow the &amp;quot;one true brace&amp;quot; convention:&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;
function fooFunction( $arg1, $arg2 = '' )&lt;br /&gt;
{&lt;br /&gt;
    if (condition) {&lt;br /&gt;
        statement;&lt;br /&gt;
    }&lt;br /&gt;
    return $val;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class fooClass&lt;br /&gt;
{&lt;br /&gt;
    function fooMethod( $arg1 )&lt;br /&gt;
    {&lt;br /&gt;
        if ($arg) {&lt;br /&gt;
            $result = true;&lt;br /&gt;
        } else {&lt;br /&gt;
            $result = false;&lt;br /&gt;
        }&lt;br /&gt;
        return $result;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arguments with default values go at the end of the argument list. Always attempt to return a meaningful value from a function if one is appropriate. Here is a slightly longer example:&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;
function connect( &amp;amp;$dsn, $persistent = false )&lt;br /&gt;
{&lt;br /&gt;
    if (is_array($dsn)) {&lt;br /&gt;
        $dsninfo = &amp;amp;$dsn;&lt;br /&gt;
    } else {&lt;br /&gt;
        $dsninfo = DB::parseDSN($dsn);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (!$dsninfo || !$dsninfo['phptype']) {&lt;br /&gt;
        return $this-&amp;gt;raiseError();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return true;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comments ===&lt;br /&gt;
&lt;br /&gt;
Inline documentation for classes should follow the PHPDoc convention, similar to Javadoc. More information about PHPDoc can be found here: http://www.phpdoc.org/&lt;br /&gt;
&lt;br /&gt;
See also [[standards:CodingComment|Adding PHPDocumentor comments]]&lt;br /&gt;
&lt;br /&gt;
Non-documentation comments are strongly encouraged. A general rule of thumb is that if you look at a section of code and think &amp;quot;Wow, I don't want to try and describe that&amp;quot;, you need to comment it before you forget how it works.&lt;br /&gt;
&lt;br /&gt;
C style comments (/* */) and standard C++ comments (/ /) are both fine. Use of Perl/shell style comments (#) is discouraged.&lt;br /&gt;
&lt;br /&gt;
=== Including Code ===&lt;br /&gt;
&lt;br /&gt;
Anywhere you are unconditionally including a class file, use require_once(). Anywhere you are conditionally including a class file (for example, factory methods), use include_once(). Either of these will ensure that class files are included only once. They share the same file list, so you don't need to worry about mixing them - a file included with require_once() will not be included again by include_once().&lt;br /&gt;
&lt;br /&gt;
**Note:** include_once() and require_once() are statements, not functions. You don't need parentheses around the filename to be included.&lt;br /&gt;
&lt;br /&gt;
=== PHP Code Tags ===&lt;br /&gt;
&lt;br /&gt;
Always use &amp;lt;?php ?&amp;gt; to delimit PHP code, not the &amp;lt;? ?&amp;gt; shorthand. This is required for PEAR compliance and is also the most portable way to include PHP code on differing operating systems and setups.&lt;br /&gt;
&lt;br /&gt;
For files that contain only PHP code, the closing tag (&amp;quot;?&amp;gt;&amp;quot;) is never permitted. It is not required by PHP. Not including it prevents trailing whitespace from being accidentally injected into the output.&lt;br /&gt;
&lt;br /&gt;
=== SQL Queries ===&lt;br /&gt;
&lt;br /&gt;
SQL keywords are to be written in uppercase, while all other identifiers (which the exception of quoted text obviously) is to be in lowercase. Carriage returns should not be used as JDatabase::getQuery provides for formatted output.  However, indenting with spaces to improve readability is desireable.&lt;br /&gt;
&lt;br /&gt;
Queries should be wrapped in single quotes (as these text blocks are parsed faster by php).&lt;br /&gt;
&lt;br /&gt;
All quoted string must using the ''Quote'' method to facilitate future compatibility with other database engines.&lt;br /&gt;
&lt;br /&gt;
All expected integer or floating-point variable must be cast with (int), (float) or (double) as appropriate&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$state = 1;&lt;br /&gt;
$name  = 'bill';&lt;br /&gt;
$db    = &amp;amp;JFactory::getDBO();&lt;br /&gt;
$query = 'SELECT COUNT( c.id ) AS num_articles, u.id, u.username'.&lt;br /&gt;
    ' FROM jos_content AS c'.&lt;br /&gt;
    ' LEFT JOIN jos_users AS u ON u.id = c.created_by'.&lt;br /&gt;
    ' WHERE c.state = '.(int) $state&lt;br /&gt;
    '  AND u.id IS NOT NULL'.&lt;br /&gt;
    '  AND u.username &amp;lt;&amp;gt; '.$db-&amp;gt;Quote( $name ).&lt;br /&gt;
    ' GROUP BY u.id'.&lt;br /&gt;
    '  HAVING COUNT( c.id ) &amp;gt; 0';&lt;br /&gt;
$db-&amp;gt;setQuery();&lt;br /&gt;
// Output formated query:&lt;br /&gt;
if ($debug) {&lt;br /&gt;
    echo $db-&amp;gt;getQuery();&lt;br /&gt;
}&lt;br /&gt;
$stats = $db-&amp;gt;loadObjectList();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Header Comment Blocks ===&lt;br /&gt;
&lt;br /&gt;
All source code files in the core PEAR distribution should contain the following comment block as the header:&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;
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Short description for file&lt;br /&gt;
 *&lt;br /&gt;
 * Long description for file (if any)...&lt;br /&gt;
 *&lt;br /&gt;
 * PHP versions 4 and 5&lt;br /&gt;
 *&lt;br /&gt;
 * LICENSE: This source file is subject to version 3.0 of the PHP license&lt;br /&gt;
 * that is available through the world-wide-web at the following URI:&lt;br /&gt;
 * http://www.php.net/license/3_0.txt.  If you did not receive a copy of&lt;br /&gt;
 * the PHP License and are unable to obtain it through the web, please&lt;br /&gt;
 * send a note to license@php.net so we can mail you a copy immediately.&lt;br /&gt;
 *&lt;br /&gt;
 * @category   CategoryName&lt;br /&gt;
 * @package    PackageName&lt;br /&gt;
 * @author     Original Author &amp;lt;author@example.com&amp;gt;&lt;br /&gt;
 * @author     Another Author &amp;lt;another@example.com&amp;gt;&lt;br /&gt;
 * @copyright  1997-2005 The PHP Group&lt;br /&gt;
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0&lt;br /&gt;
 * @version    CVS: $Id:$&lt;br /&gt;
 * @link       http://pear.php.net/package/PackageName&lt;br /&gt;
 * @see        NetOther, Net_Sample::Net_Sample()&lt;br /&gt;
 * @since      File available since Release 1.2.0&lt;br /&gt;
 * @deprecated File deprecated in Release 2.0.0&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Place includes, constant defines and $_GLOBAL settings here.&lt;br /&gt;
 * Make sure they have appropriate docblocks to avoid phpDocumentor&lt;br /&gt;
 * construing they are documented by the page-level docblock.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Short description for class&lt;br /&gt;
 *&lt;br /&gt;
 * Long description for class (if any)...&lt;br /&gt;
 *&lt;br /&gt;
 * @category   CategoryName&lt;br /&gt;
 * @package    PackageName&lt;br /&gt;
 * @author     Original Author &amp;lt;author@example.com&amp;gt;&lt;br /&gt;
 * @author     Another Author &amp;lt;another@example.com&amp;gt;&lt;br /&gt;
 * @copyright  1997-2005 The PHP Group&lt;br /&gt;
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0&lt;br /&gt;
 * @version    Release: @package_version@&lt;br /&gt;
 * @link       http://pear.php.net/package/PackageName&lt;br /&gt;
 * @see        NetOther, Net_Sample::Net_Sample()&lt;br /&gt;
 * @since      Class available since Release 1.2.0&lt;br /&gt;
 * @deprecated Class deprecated in Release 2.0.0&lt;br /&gt;
 */&lt;br /&gt;
class foo&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There's no hard rule to determine when a new code contributor should be added to the list of authors for a given source file. In general, their changes should fall into the &amp;quot;substantial&amp;quot; category (meaning somewhere around 10% to 20% of code changes). Exceptions could be made for rewriting functions or contributing new logic.&lt;br /&gt;
&lt;br /&gt;
Simple code reorganization or bug fixes would not justify the addition of a new individual to the list of authors.&lt;br /&gt;
&lt;br /&gt;
Files not in the Joomla! core repository should have a similar block stating the copyright, the license, and the authors. All files should include the modeline comments to encourage consistency.&lt;br /&gt;
&lt;br /&gt;
Example URLs&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;example.com&amp;quot;, &amp;quot;example.org&amp;quot; and &amp;quot;example.net&amp;quot; for all example URLs and email addresses, per RFC 2606.&lt;br /&gt;
&lt;br /&gt;
==== Naming Conventions ====&lt;br /&gt;
&lt;br /&gt;
=== Classes ===&lt;br /&gt;
&lt;br /&gt;
Classes should be given descriptive names. Avoid using abbreviations where possible. Class names should always begin with an uppercase letter.&lt;br /&gt;
&lt;br /&gt;
=== Functions and Methods ===&lt;br /&gt;
&lt;br /&gt;
Functions and methods should be named using the &amp;quot;studly caps&amp;quot; style (also referred to as &amp;quot;bumpy case&amp;quot; or &amp;quot;camel caps&amp;quot;). Functions should in addition have the package name as a prefix, to avoid name collisions between packages. The initial letter of the name (after the prefix) is lowercase, and each letter that starts a new &amp;quot;word&amp;quot; is capitalized. Some examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
connect()&lt;br /&gt;
 getData()&lt;br /&gt;
 buildSomeWidget()&lt;br /&gt;
 XML_RPC_serializeData()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Private class members (meaning class members that are intented to be used only from within the same class in which they are declared; PHP does not yet support truly-enforceable private namespaces) are preceded by a single underscore. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
_sort()&lt;br /&gt;
 _initTree()&lt;br /&gt;
 $this-&amp;gt;_status&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Constants ===&lt;br /&gt;
&lt;br /&gt;
Constants should always be all-uppercase, with underscores to separate words. Prefix constant names with the uppercased name of the class/package they are used in. For example, the constants used by the DB:: package all begin with &amp;quot;DB_&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Global Variables ===&lt;br /&gt;
&lt;br /&gt;
If your package needs to define global variables, their name should start with a single underscore followed by the package name and another underscore. For example, the PEAR package uses a global variable called $_PEAR_destructor_object_list.&lt;br /&gt;
&lt;br /&gt;
=== Controllers ===&lt;br /&gt;
&lt;br /&gt;
For single controller components, the naming convention is ''[Name]Controller''.   The file name will generally be ''controller.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;
 * Content Controller&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
ContentController&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a multi-controller components, such as the Banners in the Administrator, the convention is ''[Component]Controller[Name]''.&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;
 * Banner Client Controller&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
BannerControllerClient&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The files will be located in a ''/controllers/'' folder under the component folder.  The file names will reflect the name of the controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Single Controller&lt;br /&gt;
&lt;br /&gt;
com_content&lt;br /&gt;
\- controller.php&lt;br /&gt;
&lt;br /&gt;
Multi-controller&lt;br /&gt;
&lt;br /&gt;
com_banner&lt;br /&gt;
\- controllers&lt;br /&gt;
  \- banner.php&lt;br /&gt;
  \- client.php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models===&lt;br /&gt;
&lt;br /&gt;
The naming convention is ''[Component]Model[Name]''.&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;
 * Banner Client Model&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
BannerModelClient&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The files will be located in a ''/models/'' folder under the component folder.  The file names will reflect the name of the controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
com_banner&lt;br /&gt;
\- models&lt;br /&gt;
  \- banner.php&lt;br /&gt;
  \- client.php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
&lt;br /&gt;
=== Layouts ===&lt;br /&gt;
&lt;br /&gt;
=== Templates ===&lt;br /&gt;
&lt;br /&gt;
=== Template Layout Overrides ===&lt;br /&gt;
&lt;br /&gt;
[[:start|Back to the Startpage]]&lt;br /&gt;
&lt;br /&gt;
~~DISCUSSION~~&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Coding_style_and_standards</id>
		<title>Coding style and standards</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Coding_style_and_standards"/>
				<updated>2008-03-22T12:55:12Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: /* Controllers */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{review}}&lt;br /&gt;
{{RightTOC}}&lt;br /&gt;
remark: The following information are copied from the old WIKI archive and not yet reviewed.&lt;br /&gt;
See: http://dev.joomla.org/component/option,com_jd-wiki/Itemid,/id,standards:coding/&lt;br /&gt;
&lt;br /&gt;
Good coding standards are important in any development project, but particularly when multiple developers are working on the same project. Having coding standards helps ensure that the code is of high quality, has fewer bugs, and is easily maintained.&lt;br /&gt;
&lt;br /&gt;
==== Coding Standards ====&lt;br /&gt;
&lt;br /&gt;
=== Indenting and Line Length ===&lt;br /&gt;
&lt;br /&gt;
Use tabs to indent, not spaces, with the tab-stops set to an equivalent of 4 spaces.&lt;br /&gt;
&lt;br /&gt;
It is recommended that you break lines at approximately 75-85 characters. There is no standard rule for the best way to break a line, use your judgment and, when in doubt.&lt;br /&gt;
&lt;br /&gt;
=== Control Structures ===&lt;br /&gt;
&lt;br /&gt;
These include if, for, while, switch, etc. Here is an example if statement, since it is the most complicated of them:&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;
if ((condition1) || (condition2)) {&lt;br /&gt;
    action1();&lt;br /&gt;
} elseif ((condition3) &amp;amp;&amp;amp; (condition4)) {&lt;br /&gt;
    action2();&lt;br /&gt;
} else&lt;br /&gt;
{&lt;br /&gt;
   // Use one true brace in control structures&lt;br /&gt;
   // when the block is longer than one line&lt;br /&gt;
    defaultaction();&lt;br /&gt;
    anotheraction();&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Control statements should have one space between the control keyword and opening parenthesis, to distinguish them from function calls.&lt;br /&gt;
&lt;br /&gt;
You are strongly encouraged to always use curly braces even in situations where they are technically optional. Having them increases readability and decreases the likelihood of logic errors being introduced when new lines are added.&lt;br /&gt;
&lt;br /&gt;
For switch statements:&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;
switch (condition)&lt;br /&gt;
{&lt;br /&gt;
    case 1:&lt;br /&gt;
        action1;&lt;br /&gt;
        break;&lt;br /&gt;
&lt;br /&gt;
    case 2:&lt;br /&gt;
        action2;&lt;br /&gt;
        break;&lt;br /&gt;
&lt;br /&gt;
    default:&lt;br /&gt;
        defaultaction;&lt;br /&gt;
        break;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function Calls ===&lt;br /&gt;
&lt;br /&gt;
Functions should be called with no spaces between the function name and the opening parenthesis, one space for the first parameter; spaces between commas and each parameter, and one space between the last parameter, no space between the closing parenthesis, and the semicolon. Here's an example:&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;
$var = foo( $bar, $baz, $quux );&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As displayed above, there should be one space on either side of an equals sign used to assign the return value of a function to a variable. In the case of a block of related assignments, tabs may be inserted to promote readability:&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;
$short         = foo( $bar );&lt;br /&gt;
$long_variable = foo( $baz );&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function Definitions ===&lt;br /&gt;
&lt;br /&gt;
Class and function declarations follow the &amp;quot;one true brace&amp;quot; convention:&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;
function fooFunction( $arg1, $arg2 = '' )&lt;br /&gt;
{&lt;br /&gt;
    if (condition) {&lt;br /&gt;
        statement;&lt;br /&gt;
    }&lt;br /&gt;
    return $val;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class fooClass&lt;br /&gt;
{&lt;br /&gt;
    function fooMethod( $arg1 )&lt;br /&gt;
    {&lt;br /&gt;
        if ($arg) {&lt;br /&gt;
            $result = true;&lt;br /&gt;
        } else {&lt;br /&gt;
            $result = false;&lt;br /&gt;
        }&lt;br /&gt;
        return $result;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arguments with default values go at the end of the argument list. Always attempt to return a meaningful value from a function if one is appropriate. Here is a slightly longer example:&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;
function connect( &amp;amp;$dsn, $persistent = false )&lt;br /&gt;
{&lt;br /&gt;
    if (is_array($dsn)) {&lt;br /&gt;
        $dsninfo = &amp;amp;$dsn;&lt;br /&gt;
    } else {&lt;br /&gt;
        $dsninfo = DB::parseDSN($dsn);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (!$dsninfo || !$dsninfo['phptype']) {&lt;br /&gt;
        return $this-&amp;gt;raiseError();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return true;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comments ===&lt;br /&gt;
&lt;br /&gt;
Inline documentation for classes should follow the PHPDoc convention, similar to Javadoc. More information about PHPDoc can be found here: http://www.phpdoc.org/&lt;br /&gt;
&lt;br /&gt;
See also [[standards:CodingComment|Adding PHPDocumentor comments]]&lt;br /&gt;
&lt;br /&gt;
Non-documentation comments are strongly encouraged. A general rule of thumb is that if you look at a section of code and think &amp;quot;Wow, I don't want to try and describe that&amp;quot;, you need to comment it before you forget how it works.&lt;br /&gt;
&lt;br /&gt;
C style comments (/* */) and standard C++ comments (/ /) are both fine. Use of Perl/shell style comments (#) is discouraged.&lt;br /&gt;
&lt;br /&gt;
=== Including Code ===&lt;br /&gt;
&lt;br /&gt;
Anywhere you are unconditionally including a class file, use require_once(). Anywhere you are conditionally including a class file (for example, factory methods), use include_once(). Either of these will ensure that class files are included only once. They share the same file list, so you don't need to worry about mixing them - a file included with require_once() will not be included again by include_once().&lt;br /&gt;
&lt;br /&gt;
**Note:** include_once() and require_once() are statements, not functions. You don't need parentheses around the filename to be included.&lt;br /&gt;
&lt;br /&gt;
=== PHP Code Tags ===&lt;br /&gt;
&lt;br /&gt;
Always use &amp;lt;?php ?&amp;gt; to delimit PHP code, not the &amp;lt;? ?&amp;gt; shorthand. This is required for PEAR compliance and is also the most portable way to include PHP code on differing operating systems and setups.&lt;br /&gt;
&lt;br /&gt;
For files that contain only PHP code, the closing tag (&amp;quot;?&amp;gt;&amp;quot;) is never permitted. It is not required by PHP. Not including it prevents trailing whitespace from being accidentally injected into the output.&lt;br /&gt;
&lt;br /&gt;
=== SQL Queries ===&lt;br /&gt;
&lt;br /&gt;
SQL keywords are to be written in uppercase, while all other identifiers (which the exception of quoted text obviously) is to be in lowercase. Carriage returns should not be used as JDatabase::getQuery provides for formatted output.  However, indenting with spaces to improve readability is desireable.&lt;br /&gt;
&lt;br /&gt;
Queries should be wrapped in single quotes (as these text blocks are parsed faster by php).&lt;br /&gt;
&lt;br /&gt;
All quoted string must using the ''Quote'' method to facilitate future compatibility with other database engines.&lt;br /&gt;
&lt;br /&gt;
All expected integer or floating-point variable must be cast with (int), (float) or (double) as appropriate&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$state = 1;&lt;br /&gt;
$name  = 'bill';&lt;br /&gt;
$db    = &amp;amp;JFactory::getDBO();&lt;br /&gt;
$query = 'SELECT COUNT( c.id ) AS num_articles, u.id, u.username'.&lt;br /&gt;
    ' FROM jos_content AS c'.&lt;br /&gt;
    ' LEFT JOIN jos_users AS u ON u.id = c.created_by'.&lt;br /&gt;
    ' WHERE c.state = '.(int) $state&lt;br /&gt;
    '  AND u.id IS NOT NULL'.&lt;br /&gt;
    '  AND u.username &amp;lt;&amp;gt; '.$db-&amp;gt;Quote( $name ).&lt;br /&gt;
    ' GROUP BY u.id'.&lt;br /&gt;
    '  HAVING COUNT( c.id ) &amp;gt; 0';&lt;br /&gt;
$db-&amp;gt;setQuery();&lt;br /&gt;
// Output formated query:&lt;br /&gt;
if ($debug) {&lt;br /&gt;
    echo $db-&amp;gt;getQuery();&lt;br /&gt;
}&lt;br /&gt;
$stats = $db-&amp;gt;loadObjectList();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Header Comment Blocks ===&lt;br /&gt;
&lt;br /&gt;
All source code files in the core PEAR distribution should contain the following comment block as the header:&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;
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Short description for file&lt;br /&gt;
 *&lt;br /&gt;
 * Long description for file (if any)...&lt;br /&gt;
 *&lt;br /&gt;
 * PHP versions 4 and 5&lt;br /&gt;
 *&lt;br /&gt;
 * LICENSE: This source file is subject to version 3.0 of the PHP license&lt;br /&gt;
 * that is available through the world-wide-web at the following URI:&lt;br /&gt;
 * http://www.php.net/license/3_0.txt.  If you did not receive a copy of&lt;br /&gt;
 * the PHP License and are unable to obtain it through the web, please&lt;br /&gt;
 * send a note to license@php.net so we can mail you a copy immediately.&lt;br /&gt;
 *&lt;br /&gt;
 * @category   CategoryName&lt;br /&gt;
 * @package    PackageName&lt;br /&gt;
 * @author     Original Author &amp;lt;author@example.com&amp;gt;&lt;br /&gt;
 * @author     Another Author &amp;lt;another@example.com&amp;gt;&lt;br /&gt;
 * @copyright  1997-2005 The PHP Group&lt;br /&gt;
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0&lt;br /&gt;
 * @version    CVS: $Id:$&lt;br /&gt;
 * @link       http://pear.php.net/package/PackageName&lt;br /&gt;
 * @see        NetOther, Net_Sample::Net_Sample()&lt;br /&gt;
 * @since      File available since Release 1.2.0&lt;br /&gt;
 * @deprecated File deprecated in Release 2.0.0&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Place includes, constant defines and $_GLOBAL settings here.&lt;br /&gt;
 * Make sure they have appropriate docblocks to avoid phpDocumentor&lt;br /&gt;
 * construing they are documented by the page-level docblock.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Short description for class&lt;br /&gt;
 *&lt;br /&gt;
 * Long description for class (if any)...&lt;br /&gt;
 *&lt;br /&gt;
 * @category   CategoryName&lt;br /&gt;
 * @package    PackageName&lt;br /&gt;
 * @author     Original Author &amp;lt;author@example.com&amp;gt;&lt;br /&gt;
 * @author     Another Author &amp;lt;another@example.com&amp;gt;&lt;br /&gt;
 * @copyright  1997-2005 The PHP Group&lt;br /&gt;
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0&lt;br /&gt;
 * @version    Release: @package_version@&lt;br /&gt;
 * @link       http://pear.php.net/package/PackageName&lt;br /&gt;
 * @see        NetOther, Net_Sample::Net_Sample()&lt;br /&gt;
 * @since      Class available since Release 1.2.0&lt;br /&gt;
 * @deprecated Class deprecated in Release 2.0.0&lt;br /&gt;
 */&lt;br /&gt;
class foo&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There's no hard rule to determine when a new code contributor should be added to the list of authors for a given source file. In general, their changes should fall into the &amp;quot;substantial&amp;quot; category (meaning somewhere around 10% to 20% of code changes). Exceptions could be made for rewriting functions or contributing new logic.&lt;br /&gt;
&lt;br /&gt;
Simple code reorganization or bug fixes would not justify the addition of a new individual to the list of authors.&lt;br /&gt;
&lt;br /&gt;
Files not in the Joomla! core repository should have a similar block stating the copyright, the license, and the authors. All files should include the modeline comments to encourage consistency.&lt;br /&gt;
&lt;br /&gt;
Example URLs&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;example.com&amp;quot;, &amp;quot;example.org&amp;quot; and &amp;quot;example.net&amp;quot; for all example URLs and email addresses, per RFC 2606.&lt;br /&gt;
&lt;br /&gt;
==== Naming Conventions ====&lt;br /&gt;
&lt;br /&gt;
=== Classes ===&lt;br /&gt;
&lt;br /&gt;
Classes should be given descriptive names. Avoid using abbreviations where possible. Class names should always begin with an uppercase letter.&lt;br /&gt;
&lt;br /&gt;
=== Functions and Methods ===&lt;br /&gt;
&lt;br /&gt;
Functions and methods should be named using the &amp;quot;studly caps&amp;quot; style (also referred to as &amp;quot;bumpy case&amp;quot; or &amp;quot;camel caps&amp;quot;). Functions should in addition have the package name as a prefix, to avoid name collisions between packages. The initial letter of the name (after the prefix) is lowercase, and each letter that starts a new &amp;quot;word&amp;quot; is capitalized. Some examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
connect()&lt;br /&gt;
 getData()&lt;br /&gt;
 buildSomeWidget()&lt;br /&gt;
 XML_RPC_serializeData()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Private class members (meaning class members that are intented to be used only from within the same class in which they are declared; PHP does not yet support truly-enforceable private namespaces) are preceded by a single underscore. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
_sort()&lt;br /&gt;
 _initTree()&lt;br /&gt;
 $this-&amp;gt;_status&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Constants ===&lt;br /&gt;
&lt;br /&gt;
Constants should always be all-uppercase, with underscores to separate words. Prefix constant names with the uppercased name of the class/package they are used in. For example, the constants used by the DB:: package all begin with &amp;quot;DB_&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Global Variables ===&lt;br /&gt;
&lt;br /&gt;
If your package needs to define global variables, their name should start with a single underscore followed by the package name and another underscore. For example, the PEAR package uses a global variable called $_PEAR_destructor_object_list.&lt;br /&gt;
&lt;br /&gt;
=== Controllers ===&lt;br /&gt;
&lt;br /&gt;
For single controller components, the naming convention is ''[Name]Controller''.   The file name will generally be ''controller.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;
 * Content Controller&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
ContentController&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a multi-controller components, such as the Banners in the Administrator, the convention is ''[Component]Controller[Name]''.&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;
 * Banner Client Controller&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
BannerControllerClient&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The files will be located in a ''/controllers/'' folder under the component folder.  The file names will reflect the name of the controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Single Controller&lt;br /&gt;
&lt;br /&gt;
com_content&lt;br /&gt;
\- controller.php&lt;br /&gt;
&lt;br /&gt;
Multi-controller&lt;br /&gt;
&lt;br /&gt;
com_banner&lt;br /&gt;
\- controllers&lt;br /&gt;
  \- banner.php&lt;br /&gt;
  \- client.php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models===&lt;br /&gt;
&lt;br /&gt;
The naming convention is ''[Component]Model[Name]''.&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;
 * Banner Client Model&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
BannerModelClient&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The files will be located in a ''/models/'' folder under the component folder.  The file names will reflect the name of the controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
com_banner&lt;br /&gt;
\- models&lt;br /&gt;
  \- banner.php&lt;br /&gt;
  \- client.php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
&lt;br /&gt;
=== Layouts ===&lt;br /&gt;
&lt;br /&gt;
=== Templates ===&lt;br /&gt;
&lt;br /&gt;
=== Template Layout Overrides ===&lt;br /&gt;
&lt;br /&gt;
[[:start|Back to the Startpage]]&lt;br /&gt;
&lt;br /&gt;
~~DISCUSSION~~&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Coding_style_and_standards</id>
		<title>Coding style and standards</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Coding_style_and_standards"/>
				<updated>2008-03-22T11:31:42Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: Corrected extensions reference from code -&amp;gt; source&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{review}}&lt;br /&gt;
{{RightTOC}}&lt;br /&gt;
remark: The following information are copied from the old WIKI archive and not yet reviewed.&lt;br /&gt;
See: http://dev.joomla.org/component/option,com_jd-wiki/Itemid,/id,standards:coding/&lt;br /&gt;
&lt;br /&gt;
Good coding standards are important in any development project, but particularly when multiple developers are working on the same project. Having coding standards helps ensure that the code is of high quality, has fewer bugs, and is easily maintained.&lt;br /&gt;
&lt;br /&gt;
==== Coding Standards ====&lt;br /&gt;
&lt;br /&gt;
=== Indenting and Line Length ===&lt;br /&gt;
&lt;br /&gt;
Use tabs to indent, not spaces, with the tab-stops set to an equivalent of 4 spaces.&lt;br /&gt;
&lt;br /&gt;
It is recommended that you break lines at approximately 75-85 characters. There is no standard rule for the best way to break a line, use your judgment and, when in doubt.&lt;br /&gt;
&lt;br /&gt;
=== Control Structures ===&lt;br /&gt;
&lt;br /&gt;
These include if, for, while, switch, etc. Here is an example if statement, since it is the most complicated of them:&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;
if ((condition1) || (condition2)) {&lt;br /&gt;
    action1();&lt;br /&gt;
} elseif ((condition3) &amp;amp;&amp;amp; (condition4)) {&lt;br /&gt;
    action2();&lt;br /&gt;
} else&lt;br /&gt;
{&lt;br /&gt;
   // Use one true brace in control structures&lt;br /&gt;
   // when the block is longer than one line&lt;br /&gt;
    defaultaction();&lt;br /&gt;
    anotheraction();&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Control statements should have one space between the control keyword and opening parenthesis, to distinguish them from function calls.&lt;br /&gt;
&lt;br /&gt;
You are strongly encouraged to always use curly braces even in situations where they are technically optional. Having them increases readability and decreases the likelihood of logic errors being introduced when new lines are added.&lt;br /&gt;
&lt;br /&gt;
For switch statements:&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;
switch (condition)&lt;br /&gt;
{&lt;br /&gt;
    case 1:&lt;br /&gt;
        action1;&lt;br /&gt;
        break;&lt;br /&gt;
&lt;br /&gt;
    case 2:&lt;br /&gt;
        action2;&lt;br /&gt;
        break;&lt;br /&gt;
&lt;br /&gt;
    default:&lt;br /&gt;
        defaultaction;&lt;br /&gt;
        break;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function Calls ===&lt;br /&gt;
&lt;br /&gt;
Functions should be called with no spaces between the function name and the opening parenthesis, one space for the first parameter; spaces between commas and each parameter, and one space between the last parameter, no space between the closing parenthesis, and the semicolon. Here's an example:&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;
$var = foo( $bar, $baz, $quux );&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As displayed above, there should be one space on either side of an equals sign used to assign the return value of a function to a variable. In the case of a block of related assignments, tabs may be inserted to promote readability:&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;
$short         = foo( $bar );&lt;br /&gt;
$long_variable = foo( $baz );&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function Definitions ===&lt;br /&gt;
&lt;br /&gt;
Class and function declarations follow the &amp;quot;one true brace&amp;quot; convention:&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;
function fooFunction( $arg1, $arg2 = '' )&lt;br /&gt;
{&lt;br /&gt;
    if (condition) {&lt;br /&gt;
        statement;&lt;br /&gt;
    }&lt;br /&gt;
    return $val;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class fooClass&lt;br /&gt;
{&lt;br /&gt;
    function fooMethod( $arg1 )&lt;br /&gt;
    {&lt;br /&gt;
        if ($arg) {&lt;br /&gt;
            $result = true;&lt;br /&gt;
        } else {&lt;br /&gt;
            $result = false;&lt;br /&gt;
        }&lt;br /&gt;
        return $result;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arguments with default values go at the end of the argument list. Always attempt to return a meaningful value from a function if one is appropriate. Here is a slightly longer example:&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;
function connect( &amp;amp;$dsn, $persistent = false )&lt;br /&gt;
{&lt;br /&gt;
    if (is_array($dsn)) {&lt;br /&gt;
        $dsninfo = &amp;amp;$dsn;&lt;br /&gt;
    } else {&lt;br /&gt;
        $dsninfo = DB::parseDSN($dsn);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (!$dsninfo || !$dsninfo['phptype']) {&lt;br /&gt;
        return $this-&amp;gt;raiseError();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return true;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comments ===&lt;br /&gt;
&lt;br /&gt;
Inline documentation for classes should follow the PHPDoc convention, similar to Javadoc. More information about PHPDoc can be found here: http://www.phpdoc.org/&lt;br /&gt;
&lt;br /&gt;
See also [[standards:CodingComment|Adding PHPDocumentor comments]]&lt;br /&gt;
&lt;br /&gt;
Non-documentation comments are strongly encouraged. A general rule of thumb is that if you look at a section of code and think &amp;quot;Wow, I don't want to try and describe that&amp;quot;, you need to comment it before you forget how it works.&lt;br /&gt;
&lt;br /&gt;
C style comments (/* */) and standard C++ comments (/ /) are both fine. Use of Perl/shell style comments (#) is discouraged.&lt;br /&gt;
&lt;br /&gt;
=== Including Code ===&lt;br /&gt;
&lt;br /&gt;
Anywhere you are unconditionally including a class file, use require_once(). Anywhere you are conditionally including a class file (for example, factory methods), use include_once(). Either of these will ensure that class files are included only once. They share the same file list, so you don't need to worry about mixing them - a file included with require_once() will not be included again by include_once().&lt;br /&gt;
&lt;br /&gt;
**Note:** include_once() and require_once() are statements, not functions. You don't need parentheses around the filename to be included.&lt;br /&gt;
&lt;br /&gt;
=== PHP Code Tags ===&lt;br /&gt;
&lt;br /&gt;
Always use &amp;lt;?php ?&amp;gt; to delimit PHP code, not the &amp;lt;? ?&amp;gt; shorthand. This is required for PEAR compliance and is also the most portable way to include PHP code on differing operating systems and setups.&lt;br /&gt;
&lt;br /&gt;
For files that contain only PHP code, the closing tag (&amp;quot;?&amp;gt;&amp;quot;) is never permitted. It is not required by PHP. Not including it prevents trailing whitespace from being accidentally injected into the output.&lt;br /&gt;
&lt;br /&gt;
=== SQL Queries ===&lt;br /&gt;
&lt;br /&gt;
SQL keywords are to be written in uppercase, while all other identifiers (which the exception of quoted text obviously) is to be in lowercase. Carriage returns should not be used as JDatabase::getQuery provides for formatted output.  However, indenting with spaces to improve readability is desireable.&lt;br /&gt;
&lt;br /&gt;
Queries should be wrapped in single quotes (as these text blocks are parsed faster by php).&lt;br /&gt;
&lt;br /&gt;
All quoted string must using the ''Quote'' method to facilitate future compatibility with other database engines.&lt;br /&gt;
&lt;br /&gt;
All expected integer or floating-point variable must be cast with (int), (float) or (double) as appropriate&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$state = 1;&lt;br /&gt;
$name  = 'bill';&lt;br /&gt;
$db    = &amp;amp;JFactory::getDBO();&lt;br /&gt;
$query = 'SELECT COUNT( c.id ) AS num_articles, u.id, u.username'.&lt;br /&gt;
    ' FROM jos_content AS c'.&lt;br /&gt;
    ' LEFT JOIN jos_users AS u ON u.id = c.created_by'.&lt;br /&gt;
    ' WHERE c.state = '.(int) $state&lt;br /&gt;
    '  AND u.id IS NOT NULL'.&lt;br /&gt;
    '  AND u.username &amp;lt;&amp;gt; '.$db-&amp;gt;Quote( $name ).&lt;br /&gt;
    ' GROUP BY u.id'.&lt;br /&gt;
    '  HAVING COUNT( c.id ) &amp;gt; 0';&lt;br /&gt;
$db-&amp;gt;setQuery();&lt;br /&gt;
// Output formated query:&lt;br /&gt;
if ($debug) {&lt;br /&gt;
    echo $db-&amp;gt;getQuery();&lt;br /&gt;
}&lt;br /&gt;
$stats = $db-&amp;gt;loadObjectList();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Header Comment Blocks ===&lt;br /&gt;
&lt;br /&gt;
All source code files in the core PEAR distribution should contain the following comment block as the header:&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;
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Short description for file&lt;br /&gt;
 *&lt;br /&gt;
 * Long description for file (if any)...&lt;br /&gt;
 *&lt;br /&gt;
 * PHP versions 4 and 5&lt;br /&gt;
 *&lt;br /&gt;
 * LICENSE: This source file is subject to version 3.0 of the PHP license&lt;br /&gt;
 * that is available through the world-wide-web at the following URI:&lt;br /&gt;
 * http://www.php.net/license/3_0.txt.  If you did not receive a copy of&lt;br /&gt;
 * the PHP License and are unable to obtain it through the web, please&lt;br /&gt;
 * send a note to license@php.net so we can mail you a copy immediately.&lt;br /&gt;
 *&lt;br /&gt;
 * @category   CategoryName&lt;br /&gt;
 * @package    PackageName&lt;br /&gt;
 * @author     Original Author &amp;lt;author@example.com&amp;gt;&lt;br /&gt;
 * @author     Another Author &amp;lt;another@example.com&amp;gt;&lt;br /&gt;
 * @copyright  1997-2005 The PHP Group&lt;br /&gt;
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0&lt;br /&gt;
 * @version    CVS: $Id:$&lt;br /&gt;
 * @link       http://pear.php.net/package/PackageName&lt;br /&gt;
 * @see        NetOther, Net_Sample::Net_Sample()&lt;br /&gt;
 * @since      File available since Release 1.2.0&lt;br /&gt;
 * @deprecated File deprecated in Release 2.0.0&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Place includes, constant defines and $_GLOBAL settings here.&lt;br /&gt;
 * Make sure they have appropriate docblocks to avoid phpDocumentor&lt;br /&gt;
 * construing they are documented by the page-level docblock.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Short description for class&lt;br /&gt;
 *&lt;br /&gt;
 * Long description for class (if any)...&lt;br /&gt;
 *&lt;br /&gt;
 * @category   CategoryName&lt;br /&gt;
 * @package    PackageName&lt;br /&gt;
 * @author     Original Author &amp;lt;author@example.com&amp;gt;&lt;br /&gt;
 * @author     Another Author &amp;lt;another@example.com&amp;gt;&lt;br /&gt;
 * @copyright  1997-2005 The PHP Group&lt;br /&gt;
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0&lt;br /&gt;
 * @version    Release: @package_version@&lt;br /&gt;
 * @link       http://pear.php.net/package/PackageName&lt;br /&gt;
 * @see        NetOther, Net_Sample::Net_Sample()&lt;br /&gt;
 * @since      Class available since Release 1.2.0&lt;br /&gt;
 * @deprecated Class deprecated in Release 2.0.0&lt;br /&gt;
 */&lt;br /&gt;
class foo&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There's no hard rule to determine when a new code contributor should be added to the list of authors for a given source file. In general, their changes should fall into the &amp;quot;substantial&amp;quot; category (meaning somewhere around 10% to 20% of code changes). Exceptions could be made for rewriting functions or contributing new logic.&lt;br /&gt;
&lt;br /&gt;
Simple code reorganization or bug fixes would not justify the addition of a new individual to the list of authors.&lt;br /&gt;
&lt;br /&gt;
Files not in the Joomla! core repository should have a similar block stating the copyright, the license, and the authors. All files should include the modeline comments to encourage consistency.&lt;br /&gt;
&lt;br /&gt;
Example URLs&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;example.com&amp;quot;, &amp;quot;example.org&amp;quot; and &amp;quot;example.net&amp;quot; for all example URLs and email addresses, per RFC 2606.&lt;br /&gt;
&lt;br /&gt;
==== Naming Conventions ====&lt;br /&gt;
&lt;br /&gt;
=== Classes ===&lt;br /&gt;
&lt;br /&gt;
Classes should be given descriptive names. Avoid using abbreviations where possible. Class names should always begin with an uppercase letter.&lt;br /&gt;
&lt;br /&gt;
=== Functions and Methods ===&lt;br /&gt;
&lt;br /&gt;
Functions and methods should be named using the &amp;quot;studly caps&amp;quot; style (also referred to as &amp;quot;bumpy case&amp;quot; or &amp;quot;camel caps&amp;quot;). Functions should in addition have the package name as a prefix, to avoid name collisions between packages. The initial letter of the name (after the prefix) is lowercase, and each letter that starts a new &amp;quot;word&amp;quot; is capitalized. Some examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
connect()&lt;br /&gt;
 getData()&lt;br /&gt;
 buildSomeWidget()&lt;br /&gt;
 XML_RPC_serializeData()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Private class members (meaning class members that are intented to be used only from within the same class in which they are declared; PHP does not yet support truly-enforceable private namespaces) are preceded by a single underscore. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
_sort()&lt;br /&gt;
 _initTree()&lt;br /&gt;
 $this-&amp;gt;_status&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Constants ===&lt;br /&gt;
&lt;br /&gt;
Constants should always be all-uppercase, with underscores to separate words. Prefix constant names with the uppercased name of the class/package they are used in. For example, the constants used by the DB:: package all begin with &amp;quot;DB_&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Global Variables ===&lt;br /&gt;
&lt;br /&gt;
If your package needs to define global variables, their name should start with a single underscore followed by the package name and another underscore. For example, the PEAR package uses a global variable called $_PEAR_destructor_object_list.&lt;br /&gt;
&lt;br /&gt;
=== Controllers ===&lt;br /&gt;
&lt;br /&gt;
For single controller components, the naming convention is ''[Name]Controller''.   The file name will generally be ''controller.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;
 * Content Controller&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
ContentController&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a multi-controller components, such as the Banners in the Administrator, the convention is ''[Component]Controller[Name]''.&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;
 * Banner Client Controller&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
BannerControllerClient&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The files will be located in a ''/controllers/'' folder under the component folder.  The file names will reflect the name of the controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
Single Controller&lt;br /&gt;
&lt;br /&gt;
com_content&lt;br /&gt;
\- controller.php&lt;br /&gt;
&lt;br /&gt;
Multi-controller&lt;br /&gt;
&lt;br /&gt;
com_banner&lt;br /&gt;
\- controllers&lt;br /&gt;
  \- banner.php&lt;br /&gt;
  \- client.php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models===&lt;br /&gt;
&lt;br /&gt;
The naming convention is ''[Component]Model[Name]''.&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;
 * Banner Client Model&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
BannerModelClient&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The files will be located in a ''/models/'' folder under the component folder.  The file names will reflect the name of the controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
com_banner&lt;br /&gt;
\- models&lt;br /&gt;
  \- banner.php&lt;br /&gt;
  \- client.php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
&lt;br /&gt;
=== Layouts ===&lt;br /&gt;
&lt;br /&gt;
=== Templates ===&lt;br /&gt;
&lt;br /&gt;
=== Template Layout Overrides ===&lt;br /&gt;
&lt;br /&gt;
[[:start|Back to the Startpage]]&lt;br /&gt;
&lt;br /&gt;
~~DISCUSSION~~&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Coding_style_and_standards</id>
		<title>Coding style and standards</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Coding_style_and_standards"/>
				<updated>2008-03-22T10:00:18Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{review}}&lt;br /&gt;
{{RightTOC}}&lt;br /&gt;
remark: The following information are copied from the old WIKI archive and not yet reviewed.&lt;br /&gt;
See: http://dev.joomla.org/component/option,com_jd-wiki/Itemid,/id,standards:coding/&lt;br /&gt;
&lt;br /&gt;
Good coding standards are important in any development project, but particularly when multiple developers are working on the same project. Having coding standards helps ensure that the code is of high quality, has fewer bugs, and is easily maintained.&lt;br /&gt;
&lt;br /&gt;
==== Coding Standards ====&lt;br /&gt;
&lt;br /&gt;
=== Indenting and Line Length ===&lt;br /&gt;
&lt;br /&gt;
Use tabs to indent, not spaces, with the tab-stops set to an equivalent of 4 spaces.&lt;br /&gt;
&lt;br /&gt;
It is recommended that you break lines at approximately 75-85 characters. There is no standard rule for the best way to break a line, use your judgment and, when in doubt.&lt;br /&gt;
&lt;br /&gt;
=== Control Structures ===&lt;br /&gt;
&lt;br /&gt;
These include if, for, while, switch, etc. Here is an example if statement, since it is the most complicated of them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
if ((condition1) || (condition2)) {&lt;br /&gt;
    action1();&lt;br /&gt;
} elseif ((condition3) &amp;amp;&amp;amp; (condition4)) {&lt;br /&gt;
    action2();&lt;br /&gt;
} else&lt;br /&gt;
{&lt;br /&gt;
   // Use one true brace in control structures&lt;br /&gt;
   // when the block is longer than one line&lt;br /&gt;
    defaultaction();&lt;br /&gt;
    anotheraction();&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Control statements should have one space between the control keyword and opening parenthesis, to distinguish them from function calls.&lt;br /&gt;
&lt;br /&gt;
You are strongly encouraged to always use curly braces even in situations where they are technically optional. Having them increases readability and decreases the likelihood of logic errors being introduced when new lines are added.&lt;br /&gt;
&lt;br /&gt;
For switch statements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
switch (condition)&lt;br /&gt;
{&lt;br /&gt;
    case 1:&lt;br /&gt;
        action1;&lt;br /&gt;
        break;&lt;br /&gt;
&lt;br /&gt;
    case 2:&lt;br /&gt;
        action2;&lt;br /&gt;
        break;&lt;br /&gt;
&lt;br /&gt;
    default:&lt;br /&gt;
        defaultaction;&lt;br /&gt;
        break;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function Calls ===&lt;br /&gt;
&lt;br /&gt;
Functions should be called with no spaces between the function name and the opening parenthesis, one space for the first parameter; spaces between commas and each parameter, and one space between the last parameter, no space between the closing parenthesis, and the semicolon. Here's an example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$var = foo( $bar, $baz, $quux );&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As displayed above, there should be one space on either side of an equals sign used to assign the return value of a function to a variable. In the case of a block of related assignments, tabs may be inserted to promote readability:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$short         = foo( $bar );&lt;br /&gt;
$long_variable = foo( $baz );&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function Definitions ===&lt;br /&gt;
&lt;br /&gt;
Class and function declarations follow the &amp;quot;one true brace&amp;quot; convention:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
function fooFunction( $arg1, $arg2 = '' )&lt;br /&gt;
{&lt;br /&gt;
    if (condition) {&lt;br /&gt;
        statement;&lt;br /&gt;
    }&lt;br /&gt;
    return $val;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class fooClass&lt;br /&gt;
{&lt;br /&gt;
    function fooMethod( $arg1 )&lt;br /&gt;
    {&lt;br /&gt;
        if ($arg) {&lt;br /&gt;
            $result = true;&lt;br /&gt;
        } else {&lt;br /&gt;
            $result = false;&lt;br /&gt;
        }&lt;br /&gt;
        return $result;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arguments with default values go at the end of the argument list. Always attempt to return a meaningful value from a function if one is appropriate. Here is a slightly longer example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
function connect( &amp;amp;$dsn, $persistent = false )&lt;br /&gt;
{&lt;br /&gt;
    if (is_array($dsn)) {&lt;br /&gt;
        $dsninfo = &amp;amp;$dsn;&lt;br /&gt;
    } else {&lt;br /&gt;
        $dsninfo = DB::parseDSN($dsn);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (!$dsninfo || !$dsninfo['phptype']) {&lt;br /&gt;
        return $this-&amp;gt;raiseError();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return true;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comments ===&lt;br /&gt;
&lt;br /&gt;
Inline documentation for classes should follow the PHPDoc convention, similar to Javadoc. More information about PHPDoc can be found here: http://www.phpdoc.org/&lt;br /&gt;
&lt;br /&gt;
See also [[standards:CodingComment|Adding PHPDocumentor comments]]&lt;br /&gt;
&lt;br /&gt;
Non-documentation comments are strongly encouraged. A general rule of thumb is that if you look at a section of code and think &amp;quot;Wow, I don't want to try and describe that&amp;quot;, you need to comment it before you forget how it works.&lt;br /&gt;
&lt;br /&gt;
C style comments (/* */) and standard C++ comments (/ /) are both fine. Use of Perl/shell style comments (#) is discouraged.&lt;br /&gt;
&lt;br /&gt;
=== Including Code ===&lt;br /&gt;
&lt;br /&gt;
Anywhere you are unconditionally including a class file, use require_once(). Anywhere you are conditionally including a class file (for example, factory methods), use include_once(). Either of these will ensure that class files are included only once. They share the same file list, so you don't need to worry about mixing them - a file included with require_once() will not be included again by include_once().&lt;br /&gt;
&lt;br /&gt;
**Note:** include_once() and require_once() are statements, not functions. You don't need parentheses around the filename to be included.&lt;br /&gt;
&lt;br /&gt;
=== PHP Code Tags ===&lt;br /&gt;
&lt;br /&gt;
Always use &amp;lt;?php ?&amp;gt; to delimit PHP code, not the &amp;lt;? ?&amp;gt; shorthand. This is required for PEAR compliance and is also the most portable way to include PHP code on differing operating systems and setups.&lt;br /&gt;
&lt;br /&gt;
For files that contain only PHP code, the closing tag (&amp;quot;?&amp;gt;&amp;quot;) is never permitted. It is not required by PHP. Not including it prevents trailing whitespace from being accidentally injected into the output.&lt;br /&gt;
&lt;br /&gt;
=== SQL Queries ===&lt;br /&gt;
&lt;br /&gt;
SQL keywords are to be written in uppercase, while all other identifiers (which the exception of quoted text obviously) is to be in lowercase. Carriage returns should not be used as JDatabase::getQuery provides for formatted output.  However, indenting with spaces to improve readability is desireable.&lt;br /&gt;
&lt;br /&gt;
Queries should be wrapped in single quotes (as these text blocks are parsed faster by php).&lt;br /&gt;
&lt;br /&gt;
All quoted string must using the ''Quote'' method to facilitate future compatibility with other database engines.&lt;br /&gt;
&lt;br /&gt;
All expected integer or floating-point variable must be cast with (int), (float) or (double) as appropriate&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code|Example&amp;gt;&lt;br /&gt;
$state = 1;&lt;br /&gt;
$name  = 'bill';&lt;br /&gt;
$db    = &amp;amp;JFactory::getDBO();&lt;br /&gt;
$query = 'SELECT COUNT( c.id ) AS num_articles, u.id, u.username'.&lt;br /&gt;
    ' FROM jos_content AS c'.&lt;br /&gt;
    ' LEFT JOIN jos_users AS u ON u.id = c.created_by'.&lt;br /&gt;
    ' WHERE c.state = '.(int) $state&lt;br /&gt;
    '  AND u.id IS NOT NULL'.&lt;br /&gt;
    '  AND u.username &amp;lt;&amp;gt; '.$db-&amp;gt;Quote( $name ).&lt;br /&gt;
    ' GROUP BY u.id'.&lt;br /&gt;
    '  HAVING COUNT( c.id ) &amp;gt; 0';&lt;br /&gt;
$db-&amp;gt;setQuery();&lt;br /&gt;
// Output formated query:&lt;br /&gt;
if ($debug) {&lt;br /&gt;
    echo $db-&amp;gt;getQuery();&lt;br /&gt;
}&lt;br /&gt;
$stats = $db-&amp;gt;loadObjectList();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Header Comment Blocks ===&lt;br /&gt;
&lt;br /&gt;
All source code files in the core PEAR distribution should contain the following comment block as the header:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Short description for file&lt;br /&gt;
 *&lt;br /&gt;
 * Long description for file (if any)...&lt;br /&gt;
 *&lt;br /&gt;
 * PHP versions 4 and 5&lt;br /&gt;
 *&lt;br /&gt;
 * LICENSE: This source file is subject to version 3.0 of the PHP license&lt;br /&gt;
 * that is available through the world-wide-web at the following URI:&lt;br /&gt;
 * http://www.php.net/license/3_0.txt.  If you did not receive a copy of&lt;br /&gt;
 * the PHP License and are unable to obtain it through the web, please&lt;br /&gt;
 * send a note to license@php.net so we can mail you a copy immediately.&lt;br /&gt;
 *&lt;br /&gt;
 * @category   CategoryName&lt;br /&gt;
 * @package    PackageName&lt;br /&gt;
 * @author     Original Author &amp;lt;author@example.com&amp;gt;&lt;br /&gt;
 * @author     Another Author &amp;lt;another@example.com&amp;gt;&lt;br /&gt;
 * @copyright  1997-2005 The PHP Group&lt;br /&gt;
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0&lt;br /&gt;
 * @version    CVS: $Id:$&lt;br /&gt;
 * @link       http://pear.php.net/package/PackageName&lt;br /&gt;
 * @see        NetOther, Net_Sample::Net_Sample()&lt;br /&gt;
 * @since      File available since Release 1.2.0&lt;br /&gt;
 * @deprecated File deprecated in Release 2.0.0&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Place includes, constant defines and $_GLOBAL settings here.&lt;br /&gt;
 * Make sure they have appropriate docblocks to avoid phpDocumentor&lt;br /&gt;
 * construing they are documented by the page-level docblock.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Short description for class&lt;br /&gt;
 *&lt;br /&gt;
 * Long description for class (if any)...&lt;br /&gt;
 *&lt;br /&gt;
 * @category   CategoryName&lt;br /&gt;
 * @package    PackageName&lt;br /&gt;
 * @author     Original Author &amp;lt;author@example.com&amp;gt;&lt;br /&gt;
 * @author     Another Author &amp;lt;another@example.com&amp;gt;&lt;br /&gt;
 * @copyright  1997-2005 The PHP Group&lt;br /&gt;
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0&lt;br /&gt;
 * @version    Release: @package_version@&lt;br /&gt;
 * @link       http://pear.php.net/package/PackageName&lt;br /&gt;
 * @see        NetOther, Net_Sample::Net_Sample()&lt;br /&gt;
 * @since      Class available since Release 1.2.0&lt;br /&gt;
 * @deprecated Class deprecated in Release 2.0.0&lt;br /&gt;
 */&lt;br /&gt;
class foo&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There's no hard rule to determine when a new code contributor should be added to the list of authors for a given source file. In general, their changes should fall into the &amp;quot;substantial&amp;quot; category (meaning somewhere around 10% to 20% of code changes). Exceptions could be made for rewriting functions or contributing new logic.&lt;br /&gt;
&lt;br /&gt;
Simple code reorganization or bug fixes would not justify the addition of a new individual to the list of authors.&lt;br /&gt;
&lt;br /&gt;
Files not in the Joomla! core repository should have a similar block stating the copyright, the license, and the authors. All files should include the modeline comments to encourage consistency.&lt;br /&gt;
&lt;br /&gt;
Example URLs&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;example.com&amp;quot;, &amp;quot;example.org&amp;quot; and &amp;quot;example.net&amp;quot; for all example URLs and email addresses, per RFC 2606.&lt;br /&gt;
&lt;br /&gt;
==== Naming Conventions ====&lt;br /&gt;
&lt;br /&gt;
=== Classes ===&lt;br /&gt;
&lt;br /&gt;
Classes should be given descriptive names. Avoid using abbreviations where possible. Class names should always begin with an uppercase letter.&lt;br /&gt;
&lt;br /&gt;
=== Functions and Methods ===&lt;br /&gt;
&lt;br /&gt;
Functions and methods should be named using the &amp;quot;studly caps&amp;quot; style (also referred to as &amp;quot;bumpy case&amp;quot; or &amp;quot;camel caps&amp;quot;). Functions should in addition have the package name as a prefix, to avoid name collisions between packages. The initial letter of the name (after the prefix) is lowercase, and each letter that starts a new &amp;quot;word&amp;quot; is capitalized. Some examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
connect()&lt;br /&gt;
 getData()&lt;br /&gt;
 buildSomeWidget()&lt;br /&gt;
 XML_RPC_serializeData()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Private class members (meaning class members that are intented to be used only from within the same class in which they are declared; PHP does not yet support truly-enforceable private namespaces) are preceded by a single underscore. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
_sort()&lt;br /&gt;
 _initTree()&lt;br /&gt;
 $this-&amp;gt;_status&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Constants ===&lt;br /&gt;
&lt;br /&gt;
Constants should always be all-uppercase, with underscores to separate words. Prefix constant names with the uppercased name of the class/package they are used in. For example, the constants used by the DB:: package all begin with &amp;quot;DB_&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Global Variables ===&lt;br /&gt;
&lt;br /&gt;
If your package needs to define global variables, their name should start with a single underscore followed by the package name and another underscore. For example, the PEAR package uses a global variable called $_PEAR_destructor_object_list.&lt;br /&gt;
&lt;br /&gt;
=== Controllers ===&lt;br /&gt;
&lt;br /&gt;
For single controller components, the naming convention is ''[Name]Controller''.   The file name will generally be ''controller.php''. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Content Controller&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
ContentController&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a multi-controller components, such as the Banners in the Administrator, the convention is ''[Component]Controller[Name]''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Banner Client Controller&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
BannerControllerClient&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The files will be located in a ''/controllers/'' folder under the component folder.  The file names will reflect the name of the controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Single Controller&lt;br /&gt;
&lt;br /&gt;
com_content&lt;br /&gt;
\- controller.php&lt;br /&gt;
&lt;br /&gt;
Multi-controller&lt;br /&gt;
&lt;br /&gt;
com_banner&lt;br /&gt;
\- controllers&lt;br /&gt;
  \- banner.php&lt;br /&gt;
  \- client.php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models===&lt;br /&gt;
&lt;br /&gt;
The naming convention is ''[Component]Model[Name]''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Banner Client Model&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
BannerModelClient&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The files will be located in a ''/models/'' folder under the component folder.  The file names will reflect the name of the controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
com_banner&lt;br /&gt;
\- models&lt;br /&gt;
  \- banner.php&lt;br /&gt;
  \- client.php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
&lt;br /&gt;
=== Layouts ===&lt;br /&gt;
&lt;br /&gt;
=== Templates ===&lt;br /&gt;
&lt;br /&gt;
=== Template Layout Overrides ===&lt;br /&gt;
&lt;br /&gt;
[[:start|Back to the Startpage]]&lt;br /&gt;
&lt;br /&gt;
~~DISCUSSION~~&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/JDOC:Joomla!_Doc_Camp/Contributors_List</id>
		<title>JDOC:Joomla! Doc Camp/Contributors List</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/JDOC:Joomla!_Doc_Camp/Contributors_List"/>
				<updated>2008-03-22T09:55:28Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: /* Contributors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you made a contribution to the documentation held on this site, please feel free to add your name below.  Please consider adding your real name in addition to your nickname.  You may, optionally, include a link to your website.&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
== Contributors ==&lt;br /&gt;
* Chris Davenport ([[Special:Contributions/Chris_Davenport|contributions]])&lt;br /&gt;
* Marieke ([[Special:Contributions/Marieke92|contributions]])&lt;br /&gt;
* Justin Kerr ([[Special:Contributions/Pomond|contributions]])&lt;br /&gt;
* [http://www.jlleblanc.com Joe LeBlanc] ([[Special:Contributions/Jlleblanc|contributions]])&lt;br /&gt;
* [http://web.nostalgie.be Christophe Delire] ([[Special:Contributions/Nostalgie|contributions]])&lt;br /&gt;
* [http://www.joomlatools.org Johan Janssens] ([[Special:Contributions/Jinx|contributions]])&lt;br /&gt;
* [http://www.webmechanic.biz René Serradeil] ([[Special:Contributions/CirTap|contributions]])&lt;br /&gt;
* [https://www.zimmerle.de Julian Zimmerle] ([[Special:Contributions/JGZimmerle|contributions]])&lt;br /&gt;
* Shantanu Bala ([[Special:Contributions/Shantanubala|contributions]])&lt;br /&gt;
* [http://www.joomla.org.hu Annamária Bán] ([[Special:Contributions/Annamari|contributions]])&lt;br /&gt;
* [http://www.joomla.org.hu József Tamás Herczeg] ([[Special:Contributions/Localicer|contributions]])&lt;br /&gt;
* [http://www.joomla.org.hu Tibor Tóth] ([[Special:Contributions/Tibor.toth|contributions]])&lt;br /&gt;
* [http://novoportal.hu Zoltán Varanka] ([[Special:Contributions/Zvaranka|contributions]])&lt;br /&gt;
* [http://www.thinknetwork.com Alex Kempkens] ([[Special:Contributions/Akede|contributions]])&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
[[Category:DocCamp]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Coding_style_and_standards</id>
		<title>Coding style and standards</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Coding_style_and_standards"/>
				<updated>2008-03-22T09:53:17Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{review}}&lt;br /&gt;
&lt;br /&gt;
remark: The following information are copied from the old WIKI archive and not yet reviewed.&lt;br /&gt;
See: http://dev.joomla.org/component/option,com_jd-wiki/Itemid,/id,standards:coding/&lt;br /&gt;
&lt;br /&gt;
Good coding standards are important in any development project, but particularly when multiple developers are working on the same project. Having coding standards helps ensure that the code is of high quality, has fewer bugs, and is easily maintained.&lt;br /&gt;
&lt;br /&gt;
==== Coding Standards ====&lt;br /&gt;
&lt;br /&gt;
=== Indenting and Line Length ===&lt;br /&gt;
&lt;br /&gt;
Use tabs to indent, not spaces, with the tab-stops set to an equivalent of 4 spaces.&lt;br /&gt;
&lt;br /&gt;
It is recommended that you break lines at approximately 75-85 characters. There is no standard rule for the best way to break a line, use your judgment and, when in doubt.&lt;br /&gt;
&lt;br /&gt;
=== Control Structures ===&lt;br /&gt;
&lt;br /&gt;
These include if, for, while, switch, etc. Here is an example if statement, since it is the most complicated of them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
if ((condition1) || (condition2)) {&lt;br /&gt;
    action1();&lt;br /&gt;
} elseif ((condition3) &amp;amp;&amp;amp; (condition4)) {&lt;br /&gt;
    action2();&lt;br /&gt;
} else&lt;br /&gt;
{&lt;br /&gt;
   // Use one true brace in control structures&lt;br /&gt;
   // when the block is longer than one line&lt;br /&gt;
    defaultaction();&lt;br /&gt;
    anotheraction();&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Control statements should have one space between the control keyword and opening parenthesis, to distinguish them from function calls.&lt;br /&gt;
&lt;br /&gt;
You are strongly encouraged to always use curly braces even in situations where they are technically optional. Having them increases readability and decreases the likelihood of logic errors being introduced when new lines are added.&lt;br /&gt;
&lt;br /&gt;
For switch statements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
switch (condition)&lt;br /&gt;
{&lt;br /&gt;
    case 1:&lt;br /&gt;
        action1;&lt;br /&gt;
        break;&lt;br /&gt;
&lt;br /&gt;
    case 2:&lt;br /&gt;
        action2;&lt;br /&gt;
        break;&lt;br /&gt;
&lt;br /&gt;
    default:&lt;br /&gt;
        defaultaction;&lt;br /&gt;
        break;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function Calls ===&lt;br /&gt;
&lt;br /&gt;
Functions should be called with no spaces between the function name and the opening parenthesis, one space for the first parameter; spaces between commas and each parameter, and one space between the last parameter, no space between the closing parenthesis, and the semicolon. Here's an example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$var = foo( $bar, $baz, $quux );&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As displayed above, there should be one space on either side of an equals sign used to assign the return value of a function to a variable. In the case of a block of related assignments, tabs may be inserted to promote readability:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$short         = foo( $bar );&lt;br /&gt;
$long_variable = foo( $baz );&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function Definitions ===&lt;br /&gt;
&lt;br /&gt;
Class and function declarations follow the &amp;quot;one true brace&amp;quot; convention:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
function fooFunction( $arg1, $arg2 = '' )&lt;br /&gt;
{&lt;br /&gt;
    if (condition) {&lt;br /&gt;
        statement;&lt;br /&gt;
    }&lt;br /&gt;
    return $val;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class fooClass&lt;br /&gt;
{&lt;br /&gt;
    function fooMethod( $arg1 )&lt;br /&gt;
    {&lt;br /&gt;
        if ($arg) {&lt;br /&gt;
            $result = true;&lt;br /&gt;
        } else {&lt;br /&gt;
            $result = false;&lt;br /&gt;
        }&lt;br /&gt;
        return $result;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arguments with default values go at the end of the argument list. Always attempt to return a meaningful value from a function if one is appropriate. Here is a slightly longer example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
function connect( &amp;amp;$dsn, $persistent = false )&lt;br /&gt;
{&lt;br /&gt;
    if (is_array($dsn)) {&lt;br /&gt;
        $dsninfo = &amp;amp;$dsn;&lt;br /&gt;
    } else {&lt;br /&gt;
        $dsninfo = DB::parseDSN($dsn);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (!$dsninfo || !$dsninfo['phptype']) {&lt;br /&gt;
        return $this-&amp;gt;raiseError();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return true;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comments ===&lt;br /&gt;
&lt;br /&gt;
Inline documentation for classes should follow the PHPDoc convention, similar to Javadoc. More information about PHPDoc can be found here: http://www.phpdoc.org/&lt;br /&gt;
&lt;br /&gt;
See also [[standards:CodingComment|Adding PHPDocumentor comments]]&lt;br /&gt;
&lt;br /&gt;
Non-documentation comments are strongly encouraged. A general rule of thumb is that if you look at a section of code and think &amp;quot;Wow, I don't want to try and describe that&amp;quot;, you need to comment it before you forget how it works.&lt;br /&gt;
&lt;br /&gt;
C style comments (/* */) and standard C++ comments (/ /) are both fine. Use of Perl/shell style comments (#) is discouraged.&lt;br /&gt;
&lt;br /&gt;
=== Including Code ===&lt;br /&gt;
&lt;br /&gt;
Anywhere you are unconditionally including a class file, use require_once(). Anywhere you are conditionally including a class file (for example, factory methods), use include_once(). Either of these will ensure that class files are included only once. They share the same file list, so you don't need to worry about mixing them - a file included with require_once() will not be included again by include_once().&lt;br /&gt;
&lt;br /&gt;
**Note:** include_once() and require_once() are statements, not functions. You don't need parentheses around the filename to be included.&lt;br /&gt;
&lt;br /&gt;
=== PHP Code Tags ===&lt;br /&gt;
&lt;br /&gt;
Always use &amp;lt;?php ?&amp;gt; to delimit PHP code, not the &amp;lt;? ?&amp;gt; shorthand. This is required for PEAR compliance and is also the most portable way to include PHP code on differing operating systems and setups.&lt;br /&gt;
&lt;br /&gt;
For files that contain only PHP code, the closing tag (&amp;quot;?&amp;gt;&amp;quot;) is never permitted. It is not required by PHP. Not including it prevents trailing whitespace from being accidentally injected into the output.&lt;br /&gt;
&lt;br /&gt;
=== SQL Queries ===&lt;br /&gt;
&lt;br /&gt;
SQL keywords are to be written in uppercase, while all other identifiers (which the exception of quoted text obviously) is to be in lowercase. Carriage returns should not be used as JDatabase::getQuery provides for formatted output.  However, indenting with spaces to improve readability is desireable.&lt;br /&gt;
&lt;br /&gt;
Queries should be wrapped in single quotes (as these text blocks are parsed faster by php).&lt;br /&gt;
&lt;br /&gt;
All quoted string must using the ''Quote'' method to facilitate future compatibility with other database engines.&lt;br /&gt;
&lt;br /&gt;
All expected integer or floating-point variable must be cast with (int), (float) or (double) as appropriate&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code|Example&amp;gt;&lt;br /&gt;
$state = 1;&lt;br /&gt;
$name  = 'bill';&lt;br /&gt;
$db    = &amp;amp;JFactory::getDBO();&lt;br /&gt;
$query = 'SELECT COUNT( c.id ) AS num_articles, u.id, u.username'.&lt;br /&gt;
    ' FROM jos_content AS c'.&lt;br /&gt;
    ' LEFT JOIN jos_users AS u ON u.id = c.created_by'.&lt;br /&gt;
    ' WHERE c.state = '.(int) $state&lt;br /&gt;
    '  AND u.id IS NOT NULL'.&lt;br /&gt;
    '  AND u.username &amp;lt;&amp;gt; '.$db-&amp;gt;Quote( $name ).&lt;br /&gt;
    ' GROUP BY u.id'.&lt;br /&gt;
    '  HAVING COUNT( c.id ) &amp;gt; 0';&lt;br /&gt;
$db-&amp;gt;setQuery();&lt;br /&gt;
// Output formated query:&lt;br /&gt;
if ($debug) {&lt;br /&gt;
    echo $db-&amp;gt;getQuery();&lt;br /&gt;
}&lt;br /&gt;
$stats = $db-&amp;gt;loadObjectList();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Header Comment Blocks ===&lt;br /&gt;
&lt;br /&gt;
All source code files in the core PEAR distribution should contain the following comment block as the header:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Short description for file&lt;br /&gt;
 *&lt;br /&gt;
 * Long description for file (if any)...&lt;br /&gt;
 *&lt;br /&gt;
 * PHP versions 4 and 5&lt;br /&gt;
 *&lt;br /&gt;
 * LICENSE: This source file is subject to version 3.0 of the PHP license&lt;br /&gt;
 * that is available through the world-wide-web at the following URI:&lt;br /&gt;
 * http://www.php.net/license/3_0.txt.  If you did not receive a copy of&lt;br /&gt;
 * the PHP License and are unable to obtain it through the web, please&lt;br /&gt;
 * send a note to license@php.net so we can mail you a copy immediately.&lt;br /&gt;
 *&lt;br /&gt;
 * @category   CategoryName&lt;br /&gt;
 * @package    PackageName&lt;br /&gt;
 * @author     Original Author &amp;lt;author@example.com&amp;gt;&lt;br /&gt;
 * @author     Another Author &amp;lt;another@example.com&amp;gt;&lt;br /&gt;
 * @copyright  1997-2005 The PHP Group&lt;br /&gt;
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0&lt;br /&gt;
 * @version    CVS: $Id:$&lt;br /&gt;
 * @link       http://pear.php.net/package/PackageName&lt;br /&gt;
 * @see        NetOther, Net_Sample::Net_Sample()&lt;br /&gt;
 * @since      File available since Release 1.2.0&lt;br /&gt;
 * @deprecated File deprecated in Release 2.0.0&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Place includes, constant defines and $_GLOBAL settings here.&lt;br /&gt;
 * Make sure they have appropriate docblocks to avoid phpDocumentor&lt;br /&gt;
 * construing they are documented by the page-level docblock.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Short description for class&lt;br /&gt;
 *&lt;br /&gt;
 * Long description for class (if any)...&lt;br /&gt;
 *&lt;br /&gt;
 * @category   CategoryName&lt;br /&gt;
 * @package    PackageName&lt;br /&gt;
 * @author     Original Author &amp;lt;author@example.com&amp;gt;&lt;br /&gt;
 * @author     Another Author &amp;lt;another@example.com&amp;gt;&lt;br /&gt;
 * @copyright  1997-2005 The PHP Group&lt;br /&gt;
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0&lt;br /&gt;
 * @version    Release: @package_version@&lt;br /&gt;
 * @link       http://pear.php.net/package/PackageName&lt;br /&gt;
 * @see        NetOther, Net_Sample::Net_Sample()&lt;br /&gt;
 * @since      Class available since Release 1.2.0&lt;br /&gt;
 * @deprecated Class deprecated in Release 2.0.0&lt;br /&gt;
 */&lt;br /&gt;
class foo&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There's no hard rule to determine when a new code contributor should be added to the list of authors for a given source file. In general, their changes should fall into the &amp;quot;substantial&amp;quot; category (meaning somewhere around 10% to 20% of code changes). Exceptions could be made for rewriting functions or contributing new logic.&lt;br /&gt;
&lt;br /&gt;
Simple code reorganization or bug fixes would not justify the addition of a new individual to the list of authors.&lt;br /&gt;
&lt;br /&gt;
Files not in the Joomla! core repository should have a similar block stating the copyright, the license, and the authors. All files should include the modeline comments to encourage consistency.&lt;br /&gt;
&lt;br /&gt;
Example URLs&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;example.com&amp;quot;, &amp;quot;example.org&amp;quot; and &amp;quot;example.net&amp;quot; for all example URLs and email addresses, per RFC 2606.&lt;br /&gt;
&lt;br /&gt;
==== Naming Conventions ====&lt;br /&gt;
&lt;br /&gt;
=== Classes ===&lt;br /&gt;
&lt;br /&gt;
Classes should be given descriptive names. Avoid using abbreviations where possible. Class names should always begin with an uppercase letter.&lt;br /&gt;
&lt;br /&gt;
=== Functions and Methods ===&lt;br /&gt;
&lt;br /&gt;
Functions and methods should be named using the &amp;quot;studly caps&amp;quot; style (also referred to as &amp;quot;bumpy case&amp;quot; or &amp;quot;camel caps&amp;quot;). Functions should in addition have the package name as a prefix, to avoid name collisions between packages. The initial letter of the name (after the prefix) is lowercase, and each letter that starts a new &amp;quot;word&amp;quot; is capitalized. Some examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
connect()&lt;br /&gt;
 getData()&lt;br /&gt;
 buildSomeWidget()&lt;br /&gt;
 XML_RPC_serializeData()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Private class members (meaning class members that are intented to be used only from within the same class in which they are declared; PHP does not yet support truly-enforceable private namespaces) are preceded by a single underscore. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
_sort()&lt;br /&gt;
 _initTree()&lt;br /&gt;
 $this-&amp;gt;_status&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Constants ===&lt;br /&gt;
&lt;br /&gt;
Constants should always be all-uppercase, with underscores to separate words. Prefix constant names with the uppercased name of the class/package they are used in. For example, the constants used by the DB:: package all begin with &amp;quot;DB_&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Global Variables ===&lt;br /&gt;
&lt;br /&gt;
If your package needs to define global variables, their name should start with a single underscore followed by the package name and another underscore. For example, the PEAR package uses a global variable called $_PEAR_destructor_object_list.&lt;br /&gt;
&lt;br /&gt;
=== Controllers ===&lt;br /&gt;
&lt;br /&gt;
For single controller components, the naming convention is ''[Name]Controller''.   The file name will generally be ''controller.php''. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Content Controller&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
ContentController&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a multi-controller components, such as the Banners in the Administrator, the convention is ''[Component]Controller[Name]''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Banner Client Controller&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
BannerControllerClient&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The files will be located in a ''/controllers/'' folder under the component folder.  The file names will reflect the name of the controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Single Controller&lt;br /&gt;
&lt;br /&gt;
com_content&lt;br /&gt;
\- controller.php&lt;br /&gt;
&lt;br /&gt;
Multi-controller&lt;br /&gt;
&lt;br /&gt;
com_banner&lt;br /&gt;
\- controllers&lt;br /&gt;
  \- banner.php&lt;br /&gt;
  \- client.php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models===&lt;br /&gt;
&lt;br /&gt;
The naming convention is ''[Component]Model[Name]''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Banner Client Model&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
BannerModelClient&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The files will be located in a ''/models/'' folder under the component folder.  The file names will reflect the name of the controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
com_banner&lt;br /&gt;
\- models&lt;br /&gt;
  \- banner.php&lt;br /&gt;
  \- client.php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
&lt;br /&gt;
=== Layouts ===&lt;br /&gt;
&lt;br /&gt;
=== Templates ===&lt;br /&gt;
&lt;br /&gt;
=== Template Layout Overrides ===&lt;br /&gt;
&lt;br /&gt;
[[:start|Back to the Startpage]]&lt;br /&gt;
&lt;br /&gt;
~~DISCUSSION~~&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Coding_style_and_standards</id>
		<title>Coding style and standards</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Coding_style_and_standards"/>
				<updated>2008-03-22T09:52:34Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Joomla! Coding Standards =====&lt;br /&gt;
&lt;br /&gt;
{{review}}&lt;br /&gt;
&lt;br /&gt;
Good coding standards are important in any development project, but particularly when multiple developers are working on the same project. Having coding standards helps ensure that the code is of high quality, has fewer bugs, and is easily maintained.&lt;br /&gt;
&lt;br /&gt;
remark: The following information are copied from the old WIKI archive and not yet reviewed.&lt;br /&gt;
See: http://dev.joomla.org/component/option,com_jd-wiki/Itemid,/id,standards:coding/&lt;br /&gt;
&lt;br /&gt;
==== Coding Standards ====&lt;br /&gt;
&lt;br /&gt;
=== Indenting and Line Length ===&lt;br /&gt;
&lt;br /&gt;
Use tabs to indent, not spaces, with the tab-stops set to an equivalent of 4 spaces.&lt;br /&gt;
&lt;br /&gt;
It is recommended that you break lines at approximately 75-85 characters. There is no standard rule for the best way to break a line, use your judgment and, when in doubt.&lt;br /&gt;
&lt;br /&gt;
=== Control Structures ===&lt;br /&gt;
&lt;br /&gt;
These include if, for, while, switch, etc. Here is an example if statement, since it is the most complicated of them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
if ((condition1) || (condition2)) {&lt;br /&gt;
    action1();&lt;br /&gt;
} elseif ((condition3) &amp;amp;&amp;amp; (condition4)) {&lt;br /&gt;
    action2();&lt;br /&gt;
} else&lt;br /&gt;
{&lt;br /&gt;
   // Use one true brace in control structures&lt;br /&gt;
   // when the block is longer than one line&lt;br /&gt;
    defaultaction();&lt;br /&gt;
    anotheraction();&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Control statements should have one space between the control keyword and opening parenthesis, to distinguish them from function calls.&lt;br /&gt;
&lt;br /&gt;
You are strongly encouraged to always use curly braces even in situations where they are technically optional. Having them increases readability and decreases the likelihood of logic errors being introduced when new lines are added.&lt;br /&gt;
&lt;br /&gt;
For switch statements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
switch (condition)&lt;br /&gt;
{&lt;br /&gt;
    case 1:&lt;br /&gt;
        action1;&lt;br /&gt;
        break;&lt;br /&gt;
&lt;br /&gt;
    case 2:&lt;br /&gt;
        action2;&lt;br /&gt;
        break;&lt;br /&gt;
&lt;br /&gt;
    default:&lt;br /&gt;
        defaultaction;&lt;br /&gt;
        break;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function Calls ===&lt;br /&gt;
&lt;br /&gt;
Functions should be called with no spaces between the function name and the opening parenthesis, one space for the first parameter; spaces between commas and each parameter, and one space between the last parameter, no space between the closing parenthesis, and the semicolon. Here's an example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$var = foo( $bar, $baz, $quux );&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As displayed above, there should be one space on either side of an equals sign used to assign the return value of a function to a variable. In the case of a block of related assignments, tabs may be inserted to promote readability:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$short         = foo( $bar );&lt;br /&gt;
$long_variable = foo( $baz );&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function Definitions ===&lt;br /&gt;
&lt;br /&gt;
Class and function declarations follow the &amp;quot;one true brace&amp;quot; convention:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
function fooFunction( $arg1, $arg2 = '' )&lt;br /&gt;
{&lt;br /&gt;
    if (condition) {&lt;br /&gt;
        statement;&lt;br /&gt;
    }&lt;br /&gt;
    return $val;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class fooClass&lt;br /&gt;
{&lt;br /&gt;
    function fooMethod( $arg1 )&lt;br /&gt;
    {&lt;br /&gt;
        if ($arg) {&lt;br /&gt;
            $result = true;&lt;br /&gt;
        } else {&lt;br /&gt;
            $result = false;&lt;br /&gt;
        }&lt;br /&gt;
        return $result;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arguments with default values go at the end of the argument list. Always attempt to return a meaningful value from a function if one is appropriate. Here is a slightly longer example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
function connect( &amp;amp;$dsn, $persistent = false )&lt;br /&gt;
{&lt;br /&gt;
    if (is_array($dsn)) {&lt;br /&gt;
        $dsninfo = &amp;amp;$dsn;&lt;br /&gt;
    } else {&lt;br /&gt;
        $dsninfo = DB::parseDSN($dsn);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (!$dsninfo || !$dsninfo['phptype']) {&lt;br /&gt;
        return $this-&amp;gt;raiseError();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return true;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comments ===&lt;br /&gt;
&lt;br /&gt;
Inline documentation for classes should follow the PHPDoc convention, similar to Javadoc. More information about PHPDoc can be found here: http://www.phpdoc.org/&lt;br /&gt;
&lt;br /&gt;
See also [[standards:CodingComment|Adding PHPDocumentor comments]]&lt;br /&gt;
&lt;br /&gt;
Non-documentation comments are strongly encouraged. A general rule of thumb is that if you look at a section of code and think &amp;quot;Wow, I don't want to try and describe that&amp;quot;, you need to comment it before you forget how it works.&lt;br /&gt;
&lt;br /&gt;
C style comments (/* */) and standard C++ comments (/ /) are both fine. Use of Perl/shell style comments (#) is discouraged.&lt;br /&gt;
&lt;br /&gt;
=== Including Code ===&lt;br /&gt;
&lt;br /&gt;
Anywhere you are unconditionally including a class file, use require_once(). Anywhere you are conditionally including a class file (for example, factory methods), use include_once(). Either of these will ensure that class files are included only once. They share the same file list, so you don't need to worry about mixing them - a file included with require_once() will not be included again by include_once().&lt;br /&gt;
&lt;br /&gt;
**Note:** include_once() and require_once() are statements, not functions. You don't need parentheses around the filename to be included.&lt;br /&gt;
&lt;br /&gt;
=== PHP Code Tags ===&lt;br /&gt;
&lt;br /&gt;
Always use &amp;lt;?php ?&amp;gt; to delimit PHP code, not the &amp;lt;? ?&amp;gt; shorthand. This is required for PEAR compliance and is also the most portable way to include PHP code on differing operating systems and setups.&lt;br /&gt;
&lt;br /&gt;
For files that contain only PHP code, the closing tag (&amp;quot;?&amp;gt;&amp;quot;) is never permitted. It is not required by PHP. Not including it prevents trailing whitespace from being accidentally injected into the output.&lt;br /&gt;
&lt;br /&gt;
=== SQL Queries ===&lt;br /&gt;
&lt;br /&gt;
SQL keywords are to be written in uppercase, while all other identifiers (which the exception of quoted text obviously) is to be in lowercase. Carriage returns should not be used as JDatabase::getQuery provides for formatted output.  However, indenting with spaces to improve readability is desireable.&lt;br /&gt;
&lt;br /&gt;
Queries should be wrapped in single quotes (as these text blocks are parsed faster by php).&lt;br /&gt;
&lt;br /&gt;
All quoted string must using the ''Quote'' method to facilitate future compatibility with other database engines.&lt;br /&gt;
&lt;br /&gt;
All expected integer or floating-point variable must be cast with (int), (float) or (double) as appropriate&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code|Example&amp;gt;&lt;br /&gt;
$state = 1;&lt;br /&gt;
$name  = 'bill';&lt;br /&gt;
$db    = &amp;amp;JFactory::getDBO();&lt;br /&gt;
$query = 'SELECT COUNT( c.id ) AS num_articles, u.id, u.username'.&lt;br /&gt;
    ' FROM jos_content AS c'.&lt;br /&gt;
    ' LEFT JOIN jos_users AS u ON u.id = c.created_by'.&lt;br /&gt;
    ' WHERE c.state = '.(int) $state&lt;br /&gt;
    '  AND u.id IS NOT NULL'.&lt;br /&gt;
    '  AND u.username &amp;lt;&amp;gt; '.$db-&amp;gt;Quote( $name ).&lt;br /&gt;
    ' GROUP BY u.id'.&lt;br /&gt;
    '  HAVING COUNT( c.id ) &amp;gt; 0';&lt;br /&gt;
$db-&amp;gt;setQuery();&lt;br /&gt;
// Output formated query:&lt;br /&gt;
if ($debug) {&lt;br /&gt;
    echo $db-&amp;gt;getQuery();&lt;br /&gt;
}&lt;br /&gt;
$stats = $db-&amp;gt;loadObjectList();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Header Comment Blocks ===&lt;br /&gt;
&lt;br /&gt;
All source code files in the core PEAR distribution should contain the following comment block as the header:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Short description for file&lt;br /&gt;
 *&lt;br /&gt;
 * Long description for file (if any)...&lt;br /&gt;
 *&lt;br /&gt;
 * PHP versions 4 and 5&lt;br /&gt;
 *&lt;br /&gt;
 * LICENSE: This source file is subject to version 3.0 of the PHP license&lt;br /&gt;
 * that is available through the world-wide-web at the following URI:&lt;br /&gt;
 * http://www.php.net/license/3_0.txt.  If you did not receive a copy of&lt;br /&gt;
 * the PHP License and are unable to obtain it through the web, please&lt;br /&gt;
 * send a note to license@php.net so we can mail you a copy immediately.&lt;br /&gt;
 *&lt;br /&gt;
 * @category   CategoryName&lt;br /&gt;
 * @package    PackageName&lt;br /&gt;
 * @author     Original Author &amp;lt;author@example.com&amp;gt;&lt;br /&gt;
 * @author     Another Author &amp;lt;another@example.com&amp;gt;&lt;br /&gt;
 * @copyright  1997-2005 The PHP Group&lt;br /&gt;
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0&lt;br /&gt;
 * @version    CVS: $Id:$&lt;br /&gt;
 * @link       http://pear.php.net/package/PackageName&lt;br /&gt;
 * @see        NetOther, Net_Sample::Net_Sample()&lt;br /&gt;
 * @since      File available since Release 1.2.0&lt;br /&gt;
 * @deprecated File deprecated in Release 2.0.0&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Place includes, constant defines and $_GLOBAL settings here.&lt;br /&gt;
 * Make sure they have appropriate docblocks to avoid phpDocumentor&lt;br /&gt;
 * construing they are documented by the page-level docblock.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Short description for class&lt;br /&gt;
 *&lt;br /&gt;
 * Long description for class (if any)...&lt;br /&gt;
 *&lt;br /&gt;
 * @category   CategoryName&lt;br /&gt;
 * @package    PackageName&lt;br /&gt;
 * @author     Original Author &amp;lt;author@example.com&amp;gt;&lt;br /&gt;
 * @author     Another Author &amp;lt;another@example.com&amp;gt;&lt;br /&gt;
 * @copyright  1997-2005 The PHP Group&lt;br /&gt;
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0&lt;br /&gt;
 * @version    Release: @package_version@&lt;br /&gt;
 * @link       http://pear.php.net/package/PackageName&lt;br /&gt;
 * @see        NetOther, Net_Sample::Net_Sample()&lt;br /&gt;
 * @since      Class available since Release 1.2.0&lt;br /&gt;
 * @deprecated Class deprecated in Release 2.0.0&lt;br /&gt;
 */&lt;br /&gt;
class foo&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There's no hard rule to determine when a new code contributor should be added to the list of authors for a given source file. In general, their changes should fall into the &amp;quot;substantial&amp;quot; category (meaning somewhere around 10% to 20% of code changes). Exceptions could be made for rewriting functions or contributing new logic.&lt;br /&gt;
&lt;br /&gt;
Simple code reorganization or bug fixes would not justify the addition of a new individual to the list of authors.&lt;br /&gt;
&lt;br /&gt;
Files not in the Joomla! core repository should have a similar block stating the copyright, the license, and the authors. All files should include the modeline comments to encourage consistency.&lt;br /&gt;
&lt;br /&gt;
Example URLs&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;example.com&amp;quot;, &amp;quot;example.org&amp;quot; and &amp;quot;example.net&amp;quot; for all example URLs and email addresses, per RFC 2606.&lt;br /&gt;
&lt;br /&gt;
==== Naming Conventions ====&lt;br /&gt;
&lt;br /&gt;
=== Classes ===&lt;br /&gt;
&lt;br /&gt;
Classes should be given descriptive names. Avoid using abbreviations where possible. Class names should always begin with an uppercase letter.&lt;br /&gt;
&lt;br /&gt;
=== Functions and Methods ===&lt;br /&gt;
&lt;br /&gt;
Functions and methods should be named using the &amp;quot;studly caps&amp;quot; style (also referred to as &amp;quot;bumpy case&amp;quot; or &amp;quot;camel caps&amp;quot;). Functions should in addition have the package name as a prefix, to avoid name collisions between packages. The initial letter of the name (after the prefix) is lowercase, and each letter that starts a new &amp;quot;word&amp;quot; is capitalized. Some examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
connect()&lt;br /&gt;
 getData()&lt;br /&gt;
 buildSomeWidget()&lt;br /&gt;
 XML_RPC_serializeData()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Private class members (meaning class members that are intented to be used only from within the same class in which they are declared; PHP does not yet support truly-enforceable private namespaces) are preceded by a single underscore. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
_sort()&lt;br /&gt;
 _initTree()&lt;br /&gt;
 $this-&amp;gt;_status&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Constants ===&lt;br /&gt;
&lt;br /&gt;
Constants should always be all-uppercase, with underscores to separate words. Prefix constant names with the uppercased name of the class/package they are used in. For example, the constants used by the DB:: package all begin with &amp;quot;DB_&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Global Variables ===&lt;br /&gt;
&lt;br /&gt;
If your package needs to define global variables, their name should start with a single underscore followed by the package name and another underscore. For example, the PEAR package uses a global variable called $_PEAR_destructor_object_list.&lt;br /&gt;
&lt;br /&gt;
=== Controllers ===&lt;br /&gt;
&lt;br /&gt;
For single controller components, the naming convention is ''[Name]Controller''.   The file name will generally be ''controller.php''. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Content Controller&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
ContentController&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a multi-controller components, such as the Banners in the Administrator, the convention is ''[Component]Controller[Name]''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Banner Client Controller&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
BannerControllerClient&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The files will be located in a ''/controllers/'' folder under the component folder.  The file names will reflect the name of the controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Single Controller&lt;br /&gt;
&lt;br /&gt;
com_content&lt;br /&gt;
\- controller.php&lt;br /&gt;
&lt;br /&gt;
Multi-controller&lt;br /&gt;
&lt;br /&gt;
com_banner&lt;br /&gt;
\- controllers&lt;br /&gt;
  \- banner.php&lt;br /&gt;
  \- client.php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models===&lt;br /&gt;
&lt;br /&gt;
The naming convention is ''[Component]Model[Name]''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Banner Client Model&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
BannerModelClient&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The files will be located in a ''/models/'' folder under the component folder.  The file names will reflect the name of the controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
com_banner&lt;br /&gt;
\- models&lt;br /&gt;
  \- banner.php&lt;br /&gt;
  \- client.php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
&lt;br /&gt;
=== Layouts ===&lt;br /&gt;
&lt;br /&gt;
=== Templates ===&lt;br /&gt;
&lt;br /&gt;
=== Template Layout Overrides ===&lt;br /&gt;
&lt;br /&gt;
[[:start|Back to the Startpage]]&lt;br /&gt;
&lt;br /&gt;
~~DISCUSSION~~&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Coding_style_and_standards</id>
		<title>Coding style and standards</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Coding_style_and_standards"/>
				<updated>2008-03-22T09:51:27Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: Copied existing information&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Joomla! Coding Standards =====&lt;br /&gt;
&lt;br /&gt;
Good coding standards are important in any development project, but particularly when multiple developers are working on the same project. Having coding standards helps ensure that the code is of high quality, has fewer bugs, and is easily maintained.&lt;br /&gt;
&lt;br /&gt;
remark: The following information are copied from the old WIKI archive and not yet reviewed.&lt;br /&gt;
See: http://dev.joomla.org/component/option,com_jd-wiki/Itemid,/id,standards:coding/&lt;br /&gt;
&lt;br /&gt;
==== Coding Standards ====&lt;br /&gt;
&lt;br /&gt;
=== Indenting and Line Length ===&lt;br /&gt;
&lt;br /&gt;
Use tabs to indent, not spaces, with the tab-stops set to an equivalent of 4 spaces.&lt;br /&gt;
&lt;br /&gt;
It is recommended that you break lines at approximately 75-85 characters. There is no standard rule for the best way to break a line, use your judgment and, when in doubt.&lt;br /&gt;
&lt;br /&gt;
=== Control Structures ===&lt;br /&gt;
&lt;br /&gt;
These include if, for, while, switch, etc. Here is an example if statement, since it is the most complicated of them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
if ((condition1) || (condition2)) {&lt;br /&gt;
    action1();&lt;br /&gt;
} elseif ((condition3) &amp;amp;&amp;amp; (condition4)) {&lt;br /&gt;
    action2();&lt;br /&gt;
} else&lt;br /&gt;
{&lt;br /&gt;
   // Use one true brace in control structures&lt;br /&gt;
   // when the block is longer than one line&lt;br /&gt;
    defaultaction();&lt;br /&gt;
    anotheraction();&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Control statements should have one space between the control keyword and opening parenthesis, to distinguish them from function calls.&lt;br /&gt;
&lt;br /&gt;
You are strongly encouraged to always use curly braces even in situations where they are technically optional. Having them increases readability and decreases the likelihood of logic errors being introduced when new lines are added.&lt;br /&gt;
&lt;br /&gt;
For switch statements:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
switch (condition)&lt;br /&gt;
{&lt;br /&gt;
    case 1:&lt;br /&gt;
        action1;&lt;br /&gt;
        break;&lt;br /&gt;
&lt;br /&gt;
    case 2:&lt;br /&gt;
        action2;&lt;br /&gt;
        break;&lt;br /&gt;
&lt;br /&gt;
    default:&lt;br /&gt;
        defaultaction;&lt;br /&gt;
        break;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function Calls ===&lt;br /&gt;
&lt;br /&gt;
Functions should be called with no spaces between the function name and the opening parenthesis, one space for the first parameter; spaces between commas and each parameter, and one space between the last parameter, no space between the closing parenthesis, and the semicolon. Here's an example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$var = foo( $bar, $baz, $quux );&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As displayed above, there should be one space on either side of an equals sign used to assign the return value of a function to a variable. In the case of a block of related assignments, tabs may be inserted to promote readability:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$short         = foo( $bar );&lt;br /&gt;
$long_variable = foo( $baz );&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Function Definitions ===&lt;br /&gt;
&lt;br /&gt;
Class and function declarations follow the &amp;quot;one true brace&amp;quot; convention:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
function fooFunction( $arg1, $arg2 = '' )&lt;br /&gt;
{&lt;br /&gt;
    if (condition) {&lt;br /&gt;
        statement;&lt;br /&gt;
    }&lt;br /&gt;
    return $val;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
class fooClass&lt;br /&gt;
{&lt;br /&gt;
    function fooMethod( $arg1 )&lt;br /&gt;
    {&lt;br /&gt;
        if ($arg) {&lt;br /&gt;
            $result = true;&lt;br /&gt;
        } else {&lt;br /&gt;
            $result = false;&lt;br /&gt;
        }&lt;br /&gt;
        return $result;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Arguments with default values go at the end of the argument list. Always attempt to return a meaningful value from a function if one is appropriate. Here is a slightly longer example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
function connect( &amp;amp;$dsn, $persistent = false )&lt;br /&gt;
{&lt;br /&gt;
    if (is_array($dsn)) {&lt;br /&gt;
        $dsninfo = &amp;amp;$dsn;&lt;br /&gt;
    } else {&lt;br /&gt;
        $dsninfo = DB::parseDSN($dsn);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (!$dsninfo || !$dsninfo['phptype']) {&lt;br /&gt;
        return $this-&amp;gt;raiseError();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return true;&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comments ===&lt;br /&gt;
&lt;br /&gt;
Inline documentation for classes should follow the PHPDoc convention, similar to Javadoc. More information about PHPDoc can be found here: http://www.phpdoc.org/&lt;br /&gt;
&lt;br /&gt;
See also [[standards:CodingComment|Adding PHPDocumentor comments]]&lt;br /&gt;
&lt;br /&gt;
Non-documentation comments are strongly encouraged. A general rule of thumb is that if you look at a section of code and think &amp;quot;Wow, I don't want to try and describe that&amp;quot;, you need to comment it before you forget how it works.&lt;br /&gt;
&lt;br /&gt;
C style comments (/* */) and standard C++ comments (/ /) are both fine. Use of Perl/shell style comments (#) is discouraged.&lt;br /&gt;
&lt;br /&gt;
=== Including Code ===&lt;br /&gt;
&lt;br /&gt;
Anywhere you are unconditionally including a class file, use require_once(). Anywhere you are conditionally including a class file (for example, factory methods), use include_once(). Either of these will ensure that class files are included only once. They share the same file list, so you don't need to worry about mixing them - a file included with require_once() will not be included again by include_once().&lt;br /&gt;
&lt;br /&gt;
**Note:** include_once() and require_once() are statements, not functions. You don't need parentheses around the filename to be included.&lt;br /&gt;
&lt;br /&gt;
=== PHP Code Tags ===&lt;br /&gt;
&lt;br /&gt;
Always use &amp;lt;?php ?&amp;gt; to delimit PHP code, not the &amp;lt;? ?&amp;gt; shorthand. This is required for PEAR compliance and is also the most portable way to include PHP code on differing operating systems and setups.&lt;br /&gt;
&lt;br /&gt;
For files that contain only PHP code, the closing tag (&amp;quot;?&amp;gt;&amp;quot;) is never permitted. It is not required by PHP. Not including it prevents trailing whitespace from being accidentally injected into the output.&lt;br /&gt;
&lt;br /&gt;
=== SQL Queries ===&lt;br /&gt;
&lt;br /&gt;
SQL keywords are to be written in uppercase, while all other identifiers (which the exception of quoted text obviously) is to be in lowercase. Carriage returns should not be used as JDatabase::getQuery provides for formatted output.  However, indenting with spaces to improve readability is desireable.&lt;br /&gt;
&lt;br /&gt;
Queries should be wrapped in single quotes (as these text blocks are parsed faster by php).&lt;br /&gt;
&lt;br /&gt;
All quoted string must using the ''Quote'' method to facilitate future compatibility with other database engines.&lt;br /&gt;
&lt;br /&gt;
All expected integer or floating-point variable must be cast with (int), (float) or (double) as appropriate&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code|Example&amp;gt;&lt;br /&gt;
$state = 1;&lt;br /&gt;
$name  = 'bill';&lt;br /&gt;
$db    = &amp;amp;JFactory::getDBO();&lt;br /&gt;
$query = 'SELECT COUNT( c.id ) AS num_articles, u.id, u.username'.&lt;br /&gt;
    ' FROM jos_content AS c'.&lt;br /&gt;
    ' LEFT JOIN jos_users AS u ON u.id = c.created_by'.&lt;br /&gt;
    ' WHERE c.state = '.(int) $state&lt;br /&gt;
    '  AND u.id IS NOT NULL'.&lt;br /&gt;
    '  AND u.username &amp;lt;&amp;gt; '.$db-&amp;gt;Quote( $name ).&lt;br /&gt;
    ' GROUP BY u.id'.&lt;br /&gt;
    '  HAVING COUNT( c.id ) &amp;gt; 0';&lt;br /&gt;
$db-&amp;gt;setQuery();&lt;br /&gt;
// Output formated query:&lt;br /&gt;
if ($debug) {&lt;br /&gt;
    echo $db-&amp;gt;getQuery();&lt;br /&gt;
}&lt;br /&gt;
$stats = $db-&amp;gt;loadObjectList();&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Header Comment Blocks ===&lt;br /&gt;
&lt;br /&gt;
All source code files in the core PEAR distribution should contain the following comment block as the header:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Short description for file&lt;br /&gt;
 *&lt;br /&gt;
 * Long description for file (if any)...&lt;br /&gt;
 *&lt;br /&gt;
 * PHP versions 4 and 5&lt;br /&gt;
 *&lt;br /&gt;
 * LICENSE: This source file is subject to version 3.0 of the PHP license&lt;br /&gt;
 * that is available through the world-wide-web at the following URI:&lt;br /&gt;
 * http://www.php.net/license/3_0.txt.  If you did not receive a copy of&lt;br /&gt;
 * the PHP License and are unable to obtain it through the web, please&lt;br /&gt;
 * send a note to license@php.net so we can mail you a copy immediately.&lt;br /&gt;
 *&lt;br /&gt;
 * @category   CategoryName&lt;br /&gt;
 * @package    PackageName&lt;br /&gt;
 * @author     Original Author &amp;lt;author@example.com&amp;gt;&lt;br /&gt;
 * @author     Another Author &amp;lt;another@example.com&amp;gt;&lt;br /&gt;
 * @copyright  1997-2005 The PHP Group&lt;br /&gt;
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0&lt;br /&gt;
 * @version    CVS: $Id:$&lt;br /&gt;
 * @link       http://pear.php.net/package/PackageName&lt;br /&gt;
 * @see        NetOther, Net_Sample::Net_Sample()&lt;br /&gt;
 * @since      File available since Release 1.2.0&lt;br /&gt;
 * @deprecated File deprecated in Release 2.0.0&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Place includes, constant defines and $_GLOBAL settings here.&lt;br /&gt;
 * Make sure they have appropriate docblocks to avoid phpDocumentor&lt;br /&gt;
 * construing they are documented by the page-level docblock.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * Short description for class&lt;br /&gt;
 *&lt;br /&gt;
 * Long description for class (if any)...&lt;br /&gt;
 *&lt;br /&gt;
 * @category   CategoryName&lt;br /&gt;
 * @package    PackageName&lt;br /&gt;
 * @author     Original Author &amp;lt;author@example.com&amp;gt;&lt;br /&gt;
 * @author     Another Author &amp;lt;another@example.com&amp;gt;&lt;br /&gt;
 * @copyright  1997-2005 The PHP Group&lt;br /&gt;
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0&lt;br /&gt;
 * @version    Release: @package_version@&lt;br /&gt;
 * @link       http://pear.php.net/package/PackageName&lt;br /&gt;
 * @see        NetOther, Net_Sample::Net_Sample()&lt;br /&gt;
 * @since      Class available since Release 1.2.0&lt;br /&gt;
 * @deprecated Class deprecated in Release 2.0.0&lt;br /&gt;
 */&lt;br /&gt;
class foo&lt;br /&gt;
{&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There's no hard rule to determine when a new code contributor should be added to the list of authors for a given source file. In general, their changes should fall into the &amp;quot;substantial&amp;quot; category (meaning somewhere around 10% to 20% of code changes). Exceptions could be made for rewriting functions or contributing new logic.&lt;br /&gt;
&lt;br /&gt;
Simple code reorganization or bug fixes would not justify the addition of a new individual to the list of authors.&lt;br /&gt;
&lt;br /&gt;
Files not in the Joomla! core repository should have a similar block stating the copyright, the license, and the authors. All files should include the modeline comments to encourage consistency.&lt;br /&gt;
&lt;br /&gt;
Example URLs&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;example.com&amp;quot;, &amp;quot;example.org&amp;quot; and &amp;quot;example.net&amp;quot; for all example URLs and email addresses, per RFC 2606.&lt;br /&gt;
&lt;br /&gt;
==== Naming Conventions ====&lt;br /&gt;
&lt;br /&gt;
=== Classes ===&lt;br /&gt;
&lt;br /&gt;
Classes should be given descriptive names. Avoid using abbreviations where possible. Class names should always begin with an uppercase letter.&lt;br /&gt;
&lt;br /&gt;
=== Functions and Methods ===&lt;br /&gt;
&lt;br /&gt;
Functions and methods should be named using the &amp;quot;studly caps&amp;quot; style (also referred to as &amp;quot;bumpy case&amp;quot; or &amp;quot;camel caps&amp;quot;). Functions should in addition have the package name as a prefix, to avoid name collisions between packages. The initial letter of the name (after the prefix) is lowercase, and each letter that starts a new &amp;quot;word&amp;quot; is capitalized. Some examples:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
connect()&lt;br /&gt;
 getData()&lt;br /&gt;
 buildSomeWidget()&lt;br /&gt;
 XML_RPC_serializeData()&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Private class members (meaning class members that are intented to be used only from within the same class in which they are declared; PHP does not yet support truly-enforceable private namespaces) are preceded by a single underscore. For example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
_sort()&lt;br /&gt;
 _initTree()&lt;br /&gt;
 $this-&amp;gt;_status&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Constants ===&lt;br /&gt;
&lt;br /&gt;
Constants should always be all-uppercase, with underscores to separate words. Prefix constant names with the uppercased name of the class/package they are used in. For example, the constants used by the DB:: package all begin with &amp;quot;DB_&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Global Variables ===&lt;br /&gt;
&lt;br /&gt;
If your package needs to define global variables, their name should start with a single underscore followed by the package name and another underscore. For example, the PEAR package uses a global variable called $_PEAR_destructor_object_list.&lt;br /&gt;
&lt;br /&gt;
=== Controllers ===&lt;br /&gt;
&lt;br /&gt;
For single controller components, the naming convention is ''[Name]Controller''.   The file name will generally be ''controller.php''. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Content Controller&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
ContentController&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For a multi-controller components, such as the Banners in the Administrator, the convention is ''[Component]Controller[Name]''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Banner Client Controller&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
BannerControllerClient&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The files will be located in a ''/controllers/'' folder under the component folder.  The file names will reflect the name of the controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
Single Controller&lt;br /&gt;
&lt;br /&gt;
com_content&lt;br /&gt;
\- controller.php&lt;br /&gt;
&lt;br /&gt;
Multi-controller&lt;br /&gt;
&lt;br /&gt;
com_banner&lt;br /&gt;
\- controllers&lt;br /&gt;
  \- banner.php&lt;br /&gt;
  \- client.php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Models===&lt;br /&gt;
&lt;br /&gt;
The naming convention is ''[Component]Model[Name]''.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code php|Example Code&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Banner Client Model&lt;br /&gt;
 * @package Joomla&lt;br /&gt;
 */&lt;br /&gt;
BannerModelClient&lt;br /&gt;
{&lt;br /&gt;
    // Methods&lt;br /&gt;
}&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The files will be located in a ''/models/'' folder under the component folder.  The file names will reflect the name of the controller.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
com_banner&lt;br /&gt;
\- models&lt;br /&gt;
  \- banner.php&lt;br /&gt;
  \- client.php&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Views ===&lt;br /&gt;
&lt;br /&gt;
=== Layouts ===&lt;br /&gt;
&lt;br /&gt;
=== Templates ===&lt;br /&gt;
&lt;br /&gt;
=== Template Layout Overrides ===&lt;br /&gt;
&lt;br /&gt;
[[:start|Back to the Startpage]]&lt;br /&gt;
&lt;br /&gt;
~~DISCUSSION~~&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	<entry>
		<id>http://docs.joomla.org/Developers</id>
		<title>Developers</title>
		<link rel="alternate" type="text/html" href="http://docs.joomla.org/Developers"/>
				<updated>2008-03-22T09:49:44Z</updated>
		
		<summary type="html">&lt;p&gt;Akede: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Developer profile}}&lt;br /&gt;
&lt;br /&gt;
* Developer guidelines.&lt;br /&gt;
* [[Participating in the community]]: a brief description of how people can get involved.&lt;br /&gt;
* [[Coding style and standards]].&lt;br /&gt;
* Secure coding guidelines.&lt;br /&gt;
* Error message conventions.&lt;br /&gt;
* Exception handling.&lt;br /&gt;
* [[Patch submission guidelines]].&lt;br /&gt;
* [[Filing bugs and issues]].&lt;br /&gt;
* [[How to release a distribution tarball]].&lt;br /&gt;
* Release numbering, compatibility and deprecation.&lt;br /&gt;
* [[Localisation]] (L18N): an explanation of how localisation is implemented in Joomla! 1.5 and how to use it.&lt;br /&gt;
* [[Routing]]: how it works and how to use it&lt;br /&gt;
&lt;br /&gt;
* Complete/update/review the wiki API reference (assumes this has been moved from DocuWiki to MediaWiki).&lt;br /&gt;
* Update developer tutorials and how-to's currently on dev.joomla.org&lt;br /&gt;
** Review all material under the tutorials heading at http://dev.joomla.org/component/option,com_jd-wiki/Itemid,32/&lt;br /&gt;
** Recommend material to be migrated over to docs.joomla.org&lt;br /&gt;
** Update material that is to be migrated over to docs.joomla.org&lt;br /&gt;
* [[How to debug your code]].&lt;br /&gt;
** Write a tutorial giving debugging tips for new developers.  Perhaps list different kinds of problems code might have and suggested approaches to locating the problem and fixing it.&lt;br /&gt;
* [[Using the core parameter types]] (To be reviewed)&lt;br /&gt;
* [[Creating custom XML parameter types]].&lt;br /&gt;
** Write a document detailing the steps to creating a custom XML Parameter type.  Explain how these types can be used in templates, modules, components and plugins.&lt;br /&gt;
* [[Creating component preferences]] (ready for review).&lt;br /&gt;
** Write a document describing how to create an xml file for modifying component preferences and how to add a Parameters button to an administrator toolbar.&lt;br /&gt;
* [[Adding JavaScript and CSS to the page]].&lt;br /&gt;
** Write a document describing how to add JavaScript and CSS to the page.  Explain how to decide whether JavaScript should go in the head block or in the page itself and how to insert the JavaScript.&lt;br /&gt;
* [[Accessing the current user object]].&lt;br /&gt;
** Write a document describing how to access the current user object and also indicate what type of information can be found in the object, and how that data should be retrieved and/or set.&lt;br /&gt;
* [[Adding AJAX to your component]].&lt;br /&gt;
** Write a document describing how to add AJAX to an MVC component.  If desired, use the MVC Hello World tutorial as a base.  Describe where various elements should go in the MVC design pattern.  Also describe how to implement MVC in a module (these need supporting components to do AJAX).&lt;br /&gt;
* [[Using JPagination in your component]] (frontend and backend).&lt;br /&gt;
** Describe the steps necessary to add pagination to a component using the JPagination class.  Describe the differences between frontend and backend.&lt;br /&gt;
* [[Creating a toolbar for your component]].&lt;br /&gt;
* [[Adding configuration objects to modules and plugins]].&lt;br /&gt;
* [[Storing data in the session between page loads]].&lt;br /&gt;
* [[Using the caching system in your component]].&lt;br /&gt;
* [[Creating a file uploader in your component]].&lt;br /&gt;
* [[Suppressing output of extra HTML]].&lt;br /&gt;
* [[Supporting plugins in your component]].&lt;br /&gt;
** Explain how to add triggers so that your component can fire custom events.&lt;br /&gt;
* [[Adding multi-language support]].&lt;br /&gt;
* [[Retrieving data from GET and POST requests]] - the Joomla! way.&lt;br /&gt;
* [[Adding view layout configuration parameters]].&lt;br /&gt;
** Explain how to create an XML file that will allow users to configure views.&lt;br /&gt;
* [[Using the installer API to support package installation]].&lt;br /&gt;
** Explain how to use the JInstaller API to install add-ons to components&lt;br /&gt;
* [[How to implement XML-RPC in a component]]&lt;br /&gt;
** There are two ways to do this:&lt;br /&gt;
*** Implement it using an XML-RPC plugin&lt;br /&gt;
*** Implement it in the component itself using raw views&lt;br /&gt;
* [[How to use the filesystem package]]&lt;br /&gt;
* [[How to use the filter package]]&lt;br /&gt;
** Describe how and when to use the Filter package and explain what needs to be filtered for various situations (for queries, for URLs, etc)&lt;br /&gt;
* [[How to use the registry package]]&lt;br /&gt;
* [[How to use JSimpleXML]]&lt;br /&gt;
** How to load and store XML files and how to work with them&lt;br /&gt;
* [[How to use JDate]]&lt;br /&gt;
** What JDate does and how to use it...&lt;br /&gt;
* [[How to add CSRF anti-spoofing to forms]]&lt;br /&gt;
** How to use JHTML::_( 'form.token' ) and token checking to secure components&lt;br /&gt;
* [[How to add breadcrumbs]]&lt;br /&gt;
* [[How to use the JTable class]]&lt;br /&gt;
* [[How to create component feeds]] (RSS/ATOM)&lt;br /&gt;
* [[How to create PDF views]]&lt;br /&gt;
* [[How to send email from components]]&lt;br /&gt;
* [[What's available in the JFactory class]]&lt;br /&gt;
* [[How to generate paths for client side and server side]]&lt;br /&gt;
* How to access information from the request/browser&lt;br /&gt;
** This focuses on using the JBrowser class to retrieve information about the features available in the user's browser.&lt;br /&gt;
* [[How to create a search plugin]] (To be reviewed)&lt;br /&gt;
* [[How to create a content plugin]] (To be reviewed)&lt;br /&gt;
* [[How to create an editor plugin]]&lt;br /&gt;
* [[How to create a system plugin]]&lt;br /&gt;
* [[What can be done with a user plugin]]&lt;br /&gt;
* [[How to create a module]]&lt;br /&gt;
* [[How to create a stand-alone application using the Joomla! Framework]]&lt;br /&gt;
* [[How to work with parameters]]&lt;br /&gt;
* [[How to use the JToolBar class in the frontend]]&lt;br /&gt;
* [[How to create a custom button]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[How to use the JPane classes in a component]]&lt;br /&gt;
* [[How to cloak email addresses]]&lt;/div&gt;</summary>
		<author><name>Akede</name></author>	</entry>

	</feed>