<?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=Lhollopeter</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=Lhollopeter"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Lhollopeter"/>
	<updated>2026-09-19T03:13:29Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Creating_a_simple_module&amp;diff=14946</id>
		<title>J1.5:Creating a simple module</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Creating_a_simple_module&amp;diff=14946"/>
		<updated>2009-07-17T20:21:15Z</updated>

		<summary type="html">&lt;p&gt;Lhollopeter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{review}}&lt;br /&gt;
== Basic Hello World Module ==&lt;br /&gt;
&lt;br /&gt;
A Joomla! 1.5 Module is in its most basic form two files: an XML configuration file and a PHP controller file. The XML configuration file contains general information about the module (as will be displayed in the Module Manager in the Joomla! administration interface), as well as module parameters which may be supplied to fine tune the appearance / functionality of the module. The PHP file provides the controlling logic for the module. A very simple &amp;quot;Hello World&amp;quot; module might looking something like this.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/modules/mod_hello_world/mod_hello_world.xml:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;install type=&amp;quot;module&amp;quot; version=&amp;quot;1.5.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Name of the Module --&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;Hello World - Hello&amp;lt;/name&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Name of the Author --&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Ambitionality Software LLC&amp;lt;/author&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Version Date of the Module --&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;2008-06-23&amp;lt;/creationDate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Copyright information --&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;All rights reserved by Ambitionality Software LLC 2008.&amp;lt;/copyright&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- License Information --&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GPL 2.0&amp;lt;/license&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Author&#039;s email address --&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;info@ambitionality.com&amp;lt;/authorEmail&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Author&#039;s website --&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.ambitionality.com&amp;lt;/authorUrl&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Module version number --&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;1.0.0&amp;lt;/version&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Description of what the module does --&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;Provides a basic &amp;quot;Hello World&amp;quot; notice&amp;lt;/description&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Listing of all files that should be installed for the module to function --&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;!-- The &amp;quot;module&amp;quot; attribute signifies that this is the main controller file --&amp;gt;&lt;br /&gt;
		&amp;lt;filename module=&amp;quot;mod_hello_world&amp;quot;&amp;gt;mod_hello_world.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Optional parameters --&amp;gt;&lt;br /&gt;
	&amp;lt;params /&amp;gt;&lt;br /&gt;
&amp;lt;/install&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Basically, this XML file just lines out basic information about the module such as the owner, version, etc. for identification by the Joomla! installer and then provides optional parameters which may be set in the Module Manager and accessed from within the module&#039;s logic to fine tune its behavior. Additionally, this file tells the installer which files should be copied and installed. Notice that we DO NOT include a reference in the files section for the XML file.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/modules/mod_hello_world/mod_hello_world.php:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
//don&#039;t allow other scripts to grab and execute our file&lt;br /&gt;
defined(&#039;_JEXEC&#039;) or die(&#039;Direct Access to this location is not allowed.&#039;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;&lt;br /&gt;
    Hello World&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
What happens when this module is loaded is that Joomla! includes (via the PHP include directive) the mod_hello_world.php file and stores the output into an output buffer which is then rendered onto the page output. This file would simply produce &amp;lt;p&amp;gt;Hello World&amp;lt;/p&amp;gt; to the final page.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/modules/mod_hello_world/index.html:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&amp;lt;body bgcolor=&amp;quot;#FFFFFF&amp;quot;&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This really just helps to ensure that a default page is displayed if direct access to the directory is attempted without listing all of the other files in the directory. It&#039;s not necessary, but is good practice.&lt;br /&gt;
&lt;br /&gt;
To package this module for distribution and installation, simply zip the files together, e.g.,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
% cd mod_hello_world&lt;br /&gt;
% zip mod_hello_world.zip mod_hello_world.php mod_hello_world.xml index.html&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The resulting mod_hello_world.zip file may be uploaded and installed through the standard Joomla! 1.5 Extension Manager.&lt;br /&gt;
&lt;br /&gt;
== Real Joomla! 1.5 Style Module Implementation ==&lt;br /&gt;
&lt;br /&gt;
Now that was easy...too easy. In fact, that was pretty much the simplest form of a module possible. In reality a module will probably be doing something much more substantial. Let&#039;s assume that our modules are going to be more complex - we need to take advantage of the MVC (Model View Controller) design pattern and consider using the following file layout for a &amp;quot;Hello World 2&amp;quot; module instead:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
/modules/mod_hello_world2/index.html&lt;br /&gt;
/modules/mod_hello_world2/mod_hello_world2.php&lt;br /&gt;
/modules/mod_hello_world2/mod_hello_world2.xml&lt;br /&gt;
/modules/mod_hello_world2/helper.php&lt;br /&gt;
/modules/mod_hello_world2/en-GB.mod_hello_world2.ini&lt;br /&gt;
/modules/mod_hello_world2/tmpl/index.html&lt;br /&gt;
/modules/mod_hello_world2/tmpl/default.php&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The differences to note here are that there are three additional files beyond what the &amp;quot;Hello World&amp;quot; module had, namely helper.php, tmpl/default.php, and the en-GB.mod_hello_world2.ini file. The purpose in adding the first two files is two-fold. Firstly, we separate the module&#039;s logic into the helper.php file to ensure that all of the thinking and data access is performed here and separate out the module&#039;s presentation / template into the tmpl/default.php file (the (X)HTML). I argue that this is just good programming - separating logic from presentation. There is a second advantage to this, however, which is that it will allow the HTML / presentation to be overridden easily by any Joomla! 1.5 template for optimal integration into any site. (Overriding module and component presentation in templates is beyond the scope of this article, however it should be addressed as it&#039;s really useful).&lt;br /&gt;
&lt;br /&gt;
Let&#039;s take a look at what these files might look like and discuss what&#039;s going on.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/modules/mod_hello_world2/mod_hello_world2.php:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
//no direct access&lt;br /&gt;
defined(&#039;_JEXEC&#039;) or die(&#039;Direct Access to this location is not allowed.&#039;);&lt;br /&gt;
&lt;br /&gt;
// include the helper file&lt;br /&gt;
require_once(dirname(__FILE__).DS.&#039;helper.php&#039;);&lt;br /&gt;
&lt;br /&gt;
// get a parameter from the module&#039;s configuration&lt;br /&gt;
$userCount = $params-&amp;gt;get(&#039;usercount&#039;);&lt;br /&gt;
&lt;br /&gt;
// get the items to display from the helper&lt;br /&gt;
$items = ModHelloWorld2Helper::getItems($userCount);&lt;br /&gt;
&lt;br /&gt;
// include the template for display&lt;br /&gt;
require(JModuleHelper::getLayoutPath(&#039;mod_hello_world2&#039;));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The important differences to note are that (1) we include a helper file which will be the work-horse of our logic and data access and (2) once we have our data, we just load a template which will use our data and render it as it sees fit.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/modules/mod_hello_world2/mod_hello_world2.xml&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;install type=&amp;quot;module&amp;quot; version=&amp;quot;1.5.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Name of the Module --&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;Hello World 2 - Hello&amp;lt;/name&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Name of the Author --&amp;gt;&lt;br /&gt;
	&amp;lt;author&amp;gt;Ambitionality Software LLC&amp;lt;/author&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Version Date of the Module --&amp;gt;&lt;br /&gt;
	&amp;lt;creationDate&amp;gt;2008-06-23&amp;lt;/creationDate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Copyright information --&amp;gt;&lt;br /&gt;
	&amp;lt;copyright&amp;gt;All rights reserved by Ambitionality Software LLC 2008.&amp;lt;/copyright&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- License Information --&amp;gt;&lt;br /&gt;
	&amp;lt;license&amp;gt;GPL 2.0&amp;lt;/license&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Author&#039;s email address --&amp;gt;&lt;br /&gt;
	&amp;lt;authorEmail&amp;gt;info@ambitionality.com&amp;lt;/authorEmail&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Author&#039;s website --&amp;gt;&lt;br /&gt;
	&amp;lt;authorUrl&amp;gt;www.ambitionality.com&amp;lt;/authorUrl&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Module version number --&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;1.0.0&amp;lt;/version&amp;gt; &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Description of what the module does --&amp;gt;&lt;br /&gt;
	&amp;lt;description&amp;gt;Provides a random listing of registered users&amp;lt;/description&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Listing of all files that should be installed for the module to function --&amp;gt;&lt;br /&gt;
	&amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;!-- The &amp;quot;module&amp;quot; attribute signifies that this is the main controller file --&amp;gt;&lt;br /&gt;
		&amp;lt;filename module=&amp;quot;mod_hello_world2&amp;quot;&amp;gt;mod_hello_world2.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;helper.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;tmpl/default.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;tmpl/index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;languages&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Any language files included with the module --&amp;gt;&lt;br /&gt;
        &amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.mod_hello_world2.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
    &amp;lt;/languages&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- Optional parameters --&amp;gt;&lt;br /&gt;
	&amp;lt;params&amp;gt;&lt;br /&gt;
        &amp;lt;!-- parameter to allow placement of a module class suffix for the module table / xhtml display --&amp;gt;&lt;br /&gt;
		&amp;lt;param name=&amp;quot;moduleclass_sfx&amp;quot; type=&amp;quot;text&amp;quot; default=&amp;quot;&amp;quot; label=&amp;quot;Module Class Suffix&amp;quot; description=&amp;quot;PARAMMODULECLASSSUFFIX&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;!-- just gives us a little room between the previous paramter and the next --&amp;gt;&lt;br /&gt;
		&amp;lt;param name=&amp;quot;@spacer&amp;quot; type=&amp;quot;spacer&amp;quot; default=&amp;quot;&amp;quot; label=&amp;quot;&amp;quot; description=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;!-- A parameter that allows an administrator to modify the number of users that this module will display --&amp;gt;&lt;br /&gt;
        &amp;lt;param name=&amp;quot;usercount&amp;quot; type=&amp;quot;text&amp;quot; default=&amp;quot;5&amp;quot; label=&amp;quot;LABEL USER COUNT&amp;quot; description=&amp;quot;DESC USER COUNT&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/params&amp;gt;&lt;br /&gt;
&amp;lt;/install&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The main differences to note here are that we have added a language file reference (we could have added more) and we added some parameters.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/modules/mod_hello_world2/helper.php:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
defined(&#039;_JEXEC&#039;) or die(&#039;Direct Access to this location is not allowed.&#039;);&lt;br /&gt;
&lt;br /&gt;
class ModHelloWorld2Helper&lt;br /&gt;
{&lt;br /&gt;
    /**&lt;br /&gt;
     * Returns a list of post items&lt;br /&gt;
    */&lt;br /&gt;
    public function getItems($userCount)&lt;br /&gt;
    {&lt;br /&gt;
        // get a reference to the database&lt;br /&gt;
        $db = &amp;amp;JFactory::getDBO();&lt;br /&gt;
&lt;br /&gt;
        // get a list of $userCount randomly ordered users &lt;br /&gt;
        $query = &#039;SELECT a.name FROM `#__users` AS a ORDER BY rand() LIMIT &#039; . $userCount  . &#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
        $db-&amp;gt;setQuery($query);&lt;br /&gt;
        $items = ($items = $db-&amp;gt;loadObjectList())?$items:array();&lt;br /&gt;
&lt;br /&gt;
        return $items;&lt;br /&gt;
    } //end getItems&lt;br /&gt;
&lt;br /&gt;
} //end SimplestForumLatestPostsHelper&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This helper class (note that it is named for the module name so that it doesn&#039;t collide with other class names) simply retrieves a list of all users in the database and randomly selects a subset of those based upon the number supplied as $userCount.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/modules/mod_hello_world2/tmpl/default.php:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php defined(&#039;_JEXEC&#039;) or die(&#039;Restricted access&#039;); // no direct access ?&amp;gt;&lt;br /&gt;
&amp;lt;?php echo JText::_(&#039;RANDOM USERS&#039;); ?&amp;gt;&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
    &amp;lt;?php foreach ($items as $item) { ?&amp;gt;&lt;br /&gt;
    &amp;lt;li&amp;gt;&lt;br /&gt;
        &amp;lt;?php echo JText::sprintf(&#039;USER LABEL&#039;, $item-&amp;gt;name); ?&amp;gt;&lt;br /&gt;
    &amp;lt;/li&amp;gt;&lt;br /&gt;
    &amp;lt;?php } ?&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here we simply create an unordered HTML list and then iterate through the items returned by our helper (in mod_hello_world2.php), printing out a message with each user&#039;s name.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;/modules/mod_hello_world2/en-GB.mod_hello_world2.ini:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
LABEL USER COUNT=User Count&lt;br /&gt;
DESC USER COUNT=The number of users to display&lt;br /&gt;
RANDOM USERS=Random Users for Hello World2&lt;br /&gt;
USER LABEL=%s is a randomly selected user&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here we simply identify strings which appear in the module configuration file and the module template which appear in JText::_ or JText::sprintf statements. This allows someone to easily write a new language file without editing any of the HTML or code for the module.&lt;br /&gt;
&lt;br /&gt;
Now all we have to do is zip up these files, as in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
% pwd&lt;br /&gt;
/somesite/modules/mod_hello_world2&lt;br /&gt;
% zip -r ../mod_hello_world2.zip *&lt;br /&gt;
% ls ..&lt;br /&gt;
mod_hello_world2.zip&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The resulting mod_hello_world2.zip file is ready for installation and distribution. When the ZIP file is installed, the en-GB.mod_hello_world2.ini file is copied to /language/en-GB/en-GB.mod_hello_world2.ini and is loaded each time the module is loaded. All of the other files are copied to the /modules/mod_hello_world2 subfolder of the Joomla! installation.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Development]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lhollopeter</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Administrator_(Application)&amp;diff=14944</id>
		<title>Administrator (Application)</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Administrator_(Application)&amp;diff=14944"/>
		<updated>2009-07-17T18:59:28Z</updated>

		<summary type="html">&lt;p&gt;Lhollopeter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{review}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Joomla! consists of several [[Application]]s:&lt;br /&gt;
* [[Site (Application)|Site]], also known as the &amp;quot;Front-end&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* [[Administrator (Application)|Administrator]], also known as the &amp;quot;Back-end&amp;quot;.  It is here that you can make your major customizations for your site or front-end. You can set up how your template looks or you can add new extensions such as components, languages, modules, plugins and templates from Joomla&#039;s web site at [http://extensions.joomla.org/ Joomla extensions]. &lt;br /&gt;
&lt;br /&gt;
* [[Installer (Application)|Installer]] is an application that helps you to install and configure Joomla on your web site. Follow the next steps at [http://docs.joomla.org/Installer Installer].&lt;br /&gt;
&lt;br /&gt;
* [[XML-RPC (Application)|XML-RPC]], known as eXtensible Markup Language Remote Procedure Call, is a method of sharing messages between client and server.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Application]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lhollopeter</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Adding_a_menu_item_which_points_to_an_Article&amp;diff=14943</id>
		<title>Adding a menu item which points to an Article</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Adding_a_menu_item_which_points_to_an_Article&amp;diff=14943"/>
		<updated>2009-07-17T18:44:22Z</updated>

		<summary type="html">&lt;p&gt;Lhollopeter: /* Tutorial */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{review}}&lt;br /&gt;
&lt;br /&gt;
The following tutorial will show you how to create a new item in the main menu that points to the article called Support and Documentation. Based on this information you will be able to add a new menu item to any of your defined menus pointing to any article you have previously created for your site.&lt;br /&gt;
&lt;br /&gt;
==Tutorial==&lt;br /&gt;
If you are not currently logged in to the administration panel, you will need to do so. If you are already logged in, you do not need to complete this step.&lt;br /&gt;
&lt;br /&gt;
# Open a new browser window and type in the URL, which will be similar to http://www.your_site_name_here.com/administrator or, if you have Joomla installed on your local computer, http://localhost/administrator. Here you will have to log in as an Administrator or Super Administrator.&lt;br /&gt;
# Within the site administration panel, select &#039;&#039;&#039;Menu&#039;&#039;&#039; from the menu bar in the upper left corner. From the drop-down list, choose the menu you wish to work with. The menu can be Main Menu, available by default, or any other menu. This will open the Menu Item Manager page.&amp;lt;br /&amp;gt;[[Image:Edit-Main-Menu.png|Select Main Menu]]&lt;br /&gt;
# From the row of actions in the upper-right corner, select &#039;&#039;&#039;New&#039;&#039;&#039; (represented by the green icon with the plus sign). This will open the Menu Item: [New] page.&amp;lt;br /&amp;gt;[[Image:Main-Menu-Editor.png|Click New]]&lt;br /&gt;
# From the list titled &amp;quot;Select Menu Item Type,&amp;quot; choose &#039;&#039;&#039;Articles&#039;&#039;&#039; (You&#039;ll find Articles under the Internal Link.)&amp;lt;br /&amp;gt;[[Image:NewMenuItem-Articles.png|Select Articles]]&lt;br /&gt;
# Choose &#039;&#039;&#039;Article Layout&#039;&#039;&#039; in the previously expanded Articles section.&amp;lt;br /&amp;gt;[[Image:Select-Article-Layout.png|Select Article Layout]]&lt;br /&gt;
# We are getting really close. Hold on! On the new page fill in the different fields like this:&amp;lt;br /&amp;gt;[[Image:NMI-Article-Details.png|Enter Article Details]]&amp;lt;br /&amp;gt;&#039;&#039;&#039;Menu Item Details&#039;&#039;&#039;&amp;lt;br /&amp;gt;&lt;br /&gt;
#* &#039;&#039;&#039;Title&#039;&#039;&#039;&amp;lt;br /&amp;gt;This will be the text displayed for the newly added menu item.  For this particular case let&#039;s use the word &#039;&#039;&#039;Documentation&#039;&#039;&#039;.&lt;br /&gt;
#* &#039;&#039;&#039;Alias&#039;&#039;&#039;&amp;lt;br /&amp;gt;Usually, you will leave this empty and Joomla! will fill this in for you automatically. The content of this field will determine the page URL when SEF is activated.&lt;br /&gt;
#* &#039;&#039;&#039;Display in&#039;&#039;&#039;&amp;lt;br /&amp;gt;This should already be set to Main Menu (or the menu you have previously chosen ). Here you have the possibility to move the item to another menu if you wish. This field is quite useful when you decide to change the item location later.&lt;br /&gt;
#* &#039;&#039;&#039;Parent Item&#039;&#039;&#039;&amp;lt;br /&amp;gt;Here you can specify where to place the new menu item. You can make it a top item or a sub-item of an already existing item. We will choose &#039;&#039;&#039;Top&#039;&#039;&#039;.&lt;br /&gt;
#* &#039;&#039;&#039;Published&#039;&#039;&#039;&amp;lt;br /&amp;gt;If you wish your new item to be shown on your site, set this to &#039;&#039;&#039;Yes&#039;&#039;&#039;. If you would like to remove this menu item from the site, simply set this to No. It will &#039;&#039;not&#039;&#039; delete the item but will make it invisible to your visitors.&lt;br /&gt;
#* &#039;&#039;&#039;Access Level&#039;&#039;&#039;&amp;lt;br /&amp;gt;This option will specify who will be able to see this new menu item:&lt;br /&gt;
#** &#039;&#039;Public&#039;&#039; - All visitors&lt;br /&gt;
#** &#039;&#039;Registered&#039;&#039; - Registered users only&lt;br /&gt;
#** &#039;&#039;Special&#039;&#039; - users assigned to any group besides &amp;quot;Registered&amp;quot;&lt;br /&gt;
#* &#039;&#039;&#039;On Click, Open in&#039;&#039;&#039;&amp;lt;br /&amp;gt;Here you can specify how to open the article. It can be the same browser window (Parent Window with Browser Navigation), a new browser window (New Window with Browser navigation) or a pop-up window (New Window without Browser Navigation)&lt;br /&gt;
# Now, let&#039;s get to the right side of this page...&lt;br /&gt;
#* &#039;&#039;&#039;Parameters (Basic)&#039;&#039;&#039;&amp;lt;br /&amp;gt;The most important part in this section is the Parameters (Basic) setting. Here you can specify the article that will be opened when the user clicks the newly created menu item.&lt;br /&gt;
#** For this press the &#039;&#039;&#039;Select&#039;&#039;&#039; button near the &#039;&#039;Select Article&#039;&#039; input box.&amp;lt;br /&amp;gt;[[Image:SelectWhichArticle.png|Click Select]]&lt;br /&gt;
#** In the pop-up window, select &#039;&#039;Support and Documentation&#039;&#039; from the list of articles by clicking on the article name.&amp;lt;br /&amp;gt;[[Image:ChooseArticleFromList.png|Choose Article From List]]&amp;lt;br /&amp;gt;Please note that you can choose any of the existing articles at this point.&lt;br /&gt;
#* &#039;&#039;&#039;Parameters (Component)&#039;&#039;&#039;&amp;lt;br /&amp;gt;Here you will find different options to help you customize the way your article will be displayed. Normally, you won&#039;t need to change anything in this section. If you decide to explore it, you will find good help in the tool tips that appear when you move your mouse over the labels (Show Unauthorized Links, etc)&lt;br /&gt;
#* &#039;&#039;&#039;Parameters (System)&#039;&#039;&#039;&amp;lt;br /&amp;gt;This section will let you customize the way the page containing the article gets downloaded and displayed.&lt;br /&gt;
#** &#039;&#039;&#039;Page Title&#039;&#039;&#039; - If this parameter is left blank, Joomla! will generate a Page Title automatically.  This can be used to over-ride the page title set in the article. Don&#039;t forget! Page titles are one of the most important points when it comes to search engine optimization (SEO)! Use them wisely.&lt;br /&gt;
#** &#039;&#039;&#039;Show Page Title&#039;&#039;&#039; - display (Yes) or not (No) the page title set in the previous parameter&lt;br /&gt;
#** &#039;&#039;&#039;Page Class Suffix&#039;&#039;&#039; - this allows you to generate unique CSS classes for this page. This comes in usefull when you would like to change the look of the page to differentiate it from the rest of the site. If you don&#039;t need this, simply leave the field empty.&lt;br /&gt;
#** &#039;&#039;&#039;Menu Image&#039;&#039;&#039; - let&#039;s you choose an image to be displayed along with this item in the menu. The image you would like to associate with the item must be stored in the images/stories folder. You can upload your own image using the Media Manager or by FTP.&lt;br /&gt;
#** &#039;&#039;&#039;SSL Enabled&#039;&#039;&#039;&amp;lt;br /&amp;gt;Specify how a page is displayed:&lt;br /&gt;
#*** &#039;&#039;On&#039;&#039; - As a secure page&lt;br /&gt;
#*** &#039;&#039;Off&#039;&#039; - As a standard page&lt;br /&gt;
#*** &#039;&#039;Ignore&#039;&#039; - Displayed as the other pages - secure or not&lt;br /&gt;
# Once you are done, click the &#039;&#039;&#039;Save&#039;&#039;&#039; button in the upper-right corner (the floppy disk icon). &amp;lt;br /&amp;gt;[[Image:SaveArticleMenuItem.png|Click Save]]&amp;lt;br /&amp;gt;This will save the new item and place it as the last element (or sub-element, in case of sub-menu items) in the menu. You can use the green arrows in the Order column to change the item position within the menu.&lt;br /&gt;
# Now, get back to the front-end and refresh the page. &amp;lt;br /&amp;gt;[[Image:VerifyArticleMenuItem.png|Verify New Menu Item]]&lt;br /&gt;
&lt;br /&gt;
Voilà! The new menu item is shown. Please note that you might need to log in as a registered user or administrator to view the new item. It all depends on the Access Level you have set (see above). When you click the new item, the article will be opened.&lt;br /&gt;
&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Lhollopeter</name></author>
	</entry>
</feed>