Difference between revisions of "Template reference material"

From Joomla! Documentation

 
m (1 revision(s))
(No difference)

Revision as of 18:27, 14 January 2008

<translate> jdoc statements are included in every Joomla template and indicate where the output from other parts of Joomla or its extensions should be positioned in the overall web page. A typical jdoc statement looks like this: <jdoc:include type="component" /> </translate> <translate>== jdoc:include == </translate> <translate> The <jdoc:include /> statement is a Joomla! template's method of displaying content specific to the page being viewed. There are various <jdoc:include /> statements, each returning a different part of a Joomla! page. The replacement itself is done in JDocumentHTML::_renderTemplate. See also _parseTemplate.</translate>

<translate>=== The type Attribute === </translate> <translate> The type attribute specifies the type of content to be rendered in place of the <jdoc:include /> element. For example, the <jdoc:include type="head" /> statement uses the type attribute head (type="head"). (Note: Jdoc expressions require double quotes around attributes, and won't work with single quotes. The space before the closing /> is also mandatory.)</translate>

<translate>==== Component ==== </translate>

<jdoc:include type="component" />

<translate> This element should only appear once in the <body> element of the Template to render the main content of the page with respect to the current page being viewed.</translate>

<translate>==== Head ==== </translate>

<jdoc:include type="head" />

<translate> This element should only appear once in the <head> element of the Template to render the content of the style, script and meta elements associated with the current page.</translate>

<translate>==== Installation ==== </translate>

<jdoc:include type="installation" />

<translate> This element is only used within the Joomla! Installer template for Joomla Joomla 2.5 and below and is of no particular use in a Frontend or Backend template. It's somewhat the equivalent to the 'component' type, rendering the main content of an installation step.</translate>

<translate>==== Message ==== </translate>

<jdoc:include type="message" />

<translate> This element should only appear once in the <body> element of the Template to render system and error messages that occurred in the request.</translate>

<translate> CSS styles for system messages can be found in</translate> templates\system\css\system.css

<translate>==== Module ==== </translate>

<jdoc:include type="module" name="breadcrumbs" title="Breadcrumbs" />
<jdoc:include type="module" name="mainmenu" title="Main Menu" />

<translate> This element renders a single module given by the name and title attributes: name should match module type (mod_breadcrumbs and mod_menu in the examples above) while title should be the module name of the desired module. The module in question must be published and accessible by the current user in order to become visible. Additional attributes can be provided to control the layout and appearance of the module, if supported.</translate>

<translate>==== Modules ==== </translate> <translate> Modules are rendered on a page using one of the following code examples. The modules are separated into different areas of a template using template positions set in the templatedetails.xml file. Using the jdoc:include's name="[template position name]" attribute, the various modules in their respective positions can be called, rendered and styled separately. Additional attributes can be provided to control the layout and appearance of modules, if supported.</translate>

<translate> Below are some examples of module statements with module positions used frequently by Joomla! theme developers.</translate>

<jdoc:include type="modules" name="debug" />
<jdoc:include type="modules" name="icon" />
<jdoc:include type="modules" name="left" style="rounded" />
<jdoc:include type="modules" name="left" style="xhtml" />
<jdoc:include type="modules" name="right" style="xhtml" />
<jdoc:include type="modules" name="status"  />
<jdoc:include type="modules" name="syndicate" />
<jdoc:include type="modules" name="title" />
<jdoc:include type="modules" name="toolbar" />
<jdoc:include type="modules" name="top" />
<jdoc:include type="modules" name="top" style="xhtml" />
<jdoc:include type="modules" name="user1" style="xhtml" />
<jdoc:include type="modules" name="user2" style="xhtml" />
<jdoc:include type="modules" name="user3" />
<jdoc:include type="modules" name="user4" />

<translate> Note: The name="user3" module position is normally (by default) used for the top menu.</translate>

<translate>=== The style Attribute === </translate> <translate> The optional style="" attribute is available for the module and modules types of <jdoc:include /> statements. The attribute value refers to the chrome style used to wrap the output generated by the Module. If no style is provided, a value of "none" is used by default.</translate>

<translate> Template designers may add additional chrome names as described in Applying custom module chrome.</translate>

<translate>==See also== </translate>

  • <translate>

Understanding Joomla! templates</translate>

  • <translate>

Creating a basic Joomla! template</translate>

<translate></translate>

The following standard module chromes are available:

  • none. Output the raw Module content with no wrapping.
  • table. Output the module in a table.
  • horz. Output the module as a table inside an outer table.
  • xhtml. Output the module wrapped in div tags.
  • rounded. Output the module wrapped in nested div tags to support rounded corners.
  • outline. Output the module wrapped with a preview border.

Default CSS classes

Configuration variables deprecated in Joomla! 1.5


<translate> Joomla! Developers Portal</translate>

{{Portal:Developers/Intro/<translate> en</translate>}}

<translate> Getting Started!</translate>

{{Portal:Developers/Resources/<translate> en</translate>}}

<translate>==There are four types of extensions development== </translate>

<translate> Components</translate>

{{Portal:Component_Development/Reading_list/<translate>

en</translate>}}

<translate> For more articles and information:</translate>

<translate> See the Component Development Portal page.</translate>


<translate> Plugins</translate>

{{Portal:Plugin_Development/Reading_list/<translate>

en</translate>}}

<translate> For more articles and information:</translate>

<translate> See the Plugin Development Portal page.</translate>


<translate> Modules</translate>

{{Portal:Module_Development/Reading_list/<translate>

en</translate>}}

<translate> For more articles and information:</translate>

<translate> See the Module Development Portal page.</translate>


<translate> Templates</translate>

{{Portal:Template_Development/Reading_list/<translate>

en</translate>}}

<translate> For more articles and information:</translate>

<translate> See the Template Development Portal page.</translate>

<translate>==More Development Topics== </translate>

<translate> Database</translate>

{{Portal:Developers/Database/<translate> en</translate>}}

<translate> Localisation</translate>

{{Portal:Developers/Localisation/<translate> en</translate>}}

<translate> ACL Topics</translate>

{{Portal:Developers/Access Control/<translate> en</translate>}}

<translate> Forms</translate>

{{Portal:Developers/Forms/<translate> en</translate>}}

<translate> API Guides</translate>

<translate> The Joomla API Guides provide explanations and sample code relating to the Joomla API functions, to help you understand how to use the APIs in your own extensions. Click here to get to the index of these guides.</translate>

<translate> Security</translate>

{{Portal:Developers/Security/<translate>

en</translate>}}
<translate> For more articles and information:</translate>

<translate> See the Security Portal page.</translate>

<translate> Contributing to Documentation</translate>

{{Portal:Developers/Developer_Documentation/<translate> en</translate>}}



<translate> Joomla! Developers Portal</translate>


{{Portal:Developers/Intro/<translate> en</translate>}}

<translate> Getting Started!</translate>

{{Portal:Developers/Resources/<translate> en</translate>}}

<translate>==There are four types of extensions development== </translate>

<translate> Components</translate>

{{Portal:Component_Development/Reading_list/<translate>

en</translate>}}

<translate> For more articles and information:</translate>

<translate> See the Component Development Portal page.</translate>


<translate> Plugins</translate>

{{Portal:Plugin_Development/Reading_list/<translate>

en</translate>}}

<translate> For more articles and information:</translate>

<translate> See the Plugin Development Portal page.</translate>


<translate> Modules</translate>

{{Portal:Module_Development/Reading_list/<translate>

en</translate>}}

<translate> For more articles and information:</translate>

<translate> See the Module Development Portal page.</translate>


<translate> Templates</translate>

{{Portal:Template_Development/Reading_list/<translate>

en</translate>}}

<translate> For more articles and information:</translate>

<translate> See the Template Development Portal page.</translate>

<translate>==More Development Topics== </translate>

<translate> Database</translate>

{{Portal:Developers/Database/<translate> en</translate>}}

<translate> Localisation</translate>

{{Portal:Developers/Localisation/<translate> en</translate>}}

<translate> ACL Topics</translate>

{{Portal:Developers/Access Control/<translate> en</translate>}}

<translate> Forms</translate>

{{Portal:Developers/Forms/<translate> en</translate>}}

<translate> API Guides</translate>

<translate> The Joomla API Guides provide explanations and sample code relating to the Joomla API functions, to help you understand how to use the APIs in your own extensions. Click here to get to the index of these guides.</translate>

<translate> Security</translate>

{{Portal:Developers/Security/<translate>

en</translate>}}
<translate> For more articles and information:</translate>

<translate> See the Security Portal page.</translate>

<translate> Contributing to Documentation</translate>

{{Portal:Developers/Developer_Documentation/<translate> en</translate>}}



The following logical, comparison and arithmetic operators are available:

Operator Example Description
 + user1 + user2 Total number of Modules in user1 and user2 positions.
 - user1 - user2 The number of Modules in the user1 position minus the number in the user2 position.
 * user1 * user2 The number of Modules in the user1 position multiplied by the number in the user2 position.
 / user1 / user2 The number of Modules in the user1 position divided by the number in the user2 position.
 == user1 == user2 Returns true if user1 and user2 have the same number of Modules enabled; otherwise returns false.
 != user1 != user2 Returns true if user1 and user2 do not have the same number of Modules enabled; otherwise returns false.
 <> user1 <> user2 Same as !=.
 < user1 < user2 Returns true if user1 has strictly less Modules enabled than user2; otherwise returns false.
 > user1 > user2 Returns true if user2 has strictly more Modules enabled than user1; otherwise returns false.
 <= user1 <= user2 Returns true if user1 has the same or less Modules enabled than user2; otherwise returns false.
 >= user1 >= user2 Returns true if user2 has the same or more Modules enabled than user1; otherwise returns false.
 and user1 and user2 Returns true if user1 and user2 both have at least 1 enabled Module; otherwise returns false.
 or user1 or user2 Returns true if user1 or user2 or both have at least 1 enabled Module; otherwise returns false.
 xor user1 xor user2 Returns true if user1 or user2 but not both have at least 1 enabled Module; otherwise returns false.

Note that if countModules() returns any non-zero number it is equivalent to true; whereas zero is equivalent to false.

More than two module positions can be included in an expression. Evaluation of the expression is performed from left to right subject to operator precedence.

The following table lists the precedence of operators with the highest-precedence operators listed at the top of the table. Operators on the same line have equal precedence, in which case they are evaluated from left to right. The use of brackets to override precedence is not supported.

Operators Operator type
* / Arithmetic operators
+ - Arithmetic operators
< <= > >= Comparison operators
== != Comparison operators
and Logical operator
xor Logical operator
or Logical operator

According to

<?php print_r($this); ?>

in Joomla! 3.1, the object $this within the index.php file of the Protostar template looks like:

JDocumentHTML Object 
(
	 [_links] => Array 
		(
			 [http://j3demo/?view=featured] => Array
				 (
					[relation] => canonical
					[relType] => rel 
					[attribs] => Array 
						(
						 )
				 )
			 [/index.php?format=feed&type=rss] => Array 
				(
					[relation] => alternate 
					[relType] => rel 
					[attribs] => Array 
						( 
							[type] => application/rss+xml 
							[title] => RSS 2.0 )
						 )
					 [/index.php?format=feed&type=atom] => Array 
						( 
							[relation] => alternate 
							[relType] => rel [attribs] => Array 
								( 
									[type] => application/atom+xml 
									[title] => Atom 1.0
								 ) 
						 ) 
	[_custom] => Array 
		(
		 ) 
	[template] => protostar 
	[baseurl] => 
	[params] => JRegistry Object 
		( 
			[data:protected] => stdClass Object 
				( 
					[templateColor] => 
					[logoFile] => 
					[googleFont] => 1 
					[googleFontName] => Open+Sans 
					[fluidContainer] => 0 
                                ) 
		) 
	[_file] => /home/j3demo/public_html/templates/protostar/index.php 
	[_template:protected] => 
	[_template_tags:protected] => Array 
		( 
		) 
	[_caching:protected] => 
	[_html5:JDocumentHTML:private] => 
	[title] => Home 
	[description] => Joomla 3 demo 
	[link] => [base] => http://j3demo/ 
	[language] => en-gb 
	[direction] => ltr 
	[_generator] => Joomla! - Open Source Content Management 
	[_mdate] => 
	[_tab] => 
	[_lineEnd] => 
	[_charset] => utf-8 
	[_mime] => text/html 
	[_namespace] => 
	[_profile] => 
	[_scripts] => Array 
		( 
			[/media/system/js/mootools-core.js] => Array 
				( 
					[mime] => text/javascript 
					[defer] => [async] => 
				) 
			[/media/system/js/core.js] => Array 
				( 
					[mime] => text/javascript 
					[defer] => 
					[async] => 
				) 	
			[/media/system/js/caption.js] => Array 
				( 
					[mime] => text/javascript 
					[defer] => 
					[async] => 
				) 
			[/media/jui/js/jquery.min.js] => Array 
				( 
					[mime] => text/javascript 
					[defer] => 
					[async] => 
				) 
			[/media/jui/js/jquery-noconflict.js] => Array 
				( 
					[mime] => text/javascript 
					[defer] => 
					[async] => 
				) 
			[/media/jui/js/bootstrap.min.js] => Array 
				( 
					[mime] => text/javascript 
					[defer] => 
					[async] => 
				) 
		) 
	[_script] => Array 
		( 
			[text/javascript] => window.addEvent('load', function() { 
				new JCaption('img.caption'); 
			}); ) 
	[_styleSheets] => Array 
		( 
			[templates/protostar/css/template.css] => Array 
				( 
					[mime] => text/css 
					[media] => 
					[attribs] => Array 
						( 
						) 
				) 
		) 
	[_style] => Array 
		( 
		) 
	[_metaTags] => Array 
		( 
			[http-equiv] => Array 
				( 
					[content-type] => text/html; charset=utf-8 
				) 
			[standard] => Array 
				( 
					[keywords] => 
					[rights] => 
				) 
		) 
	[_engine] => 
	[_type] => html 
	[_errors:protected] => Array
        		(
        		)
)


Example of using objects[edit]

<link rel="stylesheet" href="'''<?=$this->baseurl ?>'''/templates/'''<?=$this->template ?>'''/css/template_css.css" type="text/css"/>

Security do's and don't's


Asynchronous JavaScript and XML or AJAX, is a term for a group of interrelated web development techniques used for creating interactive web applications or commonly known as web 2.0. Ajax allows web applications to retrieve data from the server asynchronously in the background without interfering with the display and behavior of the existing website page. Data is retrieved using the XMLHttpRequest object or through the use of Remote Scripting in browsers that do not support it.

Using AJAX in Joomla

JavaScript Resources:

  1. jQuery
  2. MooTools
  3. Prototype
  4. Script.aculo.us
  5. Help I Don’t Know JavaScript Blog


Many browsers can act as platforms for diagnostic tools. You can analyze Web pages built with any version of Joomla by using them. These browser tools have many built-in features such as a DOM Inspector, JavaScript Debugger, Network Inspector, Resources Inspector, Storage Inspector, Profiler, Error Log, Remote Debugging, etc. These tools make it easier to see and debug exactly what is being processed by a browser when rendering a web page.

Mozilla Firefox Web Browser[edit]

Internet Explorer Web Browser[edit]

Note Full support for Internet Explorer was discontinued on June 15, 2022.

  • MSIE 8+, press Shift+F12 or click the Developer Tools icon in the command bar
  • DebugBar (MSIE 5 - 11, free for personal use)
  • Users of Office XP and later may also install the Script Debugger via Office Setup. (The debugger is not installed by default.)
  • See also Microsoft's Tools for Debugging Web Applications and Add-Ons

Opera Web Browser[edit]

Opera has a built-in diagnostic tool. See Streamline development with developer tools

Safari Web Browser[edit]


<translate> The Joomla! Glossary is helpful for learning common terms used in Joomla! tutorials, help screens and advanced documentation.


Access Control List

Alias

Anchor

An anchor is created using the <a> tag in HTML. An anchor allows you to place a bookmark inside an HTML page. In Joomla!, you can place an anchor inside an article (for example, using the TinyMCE editor). This lets you create a link that will go directly to that point in the article.

The HTML source code for an anchor looks like the following:

<a name="my_anchor" title="My Anchor"></a>

You can link to an anchor from within the same page using the HTML code

<a href="#my_anchor" ></a>

Clicking that link will take you directly to the location of the anchor tag.

You can link to an anchor in a different page by appending "#" plus the anchor name to the end of the URL. In the example above, if the URL for the article was http://www.mysite.com/my_article.html, then you could link directly to the anchor in that page with the URL http://www.mysite.com/my_article.html#my_anchor.

Article

Cascading Style Sheet (CSS)

A Cascading Style Sheet or CSS is used to control the presentation of an XHTML page. For example, a CSS file will often control the font, margins, color, background graphics, and other aspects of a web page's appearance. CSS allows you to separate the content of an XHTML page from it's appearance. In Joomla!, CSS files (for example, template.css) are normally part of the template.

See also: Template, Page Class Suffix, Module Class Suffix

Category

Every part of Joomla! powered web site or any CMS type of web site needs a method to display and store its content logically. The usual method is by categories and subcategories. Joomla! allows for multiple ways to display and use content controlled by categorisation. Some of the content types which have categorisation are articles (Main content of web pages), banners, contacts and web links.

Joomla! category named "Uncategorised" is the default category, assigned to any and all content types. The "Uncategorised" category is not descriptive and should be used on as needed basis for content types which do not fall under a specific category.

When creating and assigning categories, you should have a planned structure. As an example, this is one way of how you would categorise several Joomla articles on birds. Create two top article categories called "Animals" and "Plants". Under the "Animals" category, you might have sub categories called "Birds" and "Mammals". Under the "Birds" sub category, you might have 3 articles named "Hawks," "Parrots" and "Sparrows".

  • Animals
    • Birds
      • Hawks
      • Parrots
      • Sparrows
    • Mammals

The example above could be expanded even more with specific articles on different species of Hawks, Parrots and Sparrows. Start with using an "Animal" top Category, placing the sub categories "Birds" and "Mammals" are under the "Animal" category, and then a "Hawks," "Parrots" and "Sparrows" sub category under the "Birds" Sub Category as shown below.


Now you can create multiple articles in the Hawk, Parrot and Sparrow sub categories using the different genus or common names of the specific types of these 3 birds.

Categories and their sub categories are maintained using the "Category Manager" which can be reached in the administrator back-end interface by clicking on the "Content" menu type, then the "Category Manager" menu item for the type.

See also: Article

Chrome

The visible graphical interface features of an application are sometimes referred to as chrome. See Applying custom module chrome for information about how to modify the look of modules (in other words, the module "chrome").

Component

Core

The word "core" in Joomla! pertains to the distributed files which are needed to create and administrate a Joomla CMS powered web site. These files can be downloaded from the Joomla website at http://www.joomla.org/download.html. The Joomla "core" also contains some basic functionality to get new Joomla installations working quickly and easily. Included are the user manager, article manager, weblink manager, category manager, contact manager, and menu manager. There is also a template manager with a few basic templates to power the front-end (website/user) view, a module manager with basic modules, plugin manager with basic plugins, and a few other "out of the box" extensions to extend the functionality of a basic Joomla installation. These core's extensions should not be confused with extensions which are available for downloading from the JED (Joomla! Extension Directory).

See also: Joomla Extension Directory.

Database Table Prefix

The database table prefix is a string (a few characters long) prepended to the name of Joomla!'s tables. Using a prefix enables you to run multiple installations of Joomla! using a single database.

The database table prefix can be set during installation. Changing it later is possible, but requires access to the database through a non-Joomla medium or a Joomla Extension such as Akeeba Admin Tools and will cause some downtime.

Extension developers need to use the string #__ to represent the prefix. This will be replaced by the real prefix during runtime by Joomla.

Extension

LDAP

Language

Languages are perhaps the most basic and critical extension type. Languages are packaged as either a core language pack or an extension language pack. These packages consist of INI files which contain key/value pairs. These key/value pairs provide the translation of static text strings within Joomla! source code. This allows both the Joomla! core and third party components and modules to be internationalised. Core language packs also include an XML meta file describing the language and providing information about the fonts to use for PDF content generation.

Menu

In Joomla!, a Menu is a set of menu items used for website navigation. Each menu item defines an URL to a page on your site, and holds settings that control the contents (articles, category(ies) lists, tagged items, etc) and style (module(s), layout) of that page.

Creating menus is rather simple. From the Admin Menu, in the backend of your Joomla! site, you choose: Menus > Menu Manager > Add New Menu. On the opened to you Menu Manager: Add Menu page enter your menu title into the "Title *" field (mandatory), your menu type into the "Menu type *" field (mandatory) and, if you wish, your menu brief description into the "Description" field (optional). After that you can start adding new menu items to this new menu.

Any website can have more than one menu.

Model-View-Controller

Joomla makes extensive use of the Model-View-Controller design pattern.

When Joomla is started to process a request from a user, such as a GET for a particular page, or a POST containing form data, one of the first things that Joomla does is to analyse the URL to determine which component will be responsible for processing the request, and hand control over to that component.

If the component has been designed according to the MVC pattern, it will pass control to the controller. The controller is responsible for analysing the request and determining which model(s) will be needed to satisfy the request, and which view should be used to return the results back to the user.

The model encapsulates the data used by the component. In most cases this data will come from a database, either the Joomla database, or some external database, but it is also possible for the model to obtain data from other sources, such as via a web services API running on another server. The model is also responsible for updating the database where appropriate. The purpose of the model is to isolate the controller and view from the details of how data is obtained or amended.

The view is responsible for generating the output that gets sent to the browser by the component. It calls on the model for any information it needs and formats it appropriately. For example, a list of data items pulled from the model could be wrapped into an HTML table by the view.

Since Joomla is designed to be highly modular, the output from the component is generally only part of the complete web page that the user will ultimately see. Once the view has generated the output, the component hands control back to the Joomla framework which then loads and executes the template. The template combines the output from the component, and any modules that are active on the current page, so that it can be delivered to the browser as a single page.

To provide additional power and flexibility to web designers, who may only be concerned with creating new designs rather than manipulating the underlying code, Joomla splits the traditional view into a separate view and layout. The view pulls data from the model, as in a traditional MVC pattern, but then simply makes that data available to the layout, which is responsible for formatting the data for presentation to the user. The advantage of having this split is that the Joomla template system provides a simple mechanism for layouts to be overridden in the template. These layout overrides (often called "template overrides" because they form part of the template, although actually it is the layout that is being overridden) are bundled with the template and give the template designer complete control over all the output from the Joomla core and any installed third-party extensions that comply with the MVC design pattern.

Module

Module Class Suffix

Module Class Suffix is a parameter in Joomla! modules. It is set Module: [Edit] screen under Advanced Parameters. Setting this parameter causes Joomla! to either add a new CSS class or modify the existing CSS class for the div element for this specific module.

When Joomla! generates a module, it automatically create a CSS class called "moduletable" to allow styling of the module -- for example,

<div class="moduletable">

To create a new class, enter the parameter with a leading space. For example, entering a space plus "myNewClass" will create a new CSS class called "myNewClass". The HTML will be changed to

<div class="moduletable myNewClass">

To change the name of the existing class, enter in the parameter without a leading space. For example, entering "_mySuffix" (no leading space) will cause the HTML to changed to

<div class="moduletable_mySuffix">

Generally, it is recommended to use a leading space to create a new class. This way, CSS styling for this module that uses the standard class names will continue to work. You can use the new class name to add any desired styling to the module without needing to re-create all of the existing CSS code. Note that, if you create a new class name, make sure it has a unique name and doesn't conflict with any existing class names.

See Using Class Suffixes for more information.

Module Position

Module chrome

PHP

PHP is a computer scripting language designed for creating dynamic web pages. PHP is widely-used for web development and can be embedded into HTML. It generally runs on a web server, taking PHP code as its input and creating web pages as output. Joomla! is primarily written using the PHP language. For more information, see Where can you learn about PHP?

Page Class Suffix

Page Class Suffix is a parameter in Joomla! content menu items. It is set in a particular menu item: [Edit Menu Item] page, under the "Page Display" tab. A new page class suffix will cause Joomla! to either add a new CSS class or modify the existing CSS class for elements in the assigned to this very menu item page layout.

When Joomla! generates a page, it automatically creates pre-defined CSS classes to allow styling of the page. For example, a page might have the element

<div class="componentheading">

To create a new class, enter the parameter with a leading space. For example, entering a space plus "myNewClass" will create a new CSS class called "myNewClass" and it will be inserted as a class for elements in that Menu Item. In this case the example above will be changed to

<div class="componentheading myNewClass">

To change the name of the existing class, enter in the parameter without a leading space. For example, entering "_mySuffix" (no leading space) will cause the HTML to changed to

<div class="componentheading_mySuffix">

Generally, it is recommended to use a leading space to create a new class. This way, CSS styling for this component that uses the standard class names will continue to work. You can use the new class name to add any desired styling to the component without needing to re-create all of the existing CSS code. Note that, if you create a new class name, make sure it has a unique name and doesn't conflict with any existing class names.

See also: Using Class Suffixes, Using the Page Class Suffix in Template Code

Patch

Plugin

Search Engine Friendly URLs

Search engine friendly URLs is a term commonly abbreviated as SEF URLs or SEF for short. Normal Joomla! URLs look something like this:

http://www.yoursite.org/index.php?option=com_content&view=section&id=3&Itemid=41

You can optionally have URLs display to look like static HTML pages like this:

http://www.yoursite.org/faq.html

Since Joomla! 1.5, there are built-in options for generating SEF URLs. These are enabled by changing the "SEO Settings" (Search Engine Optimisation) in the Site tab in the Global Configuration screen in the Joomla! back end. There are also third-party extensions that create SEF URLs for Joomla!.

Split menus

A split menu is where different levels of a single menu are displayed in two or more locations on a single web page.

For example, a common requirement is for a menu of top-level items to appear at the top of the page. When one of the items is clicked the user is taken to a page where a secondary menu, say on the left of the page, shows second-level items within the scope of the top-level item.

The menus appear in separate locations on the page, but are related because one shows only top-level items while the other shows second-level items. This idea can be extended to include menus for third-level items and beyond.

This can be implemented in Joomla using a single multi-level menu then creating more than one menu module each referring to a different level.

See also: Menu

Template

A template is a type of Joomla! extension that changes the way your site looks. There are two types of templates used by the Joomla! CMS: Front-end Templates and Back-end Templates. The Front-end Template controls the way your website is presented to the user viewing the website's content. The Back-end Template controls the way your website's administrative tasks are presented for controlling management functions by a Joomla! Administrator. These would include common tasks such as: user, menu, article, category, module, component, plugin and template management.

See also: Component, Module, Plugin

Template style

Upgrade Package

An Upgrade Package in Joomla! is an archive of files that contain the files that have changed between Joomla! versions. When this archive is unpacked, it replaces the old version of the modified files with the new version. For example, if fifty files were changed between version 3.x.1 and 3.x.2, the upgrade package from 3.x.1 to 3.x.2 would contain these fifty files and, when unpacked, would replace these fifty files and upgrade the installed version from 3.x.1 to 3.x.2.

Upgrade Packages are also sometimes referred to as patch files. Before installing an Upgrade Package, read the release notes and the Upgrade Instructions relating to the Upgrade Package.


</translate>