<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chiessyer</id>
	<title>Joomla! Documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Chiessyer"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Chiessyer"/>
	<updated>2026-08-21T01:59:34Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=473355</id>
		<title>Plugin/Events/Content</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Plugin/Events/Content&amp;diff=473355"/>
		<updated>2017-12-18T23:24:54Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: fix broken link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{version/tutor|2.5,3.x|alt=1.5|altlink=J1.5:Plugin/Events/Content|alttitle=this guide for old event names}}&lt;br /&gt;
Content events are triggered during the content creation process. The majority of these events are called in many views many components and modules - they are generally not specific for the com_content component. This list gives a brief description of each event, what their parameters are, and some examples of their use in core plugins.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepare==&lt;br /&gt;
===Description===&lt;br /&gt;
This is the first stage in preparing content for output and is the most common point for content orientated plugins to do their work. Since the article and related parameters are passed by reference, event handlers can modify them prior to display.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; A reference to the article that is being rendered by the view (For example: the text of a com_content article can be found with $article-&amp;gt;text).&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; A reference to an associative array of relevant parameters. The view determines what it considers to be relevant and passes that information along.&lt;br /&gt;
*&amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated. Note that in the context of views that might not generate HTML output, a page is a reasonably abstract concept that depends on the context.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Results are returned by modifying the referenced arguments. Sometimes a boolean might be returned to check for success or failure of the event.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/staging/plugins/content/emailcloak/emailcloak.php plugins/content/emailcloak/emailcloak.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterTitle==&lt;br /&gt;
===Description===&lt;br /&gt;
This event only exists in Joomla {{JVer|3.x}}. This is a request for information that should be placed between the content title and the content body. Although parameters are passed by reference, this is not the event to modify article data. Use onContentPrepare for that purpose. Note this event has special purpose in com_content for use in handling the introtext.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
See the onContentPrepare event for additional discussion of these parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately before the generated content. For views that generate HTML, this might include the use of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onContentPrepare for that purpose.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
See the onContentPrepare event for additional discussion of these parameters. Note that unlike onContentPrepare, these parameters are passed by value.&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; An associative array of relevant parameters.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*&amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/content/vote/vote.php#L29 plugins/content/vote/vote.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDisplay==&lt;br /&gt;
===Description===&lt;br /&gt;
This is a request for information that should be placed immediately after the generated content. For views that generate HTML, this might include the closure of styles that are specified as part of the content or related parameters. Although parameters are passed by reference, this is not the event to modify article data. Use onContentPrepare for that purpose.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
See the onContentPrepare event for additional discussion of these parameters. Note that unlike onContentPrepare, these parameters are passed by value.&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;article&amp;lt;/code&amp;gt; The article that is being rendered by the view.&lt;br /&gt;
*&amp;lt;code&amp;gt;&amp;amp;params&amp;lt;/code&amp;gt; A JRegistry object of merged article and menu item params.&lt;br /&gt;
*&amp;lt;code&amp;gt;limitstart&amp;lt;/code&amp;gt; An integer that determines the &amp;quot;page&amp;quot; of the content that is to be generated.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
String. Returned value from this event will be displayed in a placeholder. Most templates display this placeholder after the article separator.&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is saved into the database. You can abort the save by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
==onContentAfterSave==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is saved into the database. Even though article object is passed by reference, changes will not be saved since storing data into database phase is past. An example use case would be redirecting user to the appropriate place after saving.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being saved which holds the article data.&lt;br /&gt;
*&amp;lt;code&amp;gt;isNew&amp;lt;/code&amp;gt; A boolean which is set to true if the content is about to be created.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareForm==&lt;br /&gt;
===Description===&lt;br /&gt;
Called before a JForm is rendered. It can be used to modify the JForm object in memory before rendering. For example, use JForm-&amp;gt;loadFile() to add fields or JForm-&amp;gt;removeField() to remove fields. Or use JForm-&amp;gt;setFieldAttribute() or other JForm methods to modify fields for the form.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;form&amp;lt;/code&amp;gt; The JForm object to be displayed. Use the $form-&amp;gt;getName() method to check whether this is the form you want to work with.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L168 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentPrepareData==&lt;br /&gt;
===Description===&lt;br /&gt;
Called after the data for a JForm has been retrieved. It can be used to modify the data for a JForm object in memory before rendering. This is usually used in tandem with the onContentPrepareForm method - this event adds the data to the already altered JForm.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; An object containing the data for the form.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
*&amp;lt;code&amp;gt;boolean&amp;lt;/code&amp;gt; True if method succeeds.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/user/profile/profile.php#L51 plugins/user/profile/profile.php]&lt;br /&gt;
&lt;br /&gt;
==onContentBeforeDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called right before the content is deleted from the database. You can abort the delete by returning false. In the case of &amp;lt;code&amp;gt;JModelLegacy&amp;lt;/code&amp;gt; for example the error will then be set by calling &amp;lt;code&amp;gt;$this-&amp;gt;setError($table-&amp;gt;getError);&amp;lt;/code&amp;gt; to be displayed to user.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;data&amp;lt;/code&amp;gt; A reference to the JTableContent object that is being deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
Boolean. Result will affect the saving process. See description for details.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
*[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/joomla/joomla.php#L89 plugins/content/joomla/joomla.php]&lt;br /&gt;
&lt;br /&gt;
==onContentAfterDelete==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after the content is deleted from the database. An example use case would be redirecting user to the appropriate place after deleting.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;article&amp;lt;/code&amp;gt; A reference to the JTableContent object that has been deleted which holds the article data.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L61 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentChangeState==&lt;br /&gt;
===Description===&lt;br /&gt;
This is an event that is called after content has its state change (e.g. Published to Unpublished).&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
*&amp;lt;code&amp;gt;context&amp;lt;/code&amp;gt; The context of the content being passed to the plugin - this is the component name and view - or name of module  (e.g. com_content.article). Use this to check whether you are in the desired context for the plugin.&lt;br /&gt;
*&amp;lt;code&amp;gt;$pks&amp;lt;/code&amp;gt; An array of primary key ids of the content that has changed state.&lt;br /&gt;
*&amp;lt;code&amp;gt;$value&amp;lt;/code&amp;gt; The value of the state that the content has been changed to.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
None. Result will be omitted.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
[https://www.github.com/joomla/joomla-cms/tree/master/plugins/content/finder/finder.php#L80 content/finder/finder.php]&lt;br /&gt;
&lt;br /&gt;
==onContentSearch==&lt;br /&gt;
===Description===&lt;br /&gt;
&lt;br /&gt;
This event is triggered by a variety of search related operations. It is a request for a&lt;br /&gt;
plugin to return the result of a search request. The rows must return the following fields, which are used in a common display routine:&lt;br /&gt;
&lt;br /&gt;
* browsernav&lt;br /&gt;
* catslug&lt;br /&gt;
* created&lt;br /&gt;
* href&lt;br /&gt;
* section&lt;br /&gt;
* slug&lt;br /&gt;
* text&lt;br /&gt;
* title&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;$text&amp;lt;/code&amp;gt; The target search string.&lt;br /&gt;
* &amp;lt;code&amp;gt;$phrase&amp;lt;/code&amp;gt; A string matching option (exact|any|all). Default is &amp;quot;any&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;$ordering&amp;lt;/code&amp;gt; A string ordering option (newest|oldest|popular|alpha|category). Default is &amp;quot;newest&amp;quot;.&lt;br /&gt;
* &amp;lt;code&amp;gt;$areas&amp;lt;/code&amp;gt; An array if restricted to areas, null if search all.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
&lt;br /&gt;
Array of stdClass objects with members as described above.&lt;br /&gt;
&lt;br /&gt;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/administrator/components/com_search/models/searches.php#L158 administrator/components/com_search/models/searches.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/components/com_search/models/search.php#L154 components/com_search/models/search.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/search/categories/categories.php#L62 plugins/search/categories/categories.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/search/contacts/contacts.php#L60 plugins/search/contacts/contacts.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/search/content/content.php#L53 plugins/search/content/content.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/search/newsfeeds/newsfeeds.php#L60 plugins/search/newsfeeds/newsfeeds.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/search/tags/tags.php#L60 plugins/search/tags/tags.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;[https://github.com/joomla/joomla-cms/blob/master/plugins/search/weblinks/weblinks.php#L62 plugins/search/weblinks/weblinks.php]&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==onContentSearchAreas==&lt;br /&gt;
===Description===&lt;br /&gt;
&lt;br /&gt;
This appears to be a request for plugins to identify which &amp;quot;areas&amp;quot; they provide&lt;br /&gt;
search facilities for.&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
&lt;br /&gt;
None.&lt;br /&gt;
&lt;br /&gt;
===Return Value===&lt;br /&gt;
&lt;br /&gt;
An associative array of area names, indexed by the area identifier. For example, array( &#039;categories&#039; =&amp;gt; &#039;Categories&#039; ).&lt;br /&gt;
&lt;br /&gt;
===Used in files===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;components/com_search/models/search.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/categories.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/contacts.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/content.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/newsfeeds.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/tags/tags.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;plugins/search/weblinks.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Plugin Development]][[Category:Specifications]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Manifest_files&amp;diff=416778</id>
		<title>Manifest files</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Manifest_files&amp;diff=416778"/>
		<updated>2017-06-02T20:16:28Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{page|needs updating|}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=3.x}} {{Joomla version|version=2.5|status=eos}} &lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&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 [[S:MyLanguage/extension|extension]] itself. Since Joomla! 2.5, there are very few differences between the manifest file formats for the different [[S:MyLanguage/Extension types (technical definitions)|types of extensions]], allowing each type to access the full power of the Joomla! installer.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Naming conventions== &amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
The file must be named &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;&amp;lt;extension_name&amp;gt;.xml&amp;lt;/tt&amp;gt; and located in the root directory of the installation package.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Syntax== &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Root element === &amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
The primary tag of the installation file is:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
This starting and closing tag is now valid for all extensions. The new tag &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; replaces the old &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; from Joomla {{JVer|1.5}}. The following attributes are allowed within the tag:&amp;lt;/translate&amp;gt;&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; | &amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Attribute&amp;lt;/translate&amp;gt; || style=&amp;quot;width: 150px&amp;quot; | &amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Values&amp;lt;/translate&amp;gt; || &amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Applicable&amp;amp;nbsp;to&amp;lt;/translate&amp;gt; || &amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Description&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;language&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;library&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;module&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt; || &amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
All extensions&amp;lt;/translate&amp;gt;&lt;br /&gt;
| &amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
This attribute describes the type of the extension for the installer. Based on this type further requirements to sub-tags apply.&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;3.0&amp;lt;/code&amp;gt; || &amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
All extensions&amp;lt;/translate&amp;gt;&lt;br /&gt;
| &amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
String that identifies the version of Joomla for which this extension is developed.&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| method&lt;br /&gt;
| &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; || &amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
All extensions&amp;lt;/translate&amp;gt;&lt;br /&gt;
| &amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
The default value &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; will be also used if the method attribute is not used. The &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; value means the installer will gracefully stop if it finds any existing file/folder of the new extension.&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| client&lt;br /&gt;
| &amp;lt;code&amp;gt;site&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;administrator&amp;lt;/code&amp;gt; || &amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
Modules&amp;lt;/translate&amp;gt;&lt;br /&gt;
| &amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
The client attribute allows you to specify for which application client the new module is available.&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| group&lt;br /&gt;
| &#039;&#039;string&#039;&#039; || &amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Plugins&amp;lt;/translate&amp;gt;&lt;br /&gt;
| &amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
The group name specifies for which group of plugins the new plugin is available. The existing groups are the folder names within the directory &amp;lt;tt&amp;gt;/plugins&amp;lt;/tt&amp;gt;. The installer will create new folder names for group names that do not exist yet.&amp;lt;/translate&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Metadata === &amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
The following elements can be used to insert metadata. None of these elements are required; if they are present, they must be a child of the root element.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt; &amp;amp;ndash; raw component name (e.g. com_banners). &lt;br /&gt;
&amp;lt;author&amp;gt; &amp;amp;ndash; author&#039;s name (e.g. Joomla! Project)&lt;br /&gt;
&amp;lt;creationDate&amp;gt; &amp;amp;ndash; date of creation or release (e.g. April 2006)&lt;br /&gt;
&amp;lt;copyright&amp;gt; &amp;amp;ndash; a copyright statement (e.g. (C) 2005 - 2011 Open Source Matters. All rights reserved.)&lt;br /&gt;
&amp;lt;license&amp;gt; &amp;amp;ndash; a license statement (e.g. NU General Public License version 2 or later; see LICENSE.txt)&lt;br /&gt;
&amp;lt;authorEmail&amp;gt; &amp;amp;ndash; author&#039;s email address (e.g. admin@joomla.org)&lt;br /&gt;
&amp;lt;authorUrl&amp;gt; &amp;amp;ndash; URL to the author&#039;s website (e.g. www.joomla.org)&lt;br /&gt;
&amp;lt;version&amp;gt; &amp;amp;ndash; the version number of the extension (e.g. 1.6.0)&lt;br /&gt;
&amp;lt;description&amp;gt; &amp;amp;ndash; the description of the component. This is a translatable field. (e.g. COM_BANNERS_XML_DESCRIPTION)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
Note: The &amp;lt;name&amp;gt; and &amp;lt;description&amp;gt; tags are also translatable fields so that the name and description of the extension can be shown to the user in their native language.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;=== Front-end files === &amp;lt;!--T:23--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;files folder=&amp;quot;from-folder&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;example.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;examples&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
Files to copy to the front-end directory should be placed in the &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt; element. You can use the optional &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; attribute to specify a directory &#039;&#039;&#039;in the ZIP package&#039;&#039;&#039; to copy &#039;&#039;&#039;from&#039;&#039;&#039;. Each file to copy must be represented by a &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; element. If you want to copy an entire folder at once, you can define it as a &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
For &#039;&#039;&#039;plugins&#039;&#039;&#039;, the raw name of the plugin should be placed in the &amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt; attribute on the &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; element that points to the file containing the plugin&#039;s class. For example, in the case of a system plugin called &amp;quot;example&amp;quot; (full name &amp;lt;code&amp;gt;plg_system_example&amp;lt;/code&amp;gt;), use &amp;lt;code&amp;gt;&amp;lt;filename plugin=&amp;quot;example&amp;quot;&amp;gt;example.php&amp;lt;/filename&amp;gt;&amp;lt;/code&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;=== Media files === &amp;lt;!--T:25--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;gt;&lt;br /&gt;
	&amp;lt;media folder=&amp;quot;media&amp;quot; destination=&amp;quot;com_example&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;com_example_logo.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;css&amp;lt;/folder&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;js&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/media&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
This example will copy the file(s) (&amp;lt;tt&amp;gt;/media/com_example_logo.png&amp;lt;/tt&amp;gt;) and folders ( &amp;lt;tt&amp;gt;/media/css/&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;/media/js/&amp;lt;/tt&amp;gt; ) listed to &amp;lt;tt&amp;gt;/media/com_example/&amp;lt;/tt&amp;gt;, creating the &amp;lt;tt&amp;gt;com_example&amp;lt;/tt&amp;gt; folder if required. You can use the optional &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; attribute to specify a directory &#039;&#039;&#039;in the ZIP package&#039;&#039;&#039; to copy &#039;&#039;&#039;from&#039;&#039;&#039; (in this case, &amp;lt;tt&amp;gt;media&amp;lt;/tt&amp;gt;).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
Extensions should be storing assets they need to be web accessible (JS, CSS, images etc) in &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;. Amongst other things this feature was added as step in the progression to multi-site support and the eventual move of code files (PHP) out of the web accessible areas of the server.&amp;lt;br /&amp;gt;&lt;br /&gt;
Note: the media section is not parsed for &#039;package&#039; type extensions.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/4CAASJqFY-k/PvPj14gP29EJ Google Groups - joomla-dev-cms thread]&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/uNmhX98sKbE/p8p68Jke680J Google Groups - joomla-dev-cms thread]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Administration section === &amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;administration&amp;gt;&lt;br /&gt;
		&amp;lt;!-- various elements --&amp;gt;&lt;br /&gt;
	&amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
The administration section is defined in the &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt; element. Since only [[S:MyLanguage/Component|components]] apply to both the [[S:MyLanguage/Site (Application)|site]] and the [[S:MyLanguage/Administrator (Application)|administrator]], &#039;&#039;&#039;only component manifests can include this element&#039;&#039;&#039;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Back-end files ==== &amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
Files to copy to the back-end directory should be placed in the &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt; element under the &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. You can use the optional &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; attribute to specify a directory &#039;&#039;&#039;in the ZIP package&#039;&#039;&#039; to copy &#039;&#039;&#039;from&#039;&#039;&#039;. See &#039;&#039;Front-end files&#039;&#039; for further rules.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Menu links and submenus ==== &amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{dablink|&amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Version Note:&#039;&#039;&#039; Prior to Joomla 3.4, not having a &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; tag in your manifest XML file still led to a menu item being created. This bug was fixed in Joomla 3.4, so if there is no &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; tag in your manifest file, then no admin menu item is created for the component.&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;menu&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;submenu&amp;gt;&lt;br /&gt;
		&amp;lt;!--&lt;br /&gt;
			Note that all &amp;amp; must be escaped to &amp;amp;amp; for the file to be valid&lt;br /&gt;
			XML and be parsed by the installer&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		&amp;lt;menu link=&amp;quot;anoption=avalue&amp;amp;amp;anoption1=avalue1&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_ANOPTION&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;menu view=&amp;quot;viewname&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_VIEWNAME&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;/submenu&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
The text for the main menu item for the component is defined in the &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt; item, a child of &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. A &amp;lt;code&amp;gt;&amp;lt;submenu&amp;gt;&amp;lt;/code&amp;gt; element may also be present (also a child of &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;), which may contain more menu items defined by &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
Additionally, each &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt; item can define the following attributes:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | &amp;lt;translate&amp;gt;&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
Attribute&amp;lt;/translate&amp;gt; || &amp;lt;translate&amp;gt;&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
Description&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| link || &amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
A link to send the user to when the menu item is clicked&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| img || &amp;lt;translate&amp;gt;&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
The (relative) path to an image (16x16 pixels) to appear beside the menu item. &lt;br /&gt;
&amp;lt;u&amp;gt;Must be an url compatible as a file too (e.g. no spaces) !&amp;lt;/u&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| alt ||&lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;string&#039;&#039; || &amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
An URL parameter to add to the link.  For example, &amp;lt;code&amp;gt;&amp;lt;menu view=&amp;quot;cpanel&amp;quot;&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&amp;lt;/code&amp;gt; in com_example&#039;s XML manifest would cause the URL of the menu item to be &amp;lt;tt&amp;gt;index.php?option=com_example&amp;amp;view=cpanel&amp;lt;/tt&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
The value inside the tag is the menu&#039;s label. Unlike Joomla! 1.5, you can not use a natural language string. For example, if you would enter &amp;quot;Example Component&amp;quot; instead of COM_EXAMPLE, it would result in your component name appearing as example-component in the menu and you would be unable to provide a translation. In order to provide a translation you need to create a file named en-GB.com_example.sys.ini in administrator/languages/en-GB (you can use the manifest&#039;s &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; tag to copy it during installation) or in administrator/components/com_example/language/en-GB. In the latter case, you must not include the translation file in the &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; tag. As long as you have placed the language directory in your &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt; tag, it will be copied along when the component is being installed.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
The contents of that file should be:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
COM_EXAMPLE=&amp;quot;Example Component&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_ANOPTION=&amp;quot;Another Option&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_VIEWNAME=&amp;quot;Another View&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
Please note that the language string must be enclosed in double quotes, as per Joomla!&#039;s translation standards. Important note: Joomla! 1.6 and later sorts the Component menu items based on the actual translation of the key you supply in your XML manifest. This means that the sorting order is correct no matter what you call your translation key and no matter which language the site is being displayed in. Essentially, Joomla! 1.6 fixed the wrong sorting of the Components menu experienced under Joomla! 1.5 for the majority (non-English speaking!) of Joomla! users.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Configuration === &amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{warning|&amp;lt;translate&amp;gt;&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
Components &#039;&#039;&#039;do not support&#039;&#039;&#039; configuration definitions &#039;&#039;&#039;in the manifest&#039;&#039;&#039;. This is a way implemented in Joomla! 1.5. They can define configuration options for multiple levels using [[S:MyLanguage/Component configuration metadata|Component configuration metadata]].&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt; element, a child of the root, describes the configuration options for the extension. If applicable, the options will be shown by the appropriate Manager (Plugin Manager, Module Manager or Template Manager). &#039;&#039;&#039;Configuration options can also be defined in a separate file named &amp;lt;code&amp;gt;config.xml&amp;lt;/code&amp;gt;. Its root element should be &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
Each fieldset must contain one or more &amp;lt;code&amp;gt;&amp;lt;field&amp;gt;&amp;lt;/code&amp;gt; elements, each representing a single [[S:MyLanguage/form field|form field]] with a label. See [[S:MyLanguage/Standard form field types|Standard form field types]] for a list of allowed form field types and example XML form field definitions.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== SQL === &amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;install&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.install.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/install&amp;gt;&lt;br /&gt;
    &amp;lt;uninstall&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.uninstall.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/uninstall&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
In the above example, we put the SQL files in the &amp;lt;tt&amp;gt;admin/sql&amp;lt;/tt&amp;gt; folder of the installation package. You have to include the &amp;lt;tt&amp;gt;sql&amp;lt;/tt&amp;gt; folder in the administration files (as described in &#039;&#039;Back-end files&#039;&#039;).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
You can execute SQL during the installation and/or uninstallation using the &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;uninstall&amp;gt;&amp;lt;/code&amp;gt; elements, respectively. A &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; element should appear as a child of these elements. &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; can contain any number of &amp;lt;code&amp;gt;&amp;lt;file&amp;gt;&amp;lt;/code&amp;gt; elements, each defining a single SQL file to execute. Their database driver types are described by the &amp;lt;code&amp;gt;driver&amp;lt;/code&amp;gt; attribute, their character sets by the &amp;lt;code&amp;gt;charset&amp;lt;/code&amp;gt; attribute.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Update of the SQL schema ==== &amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
Since 1.6, there is also an &amp;lt;code&amp;gt;&amp;lt;update&amp;gt;&amp;lt;/code&amp;gt; tag, which allows you to provide a series of SQL files to update the current schema.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;update&amp;gt;&lt;br /&gt;
		&amp;lt;schemas&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;mysql&amp;quot;&amp;gt;sql/updates/mysql&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;sqlsrv&amp;quot;&amp;gt;sql/updates/sqlsrv&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
		&amp;lt;/schemas&amp;gt;&lt;br /&gt;
	&amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
For example, in order to go from version &amp;lt;code&amp;gt;1.0.0&amp;lt;/code&amp;gt; to version &amp;lt;code&amp;gt;1.0.1&amp;lt;/code&amp;gt; in a &#039;&#039;&#039;MySQL&#039;&#039;&#039; database, a &amp;lt;code&amp;gt;1.0.1.sql&amp;lt;/code&amp;gt; file must be created inside the &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt; folder and the &amp;lt;code&amp;gt;&amp;lt;version&amp;gt;&amp;lt;/code&amp;gt; tag of the manifest must be updated to&amp;lt;/translate&amp;gt; &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
The final structure of the sql folder will look like this (assuming a &#039;&#039;&#039;MySQL&#039;&#039;&#039; database)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
sql&lt;br /&gt;
 |--&amp;gt;example.install.sql&lt;br /&gt;
 |--&amp;gt;example.uninstall.sql&lt;br /&gt;
 |--&amp;gt;updates&lt;br /&gt;
     |--&amp;gt;mysql&lt;br /&gt;
        |--&amp;gt;1.0.1.sql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
Similar files must be created for subsequent versions.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Language files === &amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
In Joomla! 1.5, extension developers had to put extension language files in the Joomla! main language folder, using the &amp;amp;lt;languages&amp;amp;gt;...&amp;amp;lt;/languages&amp;amp;gt; tag as shown below. &#039;&#039;&#039;This method can still be used in Joomla!&#039;&#039;&#039; {{JVer|3.x}}.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Joomla! 1.5 language tag --&amp;gt;&lt;br /&gt;
&amp;lt;languages folder=&amp;quot;langfiles&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.com_example.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
Since Joomla! 1.6 it has been encouraged placing your extension&#039;s language files in your extension folder. Joomla! will then automatically load your extension&#039;s language files.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
By storing extension language files in the extension folder, you gain the benefit of isolating and protecting your extension&#039;s language files.  For example, an administrator removes a language from their Joomla! installation. Your extension&#039;s language files will not be removed. They will remain in place and will be available if the language is installed again.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
The structure of the language folder for frontend and backend is the same. You put them in the language tag (e.g. &#039;&#039;&#039;en-GB&#039;&#039;&#039; ) of each language in your language folder i.e. &#039;&#039;&#039;language/en-GB/&#039;&#039;&#039;. You have to specify those folders in the front-end and back-end files too.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
In your manifest you simply include the &#039;&#039;&#039;&#039;language&#039;&#039;&#039;&#039; folder in your files section, the sub-directories for each language automatically be copied. Inside the &amp;lt;files&amp;gt; group you simply add a &amp;lt;folder&amp;gt; element alongside the items in the &#039;&#039;&#039;&amp;lt;files&amp;gt;&#039;&#039;&#039; group as shown in this example:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;alpha&amp;quot;&amp;gt;alpha.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;sql&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
It is also notable that both ways can work together. Here is an example from core:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;languagecode&amp;quot;&amp;gt;languagecode.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;languages&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
The advantages of this solution are the following:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
All ini files present in the core folder have precedence over the files in the extension language/ folder.&lt;br /&gt;
For example a sys.ini file will always be loaded from core folders in back-end if it exists, except when installing an extension which contains a sys.ini file in a language folder. In that case and only that case, the sys.ini file in the extension folder will display its translated content at install time. This is very handy as a developer can have 2 sys.ini files with different contents. A description of the successful install as well as a tutorial in back-end for example.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
Also, it is much easier for a user needing an ini file for an extension that does not provide it in the language desired, to add it in the main folders. No risk for it to be deleted in case of uninstalling the extension by mistake or any other reason.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
See also:&lt;br /&gt;
*[[S:MyLanguage/J2.5:Making non-core language packs|Making non-core language packs]]&lt;br /&gt;
*[[S:MyLanguage/Creating language packs for extensions in Joomla 2.5|Creating language packs for extensions in Joomla 2.5]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
During development you can turn on language debugging in the Joomla! global configuration. So you can investigate if a problems arises. As of 3.2, this is necessary to help debug as en-GB is &#039;&#039;&#039;always&#039;&#039;&#039; loaded first when not in debug mode to prevent displaying Constants.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Script file === &amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;scriptfile&amp;gt;example.script.php&amp;lt;/scriptfile&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
An optional &#039;&#039;&#039;script file&#039;&#039;&#039; (PHP code that is run before, during and/or after installation, uninstallation and upgrading) can be defined using a &amp;lt;code&amp;gt;&amp;lt;scriptfile&amp;gt;&amp;lt;/code&amp;gt; element. This file should contain a class named &amp;quot;&amp;lt;element_name&amp;gt;InstallerScript&amp;quot; where &amp;lt;element_name&amp;gt; is the name of your extension (e.g. com_componentname, mod_modulename, etc.). Plugins requires to state the group (e.g. plgsystempluginname). Library packages do not support scriptfiles. The structure of the class is as follows:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
class com_componentnameInstallerScript&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   JAdapterInstance  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function __construct(JAdapterInstance $adapter);&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called before any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   JAdapterInstance  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function preflight($route, JAdapterInstance $adapter);&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called after any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   JAdapterInstance  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function postflight($route, JAdapterInstance $adapter);&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on installation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   JAdapterInstance  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function install(JAdapterInstance $adapter);&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on update&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   JAdapterInstance  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function update(JAdapterInstance $adapter);&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on uninstallation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   JAdapterInstance  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function uninstall(JAdapterInstance $adapter);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Update servers === &amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;updateservers&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;1&amp;quot; name=&amp;quot;Extension Update Site&amp;quot;&amp;gt;http://example.com/extension.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;collection&amp;quot; priority=&amp;quot;2&amp;quot; name=&amp;quot;Collection Update Site&amp;quot;&amp;gt;http://example.com/collection.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;/updateservers&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
Update servers can be defined in the &amp;lt;code&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/code&amp;gt; element, a child of the root. This element may contain one or more &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; element, each describing a location to fetch updates from. Each &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; item can define the following attributes:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | &amp;lt;translate&amp;gt;&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
Attribute&amp;lt;/translate&amp;gt; || style=&amp;quot;width: 150px&amp;quot; | &amp;lt;translate&amp;gt;&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
Values&amp;lt;/translate&amp;gt; || &amp;lt;translate&amp;gt;&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
Description&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;collection&amp;lt;/code&amp;gt; || &amp;lt;translate&amp;gt;&amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
The update server type&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| priority || &#039;&#039;integer&#039;&#039; || &amp;lt;translate&amp;gt;&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
The priority of the update server&amp;lt;/translate&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| name || &#039;&#039;string&#039;&#039; || &amp;lt;translate&amp;gt;&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
The name of the update server&amp;lt;/translate&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
More info:&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing a MVC Component/Adding an update server|Building a Joomla! Extension - Adding an update server]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Managing Component Updates|Managing Component Updates in Joomla 2.5]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Examples == &amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt; &lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
For a real-life example, see [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/components/com_banners/banners.xml the manifest of the Banner component in the latest version of Joomla! 3.6.4].&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
Some more examples can be found in the standalone weblinks repo:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/administrator/components/com_weblinks/weblinks.xml com_weblinks manifest]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/modules/mod_weblinks/mod_weblinks.xml mod_weblinks manifest]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/plugins/search/weblinks/weblinks.xml plg_search_weblinks manifest]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/templates/protostar/templateDetails.xml tpl_protostar manifest (3.6.4)]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/language/en-GB/en-GB.xml en-GB manifest (3.6.4)]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Extension development]]&lt;br /&gt;
[[Category:Specifications]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x_talk:Developing_an_MVC_Component/Adding_a_variable_request_in_the_menu_type&amp;diff=416777</id>
		<title>J3.x talk:Developing an MVC Component/Adding a variable request in the menu type</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x_talk:Developing_an_MVC_Component/Adding_a_variable_request_in_the_menu_type&amp;diff=416777"/>
		<updated>2017-06-02T19:37:19Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: /* == */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If I try and update the copyright year on this page the formatting of the first xml block gets messed up even though I haven&#039;t edited it.&lt;br /&gt;
== Adding a variable request in the menu type ==&lt;br /&gt;
&amp;quot;the request group of fields indicates mandatory fields.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
What is it that makes this group mandatory?&lt;br /&gt;
&lt;br /&gt;
[[User:Chiessyer|Chiessyer]] ([[User talk:Chiessyer|talk]]) 14:37, 2 June 2017 (CDT)&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;blank&amp;gt; ==&lt;br /&gt;
Maybe due to the highlights but we don&#039;t need the Copyright to be changed here as it&#039;s a Tuto and this impacts the translation process for very minor fix.&amp;lt;br /&amp;gt;([[User:MATsxm|MATsxm]] ([[User talk:MATsxm|talk]]) 11:41, 10 January 2016 (CST))&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x_talk:Developing_an_MVC_Component/Adding_a_menu_type_to_the_site_part&amp;diff=416695</id>
		<title>J3.x talk:Developing an MVC Component/Adding a menu type to the site part</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x_talk:Developing_an_MVC_Component/Adding_a_menu_type_to_the_site_part&amp;diff=416695"/>
		<updated>2017-06-02T18:27:16Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: /* Updating the Hello World! Component */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== page edit links ==&lt;br /&gt;
&lt;br /&gt;
All of the edit links on this page open an editor window into the following section. It seems to have something to do with the way the translation tags around headers are set.&lt;br /&gt;
&lt;br /&gt;
[[User:Chiessyer|Chiessyer]] ([[User talk:Chiessyer|talk]]) 13:27, 2 June 2017 (CDT)&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Developing_an_MVC_Component/Adding_a_menu_type_to_the_site_part&amp;diff=416686</id>
		<title>J3.x:Developing an MVC Component/Adding a menu type to the site part</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Developing_an_MVC_Component/Adding_a_menu_type_to_the_site_part&amp;diff=416686"/>
		<updated>2017-06-02T18:24:47Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: Rewrite instructions for adding a menu item pointing to the component&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{:J3.1:Developing an MVC Component/&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
en&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==Note== &amp;lt;!--T:19--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
* This tutorial is part of the [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction|Developing a MVC Component for Joomla! 3.x]] tutorial. You are encouraged to read the previous parts of the tutorial before reading this.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
* You can follow the steps below to add a menu item to the Hello World! component, or you can directly download the [https://github.com/scionescire/Joomla-3.2-Hello-World-Component/archive/step-3-adding-a-site-menu.zip archive]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Adding a Menu Item to Hello World == &amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
In this article we will cover how to add a menu item to a basic Joomla! component. For this example we will be continuing our work on the [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Developing_a_Basic_Component| Hello World!]] component.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
There are several ways to update a Joomla! component. As with the last tutorial, we will focus option 2.&amp;lt;/translate&amp;gt;&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
Manually add the files into&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;&amp;lt;path_to_joomla&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
Update using the Joomla! Extension Manager and the original directory, non-compressed, used for the component install&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 |3&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
Update using the Joomla! Extension Manager and an [[S:MyLanguage/Deploying_an_Update_Server| Update Server]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
To add a menu item you will need to navigate to &amp;lt;tt&amp;gt;com_helloworld&amp;lt;/tt&amp;gt;, which is the original directory we made for our component. You must use the updated directory structure from the last [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Adding_a_view_to_the_site_part | tutorial]]. Using your preferred file manager, create or update the following files; as you create or update the files, add the source code for each file which is found in [[#File Details|File Details]].&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
Create:&amp;lt;/translate&amp;gt; [[#site/views/helloworld/tmpl/default.xml| default.xml]]&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;path_to_com_helloworld/site/views/helloworld/tmpl/default.xml&amp;lt;tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
Update:&amp;lt;/translate&amp;gt; [[#helloworld.xml| helloworld.xml]]&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;path_to_com_helloworld/helloworld.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Updating the Hello World! Component === &amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
To update the Hello World! Component in the Joomla! website, please follow the same steps for the [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Developing_a_Basic_Component#Installing the Hello World! Component |original installation]].&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
After the component has been updated, we will be able to add a Menu Item to it. This will allow us to access our component a menu rather than having to remember what to type into the address bar. We&#039;ll do this using the Menu Manager of Joomla!.&amp;lt;/translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
*Using your preferred web browser, navigate to the Administrator panel of your Joomla! site. The address would be &amp;lt;tt&amp;gt;&amp;lt;yoursite&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;. For this example we will navigate to &amp;lt;tt&amp;gt;localhost/joomla/administrator/index.php&amp;lt;/tt&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
*Add a new menu item by clicking on Menu {{rarr}} &amp;lt;existing menu&amp;gt; {{rarr}} Add New Menu Item. A new screen will appear.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
*In the &amp;quot;Menu Title&amp;quot; field, enter &amp;quot;Hello World!&amp;quot;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
*In the &amp;quot;Menu Type&amp;quot; field, click on the &amp;quot;Select&amp;quot; button and choose Hello World! {{rarr}} Hello World from the selection screen.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
*Click Save &amp;amp; Close&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should now be able to access the component through the menu that you just created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== File Details == &amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{vanchor|site/views/helloworld/tmpl/default.xml}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;metadata&amp;gt;&lt;br /&gt;
	&amp;lt;layout title=&amp;quot;COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;message&amp;gt;COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_DESC&amp;lt;/message&amp;gt;&lt;br /&gt;
	&amp;lt;/layout&amp;gt;&lt;br /&gt;
&amp;lt;/metadata&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{vanchor|helloworld.xml}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; highlight=&amp;quot;13&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;component&amp;quot; version=&amp;quot;3.2.0&amp;quot; method=&amp;quot;upgrade&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;name&amp;gt;Hello World!&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;!-- The following elements are optional and free of formatting constraints --&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;January 2014&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;John Doe&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;john.doe@example.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;http://www.example.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright Info&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;License Info&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;!--  The version string is recorded in the components table --&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;0.0.3&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;!-- The description is optional and defaults to the name --&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;Description of the Hello World component ...&amp;lt;/description&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;update&amp;gt; &amp;lt;!-- Runs on update; New since J2.5 --&amp;gt;&lt;br /&gt;
		&amp;lt;schemas&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;mysql&amp;quot;&amp;gt;sql/updates/mysql&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
		&amp;lt;/schemas&amp;gt;&lt;br /&gt;
	&amp;lt;/update&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!-- Site Main File Copy Section --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Note the folder attribute: This attribute describes the folder&lt;br /&gt;
		to copy FROM in the package to install therefore files copied&lt;br /&gt;
		in this section are copied from /site/ in the package --&amp;gt;&lt;br /&gt;
	&amp;lt;files folder=&amp;quot;site&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;helloworld.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;controller.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;views&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;administration&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Administration Menu Section --&amp;gt;&lt;br /&gt;
		&amp;lt;menu link=&#039;index.php?option=com_helloworld&#039;&amp;gt;Hello World!&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Administration Main File Copy Section --&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Note the folder attribute: This attribute describes the folder&lt;br /&gt;
			to copy FROM in the package to install therefore files copied&lt;br /&gt;
			in this section are copied from /admin/ in the package --&amp;gt;&lt;br /&gt;
		&amp;lt;files folder=&amp;quot;admin&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- Admin Main File Copy Section --&amp;gt;&lt;br /&gt;
			&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
			&amp;lt;filename&amp;gt;helloworld.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
			&amp;lt;!-- SQL files section --&amp;gt;&lt;br /&gt;
			&amp;lt;folder&amp;gt;sql&amp;lt;/folder&amp;gt;&lt;br /&gt;
		&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Code Explanation == &amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
In case you were curious as to why this works the way it does.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== default.xml ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
Note - For the moment the strings won&#039;t be translated in the administrator interface. We will see in a later article how translation is performed.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== helloworld.xml===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;0.0.3&amp;lt;/version&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
Updates the version number.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Component Contents == &amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
At this point in the tutorial, your component should contain the following files:&amp;lt;/translate&amp;gt;&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | &#039;&#039;[[#helloworld.xml|helloworld.xml]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
this is an XML (manifest) file that tells Joomla! how to install our component.&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | &#039;&#039;[[#site/helloworld.php|site/helloworld.php]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
this is the site entry point to the Hello World! component&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 3&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#index.html|site/index.html]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
prevents web server from listing directory content&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 4&lt;br /&gt;
 | &#039;&#039;[[#site/controller.php|site/controller.php]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
file representing the controller&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 5&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#index.html|site/views/index.html]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
prevents web server from listing directory content&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 6&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#index.html|site/views/helloworld/index.html]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
prevents web server from listing directory content&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 7&lt;br /&gt;
 | &#039;&#039;[[#site/views/helloworld/view.html.php|site/views/helloworld/view.html.php]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
file representing the view&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 8&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#index.html|site/views/helloworld/tmpl/index.html]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
prevents web server from listing directory content&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 9&lt;br /&gt;
 | &#039;&#039;[[#site/views/helloworld/tmpl/default.php|site/views/helloworld/tmpl/default.php]]&#039;&#039; &lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
the default view&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 10&lt;br /&gt;
 | &#039;&#039;[[#site/views/helloworld/tmpl/default.xml|site/views/helloworld/tmpl/default.xml]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
file that adds menu item&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 11&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#index.html|admin/index.html]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
prevents web server from listing directory content&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 12&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#admin/helloworld.php|admin/helloworld.php]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
this is the administrator entry point to the Hello World! component&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 13&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#index.html|admin/sql/index.html]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
prevents web server from listing directory content&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 14&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#index.html|admin/sql/updates/index.html]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
prevents web server from listing directory content&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 15&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#index.html|admin/sql/updates/mysql/index.html]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
prevents web server from listing directory content&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 16&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#admin/sql/updates/mysql/0.0.1.sql|admin/sql/updates/mysql/0.0.1.sql]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
file allowing to initialise schema version of the com_helloworld component.&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 columns&amp;quot;&amp;gt;{{Basic button|&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
S:MyLanguage/J3.x:Developing_an_MVC_Component/Adding_a_view_to_the_site_part|Prev: Adding a view to the site part&amp;lt;/translate&amp;gt;|class=expand success}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 columns&amp;quot;&amp;gt;{{Basic button|&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
S:MyLanguage/J3.x:Developing_an_MVC_Component/Adding_a_model_to_the_site_part|Next: Adding a model to the site part&amp;lt;/translate&amp;gt;|class=expand}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
[[Category:Joomla! 3.x]]&lt;br /&gt;
[[Category:Joomla! 3.0]]&lt;br /&gt;
[[Category:Joomla! 3.1]]&lt;br /&gt;
[[Category:Joomla! 3.2]]&lt;br /&gt;
[[Category:Joomla! 3.3]]&lt;br /&gt;
[[Category:Joomla! 3.4]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Tutorials in a Series]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Developing_an_MVC_Component/Adding_a_menu_type_to_the_site_part&amp;diff=416659</id>
		<title>J3.x:Developing an MVC Component/Adding a menu type to the site part</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Developing_an_MVC_Component/Adding_a_menu_type_to_the_site_part&amp;diff=416659"/>
		<updated>2017-06-02T18:06:36Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: fix typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{:J3.1:Developing an MVC Component/&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
en&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==Note== &amp;lt;!--T:19--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
* This tutorial is part of the [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction|Developing a MVC Component for Joomla! 3.x]] tutorial. You are encouraged to read the previous parts of the tutorial before reading this.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
* You can follow the steps below to add a menu item to the Hello World! component, or you can directly download the [https://github.com/scionescire/Joomla-3.2-Hello-World-Component/archive/step-3-adding-a-site-menu.zip archive]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Adding a Menu Item to Hello World == &amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
In this article we will cover how to add a menu item to a basic Joomla! component. For this example we will be continuing our work on the [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Developing_a_Basic_Component| Hello World!]] component.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
There are several ways to update a Joomla! component. As with the last tutorial, we will focus option 2.&amp;lt;/translate&amp;gt;&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
Manually add the files into&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;&amp;lt;path_to_joomla&amp;gt;/&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
Update using the Joomla! Extension Manager and the original directory, non-compressed, used for the component install&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 |3&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
Update using the Joomla! Extension Manager and an [[S:MyLanguage/Deploying_an_Update_Server| Update Server]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
To add a menu item you will need to navigate to &amp;lt;tt&amp;gt;com_helloworld&amp;lt;/tt&amp;gt;, which is the original directory we made for our component. You must use the updated directory structure from the last [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Adding_a_view_to_the_site_part | tutorial]]. Using your preferred file manager, create or update the following files; as you create or update the files, add the source code for each file which is found in [[#File Details|File Details]].&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
Create:&amp;lt;/translate&amp;gt; [[#site/views/helloworld/tmpl/default.xml| default.xml]]&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;path_to_com_helloworld/site/views/helloworld/tmpl/default.xml&amp;lt;tt&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
Update:&amp;lt;/translate&amp;gt; [[#helloworld.xml| helloworld.xml]]&lt;br /&gt;
 | &amp;lt;tt&amp;gt;&amp;lt;path_to_com_helloworld/helloworld.xml&amp;lt;/tt&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Updating the Hello World! Component === &amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
To update the Hello World! Component in the Joomla! website, please follow the same steps for the [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Developing_a_Basic_Component#Installing the Hello World! Component |original installation]].&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
With the component successfully updated, we need to add the Menu Item. This will be done by using the Menu Manager of Joomla!.&amp;lt;/translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
*Using your preferred web browser, navigate to the Administrator panel of your Joomla! site. The address would be &amp;lt;tt&amp;gt;&amp;lt;yoursite&amp;gt;/joomla/administrator/index.php&amp;lt;/tt&amp;gt;. For this example we will navigate to &amp;lt;tt&amp;gt;localhost/joomla/administrator/index.php&amp;lt;/tt&amp;gt;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
*Click Menu {{rarr}} Manage {{rarr}} Menu Items {{rarr}} New {{rarr}} Select&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
*Navigate and Choose &amp;lt;tt&amp;gt;Hello World!&amp;lt;/tt&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
*Navigate and Choose&amp;lt;/translate&amp;gt; &amp;lt;tt&amp;gt;COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
*Click Menu Title and enter &amp;lt;tt&amp;gt;Hello World!&amp;lt;/tt&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
*Click Save &amp;amp; Close&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== File Details == &amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
{{vanchor|site/views/helloworld/tmpl/default.xml}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;metadata&amp;gt;&lt;br /&gt;
	&amp;lt;layout title=&amp;quot;COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;message&amp;gt;COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_DESC&amp;lt;/message&amp;gt;&lt;br /&gt;
	&amp;lt;/layout&amp;gt;&lt;br /&gt;
&amp;lt;/metadata&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{vanchor|helloworld.xml}}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot; highlight=&amp;quot;13&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;component&amp;quot; version=&amp;quot;3.2.0&amp;quot; method=&amp;quot;upgrade&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;name&amp;gt;Hello World!&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;!-- The following elements are optional and free of formatting constraints --&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;January 2014&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;John Doe&amp;lt;/author&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;john.doe@example.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;http://www.example.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;Copyright Info&amp;lt;/copyright&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;License Info&amp;lt;/license&amp;gt;&lt;br /&gt;
	&amp;lt;!--  The version string is recorded in the components table --&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;0.0.3&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;!-- The description is optional and defaults to the name --&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;Description of the Hello World component ...&amp;lt;/description&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;update&amp;gt; &amp;lt;!-- Runs on update; New since J2.5 --&amp;gt;&lt;br /&gt;
		&amp;lt;schemas&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;mysql&amp;quot;&amp;gt;sql/updates/mysql&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
		&amp;lt;/schemas&amp;gt;&lt;br /&gt;
	&amp;lt;/update&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!-- Site Main File Copy Section --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Note the folder attribute: This attribute describes the folder&lt;br /&gt;
		to copy FROM in the package to install therefore files copied&lt;br /&gt;
		in this section are copied from /site/ in the package --&amp;gt;&lt;br /&gt;
	&amp;lt;files folder=&amp;quot;site&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;helloworld.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;controller.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;views&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;administration&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Administration Menu Section --&amp;gt;&lt;br /&gt;
		&amp;lt;menu link=&#039;index.php?option=com_helloworld&#039;&amp;gt;Hello World!&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Administration Main File Copy Section --&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Note the folder attribute: This attribute describes the folder&lt;br /&gt;
			to copy FROM in the package to install therefore files copied&lt;br /&gt;
			in this section are copied from /admin/ in the package --&amp;gt;&lt;br /&gt;
		&amp;lt;files folder=&amp;quot;admin&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- Admin Main File Copy Section --&amp;gt;&lt;br /&gt;
			&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
			&amp;lt;filename&amp;gt;helloworld.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
			&amp;lt;!-- SQL files section --&amp;gt;&lt;br /&gt;
			&amp;lt;folder&amp;gt;sql&amp;lt;/folder&amp;gt;&lt;br /&gt;
		&amp;lt;/files&amp;gt;&lt;br /&gt;
	&amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Code Explanation == &amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
In case you were curious as to why this works the way it does.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== default.xml ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
Note - For the moment the strings won&#039;t be translated in the administrator interface. We will see in a later article how translation is performed.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== helloworld.xml===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;0.0.3&amp;lt;/version&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
Updates the version number.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Component Contents == &amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
At this point in the tutorial, your component should contain the following files:&amp;lt;/translate&amp;gt;&lt;br /&gt;
{| border=1&lt;br /&gt;
 | 1&lt;br /&gt;
 | &#039;&#039;[[#helloworld.xml|helloworld.xml]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
this is an XML (manifest) file that tells Joomla! how to install our component.&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 2&lt;br /&gt;
 | &#039;&#039;[[#site/helloworld.php|site/helloworld.php]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
this is the site entry point to the Hello World! component&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 3&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#index.html|site/index.html]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
prevents web server from listing directory content&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 4&lt;br /&gt;
 | &#039;&#039;[[#site/controller.php|site/controller.php]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
file representing the controller&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 5&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#index.html|site/views/index.html]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
prevents web server from listing directory content&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 6&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#index.html|site/views/helloworld/index.html]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
prevents web server from listing directory content&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 7&lt;br /&gt;
 | &#039;&#039;[[#site/views/helloworld/view.html.php|site/views/helloworld/view.html.php]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
file representing the view&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 8&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#index.html|site/views/helloworld/tmpl/index.html]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
prevents web server from listing directory content&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 9&lt;br /&gt;
 | &#039;&#039;[[#site/views/helloworld/tmpl/default.php|site/views/helloworld/tmpl/default.php]]&#039;&#039; &lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
the default view&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 10&lt;br /&gt;
 | &#039;&#039;[[#site/views/helloworld/tmpl/default.xml|site/views/helloworld/tmpl/default.xml]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
file that adds menu item&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 11&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#index.html|admin/index.html]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
prevents web server from listing directory content&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 12&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#admin/helloworld.php|admin/helloworld.php]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
this is the administrator entry point to the Hello World! component&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 13&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#index.html|admin/sql/index.html]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
prevents web server from listing directory content&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 14&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#index.html|admin/sql/updates/index.html]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:60--&amp;gt;&lt;br /&gt;
prevents web server from listing directory content&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 15&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#index.html|admin/sql/updates/mysql/index.html]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
prevents web server from listing directory content&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 | 16&lt;br /&gt;
 | &#039;&#039;[[S:MyLanguage/J3.2:Developing_an_MVC_Component/Developing_a_Basic_Component#admin/sql/updates/mysql/0.0.1.sql|admin/sql/updates/mysql/0.0.1.sql]]&#039;&#039;&lt;br /&gt;
 | &amp;lt;translate&amp;gt;&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
file allowing to initialise schema version of the com_helloworld component.&amp;lt;/translate&amp;gt;&lt;br /&gt;
 |} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 columns&amp;quot;&amp;gt;{{Basic button|&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
S:MyLanguage/J3.x:Developing_an_MVC_Component/Adding_a_view_to_the_site_part|Prev: Adding a view to the site part&amp;lt;/translate&amp;gt;|class=expand success}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 columns&amp;quot;&amp;gt;{{Basic button|&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
S:MyLanguage/J3.x:Developing_an_MVC_Component/Adding_a_model_to_the_site_part|Next: Adding a model to the site part&amp;lt;/translate&amp;gt;|class=expand}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
[[Category:Joomla! 3.x]]&lt;br /&gt;
[[Category:Joomla! 3.0]]&lt;br /&gt;
[[Category:Joomla! 3.1]]&lt;br /&gt;
[[Category:Joomla! 3.2]]&lt;br /&gt;
[[Category:Joomla! 3.3]]&lt;br /&gt;
[[Category:Joomla! 3.4]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Tutorials in a Series]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x_talk:Developing_an_MVC_Component/Adding_a_menu_type_to_the_site_part&amp;diff=416658</id>
		<title>J3.x talk:Developing an MVC Component/Adding a menu type to the site part</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x_talk:Developing_an_MVC_Component/Adding_a_menu_type_to_the_site_part&amp;diff=416658"/>
		<updated>2017-06-02T18:04:47Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: Created page with &amp;quot;== Updating the Hello World! Component ==  It isn&amp;#039;t clear what to do in this section  ~~~~&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Updating the Hello World! Component ==&lt;br /&gt;
&lt;br /&gt;
It isn&#039;t clear what to do in this section&lt;br /&gt;
&lt;br /&gt;
[[User:Chiessyer|Chiessyer]] ([[User talk:Chiessyer|talk]]) 13:04, 2 June 2017 (CDT)&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Talk:Absolute_Basics_of_How_a_Component_Functions&amp;diff=416653</id>
		<title>Talk:Absolute Basics of How a Component Functions</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Talk:Absolute_Basics_of_How_a_Component_Functions&amp;diff=416653"/>
		<updated>2017-06-02T16:04:14Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: /* Up to date? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Up to date? ==&lt;br /&gt;
&lt;br /&gt;
Would someone who is well-versed in writing components for Joomla comment on whether this article is up-to-date? The section on where files should go isn&#039;t clear to me, and I wonder if things may have been different prior to Joomla 3.&lt;br /&gt;
&lt;br /&gt;
[[User:Chiessyer|Chiessyer]] ([[User talk:Chiessyer|talk]]) 11:03, 2 June 2017 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Great Topic ==&lt;br /&gt;
&lt;br /&gt;
Just want to say this is a great topic and an article from which I learnt a lot.  Perhaps it should feature more prominently.&lt;br /&gt;
&lt;br /&gt;
Over recent weeks I&#039;ve been struggling with understanding how it all hangs together grabbing snippets all over the place, reading through loads of the php source, slow &amp;amp; difficult progress.&lt;br /&gt;
&lt;br /&gt;
I have no doubt it would have taken me several more days to workout that the &#039;task&#039; was defaulting to display and that I could name my own controller methods (like jump) and have them activated by a URL parameter.  (The sort of stuff I imagine every PHP developer coming to Joomla would want to know).&lt;br /&gt;
&lt;br /&gt;
The article may also be a bit dated now with 1.7 I see the demo Hello World MVC component involves 4 files ?? (Basefile + M+V+C) ?&lt;br /&gt;
Anyway, well done great article and lots of gems of knowledge about how Joomla works. Thanks&lt;br /&gt;
&lt;br /&gt;
== Missing in Instructions ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;//Hi, I have tried to follow these instructions, and found a few missing things.&lt;br /&gt;
Setting up my controller.php was missing the following statement in the display class:&lt;br /&gt;
&lt;br /&gt;
return parent::display();&lt;br /&gt;
&lt;br /&gt;
//Without this, the instructions don&#039;t work.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[User:Cwurtz|Cwurtz]] ([[User talk:Cwurtz|talk]]) 03:07, 14 December 2013 (CST)&lt;br /&gt;
:Feel free to correct it. [[User:Tom Hutchison|Tom Hutchison]] ([[User talk:Tom Hutchison|talk]]) 10:57, 14 December 2013 (CST)&lt;br /&gt;
&lt;br /&gt;
== Updated article: ==&lt;br /&gt;
&lt;br /&gt;
Hello all,&lt;br /&gt;
&lt;br /&gt;
I am a new Joomla! student, I am going through and updating several of the tutorials, those that are geared towards beginners, with current information. My main focus is to update [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction|Developing a Model-View-Controller Component/3.x]], so that it is geared toward beginners.&lt;br /&gt;
&lt;br /&gt;
This article itself seemed designed originally for Joomla 1.5. For this article, I removed the sections that displayed specific code; this was due to the code differences between 1.5, 2.5, and 3.x. To compensate for this change, I added the links to the specific tutorials for those versions. I also added new sections with information that I have found dispersed throughout the Joomla! documentation.&lt;br /&gt;
&lt;br /&gt;
If you can think of any other additions or revisions that I can make to this article, please let me know.&lt;br /&gt;
&lt;br /&gt;
Warm Regards,&lt;br /&gt;
&lt;br /&gt;
[[User:Kevinkabatra|Kevinkabatra]] ([[User talk:Kevinkabatra|talk]]) 08:18, 17 September 2015 (CDT)&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Talk:Absolute_Basics_of_How_a_Component_Functions&amp;diff=416650</id>
		<title>Talk:Absolute Basics of How a Component Functions</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Talk:Absolute_Basics_of_How_a_Component_Functions&amp;diff=416650"/>
		<updated>2017-06-02T16:03:33Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Up to date? ==&lt;br /&gt;
&lt;br /&gt;
Would someone who is well-versed in writing components for Joomla comment on whether this article is up-to-date? The section on where files should go isn&#039;t clear to me, and I wonder if things may have been different prior to Joomla 3.&lt;br /&gt;
[[User:Chiessyer|Chiessyer]] ([[User talk:Chiessyer|talk]]) 11:03, 2 June 2017 (CDT)&lt;br /&gt;
&lt;br /&gt;
== Great Topic ==&lt;br /&gt;
&lt;br /&gt;
Just want to say this is a great topic and an article from which I learnt a lot.  Perhaps it should feature more prominently.&lt;br /&gt;
&lt;br /&gt;
Over recent weeks I&#039;ve been struggling with understanding how it all hangs together grabbing snippets all over the place, reading through loads of the php source, slow &amp;amp; difficult progress.&lt;br /&gt;
&lt;br /&gt;
I have no doubt it would have taken me several more days to workout that the &#039;task&#039; was defaulting to display and that I could name my own controller methods (like jump) and have them activated by a URL parameter.  (The sort of stuff I imagine every PHP developer coming to Joomla would want to know).&lt;br /&gt;
&lt;br /&gt;
The article may also be a bit dated now with 1.7 I see the demo Hello World MVC component involves 4 files ?? (Basefile + M+V+C) ?&lt;br /&gt;
Anyway, well done great article and lots of gems of knowledge about how Joomla works. Thanks&lt;br /&gt;
&lt;br /&gt;
== Missing in Instructions ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;//Hi, I have tried to follow these instructions, and found a few missing things.&lt;br /&gt;
Setting up my controller.php was missing the following statement in the display class:&lt;br /&gt;
&lt;br /&gt;
return parent::display();&lt;br /&gt;
&lt;br /&gt;
//Without this, the instructions don&#039;t work.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[User:Cwurtz|Cwurtz]] ([[User talk:Cwurtz|talk]]) 03:07, 14 December 2013 (CST)&lt;br /&gt;
:Feel free to correct it. [[User:Tom Hutchison|Tom Hutchison]] ([[User talk:Tom Hutchison|talk]]) 10:57, 14 December 2013 (CST)&lt;br /&gt;
&lt;br /&gt;
== Updated article: ==&lt;br /&gt;
&lt;br /&gt;
Hello all,&lt;br /&gt;
&lt;br /&gt;
I am a new Joomla! student, I am going through and updating several of the tutorials, those that are geared towards beginners, with current information. My main focus is to update [[S:MyLanguage/J3.x:Developing_an_MVC_Component/Introduction|Developing a Model-View-Controller Component/3.x]], so that it is geared toward beginners.&lt;br /&gt;
&lt;br /&gt;
This article itself seemed designed originally for Joomla 1.5. For this article, I removed the sections that displayed specific code; this was due to the code differences between 1.5, 2.5, and 3.x. To compensate for this change, I added the links to the specific tutorials for those versions. I also added new sections with information that I have found dispersed throughout the Joomla! documentation.&lt;br /&gt;
&lt;br /&gt;
If you can think of any other additions or revisions that I can make to this article, please let me know.&lt;br /&gt;
&lt;br /&gt;
Warm Regards,&lt;br /&gt;
&lt;br /&gt;
[[User:Kevinkabatra|Kevinkabatra]] ([[User talk:Kevinkabatra|talk]]) 08:18, 17 September 2015 (CDT)&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=User:Chiessyer&amp;diff=416624</id>
		<title>User:Chiessyer</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=User:Chiessyer&amp;diff=416624"/>
		<updated>2017-06-02T15:55:01Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: initial introduction&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I have maintained a few simple Joomla websites for some time. Recently I inherited maintenance of one that is not so simple. This forced me to quickly learn more about how Joomla is put together. I&#039;ll update documentation as I learn.&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived_talk:Joomla!_Development_for_Beginners&amp;diff=416594</id>
		<title>Archived talk:Joomla! Development for Beginners</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived_talk:Joomla!_Development_for_Beginners&amp;diff=416594"/>
		<updated>2017-06-02T15:32:33Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: Created page with &amp;quot;I&amp;#039;d like to get started in understanding how to develop custom modules for Joomla. This page says that a FAQ section is coming soon. Is there such a page in the works? If so I...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I&#039;d like to get started in understanding how to develop custom modules for Joomla. This page says that a FAQ section is coming soon. Is there such a page in the works? If so I&#039;d like to take a look at it, and offer some suggestions.&lt;br /&gt;
- [[User:Chiessyer|Chiessyer]] ([[User talk:Chiessyer|talk]]) 10:32, 2 June 2017 (CDT)&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:Joomla!_Development_for_Beginners/Tutorials&amp;diff=416578</id>
		<title>Archived:Joomla! Development for Beginners/Tutorials</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:Joomla!_Development_for_Beginners/Tutorials&amp;diff=416578"/>
		<updated>2017-06-02T15:28:38Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: remove duplicate line&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Setting up your workstation for PHP development]]: Learn how to set up a brand new workstation from scratch in a semiprofessional way to start learning about PHP development in general also learn the existence of many tools that will make your work lot easier in your future as developer.* [[Basic Internet communications tutorial]]: This is a very basic and straightforward tutorial to understand how computers transmit information on Internet.&lt;br /&gt;
* [[Basic HTML tutorial]]: This is a very basic and straightforward tutorial to learn how to deal with HTML.&lt;br /&gt;
* [[Basic CSS tutorial]]: This is a very basic and straightforward tutorial to learn how to deal with cascading style sheets (CSS).&lt;br /&gt;
* [[Basic Javascript tutorial]]: This is a very basic and straightforward tutorial to learn how to deal with javascript.&lt;br /&gt;
* [[Basic PHP tutorial]]: This is a very basic and straightforward tutorial to learn how to deal with PHP.&lt;br /&gt;
* [[Basic SQL tutorial]]: This is a very basic and straightforward tutorial to learn how to deal with SQL.&lt;br /&gt;
* [[Basic XML tutorial]]: This is a very basic and straightforward tutorial to learn how to deal with XML.&lt;br /&gt;
* [[Basic AJAX tutorial]]: This is a very basic and straightforward tutorial to learn how to deal with AJAX.&lt;br /&gt;
* [[Basic JSON tutorial]]: This is a very basic and straightforward tutorial to learn how to deal with JSON.&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=JDOC_talk:Developer_Tutorials_Project&amp;diff=415856</id>
		<title>JDOC talk:Developer Tutorials Project</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=JDOC_talk:Developer_Tutorials_Project&amp;diff=415856"/>
		<updated>2017-05-31T15:42:18Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Developer Tutorials Project==&lt;br /&gt;
* [[User:Hutchy68|Tom Hutchison]] ([[User talk:Hutchy68|talk]]) 09:37, 11 February 2013 (CST) - page categorisation, wiki markup help, layout, wikification of related pages&lt;br /&gt;
* [[User:Kevinkabatra|Kevinkabatra]] ([[User talk:Kevinkabatra|talk]]) 13:32, 18 September 2015 (CDT) - updating current beginner tutorials to be actually geared toward beginners, anything else that is needed&lt;br /&gt;
* [[User:Chiessyer|Chiessyer]] ([[User talk:Chiessyer|talk]]) 10:42, 31 May 2017 (CDT) - small updates to existing tutorials as I learn how to author a component&lt;br /&gt;
&lt;br /&gt;
== Feedback and ideas ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- post your feedback and ideas below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[User:Poproar|popROAR]] ([[User talk:Poproar|talk]]) 12:22, 4 August 2013 (CDT) - walkthroughs?&lt;br /&gt;
* [[User:Poproar|popROAR]] ([[User talk:Poproar|talk]]) 19:27, 3 October 2015 (CDT) - Where can we find the github example pages?&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=JDOC_talk:Developer_Tutorials_Project&amp;diff=415855</id>
		<title>JDOC talk:Developer Tutorials Project</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=JDOC_talk:Developer_Tutorials_Project&amp;diff=415855"/>
		<updated>2017-05-31T15:38:26Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: /* Developer Tutorials Project */ formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Developer Tutorials Project==&lt;br /&gt;
* [[User:Hutchy68|Tom Hutchison]] ([[User talk:Hutchy68|talk]]) 09:37, 11 February 2013 (CST) - page categorisation, wiki markup help, layout, wikification of related pages&lt;br /&gt;
* [[User:Kevinkabatra|Kevinkabatra]] ([[User talk:Kevinkabatra|talk]]) 13:32, 18 September 2015 (CDT) - updating current beginner tutorials to be actually geared toward beginners, anything else that is needed&lt;br /&gt;
* [[User:Chiessyer|Chiessyer]] ([[User talk:Chiessyer|talk]]) 10:38, 31 May 2017 (CDT) - small updates to existing tutorials as I learn how to author a component&lt;br /&gt;
&lt;br /&gt;
== Feedback and ideas ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- post your feedback and ideas below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[User:Poproar|popROAR]] ([[User talk:Poproar|talk]]) 12:22, 4 August 2013 (CDT) - walkthroughs?&lt;br /&gt;
* [[User:Poproar|popROAR]] ([[User talk:Poproar|talk]]) 19:27, 3 October 2015 (CDT) - Where can we find the github example pages?&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=JDOC_talk:Developer_Tutorials_Project&amp;diff=415854</id>
		<title>JDOC talk:Developer Tutorials Project</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=JDOC_talk:Developer_Tutorials_Project&amp;diff=415854"/>
		<updated>2017-05-31T15:38:10Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: /* Developer Tutorials Project */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Developer Tutorials Project==&lt;br /&gt;
* [[User:Hutchy68|Tom Hutchison]] ([[User talk:Hutchy68|talk]]) 09:37, 11 February 2013 (CST) - page categorisation, wiki markup help, layout, wikification of related pages&lt;br /&gt;
* [[User:Kevinkabatra|Kevinkabatra]] ([[User talk:Kevinkabatra|talk]]) 13:32, 18 September 2015 (CDT) - updating current beginner tutorials to be actually geared toward beginners, anything else that is needed&lt;br /&gt;
[[User:Chiessyer|Chiessyer]] ([[User talk:Chiessyer|talk]]) 10:38, 31 May 2017 (CDT) - small updates to existing tutorials as I learn how to author a component&lt;br /&gt;
&lt;br /&gt;
== Feedback and ideas ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- post your feedback and ideas below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[User:Poproar|popROAR]] ([[User talk:Poproar|talk]]) 12:22, 4 August 2013 (CDT) - walkthroughs?&lt;br /&gt;
* [[User:Poproar|popROAR]] ([[User talk:Poproar|talk]]) 19:27, 3 October 2015 (CDT) - Where can we find the github example pages?&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_simple_module/Developing_a_Basic_Module&amp;diff=415853</id>
		<title>J3.x:Creating a simple module/Developing a Basic Module</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Creating_a_simple_module/Developing_a_Basic_Module&amp;diff=415853"/>
		<updated>2017-05-31T15:18:31Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: grammar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{J3.x:Creating_a_simple_module/&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
en&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Modules are lightweight and flexible extensions. They are used for small bits of the page that are generally less complex and are able to be seen across different components.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
You can see many examples of modules in the standard Joomla! install: - menus - Latest News - Login form - and many more.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
This tutorial will explain how to go about creating a simple Hello World module. Through this tutorial you will learn the basic file structure of a module. This basic structure can then be expanded to produce more elaborate modules.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== File Structure == &amp;lt;!--T:5--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
There are four basic files that are used in the standard pattern of module development:&amp;lt;/translate&amp;gt; &lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;mod_helloworld.php&amp;lt;/code&amp;gt; - This file is the main entry point for the module. It will perform any necessary initialization routines, call helper routines to collect any necessary data, and include the template which will display the module output.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;mod_helloworld.xml&amp;lt;/code&amp;gt; - This file contains information about the module. It defines the files that need to be installed by the Joomla! installer and specifies configuration parameters for the module.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;helper.php&amp;lt;/code&amp;gt; - This file contains the helper class which is used to do the actual work in retrieving the information to be displayed in the module (usually from the database or some other source).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;tmpl/default.php&amp;lt;/code&amp;gt; - This is the module template. This file will take the data collected by mod_helloworld.php and generate the HTML to be displayed on the page.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== Creating mod_helloworld.php == &amp;lt;!--T:11--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;mod_helloworld.php&amp;lt;/tt&amp;gt; file will perform three tasks:&lt;br /&gt;
* include the helper.php file which contains the class to be used to collect the necessary data&lt;br /&gt;
* invoke the appropriate helper class method to retrieve the data&lt;br /&gt;
* include the template to display the output.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
The helper class is defined in our helper.php file. This file is included with a require_once statement:&amp;lt;/translate&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;require_once dirname(__FILE__) . &#039;/helper.php&#039;;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;require_once&amp;lt;/code&amp;gt; is used because our helper functions are defined within a class, and we only want the class defined once.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
Our helper class has not been defined yet, but when it is, it will contain one method: getHello(). For our basic example, it is not really necessary to do this - the “Hello, World” message that this method returns could simply be included in the template. We use a helper class here to demonstrate this basic technique.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
Our module currently does not use any parameters, but we will pass them to the helper method anyway so that it can be used later if we decide to expand the functionality of our module.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
The helper class method is invoked in the following way:&amp;lt;/translate&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$hello = modHelloWorldHelper::getHello($params);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;=== Completed mod_helloworld.php file === &amp;lt;!--T:18--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
The complete &amp;lt;tt&amp;gt;mod_helloworld.php&amp;lt;/tt&amp;gt; file is as follows:&amp;lt;/translate&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Hello World! Module Entry Point&lt;br /&gt;
 * &lt;br /&gt;
 * @package    Joomla.Tutorials&lt;br /&gt;
 * @subpackage Modules&lt;br /&gt;
 * @license    GNU/GPL, see LICENSE.php&lt;br /&gt;
 * @link       http://docs.joomla.org/J3.x:Creating_a_simple_module/Developing_a_Basic_Module&lt;br /&gt;
 * mod_helloworld is free software. This version may have been modified pursuant&lt;br /&gt;
 * to the GNU General Public License, and as distributed it includes or&lt;br /&gt;
 * is derivative of works licensed under the GNU General Public License or&lt;br /&gt;
 * other free or open source software licenses.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// No direct access&lt;br /&gt;
defined(&#039;_JEXEC&#039;) or die;&lt;br /&gt;
// Include the syndicate functions only once&lt;br /&gt;
require_once dirname(__FILE__) . &#039;/helper.php&#039;;&lt;br /&gt;
&lt;br /&gt;
$hello = modHelloWorldHelper::getHello($params);&lt;br /&gt;
require JModuleHelper::getLayoutPath(&#039;mod_helloworld&#039;);&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
The one line that we haven’t explained so far is the first line. This line checks to make sure that this file is being included from the Joomla! application. This is necessary to prevent variable injection and other potential security concerns.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== Creating helper.php == &amp;lt;!--T:21--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;helper.php&amp;lt;/tt&amp;gt; file contains the helper class that is used to retrieve the data to be displayed in the module output. As stated earlier, our helper class will have one method: getHello(). This method will return the ‘Hello, World’ message.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
Here is the code for the helper.php file:&amp;lt;/translate&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;?php&lt;br /&gt;
/**&lt;br /&gt;
 * Helper class for Hello World! module&lt;br /&gt;
 * &lt;br /&gt;
 * @package    Joomla.Tutorials&lt;br /&gt;
 * @subpackage Modules&lt;br /&gt;
 * @link http://docs.joomla.org/J3.x:Creating_a_simple_module/Developing_a_Basic_Module&lt;br /&gt;
 * @license        GNU/GPL, see LICENSE.php&lt;br /&gt;
 * mod_helloworld is free software. This version may have been modified pursuant&lt;br /&gt;
 * to the GNU General Public License, and as distributed it includes or&lt;br /&gt;
 * is derivative of works licensed under the GNU General Public License or&lt;br /&gt;
 * other free or open source software licenses.&lt;br /&gt;
 */&lt;br /&gt;
class ModHelloWorldHelper&lt;br /&gt;
{&lt;br /&gt;
    /**&lt;br /&gt;
     * Retrieves the hello message&lt;br /&gt;
     *&lt;br /&gt;
     * @param   array  $params An object containing the module parameters&lt;br /&gt;
     *&lt;br /&gt;
     * @access public&lt;br /&gt;
     */    &lt;br /&gt;
    public static function getHello($params)&lt;br /&gt;
    {&lt;br /&gt;
        return &#039;Hello, World!&#039;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
There is no rule stating that we must name our helper class as we have, but it is helpful to do this so that it is easily identifiable and locatable. Note that it is required to be in this format if you plan to use the com_ajax plugin.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
More advanced modules might include database requests or other functionality in the helper class method.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== Creating tmpl/default.php == &amp;lt;!--T:26--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;default.php&amp;lt;/tt&amp;gt; file is the template which displays the module output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
The code for the default.php file is as follows:&amp;lt;/translate&amp;gt;&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;
// No direct access&lt;br /&gt;
defined(&#039;_JEXEC&#039;) or die; ?&amp;gt;&lt;br /&gt;
&amp;lt;?php echo $hello; ?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
An important point to note is that the template file has the same scope as the mod_helloworld.php file. What this means is that the variable $hello can be defined in the mod_helloworld.php file and then used in the template file without any extra declarations or function calls.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== Creating mod_helloworld.xml == &amp;lt;!--T:30--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;mod_helloworld.xml&amp;lt;/tt&amp;gt; is used to specify which files the installer needs to copy and is used by the Module Manager to determine which parameters are used to configure the module. Other information about the module is also specified in this file.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
The code for &amp;lt;tt&amp;gt;mod_helloworld.xml&amp;lt;/tt&amp;gt; is as follows:&amp;lt;/translate&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;module&amp;quot; version=&amp;quot;3.1.0&amp;quot; client=&amp;quot;site&amp;quot; method=&amp;quot;upgrade&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Hello, World!&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;author&amp;gt;John Doe&amp;lt;/author&amp;gt;&lt;br /&gt;
    &amp;lt;version&amp;gt;1.0.0&amp;lt;/version&amp;gt;&lt;br /&gt;
    &amp;lt;description&amp;gt;A simple Hello, World! module.&amp;lt;/description&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;mod_helloworld.xml&amp;lt;/filename&amp;gt;&lt;br /&gt;
        &amp;lt;filename module=&amp;quot;mod_helloworld&amp;quot;&amp;gt;mod_helloworld.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;helper.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;tmpl/default.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;tmpl/index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
    &amp;lt;config&amp;gt;&lt;br /&gt;
    &amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
[[S:MyLanguage/Manifest files|Manifest files]] explains the technical details of the elements used in the XML file.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
You will notice that there are two additional files that we have not yet mentioned: index.html and tmpl/index.html. These files are included so that these directories cannot be browsed. If a user attempts to point their browser to these folders, the index.html file will be displayed. These files can be left empty or can contain the simple line:&amp;lt;/translate&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&amp;lt;html&amp;gt;&amp;lt;body bgcolor=&amp;quot;#FFFFFF&amp;quot;&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
which will display an empty page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
Since our module does not use any [[S:MyLanguage/Form_field|form fields]], the config section is empty.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;== Conclusion == &amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
Module development for Joomla! is a fairly simple, straightforward process. Using the techniques described in this tutorial, an endless variety of modules can be developed with little hassle.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;row&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 columns&amp;quot;&amp;gt;{{Basic button|&amp;lt;translate&amp;gt;&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
S:MyLanguage/J3.x:Creating_a_simple_module/Introduction|Prev: Introduction&amp;lt;/translate&amp;gt;|class=expand success}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;large-6 columns&amp;quot;&amp;gt;{{Basic button|&amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
S:MyLanguage/J3.x:Creating_a_simple_module/Using_the_Database|Next: Using the Database&amp;lt;/translate&amp;gt;|class=expand}}&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Tutorials in a Series]]&lt;br /&gt;
[[Category:Module Development]]&lt;br /&gt;
[[Category:Beginner Development]]&lt;br /&gt;
[[Category:Joomla! 3.x]]&lt;br /&gt;
[[Category:Joomla! 3.0]]&lt;br /&gt;
[[Category:Joomla! 3.1]]&lt;br /&gt;
[[Category:Joomla! 3.2]]&lt;br /&gt;
[[Category:Joomla! 3.3]]&lt;br /&gt;
[[Category:Joomla! 3.4]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Developers/Modules&amp;diff=415406</id>
		<title>Developers/Modules</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Developers/Modules&amp;diff=415406"/>
		<updated>2017-05-31T00:31:37Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: fix broken redirect&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Portal:Module_Development]]&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Help310:Extensions_Module_Manager_Custom_HTML&amp;diff=415405</id>
		<title>Help310:Extensions Module Manager Custom HTML</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Help310:Extensions_Module_Manager_Custom_HTML&amp;diff=415405"/>
		<updated>2017-05-30T23:53:40Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: /* How to Access */ rename &amp;quot;Custom HTML&amp;quot; to &amp;quot;Custom&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
This allows you to create a Module that contains any valid HTML code. There are many cases where you might want to put free-form HTML inside a web page. For example, you might want to create an HTML Image Map or you might want to copy HTML code from PayPal, Amazon, or some other site.&lt;br /&gt;
&lt;br /&gt;
The Custom Module allows you to create a self-contained HTML unit and then put it in any valid location on a page.&lt;br /&gt;
&lt;br /&gt;
==How to Access==&lt;br /&gt;
{{Chunk30:ModuleManager-How-to-acces-module|module=Custom}}&lt;br /&gt;
&lt;br /&gt;
{{Chunk30:Help-3x-module-site-custom-html}}&lt;br /&gt;
&lt;br /&gt;
===Common Details===&lt;br /&gt;
{{Chunk30:Module Details}}&lt;br /&gt;
&lt;br /&gt;
===Common Tabs===&lt;br /&gt;
{{Chunk30:Help-3x-module-site-common-tabs}}&lt;br /&gt;
&lt;br /&gt;
==Toolbar==&lt;br /&gt;
{{Chunk30:Help_screen_module_manager_edit_toolbar/en}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{warning|The editor does not allow you to enter certain HTML tags. To work around this, you can temporarily change your User&#039;s editor to &amp;quot;No Editor&amp;quot;, create the Custom HTML Module, and then change the editor back to TinyMCE. Another option is to use an editor from an Extension that allows HTML code to be entered. Another possibility is (if the editor has this option) to switch to the HTML mode, enter the code, save and switch back to normal view.}}&lt;br /&gt;
&lt;br /&gt;
==Front End View==&lt;br /&gt;
&lt;br /&gt;
An example of a Custom HTML editor session is shown below. Note that the &amp;quot;No Editor&amp;quot; option is being used.&lt;br /&gt;
&lt;br /&gt;
[[Image:Help30-Extensions-Module-Manager-Custom-Html-output.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{cathelp|3.0,3.1,3.2,3.3|Module Manager Help Screens|Extensions Help Screens}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Help310:Extensions_Module_Manager_Custom_HTML&amp;diff=415404</id>
		<title>Help310:Extensions Module Manager Custom HTML</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Help310:Extensions_Module_Manager_Custom_HTML&amp;diff=415404"/>
		<updated>2017-05-30T23:51:10Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: /* Description */ rename &amp;quot;Custom HTML&amp;quot; to &amp;quot;Custom&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Description==&lt;br /&gt;
This allows you to create a Module that contains any valid HTML code. There are many cases where you might want to put free-form HTML inside a web page. For example, you might want to create an HTML Image Map or you might want to copy HTML code from PayPal, Amazon, or some other site.&lt;br /&gt;
&lt;br /&gt;
The Custom Module allows you to create a self-contained HTML unit and then put it in any valid location on a page.&lt;br /&gt;
&lt;br /&gt;
==How to Access==&lt;br /&gt;
{{Chunk30:ModuleManager-How-to-acces-module|module=Custom HTML}}&lt;br /&gt;
&lt;br /&gt;
{{Chunk30:Help-3x-module-site-custom-html}}&lt;br /&gt;
&lt;br /&gt;
===Common Details===&lt;br /&gt;
{{Chunk30:Module Details}}&lt;br /&gt;
&lt;br /&gt;
===Common Tabs===&lt;br /&gt;
{{Chunk30:Help-3x-module-site-common-tabs}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Toolbar==&lt;br /&gt;
{{Chunk30:Help_screen_module_manager_edit_toolbar/en}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{warning|The editor does not allow you to enter certain HTML tags. To work around this, you can temporarily change your User&#039;s editor to &amp;quot;No Editor&amp;quot;, create the Custom HTML Module, and then change the editor back to TinyMCE. Another option is to use an editor from an Extension that allows HTML code to be entered. Another possibility is (if the editor has this option) to switch to the HTML mode, enter the code, save and switch back to normal view.}}&lt;br /&gt;
&lt;br /&gt;
==Front End View==&lt;br /&gt;
&lt;br /&gt;
An example of a Custom HTML editor session is shown below. Note that the &amp;quot;No Editor&amp;quot; option is being used.&lt;br /&gt;
&lt;br /&gt;
[[Image:Help30-Extensions-Module-Manager-Custom-Html-output.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{cathelp|3.0,3.1,3.2,3.3|Module Manager Help Screens|Extensions Help Screens}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Module&amp;diff=415403</id>
		<title>Module</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Module&amp;diff=415403"/>
		<updated>2017-05-30T23:46:59Z</updated>

		<summary type="html">&lt;p&gt;Chiessyer: rename &amp;quot;Custom HTML&amp;quot; to &amp;quot;Custom&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
{{Chunk:Module/en}}&lt;br /&gt;
&lt;br /&gt;
==Learning More== &amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Module Positions=== &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
{{Chunk:Module Position/en}}&lt;br /&gt;
&lt;br /&gt;
==Recommended Reading== &amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Modules are one of the simplest parts of Joomla and a great entry point for people learning to use the system (the equivalent of widgets in wordpress). They can be displayed just about [[Module_positions|anywhere on a page]] (in all the positions a template allows as well as in the main content area using the [[How do you put a module inside an article?|loadmodule plugin]] for the com_content component).&lt;br /&gt;
&lt;br /&gt;
=== Beginner === &amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
To understand how to install and use a module in Joomla it is recommended to read [[S:MyLanguage/Help34:Extensions_Module_Manager|Module Manager]].&lt;br /&gt;
You can read also [[Help33:Extensions_Module_Manager_Custom_HTML|Module Manager Custom HTML]] for an example.&lt;br /&gt;
&lt;br /&gt;
=== Beginner/Intermediate === &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Creating a simple module for Joomla is one of the simplest development steps you can do - and the [[Creating a simple module|creating a simple module]] tutorial is designed to take you through this. It starts with a simple module and then shows a few things you can then do with the module.&lt;br /&gt;
&lt;br /&gt;
=== Advanced === &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Introduced into Joomla 3.2 is a hidden component that allows modules to create AJAX requests. You can find documentation about [[Using_Joomla_Ajax_Interface|Using Joomla Ajax Interface]] to help you create even better modules.&lt;br /&gt;
&lt;br /&gt;
==Joomla! Default Modules== &amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Joomla! is packaged with many modules, more are available on the JED([http://extensions.joomla.org Joomla! Extension Directory]). Here are the standard modules available in a new Joomla! installation.&lt;br /&gt;
*[[S:MyLanguage/{{RVer|help}}:Extensions_Module_Manager_Articles_Archive|Archived Articles]] {{Rarr}} This Module shows a list of the calendar months containing Archived Articles.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
*Articles - Newsflash {{Rarr}} The Newsflash Module will display a fixed number of articles from a specific category.&lt;br /&gt;
*Articles - Related Articles {{Rarr}} This Module displays other Articles that are related to the one currently being viewed....&lt;br /&gt;
*Articles Categories {{Rarr}} This module displays a list of categories from one parent category.&lt;br /&gt;
*Articles Category {{Rarr}} This module displays a list of articles from one or more categories.&lt;br /&gt;
*Banners {{Rarr}} The Banner Module displays the active Banners from the Component.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/{{RVer|help}}:Extensions_Module_Manager_Breadcrumbs|Breadcrumbs]] {{Rarr}} This Module displays the Breadcrumbs&lt;br /&gt;
*[[S:MyLanguage/{{RVer|help}}:Extensions_Module_Manager_Custom_HTML|Custom]] {{Rarr}} This Module allows you to create your own HTML Module using a WYSIWYG editor.&lt;br /&gt;
*Feed Display {{Rarr}} This module allows the displaying of a syndicated feed&lt;br /&gt;
*Footer {{Rarr}} This module shows the Joomla! copyright information.&lt;br /&gt;
*Language Switcher {{Rarr}} This module displays a list of available Content Languages (as defined and published in...)&lt;br /&gt;
*Latest News {{Rarr}} This Module shows a list of the most recently published and current Articles. Some that...&lt;br /&gt;
*Latest Users {{Rarr}} This module displays the latest registered users&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/{{RVer|help}}:Extensions_Module_Manager_Login|Login]] {{Rarr}} This module displays a username and password login form. It also displays a link to...&lt;br /&gt;
*[[S:MyLanguage/{{RVer|help}}:Extensions_Module_Manager_Menu|Menu]] {{Rarr}} This module displays a menu on the frontend.&lt;br /&gt;
*Most Read Content {{Rarr}} This Module shows a list of the currently published Articles which have the highest...&lt;br /&gt;
*[[S:MyLanguage/{{RVer|help}}:Extensions_Module_Manager_Tags_Popular|Popular Tags]] {{Rarr}} The Popular Tags Module displays the most commonly used tags, optionally within specific...&lt;br /&gt;
*Random Image {{Rarr}} This Module displays a random image from your chosen directory.&lt;br /&gt;
*Search {{Rarr}} This module will display a search box.&lt;br /&gt;
*Similar Tags {{Rarr}} The Similar Tags Module displays links to other items with similar tags. The closeness...&lt;br /&gt;
*Smart Search Module {{Rarr}} This is a search module for the Smart Search system.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
*Statistics {{Rarr}} The Statistics Module shows information about your server installation together with...&lt;br /&gt;
*Syndication Feeds {{Rarr}} Smart Syndication Module that creates a Syndicated Feed for the page where the Module is...&lt;br /&gt;
*Weblinks {{Rarr}} This modules displays Web Links from a category defined in the Weblinks component.&lt;br /&gt;
*Who&#039;s Online {{Rarr}} The Who&#039;s Online Module displays the number of Anonymous Users (e.g. Guests) and...&lt;br /&gt;
*Wrapper {{Rarr}} This Module shows an iframe window to specified location.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
[[Category:Extensions| Module]][[Category:Landing Pages]][[Category:Glossary]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Chiessyer</name></author>
	</entry>
</feed>