Actions

Difference between revisions of "How to override the output from the Joomla! core"

From Joomla! Documentation

(add to category:overrides)
m (version/tutorial template)
(9 intermediate revisions by 7 users not shown)
Line 1: Line 1:
There may be occasions where you would like to change the way a Joomla! Extension (such as a Component or Module, whether from the Joomla! core or produced by a third party) is displayed on your site.  Of course, you could recode the Extension from scratch, but that may be a bit ambitious for you! Thankfully, there is another way.   
+
{{version/tutor|1.5,1.6,1.7,2.5}}There may be occasions where you would like to change the way a Joomla! Extension (such as a Component or Module, whether from the Joomla! core or produced by a third party) is displayed on your site.  Of course, you could recode the Extension from scratch, but that may be a bit ambitious for you! Thankfully, there is another way.   
  
 
The standard output from any Joomla! Module or Component can be overridden by adding code to the <code>html</code> directory of your template. It is also possible to override two aspects of core functionality: Module chrome, and pagination.
 
The standard output from any Joomla! Module or Component can be overridden by adding code to the <code>html</code> directory of your template. It is also possible to override two aspects of core functionality: Module chrome, and pagination.
  
=== Getting a head-start with overrides ===
+
== Getting a head-start with overrides ==
If you are new to Joomla! development, then it is probably easiest to start with an existing view, and try modifying it to get what you want.  To do this, you should make a copy of the existing view in the <code>html</code> directory of your template, and then modify the copy.  
+
If you are new to Joomla! development, then it is probably easiest to start with an existing view, and try modifying it to get what you want.  To do this, you should make a copy of the existing view in the <code>html</code> directory of your template, and then modify the copy.
  
 
The directory structure you need is:<br/>
 
The directory structure you need is:<br/>
Line 42: Line 42:
 
The above code in essence lets the Joomla! [[Installer|package installer]] know that there are files to extract, and that they are part of the template as a whole.
 
The above code in essence lets the Joomla! [[Installer|package installer]] know that there are files to extract, and that they are part of the template as a whole.
  
===Further tips===
+
== Further tips ==
 
Template overrides are almost limitless. They allow you to add, edit, and remove the components of the Joomla! core output.  
 
Template overrides are almost limitless. They allow you to add, edit, and remove the components of the Joomla! core output.  
Note: For the FireFox web browser, an extension is available called [https://addons.mozilla.org/en-US/firefox/addon/1843 Firebug], which is useful for browsing a page's HTML source and matching it up with the PHP code used in template overrides. A free video tutorial on using Firebug with Joomla is available [[Tutorial:Using_Firebug_With_Your_Joomla_Website|here]].
+
Note: For the FireFox web browser, an extension called [https://addons.mozilla.org/en-US/firefox/addon/1843 Firebug] is available, which is useful for browsing a page's HTML source and matching it up with the PHP code used in template overrides. For more information, please watch [[Using Firebug With Your Joomla Website|the free video tutorial on using Firebug with Joomla]].
 +
Now firebug is also available for IE called [http://getfirebug.com/lite/ie.html Firebug Lite].
  
 
More information is available from the following resources:
 
More information is available from the following resources:
* Andrew Eddie's presentation (PDF format) on this subject is available [http://sydney.joomladay.org.au/images/stories/presos/layout_overrides.pdf here].
 
 
* The article [[Understanding Output Overrides]] explains the theory behind template overrides.
 
* The article [[Understanding Output Overrides]] explains the theory behind template overrides.
 +
* The preferred way of changing text output is by [[Making templates translatable|using translations in your template]].
 +
* A [http://help.joomla.org/ghop/feb2008/task059/Getting_Started_with_Template_Overrides_v2.tar.gz downloadable tutorial] is also available.
 +
* [https://github.com/AmyStephen/Layout-Override-Plugin Example in github] how to override layout of view without override the view, but extending it.
 
<noinclude>
 
<noinclude>
 +
[[Category:Tutorials]]
 
[[Category:Templates]]
 
[[Category:Templates]]
[[Category:Tips and tricks]] [[Category:Tips and tricks 1.5]]
+
[[Category:Tips and tricks]]
 +
[[Category:Tips and tricks 1.5]]
 +
[[Category:Tips and tricks 1.6]]
 
[[Category:Overrides]]
 
[[Category:Overrides]]
 
</noinclude>
 
</noinclude>

Revision as of 21:47, 17 September 2012

There may be occasions where you would like to change the way a Joomla! Extension (such as a Component or Module, whether from the Joomla! core or produced by a third party) is displayed on your site. Of course, you could recode the Extension from scratch, but that may be a bit ambitious for you! Thankfully, there is another way.

The standard output from any Joomla! Module or Component can be overridden by adding code to the html directory of your template. It is also possible to override two aspects of core functionality: Module chrome, and pagination.

Getting a head-start with overrides

If you are new to Joomla! development, then it is probably easiest to start with an existing view, and try modifying it to get what you want. To do this, you should make a copy of the existing view in the html directory of your template, and then modify the copy.

The directory structure you need is:

TEMPLATE_NAME/html/EXTENSION_NAME/VIEW_NAME/FILE_NAME.php

For example, if you want to change the way that the 'Article' view displays a com_content article, then you should copy the file at

PATH_TO_JOOMLA/components/com_content/views/article/tmpl/default.php
to
TEMPLATE_NAME/html/com_content/article/default.php

(note the slight difference in directory structure)

Similarly, if you want to change how the mod_login Module is displayed, then you should copy

PATH_TO_JOOMLA/modules/mod_login/tmpl/default.php
to
TEMPLATE_NAME/html/mod_login/default.php


Joomla! comes pre-packaged with a frontend template called Beez. Beez utilizes template overrides to produce a table-less layout for faster, smoother, and semantically correct markup. To see how it's done, locate your Joomla! installation's template directory, and you'll notice the Beez template. Inside the Beez template directory, you'll find a directory named html

the entire directory structure is as follows:

/your_joomla/templates/Beez/html/

If you want to try modifying the overrides used in Beez, you could simply copy and paste the Beez html directory into your own template's main directory. However you choose to make your override files, you will need to ensure that they are correctly installed with your template. To do this, you should add the following code to your template's templateDetails.xml file (in between the <files> and </files> tags):

<folder>html</folder>

The above code in essence lets the Joomla! package installer know that there are files to extract, and that they are part of the template as a whole.

Further tips

Template overrides are almost limitless. They allow you to add, edit, and remove the components of the Joomla! core output. Note: For the FireFox web browser, an extension called Firebug is available, which is useful for browsing a page's HTML source and matching it up with the PHP code used in template overrides. For more information, please watch the free video tutorial on using Firebug with Joomla. Now firebug is also available for IE called Firebug Lite.

More information is available from the following resources: