<?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=Fredden</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=Fredden"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Fredden"/>
	<updated>2026-06-05T08:09:02Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:Developing_a_MVC_Component/Example_of_menu_parameters_and_stylesheets&amp;diff=100273</id>
		<title>Archived:Developing a MVC Component/Example of menu parameters and stylesheets</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:Developing_a_MVC_Component/Example_of_menu_parameters_and_stylesheets&amp;diff=100273"/>
		<updated>2013-06-13T19:18:38Z</updated>

		<summary type="html">&lt;p&gt;Fredden: /* Packaging the component */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{review|technical|This article needs to be reviewed by someone who knows what they&#039;re doing.}}&lt;br /&gt;
{{version/tutor|2.5}}&lt;br /&gt;
{{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla!2.5 - 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!2.5]] tutorial. You are encouraged to read the previous parts of the tutorial before reading this.&lt;br /&gt;
&lt;br /&gt;
== Update the view ==&lt;br /&gt;
&lt;br /&gt;
With your favorite file manager and editor, update the file &#039;&#039;site/views/updhelloworld/view.html.php&#039;&#039; to include setting the state.  For the stylesheet, include the import of the html class, and add a new function for including the stylesheet file.-&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;site/views/updhelloworld/view.html.php&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;site/views/updhelloworld/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;
 &lt;br /&gt;
// import Joomla view library&lt;br /&gt;
jimport(&#039;joomla.application.component.view&#039;);&lt;br /&gt;
// import Joomla html for use with stylesheets&lt;br /&gt;
// jimport(&#039;joomla.html.html&#039;); Probably already triggered in a html view&lt;br /&gt;
 &lt;br /&gt;
/**&lt;br /&gt;
 * HTML View class for the UpdHelloWorld Component&lt;br /&gt;
 */&lt;br /&gt;
class HelloWorldViewUpdHelloWorld extends JView&lt;br /&gt;
{&lt;br /&gt;
	// Overwriting JView display method&lt;br /&gt;
	function display($tpl = null) &lt;br /&gt;
	{&lt;br /&gt;
		$app		= JFactory::getApplication();&lt;br /&gt;
		$params		= $app-&amp;gt;getParams();&lt;br /&gt;
		$dispatcher = JDispatcher::getInstance();&lt;br /&gt;
&lt;br /&gt;
		// Get some data from the models&lt;br /&gt;
		$state		= $this-&amp;gt;get(&#039;State&#039;);&lt;br /&gt;
		$item		= $this-&amp;gt;get(&#039;Item&#039;);&lt;br /&gt;
		$this-&amp;gt;form	= $this-&amp;gt;get(&#039;Form&#039;);&lt;br /&gt;
		$this-&amp;gt;state = $this-&amp;gt;get(&#039;State&#039;);&lt;br /&gt;
&lt;br /&gt;
		// Check for errors.&lt;br /&gt;
		if (count($errors = $this-&amp;gt;get(&#039;Errors&#039;))) &lt;br /&gt;
		{&lt;br /&gt;
			JError::raiseError(500, implode(&#039;&amp;lt;br /&amp;gt;&#039;, $errors));&lt;br /&gt;
			return false;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		// get the stylesheet (with automatic lookup, possible template overrides, etc.)&lt;br /&gt;
		JHtml::stylesheet(&#039;com_helloworld/site.stylesheet.css&#039;, array(), true);&lt;br /&gt;
&lt;br /&gt;
		// Display the view&lt;br /&gt;
		parent::display($tpl);&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;
== Update the layout ==&lt;br /&gt;
&lt;br /&gt;
In Joomla, views display data using a layout. With your favorite file manager and editor, edit your file &#039;&#039;site/views/updhelloworld/tmpl/default.php&#039;&#039; to get the parameter values&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;site/views/updhelloworld/tmpl/default.php&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;site/views/updhelloworld/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;
&lt;br /&gt;
JHtml::_(&#039;behavior.keepalive&#039;);&lt;br /&gt;
JHtml::_(&#039;behavior.formvalidation&#039;);&lt;br /&gt;
JHtml::_(&#039;behavior.tooltip&#039;);&lt;br /&gt;
&lt;br /&gt;
// get the menu parameters for use&lt;br /&gt;
$menuparams = $this-&amp;gt;state-&amp;gt;get(&amp;quot;menuparams&amp;quot;);&lt;br /&gt;
$headingtxtcolor = $menuparams-&amp;gt;get(&amp;quot;headingtxtcolor&amp;quot;);&lt;br /&gt;
$headingbgcolor = $menuparams-&amp;gt;get(&amp;quot;headingbgcolor&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
    &amp;lt;h2 style=&amp;quot;color:&amp;lt;?php echo $headingtxtcolor; ?&amp;gt;; background-color:&amp;lt;?php echo $headingbgcolor; ?&amp;gt;;&amp;quot;&amp;gt;Update the Hello World greeting&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;form class=&amp;quot;form-validate&amp;quot; action=&amp;quot;&amp;lt;?php echo JRoute::_(&#039;index.php&#039;); ?&amp;gt;&amp;quot; method=&amp;quot;post&amp;quot; id=&amp;quot;updhelloworld&amp;quot; name=&amp;quot;updhelloworld&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;fieldset&amp;gt;&lt;br /&gt;
        	&amp;lt;dl&amp;gt;&lt;br /&gt;
          	    &amp;lt;dt&amp;gt;&amp;lt;?php echo $this-&amp;gt;form-&amp;gt;getLabel(&#039;id&#039;); ?&amp;gt;&amp;lt;/dt&amp;gt;&lt;br /&gt;
             	&amp;lt;dd&amp;gt;&amp;lt;?php echo $this-&amp;gt;form-&amp;gt;getInput(&#039;id&#039;); ?&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
                &amp;lt;dt&amp;gt;&amp;lt;/dt&amp;gt;&amp;lt;dd&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
        	    &amp;lt;dt&amp;gt;&amp;lt;?php echo $this-&amp;gt;form-&amp;gt;getLabel(&#039;greeting&#039;); ?&amp;gt;&amp;lt;/dt&amp;gt;&lt;br /&gt;
        	    &amp;lt;dd&amp;gt;&amp;lt;?php echo $this-&amp;gt;form-&amp;gt;getInput(&#039;greeting&#039;); ?&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
                &amp;lt;dt&amp;gt;&amp;lt;/dt&amp;gt;&amp;lt;dd&amp;gt;&amp;lt;/dd&amp;gt;&lt;br /&gt;
                &amp;lt;dt&amp;gt;&amp;lt;/dt&amp;gt;&lt;br /&gt;
            	&amp;lt;dd&amp;gt;&amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;option&amp;quot; value=&amp;quot;com_helloworld&amp;quot; /&amp;gt;&lt;br /&gt;
            	    &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;task&amp;quot; value=&amp;quot;updhelloworld.submit&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/dd&amp;gt;&lt;br /&gt;
                &amp;lt;dt&amp;gt;&amp;lt;/dt&amp;gt;&lt;br /&gt;
                &amp;lt;dd&amp;gt;&amp;lt;button type=&amp;quot;submit&amp;quot; class=&amp;quot;button&amp;quot;&amp;gt;&amp;lt;?php echo JText::_(&#039;Submit&#039;); ?&amp;gt;&amp;lt;/button&amp;gt;&lt;br /&gt;
			                &amp;lt;?php echo JHtml::_(&#039;form.token&#039;); ?&amp;gt;&lt;br /&gt;
                &amp;lt;/dd&amp;gt;&lt;br /&gt;
        	&amp;lt;/dl&amp;gt;&lt;br /&gt;
        &amp;lt;fieldset&amp;gt;&lt;br /&gt;
    &amp;lt;/form&amp;gt;&lt;br /&gt;
    &amp;lt;div class=&amp;quot;clr&amp;quot;&amp;gt;&amp;lt;/div&amp;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;
This layout utilises the forms design which resides with the related model.  The getLabel and getInput will pickup the xml fields defined and display appropriately.  More on the xml file within the models section of this tutorial.&lt;br /&gt;
&lt;br /&gt;
Update the file &#039;&#039;site/views/updhelloworld/tmpl/default.xml&#039;&#039; to include the definitions of the parameter fields.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;site/views/updhelloworld/tmpl/default.xml&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;site/views/updhelloworld/tmpl/default.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;metadata&amp;gt;&lt;br /&gt;
    &amp;lt;layout title=&amp;quot;COM_HELLOWORLD_UPDHELLOWORLD_VIEW_DEFAULT_TITLE&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;message&amp;gt;COM_HELLOWORLD_UPDHELLOWORLD_VIEW_DEFAULT_DESC&amp;lt;/message&amp;gt;&lt;br /&gt;
    &amp;lt;/layout&amp;gt;&lt;br /&gt;
    &amp;lt;fields name=&amp;quot;params&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;fieldset name=&amp;quot;request&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;field name=&amp;quot;headingtxtcolor&amp;quot; type=&amp;quot;text&amp;quot; default=&amp;quot;#ff0000&amp;quot; size=&amp;quot;40&amp;quot;&lt;br /&gt;
                label=&amp;quot;COM_HELLOWORLD_UPDHELLOWORLD_FIELD_HEADINGTXTCOLOR_LABEL&amp;quot;&lt;br /&gt;
                description=&amp;quot;COM_HELLOWORLD_UPDHELLOWORLD_FIELD_HEADINGTXTCOLOR_DESC&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;field name=&amp;quot;headingbgcolor&amp;quot; type=&amp;quot;text&amp;quot; default=&amp;quot;#0000ff&amp;quot; size=&amp;quot;40&amp;quot;&lt;br /&gt;
                label=&amp;quot;COM_HELLOWORLD_UPDHELLOWORLD_FIELD_HEADINGBGCOLOR_LABEL&amp;quot;&lt;br /&gt;
                description=&amp;quot;COM_HELLOWORLD_UPDHELLOWORLD_FIELD_HEADINGBGCOLOR_DESC&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;/fieldset&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
&amp;lt;/metadata&amp;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;
This defines the parameter fields and allows for default values to be set amongst any other JForms elements.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update the model ==&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;UpdHelloWorld&#039;&#039; model sets up the data sent from the related form and allows for saving the data from the form into the database.  In the getItem method we will get the values from the parameters.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;site/models/updhelloworld.php&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;site/models/updhelloworld.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;
 &lt;br /&gt;
// Include dependancy of the main model form&lt;br /&gt;
jimport(&#039;joomla.application.component.modelform&#039;);&lt;br /&gt;
// import Joomla modelitem library&lt;br /&gt;
jimport(&#039;joomla.application.component.modelitem&#039;);&lt;br /&gt;
// Include dependancy of the dispatcher&lt;br /&gt;
jimport(&#039;joomla.event.dispatcher&#039;);&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * UpdHelloWorld Model&lt;br /&gt;
 */&lt;br /&gt;
class HelloWorldModelUpdHelloWorld extends JModelForm&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;
	/**&lt;br /&gt;
	 * Get the data for a new qualification&lt;br /&gt;
	 */&lt;br /&gt;
	public function getForm($data = array(), $loadData = true)&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
        $app = JFactory::getApplication(&#039;site&#039;);&lt;br /&gt;
&lt;br /&gt;
        // Get the form.&lt;br /&gt;
		$form = $this-&amp;gt;loadForm(&#039;com_helloworld.updhelloworld&#039;, &#039;updhelloworld&#039;, array(&#039;control&#039; =&amp;gt; &#039;jform&#039;, &#039;load_data&#039; =&amp;gt; true));&lt;br /&gt;
		if (empty($form)) {&lt;br /&gt;
			return false;&lt;br /&gt;
		}&lt;br /&gt;
		return $form;&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
&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;
	function &amp;amp;getItem()&lt;br /&gt;
	{&lt;br /&gt;
&lt;br /&gt;
		if (!isset($this-&amp;gt;_item))&lt;br /&gt;
		{&lt;br /&gt;
			$cache = JFactory::getCache(&#039;com_helloworld&#039;, &#039;&#039;);&lt;br /&gt;
			$id = $this-&amp;gt;getState(&#039;helloworld.id&#039;);&lt;br /&gt;
			$this-&amp;gt;_item =  $cache-&amp;gt;get($id);&lt;br /&gt;
			if ($this-&amp;gt;_item === false) {&lt;br /&gt;
&lt;br /&gt;
                // Menu parameters&lt;br /&gt;
		$input = JFactory::getApplication()-&amp;gt;input;&lt;br /&gt;
                $menuitemid = $input-&amp;gt;getInt( &#039;Itemid&#039; );  // this returns the menu id number so you can reference parameters&lt;br /&gt;
                $menu = JSite::getMenu();&lt;br /&gt;
                if ($menuitemid) {&lt;br /&gt;
                   $menuparams = $menu-&amp;gt;getParams( $menuitemid );&lt;br /&gt;
                   $headingtxtcolor = $menuparams-&amp;gt;get(&#039;headingtxtcolor&#039;);  // This shows how to get an individual parameter for use&lt;br /&gt;
                   $headingbgcolor = $menuparams-&amp;gt;get(&#039;headingbgcolor&#039;);  // This shows how to get an individual parameter for use&lt;br /&gt;
                }&lt;br /&gt;
                $this-&amp;gt;setState(&#039;menuparams&#039;, $menuparams);  // this sets the parameter values to the state for later use&lt;br /&gt;
&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		return $this-&amp;gt;_item;&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public function updItem($data)&lt;br /&gt;
	{&lt;br /&gt;
        // set the variables from the passed data&lt;br /&gt;
        $id = $data[&#039;id&#039;];&lt;br /&gt;
        $greeting = $data[&#039;greeting&#039;];&lt;br /&gt;
&lt;br /&gt;
        // set the data into a query to update the record&lt;br /&gt;
		$db		= $this-&amp;gt;getDbo();&lt;br /&gt;
		$query	= $db-&amp;gt;getQuery(true);&lt;br /&gt;
        $query-&amp;gt;clear();&lt;br /&gt;
		$query-&amp;gt;update(&#039; #__helloworld &#039;);&lt;br /&gt;
		$query-&amp;gt;set(&#039; greeting = &#039;.$db-&amp;gt;Quote($greeting) );&lt;br /&gt;
		$query-&amp;gt;where(&#039; id = &#039; . (int) $id );&lt;br /&gt;
&lt;br /&gt;
		$db-&amp;gt;setQuery((string)$query);&lt;br /&gt;
&lt;br /&gt;
        if (!$db-&amp;gt;query()) {&lt;br /&gt;
            JError::raiseError(500, $db-&amp;gt;getErrorMsg());&lt;br /&gt;
        	return false;&lt;br /&gt;
        } else {&lt;br /&gt;
        	return true;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Add a stylesheet file ==&lt;br /&gt;
&lt;br /&gt;
Create a new stylesheet file to contain the css code you want to use on your component.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;media/css/site.stylesheet.css&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;media/css/site.stylesheet.css&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
p {&lt;br /&gt;
   color: #000000;&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;
== Adding some language keys ==&lt;br /&gt;
&lt;br /&gt;
Add the last 4 lines to the &#039;&#039;admin/language/en-GB/en-GB.com_helloworld.sys.ini&#039;&#039; file to provide the text link for the parameter type display.  And being for the backend, it resides in the admin language folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;admin/language/en-GB/en-GB.com_helloworld.sys.ini&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;admin/language/en-GB/en-GB.com_helloworld.sys.ini&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
COM_HELLOWORLD=&amp;quot;Hello World!&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_DESCRIPTION=&amp;quot;This is the Hello World description&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_DESC=&amp;quot;This view displays a selected message&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_HELLOWORLD_VIEW_DEFAULT_TITLE=&amp;quot;Hello World&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_INSTALL_TEXT=&amp;quot;HelloWorld Install script&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_MENU=&amp;quot;Hello World!&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_POSTFLIGHT_DISCOVER_INSTALL_TEXT=&amp;quot;HelloWorld postlight discover install script&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_POSTFLIGHT_INSTALL_TEXT=&amp;quot;HelloWorld postflight install script&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_POSTFLIGHT_UNINSTALL_TEXT=&amp;quot;HelloWorld postflight uninstall script&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_POSTFLIGHT_UPDATE_TEXT=&amp;quot;HelloWorld postflight update script&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_PREFLIGHT_DISCOVER_INSTALL_TEXT=&amp;quot;HelloWorld preflight discover install script&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_PREFLIGHT_INSTALL_TEXT=&amp;quot;HelloWorld preflight install script&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_PREFLIGHT_UNINSTALL_TEXT=&amp;quot;HelloWorld preflight uninstall script&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_PREFLIGHT_UPDATE_TEXT=&amp;quot;HelloWorld preflight update script&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_UNINSTALL_TEXT=&amp;quot;HelloWorld Uninstall script&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_UPDATE_TEXT=&amp;quot;HelloWorld Update script&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_UPDHELLOWORLD_VIEW_DEFAULT_TITLE=&amp;quot;Update the Greeting&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_UPDHELLOWORLD_VIEW_DEFAULT_DESC=&amp;quot;Update greeting here&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_UPDHELLOWORLD_FIELD_HEADINGTXTCOLOR_LABEL=&amp;quot;Colour of Text&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_UPDHELLOWORLD_FIELD_HEADINGTXTCOLOR_DESC=&amp;quot;Set the colour of the text on the heading&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_UPDHELLOWORLD_FIELD_HEADINGBGCOLOR_LABEL=&amp;quot;Colour of Background&amp;quot;&lt;br /&gt;
COM_HELLOWORLD_UPDHELLOWORLD_FIELD_HEADINGBGCOLOR_DESC=&amp;quot;Set the colour of the background on the heading&amp;quot;&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;_populateState&#039;&#039; method is, by default, automatically called when a state is read by the &#039;&#039;getState&#039;&#039; method.&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;[[#script.php|script.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|site/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_02#site/helloworld.php|site/helloworld.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_02#site/controller.php|site/controller.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_18#site/updhelloworld.php|site/updhelloworld.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_18#site/controllers/updhelloworld.php|site/controllers/updhelloworld.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_18#site/controllers/index.html|site/controllers/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|site/views/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|site/views/helloworld/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_13#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!2.5_-_Part_18#site/views/updhelloworld/view.html.php|site/views/updhelloworld/view.html.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_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!2.5_-_Part_01#index.html|site/views/updhelloworld/tmpl/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_06#site/views/helloworld/tmpl/default.xml|site/views/helloworld/tmpl/default.xml]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_13#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!2.5_-_Part_18#site/views/updhelloworld/tmpl/default.xml|site/views/updhelloworld/tmpl/default.xml]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_18#site/views/updhelloworld/tmpl/default.php|site/views/updhelloworld/tmpl/default.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|site/models/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_13#site/models/helloworld.php|site/models/helloworld.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_18#site/models/updhelloworld.php|site/models/updhelloworld.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_18#site/models/forms/updhelloworld.xml|site/models/forms/updhelloworld.xml]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|site/models/forms/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|site/language/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_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!2.5_-_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!2.5_-_Part_01#index.html|admin/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_14#admin/access.xml|admin/access.xml]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_14#admin/config.xml|admin/config.xml]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_14#admin/helloworld.php|admin/helloworld.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_12#admin/controller.php|admin/controller.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|admin/sql/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_13#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!2.5_-_Part_06#admin/sql/uninstall.mysql.utf8.sql|admin/sql/uninstall.mysql.utf8.sql]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|admin/sql/updates/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|admin/sql/updates/mysql/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#admin/sql/updates/mysql/0.0.1.sql|admin/sql/updates/mysql/0.0.1.sql]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_06#admin/sql/install.mysql.utf8.sql|admin/sql/updates/mysql/0.0.6.sql]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_12#admin/sql/updates/mysql/0.0.12.sql|admin/sql/updates/mysql/0.0.12.sql]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_13#admin/sql/updates/mysql/0.0.13.sql|admin/sql/updates/mysql/0.0.13.sql]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|admin/models/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_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!2.5_-_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!2.5_-_Part_01#index.html|admin/models/forms/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_13#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!2.5_-_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!2.5_-_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!2.5_-_Part_11#admin/models/rules/greeting.php|admin/models/rules/greeting.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_14#admin/models/helloworld.php|admin/models/helloworld.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_09#admin/models/helloworlds.php|admin/models/helloworlds.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|admin/views/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|admin/views/helloworlds/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_14#admin/views/helloworlds/view.html.php|admin/views/helloworlds/view.html.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|admin/views/helloworlds/tmpl/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_11#admin/views/helloworlds/tmpl/default.php|admin/views/helloworlds/tmpl/default.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_07#admin/views/helloworlds/tmpl/default_head.php|admin/views/helloworlds/tmpl/default_head.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_07#admin/views/helloworlds/tmpl/default_body.php|admin/views/helloworlds/tmpl/default_body.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_07#admin/views/helloworlds/tmpl/default_foot.php|admin/views/helloworlds/tmpl/default_foot.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|admin/views/helloworld/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_14#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!2.5_-_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!2.5_-_Part_01#index.html|admin/views/helloworld/tmpl/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_13#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!2.5_-_Part_01#index.html|admin/helpers/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_14#admin/helpers/helloworld.php|admin/helpers/helloworld.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|admin/tables/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_14#admin/tables/helloworld.php|admin/tables/helloworld.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_13#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;[[#admin/language/en-GB/en-GB.com_helloworld.sys.ini|admin/language/en-GB/en-GB.com_helloworld.sys.ini]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_Part_01#index.html|admin/controllers/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_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!2.5_-_Part_11#admin/controllers/helloworlds.php|admin/controllers/helloworlds.php]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_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!2.5_-_Part_01#index.html|media/index.html]]&#039;&#039;&lt;br /&gt;
* &#039;&#039;[[Developing_a_Model-View-Controller_(MVC)_Component_for_Joomla!2.5_-_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://www.glennarkell.com/joomlaorg/com_helloworld_0.0.19.zip archive] and install it using the extension manager of Joomla. You can add a menu item of this component using the menu manager in the backend.&lt;br /&gt;
&lt;br /&gt;
Be sure to update your manifest to include the stylesheet folder within the media section.&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;2.5.0&amp;quot; method=&amp;quot;upgrade&amp;quot;&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
	&amp;lt;name&amp;gt;COM_HELLOWORLD&amp;lt;/name&amp;gt;&lt;br /&gt;
	&amp;lt;!-- The following elements are optional and free of formatting conttraints --&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;!--  The version string is recorded in the components table --&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;0.0.19&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;!-- The description is optional and defaults to the name --&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;COM_HELLOWORLD_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
	&amp;lt;!-- Runs on install/uninstall/update; New in 2.5 --&amp;gt;&lt;br /&gt;
	&amp;lt;scriptfile&amp;gt;script.php&amp;lt;/scriptfile&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; New in 2.5 --&amp;gt;&lt;br /&gt;
		&amp;lt;schemas&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;mysql&amp;quot;&amp;gt;sql/updates/mysql&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
		&amp;lt;/schemas&amp;gt;&lt;br /&gt;
	&amp;lt;/update&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
	&amp;lt;!-- Site Main File Copy Section --&amp;gt;&lt;br /&gt;
	&amp;lt;!-- Note the folder attribute: This attribute describes the folder&lt;br /&gt;
		to copy FROM in the package to install therefore files copied&lt;br /&gt;
		in this section are copied from /site/ in the package --&amp;gt;&lt;br /&gt;
	&amp;lt;files folder=&amp;quot;site&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;helloworld.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;controller.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;updhelloworld.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;controllers&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;css&amp;lt;/folder&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;!-- Administration Menu Section --&amp;gt;&lt;br /&gt;
		&amp;lt;menu img=&amp;quot;../media/com_helloworld/images/tux-16x16.png&amp;quot;&amp;gt;COM_HELLOWORLD_MENU&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Administration Main File Copy Section --&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Note the folder attribute: This attribute describes the folder&lt;br /&gt;
			to copy FROM in the package to install therefore files copied&lt;br /&gt;
			in this section are copied from /admin/ in the package --&amp;gt;&lt;br /&gt;
		&amp;lt;files folder=&amp;quot;admin&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;!-- Admin Main File Copy Section --&amp;gt;&lt;br /&gt;
			&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
			&amp;lt;filename&amp;gt;config.xml&amp;lt;/filename&amp;gt;&lt;br /&gt;
			&amp;lt;filename&amp;gt;access.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;!-- SQL files section --&amp;gt;&lt;br /&gt;
			&amp;lt;folder&amp;gt;sql&amp;lt;/folder&amp;gt;&lt;br /&gt;
			&amp;lt;!-- tables files section --&amp;gt;&lt;br /&gt;
			&amp;lt;folder&amp;gt;tables&amp;lt;/folder&amp;gt;&lt;br /&gt;
			&amp;lt;!-- models files section --&amp;gt;&lt;br /&gt;
			&amp;lt;folder&amp;gt;models&amp;lt;/folder&amp;gt;&lt;br /&gt;
			&amp;lt;!-- views files section --&amp;gt;&lt;br /&gt;
			&amp;lt;folder&amp;gt;views&amp;lt;/folder&amp;gt;&lt;br /&gt;
			&amp;lt;!-- controllers files section --&amp;gt;&lt;br /&gt;
			&amp;lt;folder&amp;gt;controllers&amp;lt;/folder&amp;gt;&lt;br /&gt;
			&amp;lt;!-- helpers files section --&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;
 &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.sys.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;
 &lt;br /&gt;
	&amp;lt;!-- UPDATESERVER DEFINITION --&amp;gt;&lt;br /&gt;
	&amp;lt;updateservers&amp;gt;&lt;br /&gt;
		&amp;lt;!-- Note: No spaces or linebreaks allowed between the server tags --&amp;gt;&lt;br /&gt;
		&amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;1&amp;quot; name=&amp;quot;HelloWorld Update Site&amp;quot;&amp;gt;http://yourdomain.com/update/helloworld-update.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
	&amp;lt;/updateservers&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/extension&amp;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;
Now when you view your &#039;&#039;&#039;hello-world&#039;&#039;&#039; update function via the front-end menu option, you will see the colours of the text and background being utilised.&lt;br /&gt;
&lt;br /&gt;
== Navigate ==&lt;br /&gt;
&lt;br /&gt;
[[Developing a Model-View-Controller (MVC) Component for Joomla!2.5 - Part 18|Prev: Example of a Frontend Update Function]]&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
*[[User:garkell|Glenn Arkell]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla! 1.6]]&lt;br /&gt;
[[Category:Joomla! 1.7]]&lt;br /&gt;
[[Category:Joomla! 2.5]]&lt;/div&gt;</summary>
		<author><name>Fredden</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Migrating_from_Joomla_1.5_to_Joomla_1.6%2B&amp;diff=62959</id>
		<title>Migrating from Joomla 1.5 to Joomla 1.6+</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Migrating_from_Joomla_1.5_to_Joomla_1.6%2B&amp;diff=62959"/>
		<updated>2011-11-15T20:29:36Z</updated>

		<summary type="html">&lt;p&gt;Fredden: /* Before You Get Started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With Joomla 1.6 officially released, there have been a lot of questions as to how to migrate or upgrade to Joomla 1.6 from 1.5. This guide will take you step-by-step through the general procedure of how to migrate to Joomla 1.6.&lt;br /&gt;
Please read through all the material as this is not a light undertaking.&lt;br /&gt;
=Before Upgrading=&lt;br /&gt;
Don&#039;t let the numerical closeness of 1.5 and 1.6, mislead you. Joomla 1.6 took three years to develop and has been a major undertaking. Countless hours have been spent by many volunteers from around the world to put it all together. Although much of the code is the same from Joomla 1.5, much of it has been written from the ground up, and the changes are comparable to the changes from Joomla 1.0 to 1.5.&lt;br /&gt;
Because the changes from Joomla 1.5 to 1.6 are so large and because of the massive effort put into getting Joomla 1.6 to where it is today, there is no core upgrade path, this is indeed a migration. In planned future releases of Joomla (which will be released every 6 months), such as Joomla 1.7, 1.8, etc, the changes from version to version will be more incremental and a core upgrade path is planned.&lt;br /&gt;
Now that Joomla 1.6 is finally here and stable, a community initiative led by the developers of Joomla is turning towards [http://extensions.joomla.org/extensions/migration-a-conversion/joomla-migration/11658 jUpgrade] (a 3rd party Joomla extension on the JED originally developed by Matias Aguirre) for help and to help. Many of Joomla&#039;s developers (who are all volunteers that freely contribute their time) are volunteering to put the finishing touches on [http://extensions.joomla.org/extensions/migration-a-conversion/joomla-migration/11658 jUpgrade].&lt;br /&gt;
&lt;br /&gt;
[http://extensions.joomla.org/extensions/migration-a-conversion/joomla-migration/11658 jUpgrade] allows you to migrate from Joomla 1.5 to 1.6.&lt;br /&gt;
Lets get started!&lt;br /&gt;
==Review the Requirements==&lt;br /&gt;
Please, please save yourself (and possibly your clients) a lot of headaches and make sure that your server (and in the case of jUpgrade, your browser too) is up for the task.  please review the [http://docs.joomla.org/Joomla_1.6_technical_requirements technical requirements for Joomla! 1.6].  Please review the [http://www.matware.com.ar/joomla/jupgrade.html requirements for jUpgrade] as well.&lt;br /&gt;
==Before You Get Started==&lt;br /&gt;
Before you get started, there are a few things that you are going to have to check and/or think about:&lt;br /&gt;
# Is your Joomla 1.5 version up to date? The most up-to-date version of Joomla 1.5 is 1.5.25. If your version is not up-to-date, upgrade to 1.5.25 before migrating, especially if you are running Joomla 1.5.11 or lower.&lt;br /&gt;
# Do all your extensions have Joomla 1.6 native versions? At the time of the writing of this tutorial there are 108 available on the JED. Please note that jUpgrade is not currently able to upgrade Joomla 3rd party extensions, so those will have to be done via their respective upgrade procedures. This is however a work in progress.&lt;br /&gt;
# Have you modified any core files? Any changes that you have made to core files in Joomla will be lost so please be forewarned.&lt;br /&gt;
# Is there a Joomla 1.6 compatible template available from your template provider? If not, do you feel comfortable making the changes yourself? There are a couple good resources:&lt;br /&gt;
## [http://community.joomla.org/blogs/community/1257-16-templates.html Chad Windnagle&#039;s Joomla Community blog]&lt;br /&gt;
## [http://www.slideshare.net/chrisdavenport/template-changes-for-joomla-16 Chris Davenport&#039;s &amp;quot;Template Changes for Joomla 1.6&amp;quot; presentation]&lt;br /&gt;
## [[Upgrading a Joomla 1.5 template to Joomla 1.6|Joomla&#039;s Docs Template Tutorial]] Please note that although jUpgrade is not able to currently upgrade templates, the developers are working hard at implementing the feature.&lt;br /&gt;
# Is your language pack available in Joomla 1.6?  [http://community.joomla.org/translations/joomla-16-translations.html Find your Joomla1 1.6 Translation].&lt;br /&gt;
# Do you have folder or file permissions issues in your Joomla 1.5 installation?&lt;br /&gt;
# Do you NEED to migrate to Joomla 1.6? Joomla 1.5 is powerful and very mature. For many people there is not a need to rush into Joomla 1.6. Joomla will continue to support Joomla 1.5 at least till April 2012, releasing security updates and bug squashing updates when needed.&lt;br /&gt;
#: The two main features of Joomla 1.6 that makes it superior to Joomla 1.5 are: Access Control List (ACL) and nested categories. Gone are the days of simply having guests, registered users, authors, and editors, without being able to specify what they can and can&#039;t do in the frontend. Also, with 1.6 you can have more flexibility of organizing (and therefore displaying) your content with nicely organized categories within categories. No more being restricted to the section &amp;gt;&amp;gt; category structure. Those are all great things to have (especially the ACL), however, for many 1.5 users, it isn&#039;t needed. The main point is to decide for yourself.&lt;br /&gt;
#: For a massive list of changes from Joomla 1.5 to Joomla 1.6, please see [[What&#039;s new in Joomla 1.6]].&lt;br /&gt;
&lt;br /&gt;
==Backup, Backup, Backup==&lt;br /&gt;
Skipping this part is perhaps the biggest mistake you can make. If you have a proper backup (or several) you can always revert back if needed. However, if you don&#039;t properly backup your site and something goes wrong, you are going to waste a lot of valuable time, and sometimes a lot money, getting things back to the way they were. So please backup!&lt;br /&gt;
&lt;br /&gt;
==== Using Akeeba to backup ====&lt;br /&gt;
&lt;br /&gt;
* Akeeba Backup produces a .jpa file&lt;br /&gt;
&lt;br /&gt;
* The .jpa file contains all the folders/files and database files.&lt;br /&gt;
&lt;br /&gt;
* The .jpa file also contains an installer&lt;br /&gt;
&lt;br /&gt;
* Kickstart.php (from Akeeba) unpacks the .jpa file&lt;br /&gt;
&lt;br /&gt;
* You then run the installer and install your site like a Joomla install.&lt;br /&gt;
&lt;br /&gt;
* The installer has an option to change the configuration for restoring to a different location &lt;br /&gt;
&lt;br /&gt;
After you create the Database for your Joomla download and install Akeeba, it can be download from [http://extensions.joomla.org/extensions/access-a-security/site-security/backup/1606 Joomla extension directory].  There is a link to full instructions there as well.&lt;br /&gt;
&lt;br /&gt;
=Upgrading=&lt;br /&gt;
==Download jUpgrade==&lt;br /&gt;
Download the [http://www.matware.com.ar/downloads/joomla/jupgrade.html latest version of jUpgrade]. It is highly advisible, especially when development still is progressing, to always use the latest available version!&lt;br /&gt;
&lt;br /&gt;
==Optional Testing Environment==&lt;br /&gt;
If you are really nervous by this point and your heart is beating fast, then you should probably set up a testing environment.&lt;br /&gt;
&lt;br /&gt;
=== Install XAMPP ===&lt;br /&gt;
XAMPP is an easy-to-install package that bundles the Apache web server, PHP, XDEBUG, and the MySql database. This allows you to create the environment you need to run Joomla! on your local machine. The latest version of XAMPP is available at [http://www.apachefriends.org/en/xampp.html the XAMPP web site]. Downloads are available for Linux, Windows, Mac OS X and Solaris. Download the package for your platform. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Important Note Regarding XAMPP and Skype:&#039;&#039; Apache and Skype both use port 80 as an alternative for incoming connections. If you use Skype, go into the Tools-Options-Advanced-Connection panel and deselect the &amp;quot;Use 80 and 443 as alternatives for incoming connections&amp;quot; option. If Apache starts as a service, it will take 80 before Skype starts and you will not see a problem. But, to be safe, disable the option in Skype.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Update&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;As of August 5, 2010, XDebug has been updated (to version 2.1) which fixes some important bugs (for example, watching local variables for nesting functions). The latest XAMPP package (1.7.3) now includes this new version of XDebug. If you just want to update XDebug, you can download the latest module from [http://www.xdebug.org]. There is a handy website that tells you which XDebug binary you need, depending on your phpinfo() information [http://xdebug.org/find-binary.php here]. To use it, you just copy the output of your phpinfo() display and paste it into the form on the site.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===== Installation on Windows =====&lt;br /&gt;
&lt;br /&gt;
Installation for Windows is very simple. You can use the XAMPP installer executable (for example, &amp;quot;xampp-win32-1.7.3-installer.exe&amp;quot;). Detailed installation instructions for Windows are available [http://www.apachefriends.org/en/xampp-windows.html here]. &lt;br /&gt;
&lt;br /&gt;
For Windows, it is recommended to install XAMPP in &amp;quot;c:\xampp&amp;quot; (not in &amp;quot;c:\program files&amp;quot;). If you do this, your Joomla! (and any other local web site folders) will go into the folder &amp;quot;c:\xampp\htdocs&amp;quot;. (By convention, all web content goes under the &amp;quot;htdocs&amp;quot; folder.)&lt;br /&gt;
&lt;br /&gt;
If you have multiple http servers (like IIS) you can change the xampp listening port. In &amp;lt;xamppDir&amp;gt;\apache\conf\httpd.conf, modify the line Listen 80 to Listen [portnumber] (ex: &amp;quot;Listen 8080&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
===== Installation on Linux =====&lt;br /&gt;
&lt;br /&gt;
Install xammp&lt;br /&gt;
Open Terminal and enter: &lt;br /&gt;
 sudo tar xvfz xampp-linux-1.7.3a.tar.gz -C /opt&lt;br /&gt;
(replace &#039;&#039;xampp-linux-1.7.3a.tar.gz&#039;&#039; with the version of xammp you downloaded).&lt;br /&gt;
It has been reported that the MYSQL database of xampp 1.7.4 does not work with Joomla 1.5.22&lt;br /&gt;
&lt;br /&gt;
This installs ... Apache2, mysql and php5 as well as an ftp server.&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;sudo /opt/lampp/lampp start&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
 &#039;&#039;sudo /opt/lampp/lampp stop&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
starts/stops all the services&lt;br /&gt;
&lt;br /&gt;
==== Test your xammp localhost server ====&lt;br /&gt;
Open your Browser and point it to&lt;br /&gt;
 http://localhost&lt;br /&gt;
The index.php will redirect to&lt;br /&gt;
 http://localhost/xammp&lt;br /&gt;
&lt;br /&gt;
There you will find instructions on how to change default usernames/passwords.  On a PC that does not serve files to the Internet or LAN then changing the defaults is personal choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install jUpgrade ==&lt;br /&gt;
Go to your Joomla backend. e.g. www.yoursite.com/administrator&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Extensions&#039;&#039;&#039; &amp;gt;&amp;gt; &#039;&#039;&#039;Install/Uninstall&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Installjupgrade.png|alt=Installing jUpgrade]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Browse&#039;&#039;&#039; &amp;gt;&amp;gt; &#039;&#039;&#039;Select com_jupgrade&#039;&#039;&#039; &amp;gt;&amp;gt; &#039;&#039;&#039;Upload File &amp;amp; Install&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:browse.png|Browse and Upload Component]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Installjupgrade2.png|alt=Installing jUpgrade]]&lt;br /&gt;
&lt;br /&gt;
== Enable Mootools Upgrade Plugin ==&lt;br /&gt;
# Go to Extensions | Plugin Manager&lt;br /&gt;
# Search for &amp;quot;System - Mootools Upgrade&amp;quot;&lt;br /&gt;
# Enable the plugin&lt;br /&gt;
It is important that this plugin is installed and that it has been set to enabled, as the proper functioning of jUpgrade depends on it.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
As of jUpgrade version 1.1.1, support is present to migrate to Joomla! 1.6, Joomla! 1.7, and an old Molajo build.  As well, for jUpgrade to be successful, you must configure your current table prefix prior to beginning the migration.  The following are the options that can be configured with jUpgrade:&lt;br /&gt;
&lt;br /&gt;
Global:&lt;br /&gt;
* Distribution - Select whether to migrate to Joomla! 1.6, 1.7, or Molajo&lt;br /&gt;
* Prefix for old database - Your current table prefix&lt;br /&gt;
* Prefix for new database - Your selected table prefix for your migrated site&lt;br /&gt;
&lt;br /&gt;
Skips:&lt;br /&gt;
* Skip checks - Skip pre-migration checks&lt;br /&gt;
* Skip download - Skip downloading the package (Note: Must have a package already downloaded to your temp folder or set this and Skip Decompress if set to yes)&lt;br /&gt;
* Skip decompress - Skip decompressing the downloaded package (Note: Must have a package already downloaded and decompressed to site_root/jupgrade if set to Yes)&lt;br /&gt;
&lt;br /&gt;
Templates:&lt;br /&gt;
* Keep original positions - Keep the currently defined positions for modules&lt;br /&gt;
&lt;br /&gt;
Debug:&lt;br /&gt;
* Enable Debug - Enable this to have messages displayed below the migration process concerning the progress, helpful if having issues&lt;br /&gt;
&lt;br /&gt;
[[Image:Jupgrade_options.png|alt=jUpgrade 1.1.1 Options]]&lt;br /&gt;
&lt;br /&gt;
== Migration ==&lt;br /&gt;
&#039;&#039;&#039;Components&#039;&#039;&#039; &amp;gt;&amp;gt; &#039;&#039;&#039;jUpgrade&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Accessjupgrade.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Upgrade&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Startjupgrade.png|alt=Start jUpgrade]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Runjupgrade.png|alt=Run jUpgrade]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not exit the screen&#039;&#039;&#039; until everything has finished loading. Scroll down to check if finished.&lt;br /&gt;
&lt;br /&gt;
[[Image:Jupgradefinished.png|alt=jUpgrade Finished]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Success!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please note that jUpgrade currently does not migrate templates, only default templates.&lt;br /&gt;
&lt;br /&gt;
==Behind the Scenes==&lt;br /&gt;
As explained in the background information, the changes from Joomla 1.5 and 1.6 are quite significant.  The fact that jUpgrade creates a new Joomla 1.6 installation for us is, in my opinion, pure genius. If the migration process was not 100% successful, your Joomla 1.5 is still perfectly intact and none of your users are affected. You have an opportunity to check out your site both in the frontend and the backend to make sure everything is up to par.  So what actually happens? jUpgrade downloads the latest version of Joomla 1.6 for you to the jupgrade directory (which it creates) in the root folder of your Joomla 1.5 installation. It then extracts all the files from the download. Once extraction has completed, jUpgrade installs Joomla 1.6 and then proceeds to migrate your old database to the new Joomla 1.6 database which it has created.&lt;br /&gt;
Your Joomla 1.6 site will be installed in www.mysites.com/jupgrade assuming that your Joomla 1.5 installation is in your html root.&lt;br /&gt;
==Check Your Joomla! 1.6==&lt;br /&gt;
Please do a full site review of your Joomla 1.6 installation and make sure everything is set up properly.&lt;br /&gt;
Your Joomla 1.6 site will be installed in www.mysites.com/jupgrade assuming that your Joomla 1.5 installation is in your html root.&lt;br /&gt;
Here is a general checklist to check:&lt;br /&gt;
* Banners&lt;br /&gt;
* Categories&lt;br /&gt;
* Contacts&lt;br /&gt;
* Content&lt;br /&gt;
* Menus&lt;br /&gt;
* Modules&lt;br /&gt;
* Newsfeeds&lt;br /&gt;
* Users&lt;br /&gt;
* Weblinks&lt;br /&gt;
* Templates - Work is currently being done on the template upgrade feature of jUpdate and it is not yet fully functional. Your module positions may have to be adjusted in module manager.&lt;br /&gt;
==Backup Joomla! 1.6==&lt;br /&gt;
If everything looks good to go, then let&#039;s backup the new Joomla 1.6 installation.&lt;br /&gt;
==Overview of the Rest of the Process==&lt;br /&gt;
Quick overview of what we are going to try to do now:&lt;br /&gt;
# Relocate our Joomla 1.5 installation to a subfolder as a &amp;quot;just in case&amp;quot;.&lt;br /&gt;
# Relocate our Joomla 1.6 installation to the html folder.&lt;br /&gt;
&#039;It should happen in this order&#039; If you do it in reverse order, the Joomla 1.6 files will get mixed with the Joomla 1.5 files (many of 1.5 files will be overwritten) and you will have a big mess!  Your site will likely still work, but it&#039;s a security ticking time bomb waiting to go off.&lt;br /&gt;
&lt;br /&gt;
=Going Live=&lt;br /&gt;
Next log onto your host&#039;s file manager (e.g. cPanel, Plesk, etc) or an FTP Client, however, preferably a file manager.&lt;br /&gt;
The general procedure is (it should take about 30 seconds if you review the steps before you start):&lt;br /&gt;
# Create a subfolder (e.g. myoldsite) for the Joomla 1.5 installation in your html root, e.g. public_html/myoldsite&lt;br /&gt;
# Select all the folders (***except the jupgrade folder***) and files in the html root and move them into the Joomla 1.5 subfolder (e.g. myoldsite)&lt;br /&gt;
# Select all the folders and files in the jupgrade folder and move them to the html root&lt;br /&gt;
# Double check the frontend and backend&lt;br /&gt;
&lt;br /&gt;
=How to Manually Migrate Joomla=&lt;br /&gt;
If Jupgrade did not work out for you like many of us, you might want to consider manual upgrade. &#039;&#039;&#039;Be warned, however, that this process is very tedious (especially see step 6 below), and the procedure is not well tested as of yet (if at all)&#039;&#039;&#039;. So just like the Jupgrade method, you will want to backup your database just in case. Before upgrading you should check to make sure every extension you want is joomla 1.6/1.7 compatible. Also back up your directory files just in case and keep a list of the extensions you used.&lt;br /&gt;
&lt;br /&gt;
Now onto the upgrade; please note that the following procedure should only be chosen if all else fails, and requires a good working knowledge of SQL! See the last paragraph of this section for a possibly less tedious alternative to doing steps 1, 2, 6 and 7) :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 0:&#039;&#039;&#039; First of all, as always before big changes, backup all your data; that includes all files as well as exporting all database tables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1:&#039;&#039;&#039; If you want, you can convert the prefixes of all the tables in your database. This is especially useful if you would like to keep your 1.5 database in parallel to your 1.6/1.7 installation, at least for the transition period. It is best done using a script, here is one that worked pretty well as seen on [http://www.nilpo.com/2009/01/web-development/mysql-table-prefix-changer-tool/ Nilop]. &#039;&#039;&#039;Beware&#039;&#039;&#039;, however, that executing this script will stop your old site from working because after the prefix conversion, your old installation can&#039;t access the database anymore (it will still try to access the tables by their old prefix)! To enable it again, import the database export created in step 0 after the script has finished running. Joomla 1.5 usually has the prefix of &amp;quot;jos&amp;quot; which you can convert to the prefix &amp;quot;jml&amp;quot; or &amp;quot;j16&amp;quot;, for example. So using your ftp install the php converter script onto the root of your site. It should be at the url &#039;&#039;&#039;Mysite.com&#039;&#039;&#039;/prefix.php which all you need to do is fill in the database information. After this you have all the tables nicely converted to the new prefix.&lt;br /&gt;
&lt;br /&gt;
[[File:Changer.JPG|center]]&lt;br /&gt;
&lt;br /&gt;
Notice in the following screen shot that the sql data is &amp;quot;jos&amp;quot;:&lt;br /&gt;
[[File:Tables.JPG|thumb|center|500px]]&lt;br /&gt;
&lt;br /&gt;
You want it converted to &amp;quot;jml&amp;quot; as seen here:&lt;br /&gt;
[[File:Prefix.JPG|thumb|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2:&#039;&#039;&#039; Export all the database tables you would like to use on your joomla 1.6+ site. Usually this is things like content and components.&lt;br /&gt;
&lt;br /&gt;
[[File:Export.JPG|thumb|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3:&#039;&#039;&#039; Uninstall your old site including the database, files, and directories that are associated with joomla. Or if you would rather just test the upgrade, skip step this step and create a new directory for your joomla 1.6+ site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4:&#039;&#039;&#039; Install the new joomla which is done through a ftp or a cpanel. If you have no database associated with it, install a new database and user.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 5:&#039;&#039;&#039; Install the components and other extensions you would have used before onto your new joomla 1.6+ site. This is done first, in order for none of your old database tables to be overwritten later.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 6: &#039;&#039;&#039; Convert the .sql file with your 1.5 tables to an sql file compatible with the version you want to upgrade to. That is a very tedious step - you&#039;ll have to check the database schema changes between the 1.5 you&#039;re upgrading from and the 1.6.+ version you&#039;re upgrading to, and adapt the sql file accordingly. &#039;&#039;&#039;Note:&#039;&#039;&#039; This step could use a more detailed description, if you have ever done a manual Joomla migration, please help and share your experiences and knowledge here!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 7:&#039;&#039;&#039; Import the .sql file from your computer onto your joomla 1.6+ database. It is also possible that some extensions may have the possibility of changes to the sql tables when they upgraded there extension to joomla 1.6+. If this is the case, it is recommended that you ask the developer of that extension for help with knowing what changes to the sql were made.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Keep in mind!&#039;&#039;&#039; It is possible for settings to be lost based on how the component stored the settings. From personal experience it worked just fine, but you may want to review the settings of each component.&lt;br /&gt;
&lt;br /&gt;
For an easier way to migrate articles, categories/sections, contacts, images, and users, be sure to use [http://extensions.joomla.org/extensions/migration-a-conversion/data-import-a-export/12816 J2XML] for exporting and [http://extensions.joomla.org/extensions/migration-a-conversion/joomla-migration/15807 J2XML Importer] for importing the data.&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
* first check, if you have php5 at least. (use phpinfo() or /usr/bin/php --version)&lt;br /&gt;
* &#039;&#039;&#039;jUpgrade cannot download Joomla 1.6 package?&#039;&#039;&#039; - When the download fails (timeouts, javascript issues, etc) you can download it manually here: http://anonymous:@joomlacode.org/svn/joomla/development/branches/jupgrade/pack/joomla16.zip and put this file into your ROOT/tmp directory. Then, in the preferences of jUpgrade, you must set &#039;Skip Download&#039; to &#039;Yes&#039;. After that, run the upgrade again.&lt;br /&gt;
* &#039;&#039;&#039;Are you getting errors with the progress bar in Internet Explorer (Windows XP)?&#039;&#039;&#039; - Use Firefox: http://www.mozilla.com/en-US/firefox/&lt;br /&gt;
* Go through the Requirements and Before You Get Started sections above and double check everything!&lt;br /&gt;
* &#039;&#039;&#039;Report Bugs:&#039;&#039;&#039; http://matware.com.ar/foros/jupgrade.html&lt;br /&gt;
* &#039;&#039;&#039;Support:&#039;&#039;&#039; http://matware.com.ar/foros/jupgrade.html&lt;br /&gt;
==How You can Contribute &amp;amp; Help==&lt;br /&gt;
Creating an extension as significant as jUpgrade requires an enormous amount of time and effort considering the major structural changes between Joomla 1.5 and 1.6. Add to this the fact that during each release of Joomla 1.6 betas, the extension would have to be modified to work with the new changes between releases, and all of a sudden it&#039;s too hard for any one person to complete in a short period of time (especially when you are not being paid).&lt;br /&gt;
With this being said, it&#039;s time to step up and make a difference, whether big or small. Have you profited from Joomla in the last year? Are you excited about the future of Joomla? Would you like to contribute back and show your gratitude? Now you can in this project!&lt;br /&gt;
We, as part of the Joomla community, are calling on the entire Joomla community to help out in whatever way you can. You don&#039;t have to be a master developer, just go through this tutorial on a test site and if you come across any bugs, report it. If you know how to fix it, create a patch for it. If you are a master developer, step up to the challenge.&lt;br /&gt;
* You can report bugs here: http://matware.com.ar/foros/jupgrade.html&lt;br /&gt;
* You can volunteer and ask questions about volunteering here: http://www.matware.com.ar/forum/projects/jupgrade/volunteer-information.html&lt;br /&gt;
[[Category:Joomla! 1.6]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Migration]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Fredden</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Migrating_from_Joomla_1.5_to_Joomla_1.6%2B&amp;diff=62958</id>
		<title>Migrating from Joomla 1.5 to Joomla 1.6+</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Migrating_from_Joomla_1.5_to_Joomla_1.6%2B&amp;diff=62958"/>
		<updated>2011-11-15T20:29:13Z</updated>

		<summary type="html">&lt;p&gt;Fredden: /* Before You Get Started */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With Joomla 1.6 officially released, there have been a lot of questions as to how to migrate or upgrade to Joomla 1.6 from 1.5. This guide will take you step-by-step through the general procedure of how to migrate to Joomla 1.6.&lt;br /&gt;
Please read through all the material as this is not a light undertaking.&lt;br /&gt;
=Before Upgrading=&lt;br /&gt;
Don&#039;t let the numerical closeness of 1.5 and 1.6, mislead you. Joomla 1.6 took three years to develop and has been a major undertaking. Countless hours have been spent by many volunteers from around the world to put it all together. Although much of the code is the same from Joomla 1.5, much of it has been written from the ground up, and the changes are comparable to the changes from Joomla 1.0 to 1.5.&lt;br /&gt;
Because the changes from Joomla 1.5 to 1.6 are so large and because of the massive effort put into getting Joomla 1.6 to where it is today, there is no core upgrade path, this is indeed a migration. In planned future releases of Joomla (which will be released every 6 months), such as Joomla 1.7, 1.8, etc, the changes from version to version will be more incremental and a core upgrade path is planned.&lt;br /&gt;
Now that Joomla 1.6 is finally here and stable, a community initiative led by the developers of Joomla is turning towards [http://extensions.joomla.org/extensions/migration-a-conversion/joomla-migration/11658 jUpgrade] (a 3rd party Joomla extension on the JED originally developed by Matias Aguirre) for help and to help. Many of Joomla&#039;s developers (who are all volunteers that freely contribute their time) are volunteering to put the finishing touches on [http://extensions.joomla.org/extensions/migration-a-conversion/joomla-migration/11658 jUpgrade].&lt;br /&gt;
&lt;br /&gt;
[http://extensions.joomla.org/extensions/migration-a-conversion/joomla-migration/11658 jUpgrade] allows you to migrate from Joomla 1.5 to 1.6.&lt;br /&gt;
Lets get started!&lt;br /&gt;
==Review the Requirements==&lt;br /&gt;
Please, please save yourself (and possibly your clients) a lot of headaches and make sure that your server (and in the case of jUpgrade, your browser too) is up for the task.  please review the [http://docs.joomla.org/Joomla_1.6_technical_requirements technical requirements for Joomla! 1.6].  Please review the [http://www.matware.com.ar/joomla/jupgrade.html requirements for jUpgrade] as well.&lt;br /&gt;
==Before You Get Started==&lt;br /&gt;
Before you get started, there are a few things that you are going to have to check and/or think about:&lt;br /&gt;
# Is your Joomla 1.5 version up to date? The most up-to-date version of Joomla 1.5 is 1.5.25. If your version is not up-to-date, upgrade to 1.5.24 before migrating, especially if you are running Joomla 1.5.11 or lower.&lt;br /&gt;
# Do all your extensions have Joomla 1.6 native versions? At the time of the writing of this tutorial there are 108 available on the JED. Please note that jUpgrade is not currently able to upgrade Joomla 3rd party extensions, so those will have to be done via their respective upgrade procedures. This is however a work in progress.&lt;br /&gt;
# Have you modified any core files? Any changes that you have made to core files in Joomla will be lost so please be forewarned.&lt;br /&gt;
# Is there a Joomla 1.6 compatible template available from your template provider? If not, do you feel comfortable making the changes yourself? There are a couple good resources:&lt;br /&gt;
## [http://community.joomla.org/blogs/community/1257-16-templates.html Chad Windnagle&#039;s Joomla Community blog]&lt;br /&gt;
## [http://www.slideshare.net/chrisdavenport/template-changes-for-joomla-16 Chris Davenport&#039;s &amp;quot;Template Changes for Joomla 1.6&amp;quot; presentation]&lt;br /&gt;
## [[Upgrading a Joomla 1.5 template to Joomla 1.6|Joomla&#039;s Docs Template Tutorial]] Please note that although jUpgrade is not able to currently upgrade templates, the developers are working hard at implementing the feature.&lt;br /&gt;
# Is your language pack available in Joomla 1.6?  [http://community.joomla.org/translations/joomla-16-translations.html Find your Joomla1 1.6 Translation].&lt;br /&gt;
# Do you have folder or file permissions issues in your Joomla 1.5 installation?&lt;br /&gt;
# Do you NEED to migrate to Joomla 1.6? Joomla 1.5 is powerful and very mature. For many people there is not a need to rush into Joomla 1.6. Joomla will continue to support Joomla 1.5 at least till April 2012, releasing security updates and bug squashing updates when needed.&lt;br /&gt;
#: The two main features of Joomla 1.6 that makes it superior to Joomla 1.5 are: Access Control List (ACL) and nested categories. Gone are the days of simply having guests, registered users, authors, and editors, without being able to specify what they can and can&#039;t do in the frontend. Also, with 1.6 you can have more flexibility of organizing (and therefore displaying) your content with nicely organized categories within categories. No more being restricted to the section &amp;gt;&amp;gt; category structure. Those are all great things to have (especially the ACL), however, for many 1.5 users, it isn&#039;t needed. The main point is to decide for yourself.&lt;br /&gt;
#: For a massive list of changes from Joomla 1.5 to Joomla 1.6, please see [[What&#039;s new in Joomla 1.6]].&lt;br /&gt;
&lt;br /&gt;
==Backup, Backup, Backup==&lt;br /&gt;
Skipping this part is perhaps the biggest mistake you can make. If you have a proper backup (or several) you can always revert back if needed. However, if you don&#039;t properly backup your site and something goes wrong, you are going to waste a lot of valuable time, and sometimes a lot money, getting things back to the way they were. So please backup!&lt;br /&gt;
&lt;br /&gt;
==== Using Akeeba to backup ====&lt;br /&gt;
&lt;br /&gt;
* Akeeba Backup produces a .jpa file&lt;br /&gt;
&lt;br /&gt;
* The .jpa file contains all the folders/files and database files.&lt;br /&gt;
&lt;br /&gt;
* The .jpa file also contains an installer&lt;br /&gt;
&lt;br /&gt;
* Kickstart.php (from Akeeba) unpacks the .jpa file&lt;br /&gt;
&lt;br /&gt;
* You then run the installer and install your site like a Joomla install.&lt;br /&gt;
&lt;br /&gt;
* The installer has an option to change the configuration for restoring to a different location &lt;br /&gt;
&lt;br /&gt;
After you create the Database for your Joomla download and install Akeeba, it can be download from [http://extensions.joomla.org/extensions/access-a-security/site-security/backup/1606 Joomla extension directory].  There is a link to full instructions there as well.&lt;br /&gt;
&lt;br /&gt;
=Upgrading=&lt;br /&gt;
==Download jUpgrade==&lt;br /&gt;
Download the [http://www.matware.com.ar/downloads/joomla/jupgrade.html latest version of jUpgrade]. It is highly advisible, especially when development still is progressing, to always use the latest available version!&lt;br /&gt;
&lt;br /&gt;
==Optional Testing Environment==&lt;br /&gt;
If you are really nervous by this point and your heart is beating fast, then you should probably set up a testing environment.&lt;br /&gt;
&lt;br /&gt;
=== Install XAMPP ===&lt;br /&gt;
XAMPP is an easy-to-install package that bundles the Apache web server, PHP, XDEBUG, and the MySql database. This allows you to create the environment you need to run Joomla! on your local machine. The latest version of XAMPP is available at [http://www.apachefriends.org/en/xampp.html the XAMPP web site]. Downloads are available for Linux, Windows, Mac OS X and Solaris. Download the package for your platform. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Important Note Regarding XAMPP and Skype:&#039;&#039; Apache and Skype both use port 80 as an alternative for incoming connections. If you use Skype, go into the Tools-Options-Advanced-Connection panel and deselect the &amp;quot;Use 80 and 443 as alternatives for incoming connections&amp;quot; option. If Apache starts as a service, it will take 80 before Skype starts and you will not see a problem. But, to be safe, disable the option in Skype.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Update&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;As of August 5, 2010, XDebug has been updated (to version 2.1) which fixes some important bugs (for example, watching local variables for nesting functions). The latest XAMPP package (1.7.3) now includes this new version of XDebug. If you just want to update XDebug, you can download the latest module from [http://www.xdebug.org]. There is a handy website that tells you which XDebug binary you need, depending on your phpinfo() information [http://xdebug.org/find-binary.php here]. To use it, you just copy the output of your phpinfo() display and paste it into the form on the site.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===== Installation on Windows =====&lt;br /&gt;
&lt;br /&gt;
Installation for Windows is very simple. You can use the XAMPP installer executable (for example, &amp;quot;xampp-win32-1.7.3-installer.exe&amp;quot;). Detailed installation instructions for Windows are available [http://www.apachefriends.org/en/xampp-windows.html here]. &lt;br /&gt;
&lt;br /&gt;
For Windows, it is recommended to install XAMPP in &amp;quot;c:\xampp&amp;quot; (not in &amp;quot;c:\program files&amp;quot;). If you do this, your Joomla! (and any other local web site folders) will go into the folder &amp;quot;c:\xampp\htdocs&amp;quot;. (By convention, all web content goes under the &amp;quot;htdocs&amp;quot; folder.)&lt;br /&gt;
&lt;br /&gt;
If you have multiple http servers (like IIS) you can change the xampp listening port. In &amp;lt;xamppDir&amp;gt;\apache\conf\httpd.conf, modify the line Listen 80 to Listen [portnumber] (ex: &amp;quot;Listen 8080&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
===== Installation on Linux =====&lt;br /&gt;
&lt;br /&gt;
Install xammp&lt;br /&gt;
Open Terminal and enter: &lt;br /&gt;
 sudo tar xvfz xampp-linux-1.7.3a.tar.gz -C /opt&lt;br /&gt;
(replace &#039;&#039;xampp-linux-1.7.3a.tar.gz&#039;&#039; with the version of xammp you downloaded).&lt;br /&gt;
It has been reported that the MYSQL database of xampp 1.7.4 does not work with Joomla 1.5.22&lt;br /&gt;
&lt;br /&gt;
This installs ... Apache2, mysql and php5 as well as an ftp server.&lt;br /&gt;
 &lt;br /&gt;
 &#039;&#039;sudo /opt/lampp/lampp start&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
and&lt;br /&gt;
 &#039;&#039;sudo /opt/lampp/lampp stop&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
starts/stops all the services&lt;br /&gt;
&lt;br /&gt;
==== Test your xammp localhost server ====&lt;br /&gt;
Open your Browser and point it to&lt;br /&gt;
 http://localhost&lt;br /&gt;
The index.php will redirect to&lt;br /&gt;
 http://localhost/xammp&lt;br /&gt;
&lt;br /&gt;
There you will find instructions on how to change default usernames/passwords.  On a PC that does not serve files to the Internet or LAN then changing the defaults is personal choice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install jUpgrade ==&lt;br /&gt;
Go to your Joomla backend. e.g. www.yoursite.com/administrator&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Extensions&#039;&#039;&#039; &amp;gt;&amp;gt; &#039;&#039;&#039;Install/Uninstall&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Installjupgrade.png|alt=Installing jUpgrade]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Browse&#039;&#039;&#039; &amp;gt;&amp;gt; &#039;&#039;&#039;Select com_jupgrade&#039;&#039;&#039; &amp;gt;&amp;gt; &#039;&#039;&#039;Upload File &amp;amp; Install&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:browse.png|Browse and Upload Component]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Installjupgrade2.png|alt=Installing jUpgrade]]&lt;br /&gt;
&lt;br /&gt;
== Enable Mootools Upgrade Plugin ==&lt;br /&gt;
# Go to Extensions | Plugin Manager&lt;br /&gt;
# Search for &amp;quot;System - Mootools Upgrade&amp;quot;&lt;br /&gt;
# Enable the plugin&lt;br /&gt;
It is important that this plugin is installed and that it has been set to enabled, as the proper functioning of jUpgrade depends on it.&lt;br /&gt;
&lt;br /&gt;
== Configure Options ==&lt;br /&gt;
As of jUpgrade version 1.1.1, support is present to migrate to Joomla! 1.6, Joomla! 1.7, and an old Molajo build.  As well, for jUpgrade to be successful, you must configure your current table prefix prior to beginning the migration.  The following are the options that can be configured with jUpgrade:&lt;br /&gt;
&lt;br /&gt;
Global:&lt;br /&gt;
* Distribution - Select whether to migrate to Joomla! 1.6, 1.7, or Molajo&lt;br /&gt;
* Prefix for old database - Your current table prefix&lt;br /&gt;
* Prefix for new database - Your selected table prefix for your migrated site&lt;br /&gt;
&lt;br /&gt;
Skips:&lt;br /&gt;
* Skip checks - Skip pre-migration checks&lt;br /&gt;
* Skip download - Skip downloading the package (Note: Must have a package already downloaded to your temp folder or set this and Skip Decompress if set to yes)&lt;br /&gt;
* Skip decompress - Skip decompressing the downloaded package (Note: Must have a package already downloaded and decompressed to site_root/jupgrade if set to Yes)&lt;br /&gt;
&lt;br /&gt;
Templates:&lt;br /&gt;
* Keep original positions - Keep the currently defined positions for modules&lt;br /&gt;
&lt;br /&gt;
Debug:&lt;br /&gt;
* Enable Debug - Enable this to have messages displayed below the migration process concerning the progress, helpful if having issues&lt;br /&gt;
&lt;br /&gt;
[[Image:Jupgrade_options.png|alt=jUpgrade 1.1.1 Options]]&lt;br /&gt;
&lt;br /&gt;
== Migration ==&lt;br /&gt;
&#039;&#039;&#039;Components&#039;&#039;&#039; &amp;gt;&amp;gt; &#039;&#039;&#039;jUpgrade&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Accessjupgrade.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Start Upgrade&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:Startjupgrade.png|alt=Start jUpgrade]]&lt;br /&gt;
&lt;br /&gt;
[[Image:Runjupgrade.png|alt=Run jUpgrade]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Do not exit the screen&#039;&#039;&#039; until everything has finished loading. Scroll down to check if finished.&lt;br /&gt;
&lt;br /&gt;
[[Image:Jupgradefinished.png|alt=jUpgrade Finished]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Success!!!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Please note that jUpgrade currently does not migrate templates, only default templates.&lt;br /&gt;
&lt;br /&gt;
==Behind the Scenes==&lt;br /&gt;
As explained in the background information, the changes from Joomla 1.5 and 1.6 are quite significant.  The fact that jUpgrade creates a new Joomla 1.6 installation for us is, in my opinion, pure genius. If the migration process was not 100% successful, your Joomla 1.5 is still perfectly intact and none of your users are affected. You have an opportunity to check out your site both in the frontend and the backend to make sure everything is up to par.  So what actually happens? jUpgrade downloads the latest version of Joomla 1.6 for you to the jupgrade directory (which it creates) in the root folder of your Joomla 1.5 installation. It then extracts all the files from the download. Once extraction has completed, jUpgrade installs Joomla 1.6 and then proceeds to migrate your old database to the new Joomla 1.6 database which it has created.&lt;br /&gt;
Your Joomla 1.6 site will be installed in www.mysites.com/jupgrade assuming that your Joomla 1.5 installation is in your html root.&lt;br /&gt;
==Check Your Joomla! 1.6==&lt;br /&gt;
Please do a full site review of your Joomla 1.6 installation and make sure everything is set up properly.&lt;br /&gt;
Your Joomla 1.6 site will be installed in www.mysites.com/jupgrade assuming that your Joomla 1.5 installation is in your html root.&lt;br /&gt;
Here is a general checklist to check:&lt;br /&gt;
* Banners&lt;br /&gt;
* Categories&lt;br /&gt;
* Contacts&lt;br /&gt;
* Content&lt;br /&gt;
* Menus&lt;br /&gt;
* Modules&lt;br /&gt;
* Newsfeeds&lt;br /&gt;
* Users&lt;br /&gt;
* Weblinks&lt;br /&gt;
* Templates - Work is currently being done on the template upgrade feature of jUpdate and it is not yet fully functional. Your module positions may have to be adjusted in module manager.&lt;br /&gt;
==Backup Joomla! 1.6==&lt;br /&gt;
If everything looks good to go, then let&#039;s backup the new Joomla 1.6 installation.&lt;br /&gt;
==Overview of the Rest of the Process==&lt;br /&gt;
Quick overview of what we are going to try to do now:&lt;br /&gt;
# Relocate our Joomla 1.5 installation to a subfolder as a &amp;quot;just in case&amp;quot;.&lt;br /&gt;
# Relocate our Joomla 1.6 installation to the html folder.&lt;br /&gt;
&#039;It should happen in this order&#039; If you do it in reverse order, the Joomla 1.6 files will get mixed with the Joomla 1.5 files (many of 1.5 files will be overwritten) and you will have a big mess!  Your site will likely still work, but it&#039;s a security ticking time bomb waiting to go off.&lt;br /&gt;
&lt;br /&gt;
=Going Live=&lt;br /&gt;
Next log onto your host&#039;s file manager (e.g. cPanel, Plesk, etc) or an FTP Client, however, preferably a file manager.&lt;br /&gt;
The general procedure is (it should take about 30 seconds if you review the steps before you start):&lt;br /&gt;
# Create a subfolder (e.g. myoldsite) for the Joomla 1.5 installation in your html root, e.g. public_html/myoldsite&lt;br /&gt;
# Select all the folders (***except the jupgrade folder***) and files in the html root and move them into the Joomla 1.5 subfolder (e.g. myoldsite)&lt;br /&gt;
# Select all the folders and files in the jupgrade folder and move them to the html root&lt;br /&gt;
# Double check the frontend and backend&lt;br /&gt;
&lt;br /&gt;
=How to Manually Migrate Joomla=&lt;br /&gt;
If Jupgrade did not work out for you like many of us, you might want to consider manual upgrade. &#039;&#039;&#039;Be warned, however, that this process is very tedious (especially see step 6 below), and the procedure is not well tested as of yet (if at all)&#039;&#039;&#039;. So just like the Jupgrade method, you will want to backup your database just in case. Before upgrading you should check to make sure every extension you want is joomla 1.6/1.7 compatible. Also back up your directory files just in case and keep a list of the extensions you used.&lt;br /&gt;
&lt;br /&gt;
Now onto the upgrade; please note that the following procedure should only be chosen if all else fails, and requires a good working knowledge of SQL! See the last paragraph of this section for a possibly less tedious alternative to doing steps 1, 2, 6 and 7) :&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 0:&#039;&#039;&#039; First of all, as always before big changes, backup all your data; that includes all files as well as exporting all database tables.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 1:&#039;&#039;&#039; If you want, you can convert the prefixes of all the tables in your database. This is especially useful if you would like to keep your 1.5 database in parallel to your 1.6/1.7 installation, at least for the transition period. It is best done using a script, here is one that worked pretty well as seen on [http://www.nilpo.com/2009/01/web-development/mysql-table-prefix-changer-tool/ Nilop]. &#039;&#039;&#039;Beware&#039;&#039;&#039;, however, that executing this script will stop your old site from working because after the prefix conversion, your old installation can&#039;t access the database anymore (it will still try to access the tables by their old prefix)! To enable it again, import the database export created in step 0 after the script has finished running. Joomla 1.5 usually has the prefix of &amp;quot;jos&amp;quot; which you can convert to the prefix &amp;quot;jml&amp;quot; or &amp;quot;j16&amp;quot;, for example. So using your ftp install the php converter script onto the root of your site. It should be at the url &#039;&#039;&#039;Mysite.com&#039;&#039;&#039;/prefix.php which all you need to do is fill in the database information. After this you have all the tables nicely converted to the new prefix.&lt;br /&gt;
&lt;br /&gt;
[[File:Changer.JPG|center]]&lt;br /&gt;
&lt;br /&gt;
Notice in the following screen shot that the sql data is &amp;quot;jos&amp;quot;:&lt;br /&gt;
[[File:Tables.JPG|thumb|center|500px]]&lt;br /&gt;
&lt;br /&gt;
You want it converted to &amp;quot;jml&amp;quot; as seen here:&lt;br /&gt;
[[File:Prefix.JPG|thumb|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 2:&#039;&#039;&#039; Export all the database tables you would like to use on your joomla 1.6+ site. Usually this is things like content and components.&lt;br /&gt;
&lt;br /&gt;
[[File:Export.JPG|thumb|center|500px]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 3:&#039;&#039;&#039; Uninstall your old site including the database, files, and directories that are associated with joomla. Or if you would rather just test the upgrade, skip step this step and create a new directory for your joomla 1.6+ site.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 4:&#039;&#039;&#039; Install the new joomla which is done through a ftp or a cpanel. If you have no database associated with it, install a new database and user.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 5:&#039;&#039;&#039; Install the components and other extensions you would have used before onto your new joomla 1.6+ site. This is done first, in order for none of your old database tables to be overwritten later.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 6: &#039;&#039;&#039; Convert the .sql file with your 1.5 tables to an sql file compatible with the version you want to upgrade to. That is a very tedious step - you&#039;ll have to check the database schema changes between the 1.5 you&#039;re upgrading from and the 1.6.+ version you&#039;re upgrading to, and adapt the sql file accordingly. &#039;&#039;&#039;Note:&#039;&#039;&#039; This step could use a more detailed description, if you have ever done a manual Joomla migration, please help and share your experiences and knowledge here!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Step 7:&#039;&#039;&#039; Import the .sql file from your computer onto your joomla 1.6+ database. It is also possible that some extensions may have the possibility of changes to the sql tables when they upgraded there extension to joomla 1.6+. If this is the case, it is recommended that you ask the developer of that extension for help with knowing what changes to the sql were made.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Keep in mind!&#039;&#039;&#039; It is possible for settings to be lost based on how the component stored the settings. From personal experience it worked just fine, but you may want to review the settings of each component.&lt;br /&gt;
&lt;br /&gt;
For an easier way to migrate articles, categories/sections, contacts, images, and users, be sure to use [http://extensions.joomla.org/extensions/migration-a-conversion/data-import-a-export/12816 J2XML] for exporting and [http://extensions.joomla.org/extensions/migration-a-conversion/joomla-migration/15807 J2XML Importer] for importing the data.&lt;br /&gt;
&lt;br /&gt;
=Troubleshooting=&lt;br /&gt;
* first check, if you have php5 at least. (use phpinfo() or /usr/bin/php --version)&lt;br /&gt;
* &#039;&#039;&#039;jUpgrade cannot download Joomla 1.6 package?&#039;&#039;&#039; - When the download fails (timeouts, javascript issues, etc) you can download it manually here: http://anonymous:@joomlacode.org/svn/joomla/development/branches/jupgrade/pack/joomla16.zip and put this file into your ROOT/tmp directory. Then, in the preferences of jUpgrade, you must set &#039;Skip Download&#039; to &#039;Yes&#039;. After that, run the upgrade again.&lt;br /&gt;
* &#039;&#039;&#039;Are you getting errors with the progress bar in Internet Explorer (Windows XP)?&#039;&#039;&#039; - Use Firefox: http://www.mozilla.com/en-US/firefox/&lt;br /&gt;
* Go through the Requirements and Before You Get Started sections above and double check everything!&lt;br /&gt;
* &#039;&#039;&#039;Report Bugs:&#039;&#039;&#039; http://matware.com.ar/foros/jupgrade.html&lt;br /&gt;
* &#039;&#039;&#039;Support:&#039;&#039;&#039; http://matware.com.ar/foros/jupgrade.html&lt;br /&gt;
==How You can Contribute &amp;amp; Help==&lt;br /&gt;
Creating an extension as significant as jUpgrade requires an enormous amount of time and effort considering the major structural changes between Joomla 1.5 and 1.6. Add to this the fact that during each release of Joomla 1.6 betas, the extension would have to be modified to work with the new changes between releases, and all of a sudden it&#039;s too hard for any one person to complete in a short period of time (especially when you are not being paid).&lt;br /&gt;
With this being said, it&#039;s time to step up and make a difference, whether big or small. Have you profited from Joomla in the last year? Are you excited about the future of Joomla? Would you like to contribute back and show your gratitude? Now you can in this project!&lt;br /&gt;
We, as part of the Joomla community, are calling on the entire Joomla community to help out in whatever way you can. You don&#039;t have to be a master developer, just go through this tutorial on a test site and if you come across any bugs, report it. If you know how to fix it, create a patch for it. If you are a master developer, step up to the challenge.&lt;br /&gt;
* You can report bugs here: http://matware.com.ar/foros/jupgrade.html&lt;br /&gt;
* You can volunteer and ask questions about volunteering here: http://www.matware.com.ar/forum/projects/jupgrade/volunteer-information.html&lt;br /&gt;
[[Category:Joomla! 1.6]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Migration]]&lt;br /&gt;
[[Category:Installation]]&lt;/div&gt;</summary>
		<author><name>Fredden</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Security_Checklist/Hosting_and_Server_Setup&amp;diff=62395</id>
		<title>Security Checklist/Hosting and Server Setup</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Security_Checklist/Hosting_and_Server_Setup&amp;diff=62395"/>
		<updated>2011-09-28T22:36:52Z</updated>

		<summary type="html">&lt;p&gt;Fredden: /* Adjust magic_quotes_gpc */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RightTOC}}&lt;br /&gt;
== Choose a Qualified Hosting Provider ==&lt;br /&gt;
&lt;br /&gt;
===The most important decision===&lt;br /&gt;
: Probably no decision is more critical to site security than the choice of hosts and servers. However, due to the wide variety of hosting options and configurations, it&#039;s not possible to provide a complete list for all situations. Check this unbiased [http://resources.joomla.org/directory/support-services/hosting.html list of recommended hosts]who fully meet the security requirements of a typical Joomla site. ([[Security_and_Performance_FAQs#How_do_I_choose_a_quality_hosting_provider.3F|FAQ]])&lt;br /&gt;
&lt;br /&gt;
===Shared server risks===&lt;br /&gt;
: If you are on a tight budget and your site does not process highly confidential data, you can probably get by with a shared server, but you must understand the unavoidable risks. Most of the tips listed below are appropriate for securing sites on shared server environments.&lt;br /&gt;
&lt;br /&gt;
===Avoid sloppy server configurations===&lt;br /&gt;
: For a real eye-opener, [http://www.nexen.net/articles/dossier/php_configuration_statitstics.php read this report] on thousands of sites that allowed Google to index the results of phpinfo(). Don&#039;t make this mistake on your site! The report includes alarming statistics on the percentage of sites that use deprecated settings such as register_globals ON or that don&#039;t have open_basedir set at all: By the way, if &#039;&#039;phpini&#039;&#039; and &#039;&#039;register_globals&#039;&#039; are unfamiliar terms you are probably not ready to securely manage your own site.&lt;br /&gt;
&lt;br /&gt;
==Configuring Apache==&lt;br /&gt;
&lt;br /&gt;
===Use Apache .htaccess===&lt;br /&gt;
&#039;&#039;See also [[htaccess examples (security)|.htaccess examples]]&#039;&#039;&lt;br /&gt;
: Block typical exploit attempts with local Apache &#039;&#039;.htaccess&#039;&#039; files. This option is not enabled on all servers. Check with your host if you run into problems. Using &#039;&#039;.htaccess&#039;&#039;, you can password protect sensitive directories, such as administrator, restrict access to sensitive directories by IP Address, and depending on your server&#039;s configuration, you may be able to increase security by switching from PHP4 to PHP5.&lt;br /&gt;
&lt;br /&gt;
: Joomla ships with a [[preconfigured .htaccess]] file, but *you* need to choose to use it. The file is called htaccess.txt. To use it, rename it to .htaccess and place it in the root of your site using FTP. One important point to note is that as the distributed file is called htaccess.txt and the live file on your site is called .htaccess, the file your site actually uses is NOT updated when you update your site to use to a new version of Joomla. You must manually make the changes to use the new file version. There are significant changes in the file distributed with 1.5.23 onwards and 1.6.2 onwards.&lt;br /&gt;
&lt;br /&gt;
: Consider following the &amp;quot;Least Privilege&amp;quot; principle for running PHP using tools such as PHPsuExec, php_suexec or suPHP. (Note: These are advanced methods that require agreement and coordination with your hosting provider. Such options are enabled or disabled on a server-wide basis and are not individually adjustable on shared servers.) &amp;lt;/li&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Use Apache mod_security===&lt;br /&gt;
: Configure Apache mod_security and mod_rewrite filters to block PHP attacks. See [http://www.google.com/search?q=apache%20mod_security Google search for mod_security] and [http://www.google.com/search?q=apache%20mod_rewrite Google search for mod_rewrite]. (Note: These are advanced methods that usually require agreement and coordination with your hosting provider. Such options are enabled or disabled on a server-wide basis and are not individually adjustable on shared servers.)&lt;br /&gt;
&lt;br /&gt;
==Configuring MySQL== &lt;br /&gt;
&lt;br /&gt;
===Secure the database===&lt;br /&gt;
: Be sure MySQL accounts are set with limited access. The initial install of MySQL is insecure and careful configuration is required. (See the [http://dev.mysql.com/doc/ MySQL Manuals]) Note: This item applies only to those administering their own servers, such as dedicated servers. Users of shared servers are dependent on their hosting provider to set proper database security.)&lt;br /&gt;
&lt;br /&gt;
== Configuring PHP==&lt;br /&gt;
&lt;br /&gt;
===Understand how PHP works===&lt;br /&gt;
: Understand how to work with the php.ini file, and how PHP configurations are controlled. Study the [http://us3.php.net/manual/en/ini.php#ini.list Official List of php.ini Directives] at http://www.php.net, and the well-documented default php.ini file included with every PHP install. Here is the [http://svn.php.net/viewvc/php/php-src/trunk/php.ini-production?view=co latest default php.ini file] on the official PHP site.&lt;br /&gt;
&lt;br /&gt;
===Use PHP5===&lt;br /&gt;
PHP 4 is deprecated and has become obsolete. Some hosting providers still have both available on servers to support outdated scripts. Joomla requires PHP5. (See [http://www.joomla.org/technical-requirements.html/ Joomla Requirements])&lt;br /&gt;
&lt;br /&gt;
===Use local php.ini files===&lt;br /&gt;
: On shared servers you can&#039;t edit the main php.ini file, but you may be able to add custom, local php.ini files. If so, you&#039;ll need to copy the php.ini files to every sub-directory that requires custom settings. Luckily a [http://tips-scripts.com/free set of scripts at B &amp;amp; T Scripts and Tips] can do the hard work for you.&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;There are a few important things to keep in mind.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
# Local &#039;&#039;php.ini&#039;&#039; files &#039;&#039;&#039;&#039;&#039;only&#039;&#039;&#039;&#039;&#039; have an effect if your server is configured to use them. This includes a &#039;&#039;php.ini&#039;&#039; file in your &#039;&#039;http_root&#039;&#039; directory. You can test whether or not these file affect your site by setting an obvious directive in the local &#039;&#039;php.ini&#039;&#039; file to see if it affects your site.&lt;br /&gt;
# Local &#039;&#039;php.ini&#039;&#039; files only affect &#039;&#039;.php&#039;&#039; files that are located within the same directory (or included() or required() from those files). This means that there are normally only two Joomla! directories in which you would want to place a &#039;&#039;php.ini&#039;&#039; file. They are your &#039;&#039;http_root&#039;&#039;(your actual directory name may vary), which is where Joomla&#039;s Front-end &#039;&#039;index.php&#039;&#039; file is located, and the Joomla! &#039;&#039;administrator&#039;&#039; directory, which is where the Back-end administrator &#039;&#039;index.php&#039;&#039; file is located. Other directories that don&#039;t have files called via the Web do not need local &#039;&#039;php.ini&#039;&#039; files.&lt;br /&gt;
# If you have a &#039;&#039;php.ini&#039;&#039; file in every directory, some script probably did this for you. If you didn&#039;t intend it to happen, you probably should root them out, but given #2 above, you probably only have to panic about the &#039;&#039;php.ini&#039;&#039; files in &#039;&#039;http_root&#039;&#039; and the &#039;&#039;administrator&#039;&#039; directories.&lt;br /&gt;
&lt;br /&gt;
===Use PHP disable_functions===&lt;br /&gt;
: Use &#039;&#039;disable_functions&#039;&#039; to disable dangerous PHP functions that are not needed by your site. Here is a typical setup for a Joomla! site:&lt;br /&gt;
&lt;br /&gt;
      disable_functions = show_source, system, shell_exec, passthru, exec, phpinfo, popen, proc_open&lt;br /&gt;
&lt;br /&gt;
===Consider Using PHP open_basedir===&lt;br /&gt;
: You &#039;&#039;might&#039;&#039; consider to enabled &#039;&#039;open_basedir&#039;&#039;.  This directive limits the files that can be opened by PHP to the specified directory-tree. This directive is NOT affected by whether Safe Mode is ON or OFF. &lt;br /&gt;
&lt;br /&gt;
: The restriction specified with open_basedir is a prefix, not a directory name. This means that &#039;&#039;open_basedir = /dir/incl&#039;&#039; allows access to &#039;&#039;/dir/include&#039;&#039; and &#039;&#039;/dir/incls&#039;&#039; if they exist. To restrict access to only the specified directory, end with a slash. For more information, see [http://us3.php.net/manual/en/features.safe-mode.php#ini.safe-mode PHP Security and Safe Mode Configuration Directives].&lt;br /&gt;
&lt;br /&gt;
     open_basedir = /home/users/you/public_html&lt;br /&gt;
&lt;br /&gt;
: Additionally, if &#039;&#039;open_basedir&#039;&#039; is set it may be necessary to set PHP &#039;&#039;upload_tmp_dir&#039;&#039; configuration directive to a path that falls within the scope of &#039;&#039;open_basedir&#039;&#039; or, alternatively, add the &#039;&#039;upload_tmp_dir&#039;&#039; path to &#039;&#039;open_basedir&#039;&#039; using the appropriate path separator for the host system.&lt;br /&gt;
&lt;br /&gt;
     open_basedir = /home/users/you/public_html:/tmp&lt;br /&gt;
&lt;br /&gt;
: PHP will use the system&#039;s temporary directory when &#039;&#039;upload_tmp_dir&#039;&#039; is not set or when it is set but the directory does not exist, therefore it may be necessary to add it to &#039;&#039;open_basedir&#039;&#039; as above to avoid uploading errors within Joomla.&lt;br /&gt;
&lt;br /&gt;
===Adjust magic_quotes_gpc===&lt;br /&gt;
: Adjust the &#039;&#039;magic_quotes_gpc&#039;&#039; directive as needed for your site. The recommended setting for Joomla! 1.0.x is ON to protect against poorly-written third-party extensions. The safest method is to turn &#039;&#039;magic_quotes_gpc&#039;&#039; off and avoid all poorly-written extensions, period. &lt;br /&gt;
&lt;br /&gt;
: Joomla! 1.5 ignores this setting and works fine either way. &lt;br /&gt;
For more information, see either [http://docs.joomla.org/Magic_quotes_and_security Magic quotes and security] or &lt;br /&gt;
[http://php.net/magic_quotes PHP Manual, Chapter 31. Magic Quotes].&lt;br /&gt;
&lt;br /&gt;
      magic_quotes_gpc = 1&lt;br /&gt;
&lt;br /&gt;
===Don&#039;t use PHP safe_mode===&lt;br /&gt;
: This feature has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged. Avoid the use of PHP safe_mode. This is a valid but incomplete solution to a deeper problem and provides a false sense of security. See the official PHP site for an explanation of this issue. http://php.net/manual/en/features.safe-mode.php&lt;br /&gt;
&lt;br /&gt;
      safe_mode = 0&lt;br /&gt;
&lt;br /&gt;
===Don&#039;t use PHP register_globals===&lt;br /&gt;
: Automatically registering global variables was probably one of the dumbest decisions the developers of PHP made. This directive determines whether or not to register the EGPCS (Environment, GET, POST, Cookie, Server) variables as global variables where they become immediately available to all PHP scripts, and where they can easily overwrite your own variable if you&#039;re not careful. Luckily, the PHP developers long since realized the mistake and have deprecated this &#039;feature&#039;. &lt;br /&gt;
&lt;br /&gt;
: If your site is on a shared server with a hosting provider that insists &#039;&#039;register_globals&#039;&#039; must be on, you should be very worried. Although you can often turn register_globals off for your own site with a local php.ini file, this adds little security as other sites on the same server remain vulnerable to attacks which can then launch attacks against your site from within the server. For more information, see [http://www.zend.com/manual/security.globals.php ZEND Chapter 29. Using Register Globals].&lt;br /&gt;
&lt;br /&gt;
      register_globals = 0&lt;br /&gt;
&lt;br /&gt;
===Don&#039;t use PHP allow_url_fopen===&lt;br /&gt;
&lt;br /&gt;
: Don&#039;t use PHP &#039;&#039;allow_url_fopen&#039;&#039;. This option enables the URL-aware fopen wrappers that enable accessing URL object like files. Default wrappers are provided for the access of remote files using the ftp or http protocol, some extensions like zlib may register additional wrappers. Note: This can only be set in php.ini due to security reasons.&lt;br /&gt;
&lt;br /&gt;
      allow_url_fopen = 0&lt;br /&gt;
&lt;br /&gt;
==File permissions==&lt;br /&gt;
If a joomla installation is hosted on apache with mod_php, then all virtual hosts on that server run in the same context as your joomla code.  If the files are owned by some other user than &#039;nobody&#039; or &#039;wwwrun&#039;, the safest permissions are those which &#039;&#039;&#039;prevent&#039;&#039;&#039; changes to the joomla code, unless via an authorised channel (e.g. FTP):&lt;br /&gt;
*DocumentRoot directory: 750 (e.g. public_html)&lt;br /&gt;
*Files: 644&lt;br /&gt;
*Directories: 755 (711 if you are paranoid, but not for directories which need to be listed) (owner: some user)&lt;br /&gt;
&lt;br /&gt;
With these permissions set, you will need to use FTP to update your Joomla installation.  Not all modules support this.  Remove modules which do not support FTP upgrades.&lt;br /&gt;
Other processes running under mod_php can read &#039;&#039;&#039;your&#039;&#039;&#039; configuration.php.  You can frustrate automated hacks by renaming this file.  You should not store your FTP password in your configuration file on such hosts, as your account &#039;&#039;will&#039;&#039; be compromised.&lt;br /&gt;
&lt;br /&gt;
If a joomla installation is hosted on apache with fast-cgi, suphp or cgi that runs as a different user, then you should set your permissions as follows:&lt;br /&gt;
* DocumentRoot directory: 750 (e.g. public_html)&lt;br /&gt;
* PHP files: 600 (400 if you are truly paranoid)&lt;br /&gt;
* HTML and image files: 644 (444 if you are truly paranoid)&lt;br /&gt;
* Directories: 755 (711 if you are paranoid, but not for directories which need to be listed)&lt;br /&gt;
&lt;br /&gt;
==Setup a backup and recovery process==&lt;br /&gt;
===The most important rule:&#039;===&lt;br /&gt;
: Thou shalt at all time be able to return your site to a previous working state through regular use of a strong, off-site backup and recovery process. Be sure your backup and recovery process is in place and tested BEFORE you go live. This is the single best way (and often the only way) to recover from such inevitable catastrophes as:&lt;br /&gt;
&lt;br /&gt;
# A compromised/cracked site.&lt;br /&gt;
# Broken site due to a faulty upgrade.&lt;br /&gt;
# Hardware failure, such as dead hard drives, power failures, server theft, etc.&lt;br /&gt;
# Authoritarian government intervention. (More common than some think.)&lt;br /&gt;
# Needing to quickly relocate to a new server or hosting provider.&lt;br /&gt;
&lt;br /&gt;
== Choose A Checklist==&lt;br /&gt;
# [[Security Checklist 1 - Getting Started|Getting Started]] &lt;br /&gt;
# [[Security Checklist 2 - Hosting and Server Setup|Hosting and Server Setup]]&lt;br /&gt;
# [[Security Checklist 3 - Testing and Development|Testing and Development]]&lt;br /&gt;
# [[Security Checklist 4 - Joomla Setup|Joomla Setup]]&lt;br /&gt;
# [[Security Checklist 5 - Site Administration|Site Administration]]&lt;br /&gt;
# [[Security Checklist 6 - Site Recovery|Site Recovery]]&lt;br /&gt;
&lt;br /&gt;
== Edited by==&lt;br /&gt;
[http://forum.joomla.org/memberlist.php?mode=viewprofile&amp;amp;u=39784 rliskey]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- KEEP THIS AT THE END OF THE PAGE --&amp;gt;&lt;br /&gt;
[[Category:Security Checklist]]&lt;/div&gt;</summary>
		<author><name>Fredden</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Magic_quotes_and_security&amp;diff=62300</id>
		<title>Magic quotes and security</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Magic_quotes_and_security&amp;diff=62300"/>
		<updated>2011-09-26T02:23:42Z</updated>

		<summary type="html">&lt;p&gt;Fredden: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;JRequest automatically takes into account the setting of &#039;&#039;magic_quotes_gpc&#039;&#039; and adjusts accordingly.  If developers are using JRequest to request input then the actual value of the setting doesn&#039;t matter.  If developers aren&#039;t using it then they will have to take the setting of magic_quotes_gpc into account.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Magic Quotes Off&#039;&#039;&#039; there is an &amp;quot;increased&amp;quot; risk of SQL Injections due to poorly written&lt;br /&gt;
queries not being safely escaped in extensions hence the general PHP and JTS recommendation&lt;br /&gt;
that Magic Quotes be ON by default (although in the past PHP has left them&lt;br /&gt;
disabled in the default distribution) for a more secure environment.&lt;br /&gt;
&lt;br /&gt;
This setting is now basically irrelevant (can be On or Off) due to the way that Joomla! has been written to overcome the problem of poorly written queries.&lt;br /&gt;
&lt;br /&gt;
The setting is now deprecated and has actually been removed in later PHP releases anyway, hence developers of older PHP applications will need to complete a code review for compliance, and&lt;br /&gt;
safety, of which has already been completed by Joomla! quite some time ago and the issue was resolved with JRequest.&lt;br /&gt;
&lt;br /&gt;
In the past, there has been much discussion regarding the performance implications of this setting, in general from my testing and experience, it was negligible at worst and unnoticed at best, unless the queries were very very large,  but on the whole the trade-off of improved security against&lt;br /&gt;
SQL Injections far outweighs any discussions surrounding performance.&lt;br /&gt;
&lt;br /&gt;
For more on [http://php.net/magic_quotes magic quotes]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Edited from a discussion on Joomla CMS development Mailing list between A Eddie, R Winter and C Mandville&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- KEEP THIS AT THE END OF THE PAGE --&amp;gt;&lt;br /&gt;
[[Category:Security Checklist]]&lt;/div&gt;</summary>
		<author><name>Fredden</name></author>
	</entry>
</feed>