<?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=Pwiseman</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=Pwiseman"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Pwiseman"/>
	<updated>2026-06-19T00:21:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Updating_from_an_existing_version&amp;diff=104817</id>
		<title>J3.x:Updating from an existing version</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Updating_from_an_existing_version&amp;diff=104817"/>
		<updated>2013-11-08T10:55:00Z</updated>

		<summary type="html">&lt;p&gt;Pwiseman: Fixed Typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{warning|This page is only for upgrading from Joomla! versions &#039;&#039;&#039;&amp;quot;1.7&#039;&#039;&#039; or &#039;&#039;&#039;2.5&amp;quot;&#039;&#039;&#039; to &#039;&#039;&#039;3.x&#039;&#039;&#039; OR a &#039;&#039;&#039;3.x.x&#039;&#039;&#039; version to &#039;&#039;&#039;{{CurrentSTSVer}}&#039;&#039;&#039;.&amp;lt;br/&amp;gt;&amp;lt;center&amp;gt;&amp;lt;big&amp;gt;&#039;&#039;&#039;Always back up your site before updating.&#039;&#039;&#039;&amp;lt;/big&amp;gt;&amp;lt;/center&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
The recommended way to update installations of Joomla! is to use the Joomla Updater component found in the Components menu of your site Administrator(Method A) introduced in J2.5.4. &lt;br /&gt;
&lt;br /&gt;
Updating earlier versions? Use one of the following methods.&lt;br /&gt;
*Use Install Method ([[#Method B - Install Method|Method B]])&lt;br /&gt;
*Manual Upgrade ([[#Method C - Manual Upgrade|Method C]])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{notice|You should always review &#039;&#039;&#039;[[:Category:Upgrading Issues|Upgrading Issues]]&#039;&#039;&#039; and &#039;&#039;&#039;[[J3.1:Known upgrading issues and solutions|Known upgrading issues and solutions]]&#039;&#039;&#039; before upgrading.|title=Before You Begin}}&lt;br /&gt;
&lt;br /&gt;
==Browse to Components, Joomla Update==&lt;br /&gt;
[[File:Componentsmenu.PNG]]&lt;br /&gt;
&lt;br /&gt;
If an update is available there will be a message indicating this and a button to press. Otherwise for J2.5 go to Extension manager =&amp;gt; Update and press Purge cache. &lt;br /&gt;
&lt;br /&gt;
[[File:Updatewaitingj3.PNG|475px]]&lt;br /&gt;
{{-}}&lt;br /&gt;
==Click on the &amp;quot;Install the Update&amp;quot; button and allow the update to run==&lt;br /&gt;
&lt;br /&gt;
[[File:Updatesuccess3.PNG]]&lt;br /&gt;
&lt;br /&gt;
== When it has completed you may need to refresh your screen or empty your browser cache to adjust for template CSS changes.==&lt;br /&gt;
&lt;br /&gt;
Note: Joomla! will notify you on your administrator home page (control panel) when an update is needed, but it will not do the update for you. You need to press the button to start the update.&lt;br /&gt;
&lt;br /&gt;
{{ambox|text=[[J3.1:Detailed_instructions_for_updating_from_3.1.2_to_3.1.4| Special Instructions for Version 3.1.2 Upgrades]]}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Recommended Steps and actions:&#039;&#039;&#039;&lt;br /&gt;
It is recommended that you follow these steps when updating a production site:&lt;br /&gt;
# Back up your site before upgrading to a new version. That way, if something goes wrong during the upgrade process, you can easily restore your site to the earlier version. &lt;br /&gt;
# Review the release notes for the new version to be familiar with what was changed.&lt;br /&gt;
# Update using one of the recommended methods outlined in this document. These methods install the new program files, delete unneeded old program files, and update the database as needed for the new Joomla version.&lt;br /&gt;
# Clear your browser cache and check that the update was successful, using the steps outlined in the &#039;&#039;&#039;Checking Site&#039;&#039;&#039; tab.&lt;br /&gt;
&lt;br /&gt;
=Method A - Update Method=&lt;br /&gt;
This is the easier way, also called &#039;&#039;One click update&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Step 1: Make sure you have a current backup of your site==&lt;br /&gt;
In many cases, your host will make periodic site backups.&lt;br /&gt;
&lt;br /&gt;
==Step 2a: Find and install updates==&lt;br /&gt;
# &#039;&#039;&#039;If your site is prior to 2.5.4, see Step 2b instead&#039;&#039;&#039;&lt;br /&gt;
# In the back end of your Joomla site, navigate to Components &amp;amp;rarr; Joomla Update.&lt;br /&gt;
# Click on Install the Update [[Image:Update-screenshot-20120618-01.png|frame|center]]&lt;br /&gt;
# &#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; This process will take a few minutes. Wait until the process completes and it tells you that you are already on the current release, similar to the screen shown below. [[Image:Update-screenshot-20120618-02.png|frame|center]]&lt;br /&gt;
# Congratulations! At this point, your site is updated.&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Clear your browser cache and check that your site is working correctly. See below Checking Your Site&lt;br /&gt;
&lt;br /&gt;
==Step 2b: Find and install updates (Prior to updating 2.5.4)==&lt;br /&gt;
# In the back end of your Joomla site, navigate to Extensions &amp;amp;rarr; Extension Manager and open the Update tab.&lt;br /&gt;
# Click on the Purge Cache icon to clear out the cache.&lt;br /&gt;
# Click on the Find Updates icon in the toolbar. If there is an available update, the screen will list it, similar to the screen shown below. [[Image:Update-screenshot-20120124-01.png|frame|center]] Note that available upgrades for extensions used in the site will also show in the list.&lt;br /&gt;
# Select the update (using the checkbox) and click on the Update icon in the toolbar. &lt;br /&gt;
# &#039;&#039;&#039;IMPORTANT:&#039;&#039;&#039; This process will take a few minutes. Wait until the process completes and the success message shows, similar to the screen shown below. [[Image:Update-screenshot-20120124-02.png|frame|center]]&lt;br /&gt;
# Congratulations! At this point, your site is updated.&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Clear your browser cache and check that your site is working correctly. See below Checking Your Site&lt;br /&gt;
&lt;br /&gt;
=Method B - Install Method=&lt;br /&gt;
In some cases it may not be possible to use the Extension Manager: Update method to update your site. One reason for this might be that you are using a non-standard distribution (for example, a distribution with a different default language installed). Another reason might be that your don&#039;t have a reliable enough internet connection to support automatic installation. &lt;br /&gt;
&lt;br /&gt;
In this case, you can still do an easy installation using the Extension Manager: Install screen. Like the Update screen, this method will do the database updates automatically and will completely update your system without any further steps.&lt;br /&gt;
&lt;br /&gt;
==Step 1: Make sure you have a current backup of your site==&lt;br /&gt;
In many cases, your host will make periodic site backups.&lt;br /&gt;
&lt;br /&gt;
==Step 2: Locate the update file==&lt;br /&gt;
Locate the required archive file (for example, .zip, .tag.gz, or tar.bz2 archive) for your version. If you are updating to an x.x.0 release (for example, from 1.7.3 to 2.5.0), this will normally be a file like Joomla_2.5.0-Stable-Update_Package.zip. If you are updating within the same release series (for example, 2.5.0 to 2.5.1), then the file will be named something like Joomla_2.5.0_to_2.5.1-Stable-Patch_Package.zip.&lt;br /&gt;
&lt;br /&gt;
At this point, you have three options:&lt;br /&gt;
# Install from URL&lt;br /&gt;
# Install from Directory&lt;br /&gt;
# Upload Package File&lt;br /&gt;
&lt;br /&gt;
Install from URL is the easiest to do. With this option, the upgrade archive is loaded directly by the server, so it works well even if your local computer has a slow or unreliable internet connection. &lt;br /&gt;
&lt;br /&gt;
Install from Directory is the safest method if the server itself has a slow internet connection. With this method, you use FTP to load the unpacked update files into a temporary folder on the server. Then you point to that directory on the server for the installation.&lt;br /&gt;
&lt;br /&gt;
Upload Package File is fairly simple, but it requires that you have a good connection between your local computer and the server. &lt;br /&gt;
&lt;br /&gt;
The screen below shows the Extension Manager: Install screen with the three options labeled. &lt;br /&gt;
[[Image:Update-screenshot-20120124-03.png|frame|center]]&lt;br /&gt;
&lt;br /&gt;
===Install from URL===&lt;br /&gt;
This option is the easiest, if the archive file is available on a website. &lt;br /&gt;
# In the Extension Manager: Install screen, enter the URL for the archive file in the Install URL field.&lt;br /&gt;
# Press the Install button. &lt;br /&gt;
The system will work for a period of time, up to two minutes or more for a full version update. Then a message indicating a successful installation will display.&lt;br /&gt;
&lt;br /&gt;
===Install from Directory===&lt;br /&gt;
This option requires that you unpack the archive file in a directory on your server. This is the best method if you have a slow internet connection or you are experiencing timeouts during the update process.&lt;br /&gt;
# Unpack the archive file in a temporary directory on your local machine.&lt;br /&gt;
# Upload all the files in this directory (for example, using FTP) to a temporary directory that is visible to the web server. For example, you can create a sub-directory under the tmp directory in your Joomla root. For this example, let&#039;s say the directory on the server is &amp;lt;code&amp;gt;/home/myuser/myjoomla/tmp/upgrade250&amp;lt;/code&amp;gt;).&lt;br /&gt;
# In the Extension Manager: Install screen, enter the full path of the temporary directory (on the server) from step 2 (for example, &amp;lt;code&amp;gt;/home/myuser/myjoomla/tmp/upgrade250&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Press the Install button. &lt;br /&gt;
The system will work for a short time (perhaps a minute or less, depending on your server). Then a message indicating a successful installation will display.&lt;br /&gt;
&lt;br /&gt;
===Upload Package File===&lt;br /&gt;
This option requires that you first download the archive file to your local machine. &lt;br /&gt;
# Download the file to your local computer.&lt;br /&gt;
# In the Extension Manager: Install screen, click the Browse button next to the Package File field and browse to the archive file.&lt;br /&gt;
# Press the Install button. &lt;br /&gt;
The system will work for a period of time, up to two minutes or more for a full version update. Then a message indicating a successful installation will display.&lt;br /&gt;
&lt;br /&gt;
# Congratulations! At this point, your site is updated.&lt;br /&gt;
&#039;&#039;&#039;Important:&#039;&#039;&#039; Clear your browser cache and check that your site is working correctly. See below Checking Your Site&lt;br /&gt;
&lt;br /&gt;
=Method C - Manual Upgrade=&lt;br /&gt;
This method is similar to the old method for updating Joomla versions. Here we want to replace the existing program files with the files from the update archive. The advantage of this method is that it will work on slower shared hosts. The disadvantage is that it requires more work by the system administrator.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Important: This method can also be used to repair a site where the automatic update failed due to a server timeout.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Copy the New Program Files to Your Site==&lt;br /&gt;
There are two ways you can do this.&lt;br /&gt;
# Copy the archive file to the root directory of your site and unpack the archive. The update archive will be named something like &amp;lt;code&amp;gt;Joomla_2.5.0-Stable-Update_Package.zip&amp;lt;/code&amp;gt;. Note that you need to tell the system to replace any existing files. For example, in GoDaddy.com, use the FTP File Manager to upload the update file and then use &amp;quot;Unarchive&amp;quot; to unpack it. Check the box &amp;quot;Overwrite existing files&amp;quot;.&lt;br /&gt;
# If you don&#039;t have the ability to unpack the archive on the server, create a temporary directory on your local machine and unpack the archive file there. Then FTP these files to the root directory of your site, overwriting the existing files.&lt;br /&gt;
&lt;br /&gt;
==Update the Database==&lt;br /&gt;
At this point, you should be able to log into the back end of your site with the new version installed. However, you are not done. Navigate to Extension Manager: Database. You will initially have Database problems when you check the Database, similar to the screen below. &lt;br /&gt;
[[Image:Update-screenshot-20120124-08.png|frame|center|Database Screen Before Fix]]&lt;br /&gt;
This is expected. Click on the Fix icon to correct the problems. Now the screen should show that the database is up to date.&lt;br /&gt;
&lt;br /&gt;
==Install New Extensions==&lt;br /&gt;
Navigate to Extension Manager: Discover and click on the Discover icon in the toolbar. If the updated version has new core extensions, new extensions will be listed, as shown below. &lt;br /&gt;
[[Image:Update-screenshot-20120124-09.png|frame|center|Discover Screen Before Install]]&lt;br /&gt;
Select all the extensions and click on the Install icon in the toolbar. The system should display a success message similar to the screen below.&lt;br /&gt;
[[Image:Update-screenshot-20120124-10.png|frame|center|Discover Screen After Install]]&lt;br /&gt;
&lt;br /&gt;
==Update the #__extensions Table==&lt;br /&gt;
At this point, your site is updated. However, there is one more thing to do. The site will think it needs to be updated because a value in the #__extensions table is wrong. To fix this:&lt;br /&gt;
* Using phpMyAdmin or a similar tool, edit the row of the #__extensions table where the id column is &#039;700&#039;. (Note that the table prefix will be different in your site. For example, if your table prefix is &amp;quot;jos_&amp;quot;, then the table will be called &amp;quot;jos_extensions&amp;quot;.&lt;br /&gt;
* In the manifest_cache column, you will see the old version in the text (for example, &amp;lt;code&amp;gt;&amp;quot;version&amp;quot;:&amp;quot;1.7.3&amp;quot;&amp;lt;/code&amp;gt;). Change this to the new version (for example, &amp;lt;code&amp;gt;&amp;quot;version&amp;quot;:&amp;quot;3.1.4&amp;quot;&amp;lt;/code&amp;gt;). Be careful to not change anything else in this column.&lt;br /&gt;
* To check that this was successful, navigate to Extension Manager: Update and click Check for Updates. You should &#039;&#039;&#039;not&#039;&#039;&#039; see the current Joomla version in the list.&lt;br /&gt;
&lt;br /&gt;
At this point, your site should be updated correctly.&lt;br /&gt;
&lt;br /&gt;
=Checking Site=&lt;br /&gt;
&#039;&#039;&#039;This is required for method A and B!&#039;&#039;&#039;&lt;br /&gt;
After an update, it is a good idea to clear your browser cache snd check your site to make sure the update was successful. There are two quick checks you can do from the Extension Manager.&lt;br /&gt;
==Extension Manager: Check Database==&lt;br /&gt;
{{JVer|2.5}} This feature was added in version 2.5.0. It checks that your database is up to date with your Joomla programs. &lt;br /&gt;
&lt;br /&gt;
Navigate to Extension Manager: Database. If your database is up to date, you should see a screen similar to the one below:&lt;br /&gt;
[[Image:Update-screenshot-20120124-04.png|frame|center|Database Screen With No Problems]]&lt;br /&gt;
&lt;br /&gt;
If your database is not up to date, you will see a screen listing the problems found, similar to the one below:&lt;br /&gt;
[[Image:Update-screenshot-20120124-05.png|frame|center|Database Screen With 3 Database Problems]]&lt;br /&gt;
In this case, press the Fix button in the upper right corner. Joomla will update your database to correct the issues listed and then it will re-display the screen. If the fix was successful, the display will indicate that the database is up to date.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;N.B.&#039;&#039;&#039; If any errors fail to fix then make sure all the database Tables are checked in.&lt;br /&gt;
&lt;br /&gt;
==Extension Manager: Discover==&lt;br /&gt;
In some cases, when you update to a new Joomla version, new core extensions are added. If there were problems with the database update, these extensions may not have been correctly installed. To check this, navigate to Extension Manager: Discover. Then click on the Discover icon in the toolbar. The screen should show as follows:&lt;br /&gt;
[[Image:Update-screenshot-20120124-06.png|frame|center|Discover Screen With No Extensions To Install]]&lt;br /&gt;
If so, you know that any new extensions added during the udpate were correctly installed in the database.&lt;br /&gt;
&lt;br /&gt;
If there are uninstalled extensions, they will show similar to the following screen:&lt;br /&gt;
[[Image:Update-screenshot-20120124-07.png|frame|center|Discover Screen With Two Extensions To Install]]&lt;br /&gt;
In this case, check the check boxes and click on the Install icon in the toolbar. Joomla will install the extension(s) and then display the screen showing no extensions discovered. At this point, the new extensions have been installed in the database.&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
If you have any questions before, during, or after the upgrade then please ask them on the &#039;&#039;&#039;[[jforum:710|Migrating and Upgrading to Joomla! 3.x Forum]]&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
If you have problems or errors during the update process, here are some tips.&lt;br /&gt;
* Check the following locations for more information:&lt;br /&gt;
:*&#039;&#039;&#039;[[J3.1:Known upgrading issues and solutions|Known upgrading issues and solutions]]&#039;&#039;&#039;&lt;br /&gt;
:*&#039;&#039;&#039;[[:Category:Upgrading Issues|Upgrading Issues]]&#039;&#039;&#039;&lt;br /&gt;
* Sometimes a simple clearing your browser cache as there may have been changes to the css or javascript that will need to be reloaded by your web browser after an upgrade.&lt;br /&gt;
* If any database error messages show after the update, be sure to check the Extension Manager: Database tab followed by the Extension Manager: Discover tab. In some cases, if a database error occurs it will prevent all the database updates from running. In this case, you can run them from the Database tab and then use the Discover&amp;amp;rarr;Install method to check and install any new extensions.&lt;br /&gt;
* If you encounter any errors or problems during or after the update, be sure to check the FAQ for the version you updated to. For example, for version 3.1.0, this will be an category entitled [[:Category:Version_3.1.0_FAQ|Category:Version 3.1.0 FAQ]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Upgrading]]&lt;br /&gt;
[[Category:Joomla! 3.0]][[Category:Joomla! 3.1]]&lt;/div&gt;</summary>
		<author><name>Pwiseman</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Git_for_Coders&amp;diff=80053</id>
		<title>Git for Coders</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Git_for_Coders&amp;diff=80053"/>
		<updated>2013-01-24T00:00:39Z</updated>

		<summary type="html">&lt;p&gt;Pwiseman: /* Create a Patch File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
This article shows you how to use Git and Github to code and submit changes to the Joomla CMS. If you are not familiar with Git, you may with to read the tutorial [[Git_for_Testers_and_Trackers | Git for Testers and Trackers]] first. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;IMPORTANT NOTE: Git is a very powerful system and there is usually more than one way to accomplish the same thing in Git. This tutorial does not try to cover all of the different ways you could do these tasks. Instead, it covers one (hopefully simple) way to do it. As you become more familiar with Git, you may find other ways that work better for you.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The fist step is to set up the remote and local Git repositories. You do this once. Once it is set up, the normal workflow is:&lt;br /&gt;
# Update your local and remote repositories with changes others have committed to the main Joomla CMS repository.&lt;br /&gt;
# Create a branch for each issue or feature you are working on and commit your changes to the branch in your local repository.&lt;br /&gt;
# Update your remote repository on Github with your branches.&lt;br /&gt;
# Create a pull request from your Github branch. Alternatively, you can create a patch or diff file from your local branch and post that to the tracker.&lt;br /&gt;
# Update the Joomla Issue tracker or Joomla Feature tracker so that others can test your code.&lt;br /&gt;
&lt;br /&gt;
Each of these steps is explained below. Note that you can use Git from the command line, from and IDE such as Eclipse (with the eGit plugin), or from a stand-alone tool, such as TortoiseGit. Here we will use the command line and, where applicable, show the equivalent command in Eclipse eGit.&lt;br /&gt;
&lt;br /&gt;
NOTE: If you want to propose a simple code change, you can do it directly from Github.com, without setting up anything on your local PC. See [[Using_the_Github_UI_to_Make_Pull_Requests|Using the Github UI to Make Pull Requests]].&lt;br /&gt;
&lt;br /&gt;
=Setup=&lt;br /&gt;
== Create Your Forked Repository on Github==&lt;br /&gt;
Github allows you to create your own copy of any public repository, including the Joomla CMS. This is your personal copy of the repository and is called a &amp;quot;fork&amp;quot;. To create a fork of the Joomla CMS:&lt;br /&gt;
# If you haven&#039;t already, register on Github.com and log in.&lt;br /&gt;
# Navigate to [https://github.com/joomla/joomla-cms https://github.com/joomla/joomla-cms]&lt;br /&gt;
# Click on the Fork button in the upper right part of the screen.&lt;br /&gt;
&lt;br /&gt;
Note that you can only create one fork of any given repository. However, as we will see, you can create as many branches (versions) of your repository as you like.&lt;br /&gt;
&lt;br /&gt;
== Clone Your Github Repository To Your PC ==&lt;br /&gt;
At this point, you have your own repository on Github.com. Now you need to create a local repository that is a copy (called a &amp;quot;clone&amp;quot;) of the Github repository. To do this:&lt;br /&gt;
===CLI (command line) Commands===&lt;br /&gt;
# Change directory to the directory where you want the Joomla files to be stored (for example, &amp;lt;code&amp;gt;C:\xampp\htdocs\joomla\my-project&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/opt/lampp/htdocs/joomla/my-project&amp;lt;/code&amp;gt;).&lt;br /&gt;
# Enter the command: &amp;lt;code&amp;gt;git clone &amp;lt;nowiki&amp;gt;https://github.com/&amp;lt;your Github user name&amp;gt;/joomla-cms.git&amp;lt;/nowiki&amp;gt; .&amp;lt;/code&amp;gt; For example, if your Github user name is &amp;quot;joomla-coder&amp;quot;, the command would be: &amp;lt;code&amp;gt;git clone &amp;lt;nowiki&amp;gt;https://github.com/joomla-coder/joomla-cms.git&amp;lt;/nowiki&amp;gt;  .&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
You can get the URL for the command above from your repository at Github.com as shown below. [[File:git-coders-tutorial-20121009-03.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
Note that the &amp;quot;.&amp;quot; dot just tells Git to put the new repository in the current directory. The system will work for a few minutes while it downloads all of the files. When it is finished, you will have a complete set of Joomla files under version control in the current directory.&lt;br /&gt;
&lt;br /&gt;
=== Eclipse Commands ===&lt;br /&gt;
# If you like, you can get the URL from Github as shown below. [[File:git-coders-tutorial-20121009-03.png|frame|none]] You will use this later on.&lt;br /&gt;
# In Eclipse, open the Git Repositories view and click the button called &amp;quot;Clone a Git Repository and add the clone to this view&amp;quot; as shown below. [[File:git-coders-tutorial-20121009-01.png|frame|none]]. &lt;br /&gt;
# The window below will show. [[File:git-coders-tutorial-20121009-02.png|frame|none]] Select URI and click Next.&lt;br /&gt;
# The window below will show. [[File:git-coders-tutorial-20121009-04.png|frame|none]] Enter the Github URL for your repository (from step (1) above). Enter your Github user name and password and check the box called &amp;quot;Store in Secure Store&amp;quot;. &lt;br /&gt;
# Click Next and the window below will show. [[File:git-coders-tutorial-20121009-05.png|frame|none]]&lt;br /&gt;
# Click Next to select all branches. The window below will show. [[File:git-coders-tutorial-20121009-06.png|frame|none]]&lt;br /&gt;
# In Directory, enter the folder where you want the Joomla files to be copied. Keep the default values for Initial branch (&amp;quot;master&amp;quot;) and Remote name (&amp;quot;origin&amp;quot;) as shown.&lt;br /&gt;
# Click Finish. The system will work for a few minutes. When it finishes you will have a clone of the remote repository.&lt;br /&gt;
&lt;br /&gt;
== Create an Upstream Remote==&lt;br /&gt;
Now we have our local repository. This has a remote called &amp;quot;origin&amp;quot; that points to our personal fork of Joomla on Github. &lt;br /&gt;
&lt;br /&gt;
In a project like Joomla, many users are submitting bug fixes and features. These changes are committed to the main Joomla CMS repository frequently. It is up to each coder to keep their personal repositories up to date with these changes. Fortunately, as we will see, this is easy to do.&lt;br /&gt;
&lt;br /&gt;
The last step in the setup is to create a second remote called &amp;quot;upstream&amp;quot; that points to the main Joomla CMS repository. We will use this remote to pull changes that others make to the main Joomla repository so we can keep our personal repositories up to date.&lt;br /&gt;
&lt;br /&gt;
===CLI Command ===&lt;br /&gt;
To create a remote called &amp;quot;upstream&amp;quot; that points to the main CMS repository, enter this command: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git remote add upstream &amp;lt;nowiki&amp;gt;https://github.com/joomla/joomla-cms.git&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Eclipse Command===&lt;br /&gt;
&#039;&#039;Unknown at this time.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At this point, you have your personal remote repository (created by &amp;quot;forking&amp;quot; the Joomla CMS project) and your personal local repository (created with CLI or Eclipse). Now you are ready to code patches and features.&lt;br /&gt;
&lt;br /&gt;
=Normal Workflow=&lt;br /&gt;
Now that we have done our one-time setup, we are ready to start our normal workflow. This is outlined below.&lt;br /&gt;
&lt;br /&gt;
== Create a New Feature or Bug Fix Change==&lt;br /&gt;
Let&#039;s say you are ready to start working on a new bug fix or a new feature. Here are the steps you would normally follow.&lt;br /&gt;
# Update your master branches. Update the master branch of your local and Github repositories with the latest CMS changes.&lt;br /&gt;
# Create a branch for writing the new code&lt;br /&gt;
# In the new branch, code the changes and commit them. Depending on the length of time, you can make multiple commits to the branch.&lt;br /&gt;
# When you are ready to propose your code for testing (or when you want others to be able to see it), push the branch to your Github repository.&lt;br /&gt;
# When you are ready to submit the code, either:&lt;br /&gt;
## Create a pull request on Github, or&lt;br /&gt;
## Create a patch or diff file and post to the Joomlacode tracker.&lt;br /&gt;
&lt;br /&gt;
Each of these steps is explained in more detail below.&lt;br /&gt;
&lt;br /&gt;
=== Update Your Master Branches ===&lt;br /&gt;
You need to keep your repositories up to date with changes made by others in the main CMS repository. It&#039;s easy to do, and here are the steps. These are done more easily with the CLI than with Eclipse.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT NOTE: Make sure you never commit your own code changes to the master branch. If you do, you won&#039;t be able to keep it synchronized with the master branch on the main CMS repository.&lt;br /&gt;
&lt;br /&gt;
====CLI Commands====&lt;br /&gt;
* Make sure you are in your master branch of your local repository (&amp;lt;code&amp;gt;git checkout master&amp;lt;/code&amp;gt;). If you aren&#039;t sure, you can use the command &amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt; to see what branch you are on.&lt;br /&gt;
* Enter the command: &amp;lt;code&amp;gt;git pull upstream master&amp;lt;/code&amp;gt;. You should get a message showing the changes, similar to this:&lt;br /&gt;
 $ git pull upstream master&lt;br /&gt;
 From &amp;lt;nowiki&amp;gt;https://github.com/joomla/joomla-cms&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  * branch            master     -&amp;gt; FETCH_HEAD&lt;br /&gt;
 Updating 76feee8..294c62c&lt;br /&gt;
 Fast-forward&lt;br /&gt;
  installation/CHANGELOG                |    3 +++&lt;br /&gt;
  installation/language/fr-FR/fr-FR.ini |    2 +-&lt;br /&gt;
  2 files changed, 4 insertions(+), 1 deletion(-)&lt;br /&gt;
 Mark@MARK2009 /c/xampp/htdocs/joomla-coder/joomla-cms (master)&lt;br /&gt;
:If your local repository was already up to date, you will get a message like this:&lt;br /&gt;
 $ git pull upstream master&lt;br /&gt;
 From &amp;lt;nowiki&amp;gt;https://github.com/joomla/joomla-cms&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
  * branch            master     -&amp;gt; FETCH_HEAD&lt;br /&gt;
 Already up-to-date.&lt;br /&gt;
&lt;br /&gt;
* At this point, your local master branch is up to date with the main CMS repository. Now you need to update the master branch of your Github repository. Enter the command: &amp;lt;code&amp;gt;git push origin master&amp;lt;/code&amp;gt;. You should see a message like this:&lt;br /&gt;
 $ git push origin master&lt;br /&gt;
 To &amp;lt;nowiki&amp;gt;https://github.com/joomla-coder/joomla-cms.git&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
    76feee8..294c62c  master -&amp;gt; master&lt;br /&gt;
&lt;br /&gt;
NOTE: If you haven&#039;t stored your user name and password, you will be prompted for them after you enter the push command. See below for how to store your credentials so you don&#039;t have to type them each time.&lt;br /&gt;
&lt;br /&gt;
At this point, your master branches on your local and Github repositories are up to date with the main CMS repository. Now, when you create a new branch, it will start at this point and be based on the latest code.&lt;br /&gt;
&lt;br /&gt;
===Create a Branch for the Code===&lt;br /&gt;
In Git, the best practice is to use a branch for each bug fix or feature. (In fact, experienced Git users will often create more than one branch for an individual project, perhaps trying different approaches to the problem.) It is super easy to create, delete, and even combine branches. Use a naming convention that allows you to keep track. For example, you could incorporate the tracker issue number into the branch name (for example, &amp;quot;php-notice-12345&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
When you create a new branch, it starts from the branch you are currently on. For this reason, you will normally want to make sure you are in your master branch when creating a new one.&lt;br /&gt;
&lt;br /&gt;
====CLI Commands====&lt;br /&gt;
&amp;lt;code&amp;gt;git create xxx&amp;lt;/code&amp;gt; where &amp;quot;xxx&amp;quot; is the new branch name. Note: If you already have a branch you are working on, use the command: &amp;lt;code&amp;gt;git checkout xxx&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
====Eclipse Commands====&lt;br /&gt;
#Left-click on the PHP project and select Team&amp;amp;rarr;Switch To&amp;amp;rarr;New Branch as shown below. [[File:Git-coders-tutorial-20121009-07.png|frame|none]]. The screen below will show. [[File:Git-coders-tutorial-20121009-08.png|frame|none]]&lt;br /&gt;
#Fill in the name of the new branch and click finish. &lt;br /&gt;
&lt;br /&gt;
===Code and Commit to the Branch===&lt;br /&gt;
Finally, we are to the fun part! Here we are actually coding and testing our feature or bug fix. The normal workflow is as follows:&lt;br /&gt;
# Do some coding.&lt;br /&gt;
# Commit your work to your branch.&lt;br /&gt;
# Repeat until you are done.&lt;br /&gt;
&lt;br /&gt;
Here are the commands to commit your work to your branch. Make sure you are in the right branch before committing! (Use &amp;lt;code&amp;gt;git status&amp;lt;/code&amp;gt; to check.)&lt;br /&gt;
&lt;br /&gt;
====CLI Commands====&lt;br /&gt;
* To commit all of the changes since the last commit: &amp;lt;code&amp;gt;git commit -m &amp;quot;My commit message&amp;quot; -a&amp;lt;/code&amp;gt;&lt;br /&gt;
* To undo any file changes since the last commit: &amp;lt;code&amp;gt;git reset --hard&amp;lt;/code&amp;gt;&lt;br /&gt;
* To remove any added files and folder since the last commit: &amp;lt;code&amp;gt;git clean -d -f&amp;lt;/code&amp;gt;&lt;br /&gt;
* To change the last commit: &amp;lt;code&amp;gt;git commit --amend&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Eclipse Commands====&lt;br /&gt;
* To commit all changes, right-click on project, select Team&amp;amp;rarr;Commit to show this window. [[File:Git-coders-tutorial-20121009-09.png|frame|none]]&lt;br /&gt;
* To undo any file changes since the last commit, select Team&amp;amp;rarr;Reset and check the Hard Reset Type as shown below. [[File:Git-coders-tutorial-20121009-10.png|frame|none]]&lt;br /&gt;
* To change the last commit, select Team&amp;amp;rarr;Commit and check the Amend Previous Commit button (as shown in the Commit Changes screenshot above).&lt;br /&gt;
&lt;br /&gt;
===Push Branch to Github===&lt;br /&gt;
In the previous workflow, we created the branch and committed changes to our local repository. If we want others to be able to see the branch or to create a pull request, we need to push the branch to our personal repository on Github.&lt;br /&gt;
&lt;br /&gt;
====CLI Command====&lt;br /&gt;
To push a branch to your personal Github repository: &amp;lt;code&amp;gt;git push origin xxx&amp;lt;/code&amp;gt; (where &amp;quot;xxx&amp;quot; is the name of your branch).&lt;br /&gt;
&lt;br /&gt;
===Submit Pull Request or Patch File===&lt;br /&gt;
There are two ways you can submit a proposed code change to the Joomla CMS project. One is to submit a pull request via Github, the other is to create a patch or diff file. In general, pull requests are preferred for very large changes, whereas both work fine for smaller changes.&lt;br /&gt;
&lt;br /&gt;
====Create a Pull Request====&lt;br /&gt;
# Navigate to your personal Github repository.&lt;br /&gt;
# Select the branch that has the changes for the pull request as shown below. [[File:Git-coders-tutorial-20121009-11.png|frame|none]]&lt;br /&gt;
# Click the Pull Request button on the top of the screen. The screen will show as below. [[File:Git-coders-tutorial-20121009-12.png|frame|none]]&lt;br /&gt;
# The left side shows the base repository and base branch. This will normally be the master branch of the &amp;quot;joomla/joomla-cms&amp;quot; repository. The right side shows the head repository and branch. This will normally be your repository and the branch that has the desired code changes. If you like you can change the commit message and enter in a comment describing this pull request.&lt;br /&gt;
# You can review the pull request using the tabs across the top. Clicking the Commits tab shows the commit history for the branch, as shown below.[[File:Git-coders-tutorial-20121009-13.png|frame|none]]&lt;br /&gt;
# Clicking the Files Changed tab shows all of the changes made in this branch, as shown here. [[File:Git-coders-tutorial-20121009-14.png|frame|none]]&lt;br /&gt;
# When you are ready to submit the pull request, click the Send Pull Request button at the bottom right of the screen. Github will process the request and then display it as shown below. [[File:Git-coders-tutorial-20121009-15.png|frame|none]]&lt;br /&gt;
# At this point, you should update the Joomlacode tracker. For example, if this code is a fix for a Confirmed issue, you should change the issue status to Pending and add a comment with a link to the pull request (for example, &amp;lt;nowiki&amp;gt;https://github.com/joomla/joomla-cms/pull/494&amp;lt;/nowiki&amp;gt;). Also, make sure there are good test instructions so people can test the proposed code.&lt;br /&gt;
&lt;br /&gt;
====Create a Patch File====&lt;br /&gt;
It is not necessary to create a pull request to submit code changes to Joomla. Another alternative is to create a patch file. This can be done on your local system from the command line as follows:&lt;br /&gt;
# In your local system, change to the desired branch.&lt;br /&gt;
# Enter the command: &amp;lt;code&amp;gt;git diff master &amp;gt; my-new-patch.patch&amp;lt;/code&amp;gt;&lt;br /&gt;
This will create a patch file in that same folder. (Note that you may want to have Git automatically ignore all patch files. See the section called Git Tips below.) Upload that file to the Joomlacode tracker and add a comment and change the issue status as needed. &lt;br /&gt;
To include changes to binary files in the diff add the &amp;lt;code&amp;gt;--binary&amp;lt;/code&amp;gt; option to the command line as follows:&lt;br /&gt;
# Enter the command: &amp;lt;code&amp;gt;git diff --binary master &amp;gt; my-new-patch.patch&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that this method does not require you to push your local branches to Github.&lt;br /&gt;
&lt;br /&gt;
== Keep Your Repositories Up to Date==&lt;br /&gt;
As discussed earlier, the main CMS repository on Github is being changed frequently. It is possible that one or more of these changes could conflict with (or otherwise affect) our work. For this reason, it is very important that we keep our repositories up to date. Otherwise, our patch files and pull requests may not work. As discussed earlier, the way we will do this is by keeping our master branch synchronized with the main CMS repository and then using that to update our working branches.&lt;br /&gt;
&lt;br /&gt;
In this tutorial we are using the git merge command. The merge command merges the changes from a different branch into the current branch. Here we use the merge to merge changes from the master branch into our working branch. For example, say we created a branch (my-branch) on day 1. On day 2, someone does 5 commits to the master branch in the main CMS repository. Now, on day 3 we want to update our branch to be current with these 5 commits. The merge command tries to do this automatically. It looks to see what was changed in the master branch since our last merge and applies those same changes to our current branch (&amp;quot;my-branch&amp;quot;). This will work automatically unless we have made changes that conflict with changes made in the same files in the main repository. In that case, we need to resolve these conflicts before we can finish updating our branch.&lt;br /&gt;
&lt;br /&gt;
To update a working branch with changes to the main CMS repository, follow these steps.&lt;br /&gt;
# Update your local master branch.&lt;br /&gt;
#* Make sure you are on the master branch in your local repository: &amp;lt;code&amp;gt;git checkout master&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Pull changes from the main CMS repository: &amp;lt;code&amp;gt;git pull upstream master&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Push those changes to your Github repository: &amp;lt;code&amp;gt;git push origin master&amp;lt;/code&amp;gt;&lt;br /&gt;
# Now your local master branch is up to date. Next, change to your working branch: &amp;lt;code&amp;gt;git checkout my-branch&amp;lt;/code&amp;gt;&lt;br /&gt;
# Make sure your remote repository &amp;quot;my-branch&amp;quot; is up to date with your local repository. Use the command: &amp;lt;code&amp;gt;git push origin my-branch&amp;lt;/code&amp;gt;. If the remote repository was already up to date, no harm is done. You will just get a message saying it was already up to date.&lt;br /&gt;
# Finally, merge the new changes to the master branch with your working branch. The command is as follows: &amp;lt;code&amp;gt;git merge master&amp;lt;/code&amp;gt;&lt;br /&gt;
# The system will work for a short time and then indicate whether or not the merge was successful. If you don&#039;t have any changes that conflict with changes from the main CMS repository, the merge will be successful. If one or more of your changes conflicts with the changes that were made in the main repository, any affected files will be flagged as being in conflict. See the Fixing Conflicts section below for more information about this.&lt;br /&gt;
&lt;br /&gt;
You can also use Eclipse for the merge by changing to the working branch and selecting Team&amp;amp;rarr;Merge&amp;amp;rarr;. This will show the following screen. [[File:Git-coders-tutorial-20121027-01.png|frame|none]] Select Local-&amp;gt;master as shown above and click Merge.&lt;br /&gt;
&lt;br /&gt;
== Fixing Conflicts ==&lt;br /&gt;
A conflict occurs during a merge (or rebase) if the same file has been changed in the local branch and in the master branch in a way that conflicts. If this happens, the file is flagged as being in conflict and the merge process is suspended. To complete the process, you need to:&lt;br /&gt;
# Manually edit each of the flagged. You will see the changes from your branch and the changes from the main repository highlighted in the file. You need to figure out what should be in the file.&lt;br /&gt;
# Once you have edited each flagged file, enter the command &amp;lt;code&amp;gt;git add xxx&amp;lt;/code&amp;gt; where &amp;quot;xxx&amp;quot; is the name of the flagged file.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s look at a simple example. Here we have added a line of code to a file in our branch and someone has added a different line to the same file in the master branch. When we do the merge command, we get the following message.&lt;br /&gt;
&lt;br /&gt;
 $ git merge master&lt;br /&gt;
 Removing administrator/templates/hathor/html/mod_submenu/default.php&lt;br /&gt;
 Auto-merging administrator/components/com_admin/script.php&lt;br /&gt;
 CONFLICT (content): Merge conflict in administrator/components/com_admin/script&lt;br /&gt;
 php&lt;br /&gt;
 Automatic merge failed; fix conflicts and then commit the result.&lt;br /&gt;
&lt;br /&gt;
So this tells us we have a conflict in the file &amp;lt;code&amp;gt;administrator/components/com_admin/script.php&amp;lt;/code&amp;gt;. If we look at this file in our text editor, we see the following: [[File:Git-coders-tutorial-20121009-17.png|frame|none]] The line under &amp;quot;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; HEAD&amp;quot; is from the master branch of the main repository. The line after the &amp;quot;=======&amp;quot; is from our working branch.&lt;br /&gt;
&lt;br /&gt;
At this point, we need to correct the file and remove the &amp;quot;marker&amp;quot; lines. Then we do the command &amp;lt;code&amp;gt;git add administrator/components/com_admin/script.php&amp;lt;/code&amp;gt; to tell Git that the conflict is resolved.&lt;br /&gt;
&lt;br /&gt;
Finally, we do the command &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git commit -a&amp;lt;/code&amp;gt; &lt;br /&gt;
&lt;br /&gt;
to finish the merge. This commits all of the changes that were applied automatically by the merge as well as the changes we have done manually in fixing the conflicts.&lt;br /&gt;
&lt;br /&gt;
If we want to abandon the merge instead of fixing the conflicts, we can use the following commands to reset our branch back to its state before the merge:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git reset --hard&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;git clean -f -d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Using Eclipse For Conflicts===&lt;br /&gt;
Eclipse is very handy for resolving commits. When you do the command Team&amp;amp;rarr;Merge and there is a conflict, you get the following window. [[File:Git-coders-tutorial-20121027-02.png|frame|none]] You will also see a red square annotation in the PHP Explorer window next to each file with a conflict.&lt;br /&gt;
&lt;br /&gt;
To see all of the files in conflict you can use the Merge Tool. Right click on the PHP project and select Team&amp;amp;rarr;Merge Tool. You will see the following option. [[File:Git-coders-tutorial-20121009-20.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
This gives you the option of having Git put in the changes from both sources in the file or letting you compare the changes side by side. If you select Use HEAD version you get a file compare similar to the following. [[File:Git-coders-tutorial-20121009-21.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
The left shows the change from the master branch, and the right shows the change from your working branch. At this point, you can either edit the file in the left side (for example, by pulling in the change from the right side) or you can just manually edit the file in conflict. &lt;br /&gt;
&lt;br /&gt;
Once the file has been fixed, select the file (either by right-clicking in the PHP Explorer view or in the editor) and select Team&amp;amp;rarr;Add to Index as shown below. [[File:Git-coders-tutorial-20121009-22.png|frame|none]]When you do this, the red square annotation will disappear. &lt;br /&gt;
&lt;br /&gt;
Once all the conflicts are resolved, you can finish the merge by right-clicking on the project and selecting Team&amp;amp;rarr;Commit. The normal commit screen will show as follows. [[File:Git-coders-tutorial-20121027-03.png|frame|none]] Notice that the files that were in conflict are automatically added to the commit message. Edit the commit message as desired and click the Commit button. At this point, the merge is complete.&lt;br /&gt;
&lt;br /&gt;
== Saving Your User Name and Password ==&lt;br /&gt;
When you push changes to Github, it must authenticate you based on your Github user name and password. Normally, the system will simply prompt you for your user name and password each time you do a push. &lt;br /&gt;
&lt;br /&gt;
There are a number of ways you can save your credentials so you don&#039;t have to enter them each time. One very simple method is to use the git &amp;quot;store&amp;quot; feature. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;IMPORTANT NOTE: This feature stores your password in plain text on your local computer. If this is not acceptable, do not use this method.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If it is OK to store your credentials on your PC, at the command line enter the command: &amp;lt;code&amp;gt;git config --global credential.helper store&amp;lt;/code&amp;gt; This tells Git to store your credentials in a file called .git-credentials in your home folder (&amp;quot;for example, C:\users\user-name&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
The next time you do a push and enter your credentials, they will be stored in that file. After that, you will not need to enter them. Git will use them automatically.&lt;br /&gt;
&lt;br /&gt;
If you want to change your password, simple delete the file and then change your password on Github. The next time you enter your credentials, the new password will be saved.&lt;br /&gt;
&lt;br /&gt;
== Git Tips ==&lt;br /&gt;
&lt;br /&gt;
=== Ignoring Files ===&lt;br /&gt;
Some files we don&#039;t want Git to track. One way to have Git ignore files is to use the &amp;quot;exclude&amp;quot; file. An advantage of this approach is that this file sits outside of your Git project and doesn&#039;t get committed to the repository. This is handy when you want your master branch to be identical to the CMS master branch, even if you want to add some file types to ignore.&lt;br /&gt;
&lt;br /&gt;
To use this feature, follow these steps:&lt;br /&gt;
# Create a folder called &amp;lt;code&amp;gt;info&amp;lt;/code&amp;gt; under your &amp;lt;code&amp;gt;.git&amp;lt;/code&amp;gt; folder. (The .git folder will be at the root of your Joomla project.)&lt;br /&gt;
# Create a text file in this folder called &amp;lt;code&amp;gt;exclude&amp;lt;/code&amp;gt; and enter in the desired file types to exclude.&lt;br /&gt;
&lt;br /&gt;
Here is an example of a file.&lt;br /&gt;
 *~&lt;br /&gt;
 .buildpath&lt;br /&gt;
 .project&lt;br /&gt;
 .settings/&lt;br /&gt;
 tests/system/servers/configdef.php&lt;br /&gt;
 tests/system/screenshots&lt;br /&gt;
 configuration.php&lt;br /&gt;
 logs/error.php&lt;br /&gt;
 cache/*&lt;br /&gt;
 administrator/cache/*&lt;br /&gt;
 *.patch&lt;br /&gt;
 *.diff&lt;br /&gt;
As you can see from the example, we can exclude specific file names or use wild cards.&lt;br /&gt;
&lt;br /&gt;
Once you have this file created, Git will ignore any of these files.&lt;br /&gt;
[[Category:Bug Squad]]&lt;br /&gt;
[[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Pwiseman</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Joomla_LESS&amp;diff=79197</id>
		<title>Joomla LESS</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Joomla_LESS&amp;diff=79197"/>
		<updated>2012-12-20T00:16:55Z</updated>

		<summary type="html">&lt;p&gt;Pwiseman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most of the Joomla 3.0 default template stylesheets are written using [[wikipedia:LESS_(stylesheet_language)|LESS]] and then compiled to generate the [[wikipedia:CSS|CSS]] files.&lt;br /&gt;
&lt;br /&gt;
== Where can you find the .less stylesheets and compiler? ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;.less&amp;lt;/code&amp;gt; building blocks are located in &amp;lt;code&amp;gt;media/jui/less/&amp;lt;/code&amp;gt;. The template specific &amp;lt;code&amp;gt;.less&amp;lt;/code&amp;gt;files are located in &amp;lt;code&amp;gt;templates/&amp;amp;lt;templates&amp;amp;gt;/less/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The CSS generation wrapper script, LESS compiler, and other similar build tools are located in the &amp;lt;code&amp;gt;build/&amp;lt;/code&amp;gt; directory of the Joomla source located on GitHub.  Refer to [[Git_for_Coders]] for more information on using GitHub.  The build directory is only available from the Joomla source, it is not included in an official Joomla release. &lt;br /&gt;
&lt;br /&gt;
== How to re-generate the CSS stylesheets ==&lt;br /&gt;
&lt;br /&gt;
To re-generate all the CSS files from a Joomla core distribution, you will need to execute the generation scripts as a [[wikipedia:Command-line_interface|CLI application]].&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd joomla-cms/build&lt;br /&gt;
c:\xampp\php\php.exe generatecss.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling your own LESS files for your template ==&lt;br /&gt;
&lt;br /&gt;
To compile less files for your own template, you will need to take a copy of the &amp;lt;code&amp;gt;generatecss.php&amp;lt;/code&amp;gt; script and adjust it to suite your template.&lt;br /&gt;
&lt;br /&gt;
== Not all LESS compilers are equal ==&lt;br /&gt;
The LESS compiler used for the Joomla core for code style consistency is obtained from [http://leafo.net/lessphp leafo.net/lessphp].  &lt;br /&gt;
&lt;br /&gt;
If you&#039;re working on your own template you can use any compiler you like.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&lt;br /&gt;
* [http://kyleledbetter.com/jui/less kyleledbetter.com/jui/less] - Example of building your own template.less&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:New in Joomla! 3.0]][[Category:Bug Squad]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwiseman</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Joomla_LESS&amp;diff=79195</id>
		<title>Joomla LESS</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Joomla_LESS&amp;diff=79195"/>
		<updated>2012-12-19T23:57:47Z</updated>

		<summary type="html">&lt;p&gt;Pwiseman: /* Not all LESS compilers are equal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most of the Joomla 3.0 default template stylesheets are written using [[wikipedia:LESS_(stylesheet_language)|LESS]] and then compiled to generate the [[wikipedia:CSS|CSS]] files.&lt;br /&gt;
&lt;br /&gt;
== Where can you find the .less stylesheets and compiler? ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;.less&amp;lt;/code&amp;gt; building blocks are located in &amp;lt;code&amp;gt;media/jui/less/&amp;lt;/code&amp;gt;. The template specific &amp;lt;code&amp;gt;.less&amp;lt;/code&amp;gt;files are located in &amp;lt;code&amp;gt;templates/&amp;amp;lt;templates&amp;amp;gt;/less/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The CSS generation wrapper script, LESS compiler, and other similar build tools are located in the &amp;lt;code&amp;gt;build/&amp;lt;/code&amp;gt; directory of the Joomla source located on GitHub.  Refer to [[Git_for_Coders]] for more information on using GitHub.  The build directory is only available from the Joomla source, it is not included in an official Joomla release. &lt;br /&gt;
&lt;br /&gt;
== How to re-generate the CSS stylesheets ==&lt;br /&gt;
&lt;br /&gt;
To re-generate all the CSS files from a Joomla core distribution, you will need to execute the generation scripts as a [[wikipedia:Command-line_interface|CLI application]].&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd joomla-cms/build&lt;br /&gt;
c:\xampp\php\php.exe generatecss.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling your own LESS files for your template ==&lt;br /&gt;
&lt;br /&gt;
To compile less files for your own template, you will need to take a copy of the &amp;lt;code&amp;gt;generatecss.php&amp;lt;/code&amp;gt; script and adjust it to suite your template.&lt;br /&gt;
&lt;br /&gt;
== Not all LESS compilers are equal ==&lt;br /&gt;
The LESS compiler used for the Joomla core is obtained from [http://leafo.net/lessphp leafo.net/lessphp].  &lt;br /&gt;
&lt;br /&gt;
If you&#039;re working on your own template you can use any compiler you like.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:New in Joomla! 3.0]][[Category:Bug Squad]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwiseman</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Joomla_LESS&amp;diff=79194</id>
		<title>Joomla LESS</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Joomla_LESS&amp;diff=79194"/>
		<updated>2012-12-19T23:41:56Z</updated>

		<summary type="html">&lt;p&gt;Pwiseman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most of the Joomla 3.0 default template stylesheets are written using [[wikipedia:LESS_(stylesheet_language)|LESS]] and then compiled to generate the [[wikipedia:CSS|CSS]] files.&lt;br /&gt;
&lt;br /&gt;
== Where can you find the .less stylesheets and compiler? ==&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;.less&amp;lt;/code&amp;gt; building blocks are located in &amp;lt;code&amp;gt;media/jui/less/&amp;lt;/code&amp;gt;. The template specific &amp;lt;code&amp;gt;.less&amp;lt;/code&amp;gt;files are located in &amp;lt;code&amp;gt;templates/&amp;amp;lt;templates&amp;amp;gt;/less/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The CSS generation wrapper script, LESS compiler, and other similar build tools are located in the &amp;lt;code&amp;gt;build/&amp;lt;/code&amp;gt; directory of the Joomla source located on GitHub.  Refer to [[Git_for_Coders]] for more information on using GitHub.  The build directory is only available from the Joomla source, it is not included in an official Joomla release. &lt;br /&gt;
&lt;br /&gt;
== How to re-generate the CSS stylesheets ==&lt;br /&gt;
&lt;br /&gt;
To re-generate all the CSS files from a Joomla core distribution, you will need to execute the generation scripts as a [[wikipedia:Command-line_interface|CLI application]].&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd joomla-cms/build&lt;br /&gt;
c:\xampp\php\php.exe generatecss.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compiling your own LESS files for your template ==&lt;br /&gt;
&lt;br /&gt;
To compile less files for your own template, you will need to take a copy of the &amp;lt;code&amp;gt;generatecss.php&amp;lt;/code&amp;gt; script and adjust it to suite your template.&lt;br /&gt;
&lt;br /&gt;
== Not all LESS compilers are equal ==&lt;br /&gt;
The LESS compiler used for the Joomla core is obtained from [http://leafo.net/lessphp leafo.net/lessphp].  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:New in Joomla! 3.0]][[Category:Bug Squad]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwiseman</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Joomla_LESS&amp;diff=79193</id>
		<title>Joomla LESS</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Joomla_LESS&amp;diff=79193"/>
		<updated>2012-12-19T23:35:29Z</updated>

		<summary type="html">&lt;p&gt;Pwiseman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most of the Joomla 3.0 default template stylesheets are written using [[wikipedia:LESS_(stylesheet_language)|LESS]] and then compiled to generate the [[wikipedia:CSS|CSS]] files.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;.less&amp;lt;/code&amp;gt; building blocks are located in &amp;lt;code&amp;gt;media/jui/less/&amp;lt;/code&amp;gt;. The template specific &amp;lt;code&amp;gt;.less&amp;lt;/code&amp;gt;files are located in &amp;lt;code&amp;gt;templates/&amp;amp;lt;templates&amp;amp;gt;/less/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The CSS generation wrapper script, LESS compiler, and other similar build tools are located in the &amp;lt;code&amp;gt;build/&amp;lt;/code&amp;gt; directory of the Joomla source located on GitHub.  Refer to [[Git_for_Coders]] for more information on using GitHub.  The build directory is only available from the Joomla source, it is not included in an official Joomla release. &lt;br /&gt;
&lt;br /&gt;
To re-generate all the CSS files from a Joomla core distribution, you will need to execute the generation scripts as a [[wikipedia:Command-line_interface|CLI application]].&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd joomla-cms/build&lt;br /&gt;
c:\xampp\php\php.exe generatecss.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To generate your own less files in your own template, you will need to take a copy of the &amp;lt;code&amp;gt;generatecss.php&amp;lt;/code&amp;gt; script and adjust it to suite your template.&lt;br /&gt;
&lt;br /&gt;
== Not all LESS compilers are equal ==&lt;br /&gt;
The LESS compiler used for the Joomla core is obtained from [http://leafo.net/lessphp leafo.net/lessphp].  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:New in Joomla! 3.0]][[Category:Bug Squad]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwiseman</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Joomla_LESS&amp;diff=79192</id>
		<title>Joomla LESS</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Joomla_LESS&amp;diff=79192"/>
		<updated>2012-12-19T23:32:07Z</updated>

		<summary type="html">&lt;p&gt;Pwiseman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most of the Joomla 3.0 default template stylesheets are written using [[http://en.wikipedia.org/wiki/LESS_(stylesheet_language)|LESS]] and then compiled to generate the [[http://en.wikipedia.org/wiki/CSS|CSS]] files.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;.less&amp;lt;/code&amp;gt; building blocks are located in &amp;lt;code&amp;gt;media/jui/less/&amp;lt;/code&amp;gt;. The template specific &amp;lt;code&amp;gt;.less&amp;lt;/code&amp;gt;files are located in &amp;lt;code&amp;gt;templates/&amp;amp;lt;templates&amp;amp;gt;/less/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The CSS generation wrapper script, LESS compiler, and other similar build tools are located in the &amp;lt;code&amp;gt;build/&amp;lt;/code&amp;gt; directory of the Joomla source located on GitHub.  Refer to [[Git_for_Coders]] for more information on using GitHub.  The build directory is only available from the Joomla source, it is not included in an official Joomla release. &lt;br /&gt;
&lt;br /&gt;
To re-generate all the CSS files from a Joomla core distribution, you will need to execute the generation scripts as a [[wikipedia:Command-line_interface|CLI application]].&lt;br /&gt;
&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;cd joomla-cms/build&lt;br /&gt;
c:\xampp\php\php.exe generatecss.php&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To generate your own less files in your own template, you will need to take a copy of the &amp;lt;code&amp;gt;generatecss.php&amp;lt;/code&amp;gt; script and adjust it to suite your template.&lt;br /&gt;
&lt;br /&gt;
== Not all LESS compilers are equal ==&lt;br /&gt;
The LESS compiler used for the Joomla core is obtained from [[http://leafo.net/lessphp]].  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:New in Joomla! 3.0]][[Category:Bug Squad]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwiseman</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Joomla_LESS&amp;diff=79180</id>
		<title>Joomla LESS</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Joomla_LESS&amp;diff=79180"/>
		<updated>2012-12-19T07:54:45Z</updated>

		<summary type="html">&lt;p&gt;Pwiseman: Created page with &amp;quot;&amp;#039;&amp;#039;This page is intended for Joomla Bug Squad members.&amp;#039;&amp;#039;  Joomla 3.0 is shipped with a LESS compiler to generate default template and bootstrap CSS files from LESS files.  The ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;This page is intended for Joomla Bug Squad members.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Joomla 3.0 is shipped with a LESS compiler to generate default template and bootstrap CSS files from LESS files.&lt;br /&gt;
&lt;br /&gt;
The css generation wrapper script, LESS compiler, and other similar build tools are located in the build directory.  The build directory is only available from a GitHub clone; it is not included in an official Joomla release. &lt;br /&gt;
&lt;br /&gt;
To generate the CSS files you will need to execute the generation scrips as a CLI application.&lt;/div&gt;</summary>
		<author><name>Pwiseman</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Talk:Working_with_Git_and_Eclipse&amp;diff=67880</id>
		<title>Talk:Working with Git and Eclipse</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Talk:Working_with_Git_and_Eclipse&amp;diff=67880"/>
		<updated>2012-06-24T13:35:15Z</updated>

		<summary type="html">&lt;p&gt;Pwiseman: /* GITHUB recommends HTTPS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GITHUB recommends HTTPS ==&lt;br /&gt;
GITHUB now (June 2012) recommends the HTTP protocol rather than the SSH protocol, and have changed the order of the buttons accordingly.&lt;br /&gt;
[[File:GITHUB Protocol 2012-06.png]]&lt;/div&gt;</summary>
		<author><name>Pwiseman</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:GITHUB_Protocol_2012-06.png&amp;diff=67879</id>
		<title>File:GITHUB Protocol 2012-06.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:GITHUB_Protocol_2012-06.png&amp;diff=67879"/>
		<updated>2012-06-24T13:34:31Z</updated>

		<summary type="html">&lt;p&gt;Pwiseman: uploaded a new version of &amp;amp;quot;File:GITHUB Protocol 2012-06.png&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pwiseman</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Talk:Working_with_Git_and_Eclipse&amp;diff=67878</id>
		<title>Talk:Working with Git and Eclipse</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Talk:Working_with_Git_and_Eclipse&amp;diff=67878"/>
		<updated>2012-06-24T13:32:35Z</updated>

		<summary type="html">&lt;p&gt;Pwiseman: GUTHUB recommendation for HTTP&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GITHUB recommends HTTPS ==&lt;br /&gt;
GITHUB now recommends the HTTP protocol rather than the SSH protocol, and have changed the order of the buttons accordingly.&lt;br /&gt;
[[File:GITHUB Protocol 2012-06.png]]&lt;/div&gt;</summary>
		<author><name>Pwiseman</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:GITHUB_Protocol_2012-06.png&amp;diff=67877</id>
		<title>File:GITHUB Protocol 2012-06.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:GITHUB_Protocol_2012-06.png&amp;diff=67877"/>
		<updated>2012-06-24T13:29:43Z</updated>

		<summary type="html">&lt;p&gt;Pwiseman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Pwiseman</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:Developing_a_MVC_Component/Adding_configuration&amp;diff=31130</id>
		<title>Archived:Developing a MVC Component/Adding configuration</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:Developing_a_MVC_Component/Adding_configuration&amp;diff=31130"/>
		<updated>2010-09-28T13:19:05Z</updated>

		<summary type="html">&lt;p&gt;Pwiseman: /* Adding configuration parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{underconstruction}}&lt;br /&gt;
{{future|1.6}}&lt;br /&gt;
&lt;br /&gt;
== Articles in this series ==&lt;br /&gt;
{{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla!1.6 - Contents}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
This tutorial is part of the [[Developing a Model-View-Controller (MVC) Component for Joomla!1.6]] tutorial. You are encouraged to read the previous parts of the tutorial before reading this.&lt;br /&gt;
&lt;br /&gt;
== Adding configuration parameters ==&lt;br /&gt;
The Joomla!1.6 framework allows the use of parameters stored in each component. With your favorite file manager and editor, put a file &#039;&#039;admin/config.xml&#039;&#039; file containing these lines:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;admin/config.xml&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;admin/config.xml&#039;&#039;&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;config&amp;gt;&lt;br /&gt;
	&amp;lt;fieldset&lt;br /&gt;
		name=&amp;quot;greetings&amp;quot;&lt;br /&gt;
		label=&amp;quot;com_helloworld_Config_Greeting_Settings_Label&amp;quot;&lt;br /&gt;
		description=&amp;quot;com_helloworld_Config_Greeting_Settings_Desc&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;field&lt;br /&gt;
			name=&amp;quot;show_category&amp;quot;&lt;br /&gt;
			type=&amp;quot;radio&amp;quot;&lt;br /&gt;
			label=&amp;quot;com_helloworld_Params_Show_Category_Label&amp;quot;&lt;br /&gt;
			description=&amp;quot;com_helloworld_Params_Show_Category_Desc&amp;quot;&lt;br /&gt;
			default=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;Hide&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;Show&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;/field&amp;gt;&lt;br /&gt;
	&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&amp;lt;/config&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file will be read by the &#039;&#039;com_config&#039;&#039; component of the Joola!1.6 core. For the moment, we defined only one parameter: is the category title displayed or not in the frontend?.&lt;br /&gt;
&lt;br /&gt;
the best way to set the parameters is to put a &#039;&#039;Preferences&#039;&#039; button in a toolbar.&lt;br /&gt;
&lt;br /&gt;
With your favorite editor, put these lines in &#039;&#039;admin/views/helloworldlist/view.html.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;admin/views/helloworldlist/view.html.php&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;admin/views/helloworldlist/view.html.php&#039;&#039;&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 to this file&lt;br /&gt;
defined(&#039;_JEXEC&#039;) or die(&#039;Restricted access&#039;);&lt;br /&gt;
// import Joomla view library&lt;br /&gt;
jimport(&#039;joomla.application.component.view&#039;);&lt;br /&gt;
/**&lt;br /&gt;
 * HelloWorldList View&lt;br /&gt;
 */&lt;br /&gt;
class HelloWorldViewHelloWorldList extends JView {&lt;br /&gt;
	/**&lt;br /&gt;
	 * items to be displayed&lt;br /&gt;
	 */&lt;br /&gt;
	protected $items;&lt;br /&gt;
	/**&lt;br /&gt;
	 * pagination for the items&lt;br /&gt;
	 */&lt;br /&gt;
	protected $pagination;&lt;br /&gt;
	/**&lt;br /&gt;
	 * HelloWorldList view display method&lt;br /&gt;
	 * @return void&lt;br /&gt;
	 */&lt;br /&gt;
	function display($tpl = null)&lt;br /&gt;
	{&lt;br /&gt;
		// Get data from the model&lt;br /&gt;
		$items = $this-&amp;gt;get(&#039;Items&#039;);&lt;br /&gt;
		$pagination = $this-&amp;gt;get(&#039;Pagination&#039;);&lt;br /&gt;
		// Assign data to the view&lt;br /&gt;
		$this-&amp;gt;items = $items;&lt;br /&gt;
		$this-&amp;gt;pagination = $pagination;&lt;br /&gt;
		// Set the toolbar&lt;br /&gt;
		$this-&amp;gt;_setToolBar();&lt;br /&gt;
		// Display the template&lt;br /&gt;
		parent::display($tpl);&lt;br /&gt;
		// Set the document&lt;br /&gt;
		$this-&amp;gt;_setDocument();&lt;br /&gt;
	}&lt;br /&gt;
	/**&lt;br /&gt;
	 * Setting the toolbar&lt;br /&gt;
	 */&lt;br /&gt;
	protected function _setToolBar()&lt;br /&gt;
	{&lt;br /&gt;
		JToolBarHelper::title(JText::_(&#039;com_helloworld_Manager&#039;), &#039;helloworld&#039;);&lt;br /&gt;
		JToolBarHelper::deleteListX(&#039;com_helloworld_HelloWorldList_Are_you_sure_you_want_to_delete_these_greetings&#039;, &#039;helloworldlist.remove&#039;);&lt;br /&gt;
		JToolBarHelper::editListX(&#039;helloworld.edit&#039;);&lt;br /&gt;
		JToolBarHelper::addNewX(&#039;helloworld.add&#039;);&lt;br /&gt;
		JToolBarHelper::preferences(&#039;com_helloworld&#039;);&lt;br /&gt;
	}&lt;br /&gt;
	/**&lt;br /&gt;
	 * Method to set up the document properties&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return void&lt;br /&gt;
	 */&lt;br /&gt;
	protected function _setDocument() &lt;br /&gt;
	{&lt;br /&gt;
		$document = &amp;amp;JFactory::getDocument();&lt;br /&gt;
		$document-&amp;gt;setTitle(JText::_(&#039;com_helloworld_Administration&#039;));&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Using configuration parameters as default value ==&lt;br /&gt;
We want to define this parameter individually on all HelloWorld data. With your favorite editor, put these lines into the &#039;&#039;admin/models/forms/helloworld.xml&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;admin/models/forms/helloworld.xml&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;admin/models/forms/helloworld.xml&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- $Id: helloworld.xml 30 2009-11-14 10:56:17Z chdemko $ --&amp;gt;&lt;br /&gt;
&amp;lt;form&amp;gt;&lt;br /&gt;
	&amp;lt;fields&amp;gt;&lt;br /&gt;
		&amp;lt;field&lt;br /&gt;
			id=&amp;quot;id&amp;quot;&lt;br /&gt;
			name=&amp;quot;id&amp;quot;&lt;br /&gt;
			type=&amp;quot;hidden&amp;quot;&lt;br /&gt;
		/&amp;gt;&lt;br /&gt;
		&amp;lt;field&lt;br /&gt;
			id=&amp;quot;greeting&amp;quot;&lt;br /&gt;
			name=&amp;quot;greeting&amp;quot;&lt;br /&gt;
			type=&amp;quot;text&amp;quot;&lt;br /&gt;
			size=&amp;quot;40&amp;quot;&lt;br /&gt;
			class=&amp;quot;inputbox validate-greeting&amp;quot;&lt;br /&gt;
			validate=&amp;quot;greeting&amp;quot;&lt;br /&gt;
			required=&amp;quot;true&amp;quot;&lt;br /&gt;
			default=&amp;quot;&amp;quot;&lt;br /&gt;
			label=&amp;quot;com_helloworld_HelloWorld_Greeting&amp;quot;&lt;br /&gt;
			description=&amp;quot;com_helloworld_HelloWorld_Greeting_Desc&amp;quot;&lt;br /&gt;
		/&amp;gt;&lt;br /&gt;
		&amp;lt;field&lt;br /&gt;
			id=&amp;quot;catid&amp;quot;&lt;br /&gt;
			name=&amp;quot;catid&amp;quot;&lt;br /&gt;
			type=&amp;quot;Categories&amp;quot;&lt;br /&gt;
			extension=&amp;quot;com_helloworld&amp;quot;&lt;br /&gt;
			allow_none=&amp;quot;true&amp;quot;&lt;br /&gt;
			class=&amp;quot;inputbox&amp;quot;&lt;br /&gt;
			default=&amp;quot;&amp;quot;&lt;br /&gt;
			label=&amp;quot;com_helloworld_HelloWorld_Category&amp;quot;&lt;br /&gt;
			description=&amp;quot;com_helloworld_HelloWorld_Category_Desc&amp;quot;&lt;br /&gt;
			required=&amp;quot;true&amp;quot;&lt;br /&gt;
		&amp;gt;&lt;br /&gt;
			&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;JOption_No_Category&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;/field&amp;gt;&lt;br /&gt;
	&amp;lt;/fields&amp;gt;&lt;br /&gt;
	&amp;lt;fields&lt;br /&gt;
		group=&amp;quot;params&amp;quot;&lt;br /&gt;
		array=&amp;quot;true&amp;quot;&lt;br /&gt;
		label=&amp;quot;com_helloworld_Options&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;field&lt;br /&gt;
			name=&amp;quot;show_category&amp;quot;&lt;br /&gt;
			type=&amp;quot;list&amp;quot;&lt;br /&gt;
			label=&amp;quot;com_helloworld_Params_Show_Category_Label&amp;quot;&lt;br /&gt;
			description=&amp;quot;com_helloworld_Params_Show_Category_Desc&amp;quot;&lt;br /&gt;
			default=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;option value=&amp;quot;&amp;quot;&amp;gt;Use Global&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;Hide&amp;lt;/option&amp;gt;&lt;br /&gt;
			&amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;Show&amp;lt;/option&amp;gt;&lt;br /&gt;
		&amp;lt;/field&amp;gt;&lt;br /&gt;
	&amp;lt;/fields&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We define the same parameter for each message with an additional value: &#039;&#039;Use global&#039;&#039;. The &#039;&#039;array=&amp;quot;true&amp;quot;&#039;&#039; xml field means that parameters in this group will be grouped in the &#039;&#039;params&#039;&#039; array.&lt;br /&gt;
&lt;br /&gt;
== Modifying the SQL ==&lt;br /&gt;
Data now contains a new parameter: &#039;&#039;params&#039;&#039;. The SQL structure has to be modified.&lt;br /&gt;
&lt;br /&gt;
With your favorite editor, put these lines into &#039;&#039;admin/sql/install.mysql.utf8.sql&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;admin/sql/install.mysql.utf8.sql&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;admin/sql/install.mysql.utf8.sql&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DROP TABLE IF EXISTS `#__helloworld`;&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE `#__helloworld` (&lt;br /&gt;
  `id` int(11) NOT NULL auto_increment,&lt;br /&gt;
  `greeting` varchar(25) NOT NULL,&lt;br /&gt;
  `catid` int(11) NOT NULL default &#039;0&#039;,&lt;br /&gt;
  `params` TEXT NOT NULL default &#039;&#039;,&lt;br /&gt;
   PRIMARY KEY  (`id`)&lt;br /&gt;
) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;&lt;br /&gt;
&lt;br /&gt;
INSERT INTO `#__helloworld` (`greeting`) VALUES&lt;br /&gt;
	(&#039;Hello World!&#039;),&lt;br /&gt;
	(&#039;Good bye World!&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With your favorite editor, put these lines into &#039;&#039;admin/sql/update.mysql.utf8.sql&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;admin/sql/update.mysql.utf8.sql&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;admin/sql/update.mysql.utf8.sql&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
ALTER TABLE `#__helloworld` ADD `params` TEXT NOT NULL default &#039;&#039;; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;TableHelloWorld&#039;&#039; has to be modified in order to deal with these parameters: they will be stored in a JSON format and get in a &#039;&#039;JParameter&#039;&#039; class. We have to overload the &#039;&#039;bind&#039;&#039; and the &#039;&#039;load&#039;&#039; method. With your favorite editor, put these lines into &#039;&#039;admin/tables/helloworld.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;admin/tables/helloworld.php&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;admin/tables/helloworld.php&#039;&#039;&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(&#039;Restricted access&#039;);&lt;br /&gt;
// import Joomla table library&lt;br /&gt;
jimport(&#039;joomla.database.table&#039;);&lt;br /&gt;
/**&lt;br /&gt;
 * Hello Table class&lt;br /&gt;
 */&lt;br /&gt;
class TableHelloWorld extends JTable&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Primary Key&lt;br /&gt;
	 *&lt;br /&gt;
	 * @var int&lt;br /&gt;
	 */&lt;br /&gt;
	var $id = null;&lt;br /&gt;
	/**&lt;br /&gt;
	 * @var string&lt;br /&gt;
	 */&lt;br /&gt;
	var $greeting = null;&lt;br /&gt;
	/**&lt;br /&gt;
	 * @var int&lt;br /&gt;
	 */&lt;br /&gt;
	var $catid = null;&lt;br /&gt;
	/**&lt;br /&gt;
	 * @var string&lt;br /&gt;
	 */&lt;br /&gt;
	var $params = null;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param object Database connector object&lt;br /&gt;
	 */&lt;br /&gt;
	function TableHelloWorld(&amp;amp;$db) &lt;br /&gt;
	{&lt;br /&gt;
		parent::__construct(&#039;#__helloworld&#039;, &#039;id&#039;, $db);&lt;br /&gt;
	}&lt;br /&gt;
	/**&lt;br /&gt;
	 * Overloaded bind function&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param	array		$hash named array&lt;br /&gt;
	 * @return	null|string	null is operation was satisfactory, otherwise returns an error&lt;br /&gt;
	 * @see JTable:bind&lt;br /&gt;
	 * @since 1.5&lt;br /&gt;
	 */&lt;br /&gt;
	public function bind($array, $ignore = &#039;&#039;) &lt;br /&gt;
	{&lt;br /&gt;
		if (isset($array[&#039;params&#039;]) &amp;amp;&amp;amp; is_array($array[&#039;params&#039;])) &lt;br /&gt;
		{&lt;br /&gt;
			// Convert the params field to an string.&lt;br /&gt;
			$parameter = new JParameter;&lt;br /&gt;
			$parameter-&amp;gt;loadArray($array[&#039;params&#039;]);&lt;br /&gt;
			$array[&#039;params&#039;] = $parameter-&amp;gt;toString();&lt;br /&gt;
		}&lt;br /&gt;
		return parent::bind($array, $ignore);&lt;br /&gt;
	}&lt;br /&gt;
	/**&lt;br /&gt;
	 * Overloaded load function&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param	int $pk primary key&lt;br /&gt;
	 * @param	boolean $reset reset data&lt;br /&gt;
	 * @return	boolean&lt;br /&gt;
	 * @see JTable:load&lt;br /&gt;
	 */&lt;br /&gt;
	public function load($pk = null, $reset = true) &lt;br /&gt;
	{&lt;br /&gt;
		if (parent::load($pk, $reset)) &lt;br /&gt;
		{&lt;br /&gt;
			// Convert the params field to a parameter.&lt;br /&gt;
			$parameter = new JParameter;&lt;br /&gt;
			$parameter-&amp;gt;loadJSON($this-&amp;gt;params);&lt;br /&gt;
			$this-&amp;gt;params = $parameter;&lt;br /&gt;
			return true;&lt;br /&gt;
		}&lt;br /&gt;
		else&lt;br /&gt;
		{&lt;br /&gt;
			return false;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modifying the backend ==&lt;br /&gt;
The backend model has to used the &#039;&#039;load&#039;&#039; method of the &#039;&#039;TableHelloWorld&#039;&#039; class. With your favorite editor, put these lines into the &#039;&#039;admin/models/helloworld.php&#039;&#039; file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;admin/models/helloworld.php&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;admin/models/helloworld.php&#039;&#039;&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 to this file&lt;br /&gt;
defined(&#039;_JEXEC&#039;) or die(&#039;Restricted access&#039;);&lt;br /&gt;
// import Joomla modelform library&lt;br /&gt;
jimport(&#039;joomla.application.component.modelform&#039;);&lt;br /&gt;
/**&lt;br /&gt;
 * HelloWorld Model&lt;br /&gt;
 */&lt;br /&gt;
class HelloWorldModelHelloWorld extends JModelForm&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * @var array data&lt;br /&gt;
	 */&lt;br /&gt;
	protected $data = null;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Method to auto-populate the model state.&lt;br /&gt;
	 */&lt;br /&gt;
	protected function _populateState() &lt;br /&gt;
	{&lt;br /&gt;
		$app = JFactory::getApplication(&#039;administrator&#039;);&lt;br /&gt;
		// Load the User state.&lt;br /&gt;
		if (!($pk = (int)$app-&amp;gt;getUserState(&#039;com_helloworld.edit.helloworld.id&#039;))) &lt;br /&gt;
		{&lt;br /&gt;
			$pk = (int)JRequest::getInt(&#039;id&#039;);&lt;br /&gt;
		}&lt;br /&gt;
		$this-&amp;gt;setState(&#039;helloworld.id&#039;, $pk);&lt;br /&gt;
	}&lt;br /&gt;
	/**&lt;br /&gt;
	 * Method to get the data.&lt;br /&gt;
	 *&lt;br /&gt;
	 * @access	public&lt;br /&gt;
	 * @return	array of string&lt;br /&gt;
	 * @since	1.0&lt;br /&gt;
	 */&lt;br /&gt;
	public function &amp;amp;getData() &lt;br /&gt;
	{&lt;br /&gt;
		if (empty($this-&amp;gt;data)) &lt;br /&gt;
		{&lt;br /&gt;
			$data = &amp;amp; JRequest::getVar(&#039;jform&#039;);&lt;br /&gt;
			if (empty($data)) &lt;br /&gt;
			{&lt;br /&gt;
				$selected = $this-&amp;gt;getState(&#039;helloworld.id&#039;);&lt;br /&gt;
				$data = $this-&amp;gt;getTable();&lt;br /&gt;
				$data-&amp;gt;load((int)$selected);&lt;br /&gt;
			}&lt;br /&gt;
			$this-&amp;gt;data = $data;&lt;br /&gt;
		}&lt;br /&gt;
		return $this-&amp;gt;data;&lt;br /&gt;
	}&lt;br /&gt;
	/**&lt;br /&gt;
	 * Method to get the HelloWorld form.&lt;br /&gt;
	 *&lt;br /&gt;
	 * @access	public&lt;br /&gt;
	 * @return	mixed	JForm object on success, false on failure.&lt;br /&gt;
	 * @since	1.0&lt;br /&gt;
	 */&lt;br /&gt;
	public function &amp;amp;getForm() &lt;br /&gt;
	{&lt;br /&gt;
		$form = &amp;amp; parent::getForm(&#039;helloworld&#039;, &#039;form&#039;, array(&lt;br /&gt;
			&#039;array&#039; =&amp;gt; &#039;jform&#039;&lt;br /&gt;
		) , false);&lt;br /&gt;
		return $form;&lt;br /&gt;
	}&lt;br /&gt;
	/**&lt;br /&gt;
	 * Method to get the javascript attached to the form&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return string URL to the script.&lt;br /&gt;
	 */&lt;br /&gt;
	function getScript() &lt;br /&gt;
	{&lt;br /&gt;
		return &#039;administrator/components/com_helloworld/models/forms/helloworld.js&#039;;&lt;br /&gt;
	}&lt;br /&gt;
	/**&lt;br /&gt;
	 * Method to save a record&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param array $data array of data&lt;br /&gt;
	 * @access	public&lt;br /&gt;
	 * @return	boolean	True on success&lt;br /&gt;
	 */&lt;br /&gt;
	function save($data) &lt;br /&gt;
	{&lt;br /&gt;
		// Database processing&lt;br /&gt;
		$row = &amp;amp; $this-&amp;gt;getTable();&lt;br /&gt;
		// Bind the form fields to the hello table&lt;br /&gt;
		if (!$row-&amp;gt;save($data)) &lt;br /&gt;
		{&lt;br /&gt;
			$this-&amp;gt;setError($row-&amp;gt;getErrorMsg());&lt;br /&gt;
			return false;&lt;br /&gt;
		}&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The backend edit view has to display the options to the administrator. With your favorite editor, put these lines into the &#039;&#039;admin/views/helloworld/tmpl/edit.php&#039;&#039; file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;admin/views/helloworld/tmpl/edit.php&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;admin/views/helloworld/tmpl/edit.php&#039;&#039;&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(&#039;Restricted access&#039;);&lt;br /&gt;
JHTML::_(&#039;behavior.tooltip&#039;);&lt;br /&gt;
JHTML::_(&#039;behavior.formvalidation&#039;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;form action=&amp;quot;&amp;lt;?php echo JRoute::_(&#039;index.php?option=com_helloworld&#039;); ?&amp;gt;&amp;quot; method=&amp;quot;post&amp;quot; name=&amp;quot;adminForm&amp;quot; id=&amp;quot;adminForm&amp;quot; class=&amp;quot;form-validate&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;width-60 fltlft&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;fieldset class=&amp;quot;adminform&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;legend&amp;gt;&amp;lt;?php echo JText::_( &#039;com_helloworld_HelloWorld_Details&#039; ); ?&amp;gt;&amp;lt;/legend&amp;gt;&lt;br /&gt;
			&amp;lt;?php foreach($this-&amp;gt;form-&amp;gt;getFields() as $field): ?&amp;gt;&lt;br /&gt;
				&amp;lt;?php if (!$field-&amp;gt;hidden): ?&amp;gt;&lt;br /&gt;
					&amp;lt;?php echo $field-&amp;gt;label; ?&amp;gt;&lt;br /&gt;
				&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
				&amp;lt;?php echo $field-&amp;gt;input; ?&amp;gt;&lt;br /&gt;
			&amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
		&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;width-40 fltrt&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;fieldset class=&amp;quot;adminform&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;legend&amp;gt;&amp;lt;?php echo JText::_( &#039;com_helloworld_HelloWorld_Options&#039; ); ?&amp;gt;&amp;lt;/legend&amp;gt;&lt;br /&gt;
			&amp;lt;?php foreach($this-&amp;gt;form-&amp;gt;getFields(&#039;params&#039;) as $field): ?&amp;gt;&lt;br /&gt;
				&amp;lt;?php if (!$field-&amp;gt;hidden): ?&amp;gt;&lt;br /&gt;
					&amp;lt;?php echo $field-&amp;gt;label; ?&amp;gt;&lt;br /&gt;
				&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
				&amp;lt;?php echo $field-&amp;gt;input; ?&amp;gt;&lt;br /&gt;
			&amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
		&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;task&amp;quot; value=&amp;quot;helloworld.edit&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;?php echo JHtml::_(&#039;form.token&#039;); ?&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Modifying the frontend ==&lt;br /&gt;
The frontend has to be modified according to the new &#039;&#039;show_category&#039;&#039; parameter.&lt;br /&gt;
&lt;br /&gt;
We have to modified the model:&lt;br /&gt;
* it has to merge global parameters and individual parameters&lt;br /&gt;
* it has to provide the category&lt;br /&gt;
&lt;br /&gt;
With your favorite editor, put these lines into the &#039;&#039;site/models/helloworld.php&#039;&#039; file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;site/models/helloworld.php&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;site/models/helloworld.php&#039;&#039;&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 to this file&lt;br /&gt;
defined(&#039;_JEXEC&#039;) or die(&#039;Restricted access&#039;);&lt;br /&gt;
// import Joomla modelitem library&lt;br /&gt;
jimport(&#039;joomla.application.component.modelitem&#039;);&lt;br /&gt;
/**&lt;br /&gt;
 * HelloWorld Model&lt;br /&gt;
 */&lt;br /&gt;
class HelloWorldModelHelloWorld extends JModelItem&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * @var object $item&lt;br /&gt;
	 */&lt;br /&gt;
	protected $item;&lt;br /&gt;
	/**&lt;br /&gt;
	 * @var object $category&lt;br /&gt;
	 */&lt;br /&gt;
	protected $category;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Get the message&lt;br /&gt;
	 * @return object The message to be displayed to the user&lt;br /&gt;
	 */&lt;br /&gt;
	public function getItem() &lt;br /&gt;
	{&lt;br /&gt;
		if (!isset($this-&amp;gt;item)) &lt;br /&gt;
		{&lt;br /&gt;
			$id = JRequest::getInt(&#039;id&#039;);&lt;br /&gt;
			// Get a TableHelloWorld instance&lt;br /&gt;
			$table = $this-&amp;gt;getTable();&lt;br /&gt;
			// Load the message&lt;br /&gt;
			$table-&amp;gt;load($id);&lt;br /&gt;
			// Add global parameters&lt;br /&gt;
			$params = clone JFactory::getApplication(&#039;site&#039;)-&amp;gt;getParams();&lt;br /&gt;
			$params-&amp;gt;merge($table-&amp;gt;params);&lt;br /&gt;
			$table-&amp;gt;params = $params;&lt;br /&gt;
			// Assign the message&lt;br /&gt;
			$this-&amp;gt;item = $table;&lt;br /&gt;
		}&lt;br /&gt;
		return $this-&amp;gt;item;&lt;br /&gt;
	}&lt;br /&gt;
	/**&lt;br /&gt;
	 * Get the category&lt;br /&gt;
	 * @return object The category assigned to the message&lt;br /&gt;
	 */&lt;br /&gt;
	public function getCategory() &lt;br /&gt;
	{&lt;br /&gt;
		if (!isset($this-&amp;gt;category)) &lt;br /&gt;
		{&lt;br /&gt;
			$catid = $this-&amp;gt;getItem()-&amp;gt;catid;&lt;br /&gt;
			// Get a TableHelloWorld instance&lt;br /&gt;
			$table = $this-&amp;gt;getTable(&#039;Category&#039;, &#039;JTable&#039;);&lt;br /&gt;
			// Load the category&lt;br /&gt;
			$table-&amp;gt;load($catid);&lt;br /&gt;
			// Assign the category&lt;br /&gt;
			$this-&amp;gt;category = $table;&lt;br /&gt;
		}&lt;br /&gt;
		return $this-&amp;gt;category;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The view has to ask the model for the category. With your favorite editor, put these lines into the &#039;&#039;site/views/helloworld/view.html.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;site/views/helloworld/view.html.php&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;site/views/helloworld/view.html.php&#039;&#039;&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 to this file&lt;br /&gt;
defined(&#039;_JEXEC&#039;) or die(&#039;Restricted access&#039;);&lt;br /&gt;
// import Joomla view library&lt;br /&gt;
jimport(&#039;joomla.application.component.view&#039;);&lt;br /&gt;
/**&lt;br /&gt;
 * HTML View class for the HelloWorld Component&lt;br /&gt;
 */&lt;br /&gt;
class HelloWorldViewHelloWorld extends JView&lt;br /&gt;
{&lt;br /&gt;
	protected $item = null;&lt;br /&gt;
	protected $category = null;&lt;br /&gt;
	// Overwriting JView display method&lt;br /&gt;
	function display($tpl = null) &lt;br /&gt;
	{&lt;br /&gt;
		// Assign data to the view&lt;br /&gt;
		$this-&amp;gt;item = $this-&amp;gt;get(&#039;Item&#039;);&lt;br /&gt;
		// Assign data to the view&lt;br /&gt;
		$this-&amp;gt;category = $this-&amp;gt;get(&#039;Category&#039;);&lt;br /&gt;
		// Display the view&lt;br /&gt;
		parent::display($tpl);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The layout can now display correctly the category or not. With your favorite editor, put these lines into &#039;&#039;site/views/helloworld/tmpl/default.php&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;site/views/helloworld/tmpl/default.php&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;site/views/helloworld/tmpl/default.php&#039;&#039;&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 to this file&lt;br /&gt;
defined(&#039;_JEXEC&#039;) or die(&#039;Restricted access&#039;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;&lt;br /&gt;
	&amp;lt;?php echo $this-&amp;gt;item-&amp;gt;greeting;?&amp;gt;&lt;br /&gt;
	&amp;lt;?php if ($this-&amp;gt;item-&amp;gt;params-&amp;gt;get(&#039;show_category&#039;) &amp;amp;&amp;amp; !empty($this-&amp;gt;category-&amp;gt;title)):?&amp;gt;&lt;br /&gt;
		(&amp;lt;?php echo $this-&amp;gt;category-&amp;gt;title;?&amp;gt;)&lt;br /&gt;
	&amp;lt;?php endif;?&amp;gt;&lt;br /&gt;
&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adding some translation strings ==&lt;br /&gt;
Some strings have to be added in the &#039;&#039;admin/language/en-GB/en-GB.com_helloworld.ini&#039;&#039; file&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;admin/language/en-GB/en-GB.com_helloworld.ini&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;admin/language/en-GB/en-GB.com_helloworld.ini&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
# Joomla16.Tutorials&lt;br /&gt;
# Copyright (C) 2005 - 2009 Open Source Matters. All rights reserved.&lt;br /&gt;
# License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php&lt;br /&gt;
# Note : All ini files need to be saved as UTF-8 - No BOM&lt;br /&gt;
&lt;br /&gt;
COM_HELLOWORLD_ADMINISTRATION=HelloWorld administration&lt;br /&gt;
COM_HELLOWORLD_CATEGORIES=Categories&lt;br /&gt;
COM_HELLOWORLD_MANAGER=HelloWorld manager&lt;br /&gt;
COM_HELLOWORLD_MESSAGES=Messages&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLD_CATEGORY=Category&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLD_CATEGORY_DESC=Category of the message&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLD_CREATING=Creating&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLD_DETAILS=Details&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLD_OPTIONS=Options&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLD_EDITING=Editing&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLD_ERROR_SOME_VALUES_ARE_UNACCEPTABLE=Some values are unacceptable&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLD_GREETING_DESC=Message to be displayed&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLD_GREETING=Greeting&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLDLIST_ARE_YOU_SURE_YOU_WANT_TO_DELETE_THESE_GREETINGS=Are you sure you want to delete these greetings?&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLDLIST_GREETING=Greeting&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLDLIST_GREETINGS_REMOVED=Greetings removed&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLDLIST_ID=Id&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLDLIST_ONE_OR_MORE_GREETINGS_COULD_NOT_BE_DELETED=One or more greetings could not be deleted: %s&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_MSG_DESC=This message will be displayed&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_MSG_LABEL=Message&lt;br /&gt;
&lt;br /&gt;
COM_HELLOWORLD_CONFIGURATION=Configuration&lt;br /&gt;
COM_HELLOWORLD_CONFIG_GREETING_SETTINGS_LABEL=Greeting settings&lt;br /&gt;
COM_HELLOWORLD_CONFIG_GREETING_SETTINGS_DESC=Greetings settings description&lt;br /&gt;
COM_HELLOWORLD_PARAMS_SHOW_CATEGORY_LABEL=Show category&lt;br /&gt;
COM_HELLOWORLD_PARAMS_SHOW_CATEGORY_DESC=Display the category after the message&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Packaging the component ==&lt;br /&gt;
&lt;br /&gt;
Content of your code directory&lt;br /&gt;
* &#039;&#039;[[#helloworld.xml|helloworld.xml]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|site/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_02#site/helloworld.php|site/helloworld.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_02#site/controller.php|site/controller.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|site/views/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|site/views/helloworld/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#site/views/helloworld/view.html.php|site/views/helloworld/view.html.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|site/views/helloworld/tmpl/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_06#site/views/helloworld/tmpl/default.xml|site/views/helloworld/tmpl/default.xml]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#site/views/helloworld/tmpl/default.php|site/views/helloworld/tmpl/default.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|site/models/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#site/models/helloworld.php|site/models/helloworld.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|site/language/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|site/language/en-GB/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_08#site/language/en-GB/en-GB.com_helloworld.ini|site/language/en-GB/en-GB.com_helloworld.ini]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|admin/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#admin/config.xml|admin/config.xml]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_12#admin/helloworld.php|admin/helloworld.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_12#admin/controller.php|admin/controller.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|admin/sql/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#admin/sql/install.mysql.utf8.sql|admin/sql/install.mysql.utf8.sql]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_06#admin/sql/uninstall.mysql.utf8.sql|admin/sql/uninstall.mysql.utf8.sql]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#admin/sql/update.mysql.utf8.sql|admin/sql/update.mysql.utf8.sql]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|admin/models/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|admin/models/fields/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_12#admin/models/fields/helloworld.php|admin/models/fields/helloworld.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|admin/models/forms/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#admin/models/forms/helloworld.xml|admin/models/forms/helloworld.xml]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_11#admin/models/forms/helloworld.js|admin/models/forms/helloworld.js]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|admin/models/rules/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_11#admin/models/rules/greeting.php|admin/models/rules/greeting.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#admin/models/helloworld.php|admin/models/helloworld.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_09#admin/models/helloworldlist.php|admin/models/helloworldlist.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|admin/views/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|admin/views/helloworldlist/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#admin/views/helloworldlist/view.html.php|admin/views/helloworldlist/view.html.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|admin/views/helloworldlist/tmpl/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_11#admin/views/helloworldlist/tmpl/default.php|admin/views/helloworldlist/tmpl/default.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_07#admin/views/helloworldlist/tmpl/default_head.php|admin/views/helloworldlist/tmpl/default_head.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_07#admin/views/helloworldlist/tmpl/default_body.php|admin/views/helloworldlist/tmpl/default_body.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_07#admin/views/helloworldlist/tmpl/default_foot.php|admin/views/helloworldlist/tmpl/default_foot.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|admin/views/helloworldlist/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_11#admin/views/helloworld/view.html.php|admin/views/helloworld/view.html.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_11#admin/views/helloworld/submitbutton.js|admin/views/helloworld/submitbutton.js]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|admin/views/helloworld/tmpl/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#admin/views/helloworld/tmpl/edit.php|admin/views/helloworld/tmpl/edit.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|admin/tables/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#admin/tables/helloworld.php|admin/tables/helloworld.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[#admin/language/en-GB/en-GB.com_helloworld.ini|admin/language/en-GB/en-GB.com_helloworld.ini]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_08#admin/language/en-GB/en-GB.com_helloworld.menu.ini|admin/language/en-GB/en-GB.com_helloworld.menu.ini]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|admin/controllers/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_11#admin/controllers/helloworld.php|admin/controllers/helloworld.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_11#admin/controllers/helloworldlist.php|admin/controllers/helloworldlist.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_08#language/en-GB/en-GB.ini|language/en-GB/en-GB.ini]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|media/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!1.6_-_Part_01#index.html|media/images/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;media/images/tux-16x16.png&#039;&#039;&lt;br /&gt;
* &#039;&#039;media/images/tux-48x48.png&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Create a compressed file of this directory or directly download the [http://joomlacode.org/gf/download/frsrelease/11394/46172/com_helloworld-1.6-part13.zip archive] and install it using the extension manager of Joomla!1.6. You can add a menu item of this component using the menu manager in the backend.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;helloworld.xml&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;helloworld.xml&#039;&#039;&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;component&amp;quot; version=&amp;quot;1.6.0&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;creationDate&amp;gt;November 2009&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;version&amp;gt;0.0.13&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;com_helloworld_Description&amp;lt;/description&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;install&amp;gt; &amp;lt;!-- Runs on 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/install.mysql.utf8.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; &amp;lt;!-- Runs on 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/uninstall.mysql.utf8.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;update&amp;gt; &amp;lt;!-- Runs on update --&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/update.mysql.utf8.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
		&amp;lt;/sql&amp;gt;&lt;br /&gt;
	&amp;lt;/update&amp;gt;&lt;br /&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;folder&amp;gt;models&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;
&lt;br /&gt;
	&amp;lt;media destination=&amp;quot;com_helloworld&amp;quot; folder=&amp;quot;media&amp;quot;&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;images&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/media&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;administration&amp;gt;&lt;br /&gt;
		&amp;lt;menu img=&amp;quot;../media/com_helloworld/images/tux-16x16.png&amp;quot;&amp;gt;Hello World!&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;files folder=&amp;quot;admin&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;config.xml&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;sql&amp;lt;/folder&amp;gt;&lt;br /&gt;
			&amp;lt;folder&amp;gt;tables&amp;lt;/folder&amp;gt;&lt;br /&gt;
			&amp;lt;folder&amp;gt;models&amp;lt;/folder&amp;gt;&lt;br /&gt;
			&amp;lt;folder&amp;gt;views&amp;lt;/folder&amp;gt;&lt;br /&gt;
			&amp;lt;folder&amp;gt;controllers&amp;lt;/folder&amp;gt;&lt;br /&gt;
			&amp;lt;folder&amp;gt;helpers&amp;lt;/folder&amp;gt;&lt;br /&gt;
		&amp;lt;/files&amp;gt;		&lt;br /&gt;
		&amp;lt;languages folder=&amp;quot;admin&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.com_helloworld.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.com_helloworld.menu.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
		&amp;lt;/languages&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;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
*[[User:cdemko|Christophe Demko]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[category:Joomla! 1.6]]&lt;br /&gt;
[[category:Manual]]&lt;/div&gt;</summary>
		<author><name>Pwiseman</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived_talk:Developing_a_MVC_Component/Adding_a_variable_request_in_the_menu_type&amp;diff=30602</id>
		<title>Archived talk:Developing a 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=Archived_talk:Developing_a_MVC_Component/Adding_a_variable_request_in_the_menu_type&amp;diff=30602"/>
		<updated>2010-09-10T03:56:13Z</updated>

		<summary type="html">&lt;p&gt;Pwiseman: Possible fix for default.xml under 1.6&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[10-09-2010 pwiseman] Testing failed.  I needed to swap the order of the &amp;lt;fieldset&amp;gt; and &amp;lt;fields&amp;gt; tags to get it to work, and add a &amp;quot;name&amp;quot; attribute to fields.  Possibly the &amp;quot;group&amp;quot; and &amp;quot;array&amp;quot; attributes are no longer required in 1.6?&lt;/div&gt;</summary>
		<author><name>Pwiseman</name></author>
	</entry>
</feed>