<?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=Radiant+tech</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=Radiant+tech"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Radiant_tech"/>
	<updated>2026-06-22T22:47:26Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Unit_Tests_For_The_Platform&amp;diff=63621</id>
		<title>Unit Tests For The Platform</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Unit_Tests_For_The_Platform&amp;diff=63621"/>
		<updated>2011-12-15T20:05:07Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a very early stage document about running unit tests on the platform.&lt;br /&gt;
&lt;br /&gt;
To run tests on the platform you will need to install PHPUnit 3.5. You may also need to update your version of PEAR to the current version. If you are using Ubuntu as your OS you will need to be at minimum on version 10.10 to update to PEAR&#039;s current package using the standard packages in the software center.&lt;br /&gt;
You will also need to have xdebug with the current version installed.&lt;br /&gt;
&lt;br /&gt;
PHP must be at least version 5.2.7 but 5.3.3 is recommended.&lt;br /&gt;
&lt;br /&gt;
To install, go to the command line and type:&lt;br /&gt;
&lt;br /&gt;
 pear channel-discover pear.phpunit.de&lt;br /&gt;
 pear channel-discover components.ez.no&lt;br /&gt;
 pear channel-discover pear.symfony-project.com&lt;br /&gt;
&lt;br /&gt;
 pear install -f --alldeps phpunit/PHPUnit&lt;br /&gt;
 pear install -f --alldeps phpunit/PHPUnit_MockObject&lt;br /&gt;
 pear install -f --alldeps phpunit/DBUnit&lt;br /&gt;
 pear install -f --alldeps PHP_CodeSniffer&lt;br /&gt;
&lt;br /&gt;
At this point you should be able to navigate to the platform root folder and type phpunit at the prompt to start the tests.&lt;br /&gt;
&lt;br /&gt;
Before running you will need to install a database for the test and enter the information. Copy config.php-dist to config.php.&lt;br /&gt;
&lt;br /&gt;
You will need to create a database and import /tests/ddl.sql.&lt;br /&gt;
&lt;br /&gt;
If you want to keep it simple and are sure you computer is secure, you can use the names from the file otherwise edit the file.&lt;br /&gt;
&lt;br /&gt;
Names from file:&lt;br /&gt;
 public $user = &#039;utuser&#039;;&lt;br /&gt;
 public $password = &#039;ut1234&#039;;&lt;br /&gt;
 public $db = &#039;joomla_ut&#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 phpunit --help &lt;br /&gt;
&lt;br /&gt;
will give you a list of options.&lt;br /&gt;
[[Category:Platform]] [[Category:Development]] [[Category:Testing]] [[Category:Bug Squad]]&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Running_Unit_Tests&amp;diff=63615</id>
		<title>Running Unit Tests</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Running_Unit_Tests&amp;diff=63615"/>
		<updated>2011-12-14T23:53:14Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: added Testing and Bug Squad categories&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Running the Entire Test Suite ==&lt;br /&gt;
&lt;br /&gt;
The entire test suite can be run by simply entering the test directory and typing phpunit:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /path/to/joomla/tests/unit&lt;br /&gt;
phpunit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Specifying a Directory of Tests to Run ==&lt;br /&gt;
&lt;br /&gt;
You can run a subset of tests by specifying the directory path of the tests that you want to run.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;phpunit suite/libraries/joomla/utilities&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Will run all of the tests in the specified directory and any subdirectory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Using the --filter Parameter to Run Certain Tests ==&lt;br /&gt;
&lt;br /&gt;
The --filter parameter allows you to run a specific subset of the entire test suite.  The --filter parameter takes a regular expression that can be used to filter out tests.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;phpunit --filter JForm&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Will scan through the suite directory and run tests that contain JForm in the class name or in the method name.&lt;br /&gt;
&lt;br /&gt;
[[Category:Testing]][[Category:Bug Squad]]&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Unit_Testing&amp;diff=63613</id>
		<title>Unit Testing</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Unit_Testing&amp;diff=63613"/>
		<updated>2011-12-14T23:25:42Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: replaced ref to SVN with GitHub platform/link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{cookiejar}}&lt;br /&gt;
Note that this article is badly out of date.&lt;br /&gt;
== News and Updates ==&lt;br /&gt;
2011 10 26 Use version 3.5.15 of PHPUnit. Please see reference material on github.&lt;br /&gt;
&lt;br /&gt;
2009 10 06: Tests now depend on the SVN version of PHPUnit 3.4.1.&lt;br /&gt;
&lt;br /&gt;
2008 06 24: Update to reflect move of PHPUnit code from branch to trunk (former trunk now in /branches/old_simpletest).&lt;br /&gt;
&lt;br /&gt;
2008 06 22: Add information on limiting tests by version.&lt;br /&gt;
&lt;br /&gt;
2008 06 21: Added --class-exclude, --sequence-exclude, and --test-exclude options.&lt;br /&gt;
&lt;br /&gt;
2008 06 21: PHPUnit has been updated to version 3.2.21 with SVN rev 10436. Please update.&lt;br /&gt;
&lt;br /&gt;
== Unit Testing ==&lt;br /&gt;
Unit testing is not only an essential part of a good Quality Control program, it is an aid to development as well. Writing new tests before writing code helps focus the developer on the problem at hand. The practice also encourages writing smaller, more loosely coupled, more reusable, and more maintainable code units and these benefits often outweigh the benefits gained by treating unit tests solely as a QC tool. When used in this manner correctness becomes more a by-product of the process than the goal.&lt;br /&gt;
For a good general discussion of unit testing, visit the [http://en.wikipedia.org/wiki/Unit_test Wikipedia article].&lt;br /&gt;
&lt;br /&gt;
=== Unit Testing in Open Source ===&lt;br /&gt;
Open source projects, with multiple developers working in parallel around the world, can greatly benefit from unit testing. The main benefits are:&lt;br /&gt;
* Unit tests help highlight cases where seemingly minor changes cause unexpected breakage.&lt;br /&gt;
* Unit tests help clearly specify how a class should behave.&lt;br /&gt;
* Unit tests can expose design flaws very early in development.&lt;br /&gt;
* Unit tests make great examples. They are a great place for developers to learn how to use the code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The Testing Hierarchy: Unit, Subsystem, Integrated ===&lt;br /&gt;
Software testing systems usually run through a spectrum from &amp;quot;pure&amp;quot; unit tests through to fully integrated systems tests. We&#039;ve described low level unit tests above. Integrated testing typically involves some sort of script that simulates user actions and then verifies that the result matches what&#039;s expected. This sort of &amp;quot;end to end&amp;quot; test verifies that all parts of the system are working correctly.&lt;br /&gt;
&lt;br /&gt;
It&#039;s unfortunate that there is no clear nomenclature to describe all the intermediate stages of testing. The next stage beyond testing a single unit of code is subsystem testing. A subsystem test verifies that two or more units of code are interacting correctly to produce the desired result. In the simplest case, a subsystem test can be created simply by replacing mock objects with real objects and running unit tests on the top level module. In practise, this tends to not work as well as expected, because the original unit test data wasn&#039;t designed for a subsystem test, or because the nature of the test cases needs to be changed in order to fully test the subsystem. After all there is little point in simply repeating the unit test cases; the objective of a subsystem test should be to test boundary conditions and special cases that would be difficult to duplicate in unit tests.&lt;br /&gt;
&lt;br /&gt;
Once a subsystem has been tested, it can be integrated into a larger system, which is still a subset of the whole product. Tests can be written for larger and larger subsystems, but at each stage the complexity of the tests increases. At some point, the effort required to hand craft tests exceeds the benefits of running them. This is where integrated testing comes in.&lt;br /&gt;
&lt;br /&gt;
Integrated testing involves recording a user&#039;s interaction with the system into a script that can be replayed. The testing framework then compares the system&#039;s response with the expected response and passes or fails the test. The PHPUnit testing framework that we use has the ability to work with [http://seleniumhq.org/ Selenium], a browser based test automation tool. Writing a functional test using Selenium is documented [http://docs.joomla.org/Functional_Testing#Writing_Functional_Tests here].&lt;br /&gt;
&lt;br /&gt;
==== Test Objects ====&lt;br /&gt;
The purpose of unit tests is to isolate a module of code. A test that tests only one thing provides better information than a test that involves several object interactions. But how do we isolate an object from its dependencies? By writing stub classes. [http://xunitpatterns.com/Mocks,%20Fakes,%20Stubs%20and%20Dummies.html xUnit Patterns] defines a the hierarchy of dummy classes, ranging from simple to complex:&lt;br /&gt;
* Dummy - Defines attributes and methods of a dummy class (not particularly useful in PHP).&lt;br /&gt;
* Fake - Provides canned responses to method calls and fixed attribute values. Good for speed.&lt;br /&gt;
* Stub - Allows the test to define responses to method calls (return values, exceptions) to simulate the dependent object.&lt;br /&gt;
* Spy - A Fake or Stub that records method calls and parameters for later analysis.&lt;br /&gt;
* Mock - A Fake or Stub with a set of expectations -- method calls and parameters -- that are automatically verified for correctness.&lt;br /&gt;
&lt;br /&gt;
=== Unit Testing in Joomla! ===&lt;br /&gt;
Unit testing capabilities in Joomla are steadily developing. [Add note re amount of coverage for platform by unit tests.]&lt;br /&gt;
&lt;br /&gt;
The [https://github.com/joomla/joomla-platform Joomla Platform GitHub repository] contains PHPUnit tests within the /tests subdirectory.  See [http://docs.joomla.org/Running_Automated_Tests_for_Version_1.6 Running Automated Tests for Version 1.6] for instructions on setting up unit testing in your IDE.&lt;br /&gt;
&lt;br /&gt;
==== The Unit Test Team ====&lt;br /&gt;
If you can commit to the Joomla code base, then you should consider yourself part of the unit test team!&lt;br /&gt;
&lt;br /&gt;
Writing tests concurrently with code (or even before) is a good way to not only save development time, but a great tool for defending against regressions. Writing tests early in the development cycle also helps identify and resolve design issues sooner, which reduces refactoring.&lt;br /&gt;
&lt;br /&gt;
If you want to get started on unit testing, get in touch with Alan Langford (instance) or Ray Tsai (mihu). Either of us will be happy to help out.&lt;br /&gt;
&lt;br /&gt;
==== Current Work ====&lt;br /&gt;
* There is no longer any need to patch the main code to enable unit tests.&lt;br /&gt;
* Basic techniques for mock objects are defined.&lt;br /&gt;
* Strategies for dealing with local configuration is not yet complete, but there is a plan.&lt;br /&gt;
* Files of the form class-sequence-type-Test.php, for example JObject-0000-class-Test.php use PHPUnit.&lt;br /&gt;
* The JDate tests present a good example of a data-driven test, but they won&#039;t run on the current 1.5 code base (there are some proposed API changes as a result of unit test development).&lt;br /&gt;
* Previously functional tests, such as JFTP, haven&#039;t been moved to the PHPUnit environment yet.&lt;br /&gt;
* The custom test runner is no longer needed. The current tests will run with the latest SVN version of PHPUnit 3.4. This code will eventually become PHPUnit 3.4.1.  Thanks to Sebastian Bergmann for his excellent work on an excellent project!&lt;br /&gt;
&lt;br /&gt;
==== Writing Unit Tests ====&lt;br /&gt;
At risk of stating the obvious, in the &amp;quot;purest&amp;quot; case the purpose of a unit test is to &#039;&#039;isolate a unit of code from its environment and to test the operation of that code&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
This isolation is usually achieved by writing dummy classes that emulate the code unit&#039;s environment. These dummy objects can be passive, by simply simulating the environment, or they can be more active, keeping track of how they are being used by the test unit and reporting any variations from the expected behaviour. See [[Unit_Testing_Mock_Objects|Mock Objects in Joomla]] for a detailed example.&lt;br /&gt;
&lt;br /&gt;
An interesting aspect of writing tests is that they become &#039;&#039;de facto&#039;&#039; detailed technical specifications of the interfaces between units of code. The fact that these specifications can be verified in an automated way makes them a superb resource when refactoring code.&lt;br /&gt;
&lt;br /&gt;
The test code has a few templates designed to kick-start a test. They are:&lt;br /&gt;
&lt;br /&gt;
/unittest/sample-datatest-php.txt&lt;br /&gt;
/unittest/sample-simpletest.php.txt&lt;br /&gt;
&lt;br /&gt;
Here are some example tests: [[Unit_Testing_--_a_Simple_Example|Simple Example]], [[Unit_Testing_--_Data_Driven_Example|Data Driven Example]], [[Unit_Testing_--_Plugin_Example|Plugin Example]], [[Unit_Testing_--_UI_Example|UI Example]].&lt;br /&gt;
&lt;br /&gt;
==== Running Unit Tests ====&lt;br /&gt;
Test files follow the form classnameTest.php, for example JObjectTest.php. For tests that are not class based, use the name of the file being tested.&lt;br /&gt;
&lt;br /&gt;
Joomla unit tests use the standard PHPUnit test runner.  See http://www.phpunit.de for documentation.&lt;br /&gt;
&lt;br /&gt;
== How to Get it Running ==&lt;br /&gt;
&lt;br /&gt;
Before you start make sure you have installed PHPUnit and of course PHP (5!) properly...&lt;br /&gt;
&lt;br /&gt;
To get the unit tests to run on your Joomla! installation, perform the following steps:&lt;br /&gt;
* Create an instance of your Joomla! installation. Since you will be using SVN to check out the testing project, you don&#039;t want to check out the Joomla! with SVN. Instead, simply unpack a normal Joomla! archive. If you are using Eclipse, you can create a folder in your Eclipse workspace for the Joomla! installation, but don&#039;t create an Eclipse project yet.&lt;br /&gt;
* In the root checkout (or export) the latest version of the unit test code from SVN &#039;&#039;&amp;quot;/testing/trunk/1.5/unittest&amp;quot;&#039;&#039; or &#039;&#039;&amp;quot;/testing/trunk/1.6/unittest&amp;quot;&#039;&#039; to your installation base. This will create a &#039;&#039;&amp;quot;/unittest&amp;quot;&#039;&#039; sub-folder under your joomla installation. If you are using Eclipse, Import the project from the SVN and use the same folder in your Eclipse workspace you used above.&lt;br /&gt;
* From the command line, change to the unittest directory.&lt;br /&gt;
* Run the unit test from the command prompt using the following command: &amp;lt;code&amp;gt;phpunit tests&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The unit test will the run, and the results are rendered. You will see a series of dots for each passed test and other letters for failed tests. &lt;br /&gt;
&lt;br /&gt;
See http://www.phpunit.de/manual/current/en/textui.html for help using the --filter switch to run only certain tests.  There are also many other command line switches you can use to get results in various formats.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
The provided configurations should work out of the box. We have seen problems with it (currently the cause is unknown). If you get an error like below, the solution is pretty easy.&lt;br /&gt;
&lt;br /&gt;
 file=/var/www/unittest/runtests.php&lt;br /&gt;
 posn=17&lt;br /&gt;
 base=runtests.php&lt;br /&gt;
 /var/www&lt;br /&gt;
  JPATH_BASE does not point to a valid Joomla! installation:&lt;br /&gt;
 JPATH_BASE = /var/www&lt;br /&gt;
  Please modify your copy of &amp;quot;TestConfiguration.php&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Modify the &#039;&#039;&amp;quot;TestConfiguration.php&amp;quot;&#039;&#039; file and change the definition of the JPATH_BASE so it points to the path of you Joomla! installation, in the example below the Joomla! installation is installed at &amp;quot;&#039;&#039;/var/www/update&#039;&#039;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 define(&#039;JPATH_BASE&#039;, &#039;/var/www/update&#039;);&lt;br /&gt;
&lt;br /&gt;
== Frequently Asked Questions ==&lt;br /&gt;
&#039;&#039;&#039;Why can&#039;t I use &amp;quot;phpunit &#039;&#039;testname.php&#039;&#039;&amp;quot; to run my tests?&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The test facility has to do some work to be able to load the &amp;quot;Joomla!&amp;quot; framework and to be able to inject mock classes. It&#039;s difficult to do this from the PHPUnit test runner, so we built our own. Also, the Joomla test runner has specific options designed to make it easy to select specific tests. Over time we will add more functionality to the test runner so it has many of the capabilities of the phpunit command.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[http://www.phpunit.de/manual/current/en/ PHPUnit Manual]&lt;br /&gt;
&lt;br /&gt;
[[Category:Bug Squad]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Testing]]&lt;br /&gt;
[[Category:Automated Testing]]&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Unit_Tests_For_The_Platform&amp;diff=63603</id>
		<title>Unit Tests For The Platform</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Unit_Tests_For_The_Platform&amp;diff=63603"/>
		<updated>2011-12-13T21:12:09Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: added Testing and Bug Squad categories&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a very early stage document about running unit tests on the platform.&lt;br /&gt;
&lt;br /&gt;
To run tests on the platform you will need to install PHPUnit 3.5. You may also need to update your version of PEAR to the current version. If you are using Ubuntu as your OS you will need to be at minimum on version 10.10 to update to PEAR&#039;s current package using the standard packages in the software center.&lt;br /&gt;
You will also need to have xdebug with the current version installed.&lt;br /&gt;
&lt;br /&gt;
PHP must be at least version 5.2.7 but 5.3.3 is recommended.&lt;br /&gt;
&lt;br /&gt;
To install, go to the command line and type:&lt;br /&gt;
&lt;br /&gt;
 pear channel-discover pear.phpunit.de&lt;br /&gt;
 pear channel-discover components.ez.no&lt;br /&gt;
 pear channel-discover pear.symfony-project.com&lt;br /&gt;
&lt;br /&gt;
 pear install -f --alldeps phpunit/PHPUnit&lt;br /&gt;
 pear install -f --alldeps phpunit/PHPUnit_MockObject&lt;br /&gt;
 pear install -f --alldeps phpunit/DBUnit&lt;br /&gt;
 pear install -f --alldeps PHP_CodeSniffer&lt;br /&gt;
&lt;br /&gt;
At this point you should be able to navigate to the platform root folder and type phpunit at the prompt to start the tests.&lt;br /&gt;
&lt;br /&gt;
Before running you will need to install a database for the test and enter the information. Copy config.php-dist to config.php.&lt;br /&gt;
&lt;br /&gt;
You will need to create a database and import /tests/ddl.sql.&lt;br /&gt;
&lt;br /&gt;
If you want to keep it simple and are sure you computer is secure, you can use the names from the file otherwise edit the file.&lt;br /&gt;
&lt;br /&gt;
Names from file:&lt;br /&gt;
 public $user = &#039;utuser&#039;;&lt;br /&gt;
 public $password = &#039;ut1234&#039;;&lt;br /&gt;
 public $db = &#039;joomla_ut&#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 phpunit --help &lt;br /&gt;
&lt;br /&gt;
will give you a list of options.&lt;br /&gt;
[[Category:Platform]][[Category:Development]][[Category:Testing]][[Category:Bug Squad]]&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Joomla_CodeSniffer&amp;diff=63600</id>
		<title>Joomla CodeSniffer</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Joomla_CodeSniffer&amp;diff=63600"/>
		<updated>2011-12-13T13:18:36Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(This page needs expanded installation instructions, especially for Windows-based systems.)&lt;br /&gt;
&lt;br /&gt;
== A Nose For Joomla ==&lt;br /&gt;
&lt;br /&gt;
This is a custom coding standard for the PHP CodeSniffer that attempts to codify and enforce the Joomla coding standards.&lt;br /&gt;
&lt;br /&gt;
==Why?==&lt;br /&gt;
&lt;br /&gt;
- Coherent and consisting coding practice makes the files look more professional. Conflicting styles in the same project (or worse, the same file) not only look sloppy, they encourage further sloppiness.&lt;br /&gt;
&lt;br /&gt;
- When all code complies with the same standard, bad code is easier for everyone to spot.&lt;br /&gt;
&lt;br /&gt;
- It makes it easier for someone new to a particular file in the project to find and fix errors, or extend functionality.&lt;br /&gt;
&lt;br /&gt;
- If there is no consistent standard maintained, the sometimes developers will reformat the code to suit themselves. This causes a wide range of changes in the code repository, and if there is a later problem, a significant change could be lost in the chaff produced by a diff.&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
First you&#039;ll need to install phpcs (http://pear.php.net/package/PHP_CodeSniffer/download/). This set of files is intended to work with phpcs version 1.3, so behavior with any other version is undefined.&lt;br /&gt;
&lt;br /&gt;
Then download and unzip the [http://joomlacode.org/gf/project/jcodesniffer/ Joomla CodeSniffer], and copy the contents of it into /path/to/PHP_CodeSniffer/Standards/Joomla. (The path on some systems is /usr/lib/php/PHP/PHP_CodeSniffer but this varies from system to system. Use &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;pear config-get php_dir&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to find out where the PEAR directory is on your system, then add &amp;quot;/PHP/PHP_CodeSniffer&amp;quot; to it.)&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
&lt;br /&gt;
You invoke the custom standard by&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;phpcs --standard=Joomla --tab-width=4 file/to/sniff&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE&#039;&#039;&#039;: When you are developing for the Joomla platform project, the updated coding style guidelines can be found in the build folder of the github project [https://github.com/joomla/joomla-platform/tree/master/build/phpcs here]. The standard from Joomlacode is not up-to-date. In that case, you also have to ommit the --tab-width=4 parameter.&lt;br /&gt;
&lt;br /&gt;
To test a platform file using the provided platform coding standards use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;phpcs --standard=build/phpcs/Joomla path/to/file/or/folder&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Further documentation on the use of phpcs can be found at: [http://pear.php.net/package/PHP_CodeSniffer/docs]&lt;br /&gt;
&lt;br /&gt;
==IDE integration==&lt;br /&gt;
&lt;br /&gt;
[[Image:eclipse_pti.png|left|thumb|200px|1) Eclipse PTI]]&lt;br /&gt;
While everybody loves the console as it is with no doubt the most effective way to do whatever you need to do.. sometimes even linux gurus need a little bit of comfort.&lt;br /&gt;
&lt;br /&gt;
Fortunately there is a plugin available for eclipse (tested) and netbeans (not tested) that integrates the CodeSniffer in our favorite IDE, so any coding standard violations are shown like &amp;quot;normal&amp;quot; errors (see screen shot 1).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Installation is a breeze and follows the usual pattern:&lt;br /&gt;
# &amp;lt;tt&amp;gt;Help =&amp;gt; Install new Software...&amp;lt;/tt&amp;gt;&lt;br /&gt;
# &amp;lt;tt&amp;gt;Work with:&amp;lt;/tt&amp;gt; Fill in one of the update site URLs found here: http://www.phpsrc.org/&lt;br /&gt;
# Select the desired tools&lt;br /&gt;
# Restart Eclipse.&lt;br /&gt;
&lt;br /&gt;
[[Image:eclipse_pti_settings.png|right|thumb|150px|2) Eclipse PTI settings]]&lt;br /&gt;
You are now able to sniff for code violations against common standards like PEAR or Zend etc.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;del&amp;gt;Notice that the PTI project currently is not working right on the Eclipse Indigo releases. If you want to use the Eclipse integration for the PHP_CodeSniffer, use an Eclipse Helios release and install it in there.&amp;lt;/del&amp;gt; &#039;&#039;&#039;update&#039;&#039;&#039; The PTI project has updated it&#039;s sources and runs fine in Eclipse Indigo.&lt;br /&gt;
&lt;br /&gt;
To sniff against your own standards, all you have to do is specify their location and activate them (see screen shot 2)&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;tt&amp;gt;Window =&amp;gt; Preferences&amp;lt;/tt&amp;gt;&lt;br /&gt;
# &amp;lt;tt&amp;gt;PHP Tools =&amp;gt; PHP CodeSniffer&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Happy sniffing&lt;br /&gt;
&lt;br /&gt;
* http://www.phpsrc.org/ PTI - PHP tools integration for Eclipse&lt;br /&gt;
* http://github.com/beberlei/netbeans-php-enhancements/ Netbeans enhancements&lt;br /&gt;
* http://hakre.wordpress.com/2010/03/06/php-code-sniffer-eclipse-and-wordpress/ - Excellent article. Just change &amp;quot;Wordpress&amp;quot; for &amp;quot;Joomla!&amp;quot; ;)&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]][[Category:Bug Squad]]&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Bug_Tracking_Process&amp;diff=62764</id>
		<title>Bug Tracking Process</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Bug_Tracking_Process&amp;diff=62764"/>
		<updated>2011-10-28T18:58:08Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: edited url for bug tracker to location for 1.6+&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Overview=&lt;br /&gt;
The [http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemBrowse&amp;amp;tracker_id=8103 Joomla! Bug Tracker] is the place where all Joomla! bugs are tracked. This article documents the current Joomla! bug tracking process from the time a new bug is reported to the time it is closed.  ([http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemBrowse&amp;amp;tracker_id=32 Joomla! 1.5 Bug Tracker])&lt;br /&gt;
&lt;br /&gt;
=Reporting Issues=&lt;br /&gt;
&lt;br /&gt;
[[Image:ReportingIssues.jpg|1024 px]]&lt;br /&gt;
&lt;br /&gt;
The process is normally started in one of two ways: the bug is added to the tracker, or a user reports the bug in the [http://forum.joomla.org/viewforum.php?f=199 Joomla! Bug Forum] for the given maintenance release.&lt;br /&gt;
&lt;br /&gt;
== Issues reported on the forum ==&lt;br /&gt;
&lt;br /&gt;
JBS members scan the forums to determine when issues need to be put into the tracker. If the issue can be reproduced, is clearly a bug, and there are step-by-step instructions for how to reproduce it, it can be entered into the tracker with a status of Confirmed. If it is not as clear-cut, it can be entered with a status of Open, so that other JBS members will know it needs further investigation.&lt;br /&gt;
&lt;br /&gt;
== Issues directly reported to the tracker ==&lt;br /&gt;
&lt;br /&gt;
When an issue is added to the tracker, the status will be either &lt;br /&gt;
1. Open &lt;br /&gt;
2. Confirmed&lt;br /&gt;
3. or Pending &lt;br /&gt;
depending on the situation. If the issue needs more investigation, then it should be set to Open. If the issue (1) is a bug and (2) can be reproduced and (3) has good test instructions, it should be set to Confirmed. If it meets the three Confirmed criteria and also has a good patch attached, it should be set to Pending. See below for more information about the status codes.&lt;br /&gt;
&lt;br /&gt;
== Issue Priorities ==&lt;br /&gt;
&lt;br /&gt;
Most issues are priority 3, or Normal. The artifacts are prioritized according to the following characteristics:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Critical (1):&#039;&#039;&#039;&lt;br /&gt;
The trunk is not working at all. Significant parts of the source are broken preventing key operations.  Examples would be login, installation, extension installers, javascript errors that prevent you from moving a save or similar action, etc.  Also includes the generation of Fatal PHP errors and major security issues in a prerelease (Security issues for a stable release should NOT be reported in the tracker but instead reported to the security team security@joomla.org).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Major (2):&#039;&#039;&#039;&lt;br /&gt;
Parts of the source are obstructing operation in a serious way or causing a major loss in advertised function.  Examples would includes PHP notices and warnings and reported javascript errors.  Major issues will also typically prevent the release cycle from moving from Beta to Release Candidate (RC), or Release Candidate to General Availability (GA).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Normal: (3)&#039;&#039;&#039;&lt;br /&gt;
Issues that are hindering advertised behavior but the application is still workable.  Examples would include parameters not working as advertised, language files not loading as expected, etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Minor (4):&#039;&#039;&#039;&lt;br /&gt;
Minor loss of function and generally annoying behavior.  May include less common platform or browser specific problems that while they may be technically major in those environments, they represent a minority.  Also include missing translation strings.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Trivial (5):&#039;&#039;&#039;&lt;br /&gt;
Cosmetic problems, misspelled words, graphically misaligned object, less common issues with parameters, etc.&lt;br /&gt;
&lt;br /&gt;
= Resolving Issues =&lt;br /&gt;
&lt;br /&gt;
The bug squad takes care of the 1.5 release which is now in maintenance mode. That means getting the 1.5.1, 1.5.2, 1.5.3, 1.5.4  etc releases ready by fixing problems that come up. The idea is to make the release increasingly stable and take care of issues that come up. At the same time, it is vitally important not to break anything that is working. That&#039;s called software regression and it&#039;s not something you want at this stage.&lt;br /&gt;
&lt;br /&gt;
In the 1.5 tracker there are several common statuses, mainly: open, confirmed, pending, ready to commit.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Open&#039;&#039;&#039; means it&#039;s reported, but it hasn&#039;t been determined for sure whether it is a real bug or not. Many Open issues are not actually bugs. If the issue fits into one of the categories below, then the status is changed as indicated and the bug is closed:&lt;br /&gt;
** Cannot be reproduced. We have tried the same thing the reported did but the software appears to work correctly. (In many cases, more information is needed to be able to reproduce a bug. See &amp;quot;Information Required&amp;quot; below.) Change status to &#039;&#039;&#039;Unable to confirm&#039;&#039;&#039;.&lt;br /&gt;
** Has already been reported in a different issue number. Change status to &#039;&#039;&#039;Duplicate report&#039;&#039;&#039; and add the number on the duplicates tab.&lt;br /&gt;
** Is a known limitation of the software. Change status to &#039;&#039;&#039;Known issue&#039;&#039;&#039;.&lt;br /&gt;
** Is a feature request, a mistake made by a user, or is the way the software is intended to work. Change status to &#039;&#039;&#039;Not a bug&#039;&#039;&#039;.&lt;br /&gt;
** Is a bug with an extension or some other external program or a server issue that will not be addressed. Change status to &#039;&#039;&#039;Not Joomla! core&#039;&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;Information Required&#039;&#039;&#039; is used if we need more information &#039;&#039;from the person who reported the issue&#039;&#039; to decide about the issue. For example, there are questions about how to reproduce the problem or other questions about the issue. If we get the information we need, then we can continue processing the issue. If we don&#039;t get the information within two weeks, then we can change the status to Unable to confirm (or another of the closed status codes if that is more applicable).&lt;br /&gt;
* &#039;&#039;&#039;Needs Review&#039;&#039;&#039; is used if we need a JBS Coordinator, Development Coordinator, or other experienced developer to review the issue. This is different from Information Required, which means that we need more information from the person who reported the issue.&lt;br /&gt;
* &#039;&#039;&#039;Confirmed&#039;&#039;&#039; means that JBS has confirmed that this issue is a bug in Joomla! that should be fixed. That&#039;s when the JBS tries to solve it or consults with the development team about a solution. &#039;&#039;At this point there should be clear step-by-step test instructions that indicate how to reproduce the problem. For version 1.6, use the Test Instructions field for this information.&#039;&#039; &lt;br /&gt;
* &#039;&#039;&#039;Pending&#039;&#039;&#039; means that a patch has been submitted that a JBS member or development coordinator or appropriate leadership team member believes fixes the bug. If needed, additional test instructions are entered for the issue. Every Pending issue should have instructions that tell the tester how to reproduce the problem and make sure the patch fixes the problem.&lt;br /&gt;
* &#039;&#039;&#039;In Progress&#039;&#039;&#039; means that an issue is being worked on. This will most likely be a situation where the issue was set to Pending but there were problems with the patch that require additional work. It also may be a case where the issue is complex and will take some time to solve. JBS members can participate in In Progress issues but generally should not start coding before discussing with others working on the issue already.&lt;br /&gt;
* &#039;&#039;&#039;Ready to commit&#039;&#039;&#039; means that (in general) two separate people have successfully tested the same patch file, and it works correctly with the patch. Note that, for some issues that are more complex or higher impact, we may need more than two people to test or may need to test on multiple platforms. For simple issues, such as fixing typos in language strings or comments, one tester is enough.&lt;br /&gt;
* &#039;&#039;&#039;Fixed in SVN&#039;&#039;&#039; means that, after reviewing the code, the JBS commit coordinators have determined that the patch is good and the change has been committed to the Joomla! codebase. At this point, it will be part of the next Joomla! maintenance release.&lt;br /&gt;
&lt;br /&gt;
The flowchart below provides a visual guide to how the process for resolving bugs works.&lt;br /&gt;
&lt;br /&gt;
[[Image:ResolvingIssues.jpg|1024 px]]&lt;br /&gt;
&lt;br /&gt;
You do &#039;&#039;not&#039;&#039; need to be a member of the JBS to help fix bugs in Joomla. Anyone can report bugs, test patches, or submit patches. If you want to help with resolving bugs, go to the [http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemBrowse&amp;amp;tracker_id=32 Tracker]. You can help resolve Open issues as outlined above. You can create and submit patches for Confirmed issues. Or you can help test Pending issues. To report about what you have done, login to joomlacode and add a comment. You&#039;ll be amazed at how much impact you can have and how good it feels to contribute to the Joomla! project.&lt;br /&gt;
&lt;br /&gt;
If you have any questions, or are interested in joining the JBS, please contact the [http://community.joomla.org/magazine/author/75-mark-dexter.html JBS Coordinator]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Development Working Group]][[Category:Bug Squad]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
[[Category:Working Groups]]&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Standard_form_field_and_parameter_types&amp;diff=62704</id>
		<title>Standard form field and parameter types</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Standard_form_field_and_parameter_types&amp;diff=62704"/>
		<updated>2011-10-21T12:09:31Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: added Form fields category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are many different standard [[parameter]] and [[form field]] types supported in the Joomla Framework for all extension types (templates, components, modules and plugins). This section gives a brief description of each form field type, in alphabetical order. Full details of each form field type are given on the following pages.&lt;br /&gt;
&lt;br /&gt;
Form fields and the [[JForm]] class were introduced in Joomla 1.6. Prior to that these standard types were referred to as parameter types and were handled by the, now deprecated, [[JParameter]] class.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;vertical-align:top; border:1px solid Sienna; background-color:Cornsilk;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background-color:Wheat; font-weight:bold; text-align: left;&amp;quot;&lt;br /&gt;
!width=15%|[[Parameter]]&lt;br /&gt;
!width=15%|[[Form field]]&lt;br /&gt;
!width=70%|Description&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[Accesslevel form field type|accesslevel]]&lt;br /&gt;
|provides a drop down list of viewing access levels.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[Cachehandler form field type|cachehandler]]&lt;br /&gt;
|provides a list of available cache handling options.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Calendar parameter type|calendar]]&lt;br /&gt;
|{{JVer|1.6}} [[Calendar form field type|calendar]]&lt;br /&gt;
|provides a text box for entry of a date. An icon next to the text box provides a link to a pop-up calendar, which can also be used to enter the date value.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Category parameter type|category]]&lt;br /&gt;
|&lt;br /&gt;
|provides a drop down list of categories from a given section.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[Category form field type|category]]&lt;br /&gt;
|provides a drop down list of categories from a given extension.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[Checkbox form field type|checkbox]]&lt;br /&gt;
|provides a single checkbox to be checked or unchecked.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[Checkboxes form field type|checkboxes]]&lt;br /&gt;
|provides unlimited checkboxes that can be used for multi-select.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[Combo form field type|combo]]&lt;br /&gt;
|provides a combo box field.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[Componentlayout form field type|componentlayout]]&lt;br /&gt;
|provides a grouped list of core and template alternate layouts for a component item.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[Contentlanguage form field type|contentlanguage]]&lt;br /&gt;
|provides a list of installed content languages for use in conjunction with the language switcher plugin.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[Editor form field type|editor]]&lt;br /&gt;
|provides an editor area field&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Editors parameter type|editors]]&lt;br /&gt;
|{{JVer|1.6}} [[Editors form field type|editors]]&lt;br /&gt;
|provides a drop down list of the available WYSIWYG editors.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[File form field type|file]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Filelist parameter type|filelist]]&lt;br /&gt;
|{{JVer|1.6}} [[Filelist form field type|filelist]]&lt;br /&gt;
|provides a drop down list of files from a specified directory.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Folderlist parameter type|folderlist]]&lt;br /&gt;
|{{JVer|1.6}} [[Folderlist form field type|folderlist]]&lt;br /&gt;
|provides a drop down list of folders from a specified directory.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[Groupedlist form field type|groupedlist]]&lt;br /&gt;
|provides a drop down list of items organized into groups.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Helpsites parameter type|helpsites]]&lt;br /&gt;
|{{JVer|1.6}} [[Helpsite form field type|helpsite]]&lt;br /&gt;
|provides a drop down list of the help sites for your Joomla installation.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Hidden parameter type|hidden]]&lt;br /&gt;
|{{JVer|1.6}} [[Hidden form field type|hidden]]&lt;br /&gt;
|provides a hidden field for saving a parameter whose value cannot be altered directly by a user in the Administrator (it can be altered in code or by editing the &#039;&#039;params.ini&#039;&#039; file).&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Imagelist parameter type|imagelist]]&lt;br /&gt;
|{{JVer|1.6}} [[Imagelist form field type|imagelist]]&lt;br /&gt;
|provides a drop down list of image files in a specified directory.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[Integer form field type|integer]]&lt;br /&gt;
|provides a drop down list of integers between a minimum and maximum.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Languages parameter type|languages]]&lt;br /&gt;
|{{JVer|1.6}} [[Language form field type|language]]&lt;br /&gt;
|provides a drop down list of the installed languages for the Front-end or Back-end.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[List parameter type|list]]&lt;br /&gt;
|{{JVer|1.6}} [[List form field type|list]]&lt;br /&gt;
|provides a drop down list of custom-defined entries.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[Media form field type|media]]&lt;br /&gt;
|provides modal access to the media manager for insertion of images with upload for users with appropriate permissions.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Menu parameter type|menu]]&lt;br /&gt;
|{{JVer|1.6}} [[Menu form field type|menu]]&lt;br /&gt;
|provides a drop down list of the available menus from your Joomla site.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Menuitem parameter type|menuitem]]&lt;br /&gt;
|{{JVer|1.6}} [[Menuitem form field type|menuitem]]&lt;br /&gt;
|provides a drop down list of the available menu items from your Joomla site.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[Modulelayout form field type|modulelayout]]&lt;br /&gt;
|provides a list of alternative layout for a module grouped by core and template.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Password parameter type|password]]&lt;br /&gt;
|{{JVer|1.6}} [[Password form field type|password]]&lt;br /&gt;
|provides a text box for entry of a password. The password characters will be obscured as they are entered.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Radio parameter type|radio]]&lt;br /&gt;
|{{JVer|1.6}} [[Radio form field type|radio]]&lt;br /&gt;
|provides radio buttons to select different options.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[Rules form field type|rules]]&lt;br /&gt;
|provides a matrix of group by action options for managing access control. Display depends on context.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[Sessionhandler form field type|sessionhandler]]&lt;br /&gt;
|provides a drop down list of session handler options.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Section parameter type|section]]&lt;br /&gt;
|&lt;br /&gt;
|provides a drop down list of the sections from your Joomla site. Sections have been removed in favour of subcategories in Joomla 1.6 onwards.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Spacer parameter type|spacer]]&lt;br /&gt;
|{{JVer|1.6}} [[Spacer form field type|spacer]]&lt;br /&gt;
|provides a visual separator between parameter field elements. It is purely a visual aid and no parameter value is stored.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Sql parameter type|sql]]&lt;br /&gt;
|{{JVer|1.6}} [[SQL form field type|sql]]&lt;br /&gt;
|provides a drop down list of entries obtained by running a query on the Joomla Database. The first results column returned by the query provides the values for the drop down box.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[Templatestyle form field type|templatestyle]]&lt;br /&gt;
|provides a drop down list of template styles.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Text parameter type|text]]&lt;br /&gt;
|{{JVer|1.6}} [[Text form field type|text]]&lt;br /&gt;
|provides a text box for data entry.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Textarea parameter type|textarea]]&lt;br /&gt;
|{{JVer|1.6}} [[Textarea form field type|textarea]]&lt;br /&gt;
|provides a text area for entry of multi-line text.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Timezones parameter type|timezone]]&lt;br /&gt;
|{{JVer|1.6}} [[Timezone form field type|timezone]]&lt;br /&gt;
|provides a drop down list of time zones.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[User form field type|user]]&lt;br /&gt;
|provides a modal list of users.&lt;br /&gt;
|-&lt;br /&gt;
|{{JVer|1.5}} [[Usergroup parameter type|usergroup]]&lt;br /&gt;
|&lt;br /&gt;
|provides a drop down list of user groups.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|{{JVer|1.6}} [[Usergroup form field type|usergroup]]&lt;br /&gt;
|provides an array of check boxes allowing multi-select.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Components]][[Category:Modules]][[Category:Plugins]][[Category:Templates]][[Category:Development]][[Category:Parameters]][[Category:Form fields]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Portal:Component_Development&amp;diff=62675</id>
		<title>Portal:Component Development</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Portal:Component_Development&amp;diff=62675"/>
		<updated>2011-10-19T15:10:15Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: replaced modal form field how-to&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
== Recommended Reading ==&lt;br /&gt;
=== General ===&lt;br /&gt;
* [[Joomla Beginning Developer Course]]&lt;br /&gt;
* [[Setting up your workstation for Joomla! development]]&lt;br /&gt;
* [[Secure coding guidelines]]&lt;br /&gt;
=== Specific ===&lt;br /&gt;
&amp;lt;onlyinclude&amp;gt;&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.5}}====&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 1]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 2 - Adding a Model]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 3 - Using the Database]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 4 - Creating an Administrator Interface]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 5 - Basic Backend Framework]]&lt;br /&gt;
* [[Developing a Model-View-Controller Component - Part 6 - Adding Backend Actions]]&lt;br /&gt;
&lt;br /&gt;
====Developing a Model-View-Controller (MVC) Component {{JVer|1.6}}====&lt;br /&gt;
* [[Developing a Model-View-Controller (MVC) Component for Joomla!1.6|Introduction]]&lt;br /&gt;
{{Chunk:Developing a Model-View-Controller (MVC) Component for Joomla!1.6 - Contents}}&lt;br /&gt;
&lt;br /&gt;
====Other component topics====&lt;br /&gt;
* [[File Structure and Naming Conventions]]&lt;br /&gt;
* [[Component Program Flow]]. UML sequence diagrams showing the control flow for a component. {{JVer|1.5}}&lt;br /&gt;
* [[Component parameters]]&lt;br /&gt;
* [[Components:xml installfile]].  An example component XML installation file. {{JVer|1.5}}&lt;br /&gt;
* [[Manifest files]] for the installation of extensions {{JVer|1.6}}&lt;br /&gt;
* [[Supporting SEF URLs in your component]]&lt;br /&gt;
* [[Supporting plugins in your component]]&lt;br /&gt;
* [[Using JPagination in your component]]&lt;br /&gt;
* [[Adding sortable columns to a table in a component]]&lt;br /&gt;
* [[How to use the JPane classes in a component]]&lt;br /&gt;
* [[How to use the editor in a component]]&lt;br /&gt;
* [[Adding AJAX to your component]]&lt;br /&gt;
* [[Ajax using MooTools]]&lt;br /&gt;
* [[How to add breadcrumbs]]&lt;br /&gt;
* [[How to send email from components]]&lt;br /&gt;
* [[How to use the JToolBar class in the frontend]]&lt;br /&gt;
* [[Creating a toolbar for your component]]&lt;br /&gt;
* [[Creating a file uploader in your component]]&lt;br /&gt;
* [[Adding Javascript moo.fx to your component]]&lt;br /&gt;
* [[Adding view layout configuration parameters]]&lt;br /&gt;
* [[Using a custom image in the menu bar title]]&lt;br /&gt;
* [[How to implement XML-RPC in a component]]&lt;br /&gt;
* [[Using multiple models in an MVC component]]&lt;br /&gt;
* [[How to create a modal form field in 1.6/1.7]] {{JVer|1.6}} {{JVer|1.7}}&lt;br /&gt;
* [[JController and its subclass usage overview]] {{JVer|1.6}} {{JVer|1.7}}&lt;br /&gt;
* [[Managing Component Updates with Joomla!1.6 - Part 1]] {{JVer|1.6}}&lt;br /&gt;
* [[Xml-rpc changes in Joomla! 1.6]] {{JVer|1.6}}&lt;br /&gt;
&amp;lt;/onlyinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&amp;lt;small&amp;gt;List of all articles belonging to the categories &amp;quot;Tutorials&amp;quot; AND &amp;quot;Component Development&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;DPL&amp;gt;&lt;br /&gt;
noresultsheader=\n  &lt;br /&gt;
format   = ,\n* [[%PAGE%|%TITLE%]],,&lt;br /&gt;
category=Tutorials&lt;br /&gt;
category=Component Development&lt;br /&gt;
&amp;lt;/DPL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==FAQ==&lt;br /&gt;
&amp;lt;small&amp;gt;List of all articles belonging to the categories &amp;quot;FAQ&amp;quot; AND &amp;quot;Component Development&amp;quot;&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;DPL&amp;gt;&lt;br /&gt;
noresultsheader=\n  &lt;br /&gt;
format   = ,\n* [[%PAGE%|%TITLE%]],,&lt;br /&gt;
category=FAQ&lt;br /&gt;
category=Component Development&lt;br /&gt;
&amp;lt;/DPL&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Creating_a_modal_form_field&amp;diff=62674</id>
		<title>Creating a modal form field</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Creating_a_modal_form_field&amp;diff=62674"/>
		<updated>2011-10-19T12:43:06Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: Created page with &amp;quot;This tutorial will demonstrate how to create a custom form field that will open a list view in a modal window for the selection of a single item (similar to the Select Article mo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This tutorial will demonstrate how to create a custom form field that will open a list view in a modal window for the selection of a single item (similar to the Select Article modal in com_content).  In this case, the form field will be added to the default.xml of a view so that the field/value pair will be added to the menu item URL.  For our example, assume we have a component named com_library, which includes views for &amp;quot;books&amp;quot; and &amp;quot;book&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{{JVer|1.6}} {{JVer|1.7}}&lt;br /&gt;
&lt;br /&gt;
== Add modal form field to XML file ==&lt;br /&gt;
Edit &#039;&#039;&#039;&#039;&#039;/components/com_library/views/book/default.xml&#039;&#039;&#039;&#039;&#039; and add the new field and its attributes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;fields name=&amp;quot;request&amp;quot; addfieldpath=&amp;quot;administrator/components/com_library/models/fields&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;fieldset name=&amp;quot;request&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;field &lt;br /&gt;
			name=&amp;quot;id&amp;quot; &lt;br /&gt;
			type=&amp;quot;modal_book&amp;quot; &lt;br /&gt;
			label=&amp;quot;COM_LIBRARY_BOOK_FIELD_ID_LABEL&amp;quot; &lt;br /&gt;
			description=&amp;quot;COM_LIBRARY_BOOK_FIELD_ID_DESC&amp;quot;&lt;br /&gt;
			required=&amp;quot;true&amp;quot;&lt;br /&gt;
		/&amp;gt;&lt;br /&gt;
	&amp;lt;/fieldset&amp;gt;&lt;br /&gt;
&amp;lt;/fields&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Notice that in both the &amp;quot;fields&amp;quot; and &amp;quot;fieldset&amp;quot; declarations, we&#039;ve included &#039;&#039;&#039;name=&amp;quot;request&amp;quot;&#039;&#039;&#039;.  This tells the menu item to add the field name and its value to the URL.  The custom type as been identified as &#039;&#039;&#039;modal_book&#039;&#039;&#039; and we&#039;ve given a path where the class definition for this type can be found with &#039;&#039;&#039;addfieldpath&#039;&#039;&#039;.  &lt;br /&gt;
&lt;br /&gt;
== Create custom form field class ==&lt;br /&gt;
Create the new file &#039;&#039;&#039;&#039;&#039;administrator/components/com_library/models/fields/modal/book.php&#039;&#039;&#039;&#039;&#039;.  This file will define the JFormFieldModal_Book class which extends the [http://docs.joomla.org/JFormField/1.6 JFormField] class.  More information on custom form fields can also be found at [http://docs.joomla.org/Creating_a_custom_form_field_type Creating a custom form field type].&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 // No direct access&lt;br /&gt;
 defined(&#039;_JEXEC&#039;) or die(&#039;Restricted access&#039;);&lt;br /&gt;
 &lt;br /&gt;
 jimport(&#039;joomla.form.formfield&#039;);&lt;br /&gt;
 &lt;br /&gt;
 /**&lt;br /&gt;
  * Book form field class&lt;br /&gt;
  */&lt;br /&gt;
 class JFormFieldModal_Book extends JFormField&lt;br /&gt;
 {&lt;br /&gt;
 	/**&lt;br /&gt;
 	 * field type&lt;br /&gt;
 	 * @var string&lt;br /&gt;
 	 */&lt;br /&gt;
 	protected $type = &#039;Modal_Book&#039;;&lt;br /&gt;
 	&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Override getInput() method ==&lt;br /&gt;
Next, we&#039;ll override the [http://docs.joomla.org/JFormField::getInput/1.6 getInput method] of the parent class.  This method builds the HTML for the input field.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
  /**&lt;br /&gt;
   * Method to get the field input markup&lt;br /&gt;
   */&lt;br /&gt;
  protected function getInput()&lt;br /&gt;
  {&lt;br /&gt;
	  // Load modal behavior&lt;br /&gt;
	  JHtml::_(&#039;behavior.modal&#039;, &#039;a.modal&#039;);&lt;br /&gt;
	  &lt;br /&gt;
	  // Build the script&lt;br /&gt;
	  $script = array();&lt;br /&gt;
	  $script[] = &#039;    function jSelectBook_&#039;.$this-&amp;gt;id.&#039;(id, title, object) {&#039;;&lt;br /&gt;
	  $script[] = &#039;        document.id(&amp;quot;&#039;.$this-&amp;gt;id.&#039;_id&amp;quot;).value = id;&#039;;&lt;br /&gt;
	  $script[] = &#039;        document.id(&amp;quot;&#039;.$this-&amp;gt;id.&#039;_name&amp;quot;).value = title;&#039;;&lt;br /&gt;
	  $script[] = &#039;        SqueezeBox.close();&#039;;&lt;br /&gt;
	  $script[] = &#039;    }&#039;;&lt;br /&gt;
	  &lt;br /&gt;
	  // Add to document head&lt;br /&gt;
	  JFactory::getDocument()-&amp;gt;addScriptDeclaration(implode(&amp;quot;\n&amp;quot;, $script));&lt;br /&gt;
	  &lt;br /&gt;
	  // Setup variables for display&lt;br /&gt;
	  $html = array();&lt;br /&gt;
	  $link = &#039;index.php?option=com_library&amp;amp;amp;view=books&amp;amp;amp;layout=modal&#039;.&lt;br /&gt;
                  &#039;&amp;amp;amp;tmpl=component&amp;amp;amp;function=jSelectBook_&#039;.$this-&amp;gt;id;&lt;br /&gt;
	  &lt;br /&gt;
	  $db = JFactory::getDbo();&lt;br /&gt;
	  $query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
	  $query-&amp;gt;select(&#039;title&#039;);&lt;br /&gt;
	  $query-&amp;gt;from(&#039;#__books&#039;);&lt;br /&gt;
	  $query-&amp;gt;where(&#039;id=&#039;.(int)$this-&amp;gt;value);&lt;br /&gt;
	  $db-&amp;gt;setQuery($query);&lt;br /&gt;
	  if (!$title = $db-&amp;gt;loadResult()) {&lt;br /&gt;
		  JError::raiseWarning(500, $db-&amp;gt;getErrorMsg());&lt;br /&gt;
	  }&lt;br /&gt;
	  if (empty($title)) {&lt;br /&gt;
		  $title = JText::_(&#039;COM_LIBRARY_FIELD_SELECT_BOOK&#039;);&lt;br /&gt;
	  }&lt;br /&gt;
	  $title = htmlspecialchars($title, ENT_QUOTES, &#039;UTF-8&#039;);&lt;br /&gt;
	  &lt;br /&gt;
	  // The current book input field&lt;br /&gt;
	  $html[] = &#039;&amp;lt;div class=&amp;quot;fltlft&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
	  $html[] = &#039;  &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;&#039;.$this-&amp;gt;id.&#039;_name&amp;quot; value=&amp;quot;&#039;.$title.&#039;&amp;quot; disabled=&amp;quot;disabled&amp;quot; size=&amp;quot;35&amp;quot; /&amp;gt;&#039;;&lt;br /&gt;
	  $html[] = &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
	  &lt;br /&gt;
	  // The book select button&lt;br /&gt;
	  $html[] = &#039;&amp;lt;div class=&amp;quot;button2-left&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
	  $html[] = &#039;  &amp;lt;div class=&amp;quot;blank&amp;quot;&amp;gt;&#039;;&lt;br /&gt;
	  $html[] = &#039;    &amp;lt;a class=&amp;quot;modal&amp;quot; title=&amp;quot;&#039;.JText::_(&#039;COM_LIBRARY_SELECT_BOOK_TITLE&#039;).&#039;&amp;quot; href=&amp;quot;&#039;.$link.&lt;br /&gt;
                         &#039;&amp;quot; rel=&amp;quot;{handler: \&#039;iframe\&#039;, size: {x:800, y:450}}&amp;quot;&amp;gt;&#039;.&lt;br /&gt;
                         JText::_(&#039;COM_LIBRARY_BUTTON_SELECT_BOOK&#039;).&#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
	  $html[] = &#039;  &amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
	  $html[] = &#039;&amp;lt;/div&amp;gt;&#039;;&lt;br /&gt;
	  &lt;br /&gt;
	  // The active book id field&lt;br /&gt;
	  if (0 == (int)$this-&amp;gt;value) {&lt;br /&gt;
		  $value = &#039;&#039;;&lt;br /&gt;
	  } else {&lt;br /&gt;
		  $value = (int)$this-&amp;gt;value;&lt;br /&gt;
	  }&lt;br /&gt;
	  &lt;br /&gt;
	  // class=&#039;required&#039; for client side validation&lt;br /&gt;
	  $class = &#039;&#039;;&lt;br /&gt;
	  if ($this-&amp;gt;required) {&lt;br /&gt;
		  $class = &#039; class=&amp;quot;required modal-value&amp;quot;&#039;;&lt;br /&gt;
	  }&lt;br /&gt;
	  &lt;br /&gt;
	  $html[] = &#039;&amp;lt;input type=&amp;quot;hidden&amp;quot; id=&amp;quot;&#039;.$this-&amp;gt;id.&#039;_id&amp;quot;&#039;.$class.&#039; name=&amp;quot;&#039;.$this-&amp;gt;name.&#039;&amp;quot; value=&amp;quot;&#039;.$value.&#039;&amp;quot; /&amp;gt;&#039;;&lt;br /&gt;
	  &lt;br /&gt;
	  return implode(&amp;quot;\n&amp;quot;, $html);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Let&#039;s take a closer look at the method.   &lt;br /&gt;
* The modal behavior is loaded.&lt;br /&gt;
* The javascript function SelectBook_jform_request_id is defined and will be inserted into the &amp;lt;head&amp;gt; of the document with addScriptDeclaration().  Notice that $this-&amp;gt;id = jform_request_id.  &#039;jform&#039; is the form name given in the loadForm method in our model.  &#039;request&#039; reflects that this is a request field, and &#039;id&#039; is the name of our field.&lt;br /&gt;
* There are several important points in the link that is created to open the modal window.  We include &#039;&#039;&#039;layout=modal&#039;&#039;&#039;, as this will be an alternate list view layout for &#039;books&#039;.  &#039;&#039;&#039;function=jSelectBook_.$this-&amp;gt;id&#039;&#039;&#039; will be used in the modal layout to identify the function to be called when a book is selected.&lt;br /&gt;
* Next, we obtain the title of the currently selected book from the database or return a generic &amp;quot;Select Book&amp;quot; phrase to be shown in the input field.&lt;br /&gt;
* The HTML output is created.  Note that this includes the hidden field that will have the id &#039;jform_request_id_id&#039; and will accept the id value of the book selected in the modal window.&lt;br /&gt;
&lt;br /&gt;
== Update the view ==&lt;br /&gt;
Since we won&#039;t need a toolbar in the modal layout, we&#039;ll revise the books view.&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;/administrator/components/com_library/views/books/view.html.php&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
  public function display($tpl = null)&lt;br /&gt;
  {&lt;br /&gt;
	  // Get data from the model&lt;br /&gt;
	  $items = $this-&amp;gt;get(&#039;Items&#039;);&lt;br /&gt;
	  $pagination = $this-&amp;gt;get(&#039;Pagination&#039;);&lt;br /&gt;
	  $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;
		  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;
	  // Assign data to the view&lt;br /&gt;
	  $this-&amp;gt;items = $items;&lt;br /&gt;
	  $this-&amp;gt;pagination = $pagination;&lt;br /&gt;
	  $this-&amp;gt;state = $state;&lt;br /&gt;
	  &lt;br /&gt;
	  // Only set the toolbar if not modal&lt;br /&gt;
	  if ($this-&amp;gt;getLayout() !== &#039;modal&#039;) {&lt;br /&gt;
		  $this-&amp;gt;addToolBar();&lt;br /&gt;
	  }&lt;br /&gt;
	  &lt;br /&gt;
	  // Display the template&lt;br /&gt;
	  parent::display($tpl);&lt;br /&gt;
	  &lt;br /&gt;
	  // Set the document&lt;br /&gt;
	  $this-&amp;gt;setDocument();&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create the modal layout ==&lt;br /&gt;
When developers have had difficulty in implementing a modal form field, this is likely the step that is most commonly overlooked.  Creating a separate modal layout is necessary in order to include links with an onclick action that will call the SelectBook_jform_request_id function.  In many respects, this list view will mirror the default list view, but you may choose to leave out some columns such as the select checkboxes.&lt;br /&gt;
&lt;br /&gt;
Create the new file &#039;&#039;&#039;&#039;&#039;/administrator/components/com_library/views/books/tmpl/modal.php&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 // No direct access&lt;br /&gt;
 defined(&#039;_JEXEC&#039;) or die(&#039;Restricted access&#039;);&lt;br /&gt;
 &lt;br /&gt;
 // Load tooltip behavior&lt;br /&gt;
 JHtml::_(&#039;behavior.tooltip&#039;);&lt;br /&gt;
 $listOrder	= $this-&amp;gt;escape($this-&amp;gt;state-&amp;gt;get(&#039;list.ordering&#039;));&lt;br /&gt;
 $listDirn	= $this-&amp;gt;escape($this-&amp;gt;state-&amp;gt;get(&#039;list.direction&#039;));&lt;br /&gt;
 &lt;br /&gt;
 $function = JRequest::getCmd(&#039;function&#039;, &#039;jSelectBook&#039;);&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;form action=&amp;quot;&amp;lt;?php echo $this-&amp;gt;action; ?&amp;gt;&amp;quot; method=&amp;quot;post&amp;quot; name=&amp;quot;adminForm&amp;quot; id=&amp;quot;adminForm&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;table class=&amp;quot;adminlist&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;thead&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;?php echo JHtml::_(&#039;grid.sort&#039;, &#039;COM_LIBRARY_BOOKS_HEADING_TITLE&#039;, &#039;title&#039;, $listDirn, $listOrder); ?&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;?php echo JHtml::_(&#039;grid.sort&#039;, &#039;COM_LIBRARY_BOOKS_HEADING_STATE&#039;, &#039;state&#039;, $listDirn, $listOrder); ?&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;?php echo JHtml::_(&#039;grid.sort&#039;, &#039;COM_LIBRARY_BOOKS_HEADING_HITS&#039;, &#039;hits&#039;, $listDirn, $listOrder); ?&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;?php echo JHtml::_(&#039;grid.sort&#039;, &#039;COM_LIBRARY_BOOKS_HEADING_CREATED&#039;, &#039;created&#039;, $listDirn, $listOrder); ?&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;?php echo JHtml::_(&#039;grid.sort&#039;, &#039;COM_LIBRARY_BOOKS_HEADING_MODIFIED&#039;, &#039;modified&#039;, $listDirn, $listOrder); ?&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;th width=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;?php echo JHtml::_(&#039;grid.sort&#039;, &#039;COM_LIBRARY_BOOKS_HEADING_ID&#039;, &#039;id&#039;, $listDirn, $listOrder); ?&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/thead&amp;gt;&lt;br /&gt;
    &amp;lt;tfoot&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td colspan=&amp;quot;6&amp;quot;&amp;gt;&amp;lt;?php echo $this-&amp;gt;pagination-&amp;gt;getListFooter(); ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/tfoot&amp;gt;&lt;br /&gt;
    &amp;lt;tbody&amp;gt;&lt;br /&gt;
&amp;lt;?php foreach ($this-&amp;gt;items as $i =&amp;gt; $item) : ?&amp;gt;&lt;br /&gt;
        &amp;lt;tr class=&amp;quot;row&amp;lt;?php echo $i % 2; ?&amp;gt;&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;a class=&amp;quot;pointer&amp;quot; onclick=&amp;quot;if (window.parent) window.parent.&amp;lt;?php echo $this-&amp;gt;escape($function);?&amp;gt;(&#039;&amp;lt;?php echo $item-&amp;gt;id; ?&amp;gt;&#039;, &#039;&amp;lt;?php echo $this-&amp;gt;escape(addslashes($item-&amp;gt;title)); ?&amp;gt;&#039;);&amp;quot;&amp;gt;&amp;lt;?php echo $this-&amp;gt;escape($item-&amp;gt;title); ?&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;
            &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;?php echo JHtml::_(&#039;jgrid.published&#039;, $item-&amp;gt;state, $i, &#039;books.&#039;); ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;td align=&amp;quot;right&amp;quot;&amp;gt;&amp;lt;?php echo $item-&amp;gt;hits; ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;?php echo $item-&amp;gt;created; ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;td align=&amp;quot;center&amp;quot;&amp;gt;&amp;lt;?php echo $item-&amp;gt;modified; ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;td&amp;gt;&amp;lt;?php echo $item-&amp;gt;id; ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
    &amp;lt;/tbody&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;task&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;boxchecked&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;filter_order&amp;quot; value=&amp;quot;&amp;lt;?php echo $listOrder; ?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;filter_order_Dir&amp;quot; value=&amp;quot;&amp;lt;?php echo $listDirn; ?&amp;gt;&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;?php echo JHtml::_(&#039;form.token&#039;); ?&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This layout has two important differences when compared to the default layout.  &lt;br /&gt;
* We obtain the name of the javascript function using &#039;&#039;&#039;JRequest::getCmd(&#039;function&#039;, &#039;jSelectBook&#039;)&#039;&#039;&#039;.  &lt;br /&gt;
* The value of $function is then used in the onclick event on the title links.&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
[[User:radiant_tech|Denise McLaurin]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Form fields]]&lt;br /&gt;
[[Category:Joomla! 1.6]]&lt;br /&gt;
[[Category:Joomla! 1.7]]&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:How_to_create_DOCX_views&amp;diff=62672</id>
		<title>Archived:How to create DOCX views</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:How_to_create_DOCX_views&amp;diff=62672"/>
		<updated>2011-10-19T12:28:53Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: revised categories&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following tutorial will demonstrate how to generate a view as a Microsoft Word document.  This example is from a Recipe component and we will add the ability to save the recipe as a Word file.  You may note this pattern of steps could also be used to create PDF views in a component with the use of a PDF library such as TCPDF.&lt;br /&gt;
&lt;br /&gt;
{{JVer|1.6}} {{JVer|1.7}}&lt;br /&gt;
&lt;br /&gt;
== Download PHPdocx ==&lt;br /&gt;
PHPdocx is a PHP library which can help you dynamically generate Word documents.  Both a Free and a Pro version are available for download.  Visit http://www.phpdocx.com to select the version you prefer and download the package.&lt;br /&gt;
&lt;br /&gt;
We will add the new library within the &#039;libraries&#039; directory on your website.  This would allow you to easily access the library with other components if desired.  Create a new subdirectory beneath &#039;libraries&#039; on your site named &#039;&#039;phpdocx&#039;&#039;.  Extract the zip file on your computer and upload the contents to the new subdirectory.&lt;br /&gt;
&lt;br /&gt;
== Create the DOCX view ==&lt;br /&gt;
In the frontend of the component structure, we will create a docx view for the recipe.  Create the file &#039;&#039;&amp;lt;component&amp;gt;/views/&amp;lt;view&amp;gt;/view.docx.php&#039;&#039;.  Links that include &amp;quot;&amp;amp;tmpl=component&amp;amp;format=docx&amp;quot; will look for this file in the relevant view folder.&lt;br /&gt;
&lt;br /&gt;
Assuming you are replicating the content of default.php to be shown instead in Word, the display() method of our View class will be the same as view.html.php with one important change.  Be sure to set &#039;&#039;$tpl=docx&#039;&#039; rather than &#039;&#039;$tpl=null&#039;&#039; as an argument of the display() function.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class RecipesViewRecipe extends JView&lt;br /&gt;
{&lt;br /&gt;
	function display($tpl=&#039;docx&#039;)&lt;br /&gt;
	{&lt;br /&gt;
		// Get data from model&lt;br /&gt;
		$item = $this-&amp;gt;get(&#039;Item&#039;);&lt;br /&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;
			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;
		// Add params&lt;br /&gt;
		$this-&amp;gt;params = $this-&amp;gt;state-&amp;gt;get(&#039;params&#039;);&lt;br /&gt;
		&lt;br /&gt;
		// Assign to template&lt;br /&gt;
		$this-&amp;gt;item = $item;&lt;br /&gt;
		$this-&amp;gt;state = $state;&lt;br /&gt;
		&lt;br /&gt;
		parent::display($tpl);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create Word document generator ==&lt;br /&gt;
Rather than naming our template file &#039;&#039;default.php&#039;&#039; as we would with an HTML view, we will include the format in the name.  Create the file &#039;&#039;&amp;lt;component&amp;gt;/views/&amp;lt;view&amp;gt;/tmpl/default_docx.php&#039;&#039;.  A simple example which can be done with the Free version of PHPdocx is shown below.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 // No direct access&lt;br /&gt;
 defined(&#039;_JEXEC&#039;) or die(&#039;Restricted access&#039;);&lt;br /&gt;
&lt;br /&gt;
 // include the PHPdocx library&lt;br /&gt;
 require_once JPATH_SITE.&#039;/libraries/phpdocx/classes/CreateDocx.inc&#039;;&lt;br /&gt;
 &lt;br /&gt;
 $docx = new CreateDocx();&lt;br /&gt;
 &lt;br /&gt;
 // Add a Page Header&lt;br /&gt;
 if ($this-&amp;gt;item-&amp;gt;params-&amp;gt;get(&#039;word_header&#039;)) {&lt;br /&gt;
 	$paramsHeader = array(&#039;name&#039;=&amp;gt;&#039;images/logo.gif&#039;, &#039;jc&#039;=&amp;gt;&#039;center&#039;, &#039;i&#039;=&amp;gt;&#039;single&#039;);&lt;br /&gt;
	$docx-&amp;gt;addHeader(&#039;Document Heading&#039;, $paramsHeader);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Add a Page Footer&lt;br /&gt;
 if ($this-&amp;gt;item-&amp;gt;params-&amp;gt;get(&#039;word_footer&#039;)) {&lt;br /&gt;
 	$paramsFooter = array(&#039;pager&#039;=&amp;gt;&#039;true&#039;, &#039;pagerAlignment&#039;=&amp;gt;&#039;right&#039;);&lt;br /&gt;
	$docx-&amp;gt;addFooter(&#039;Sitename&#039;, $paramsFooter);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Add the Recipe title&lt;br /&gt;
 $paramsText = array(&#039;font&#039;=&amp;gt;&#039;Arial&#039;, &#039;sz&#039;=12);&lt;br /&gt;
 $docx-&amp;gt;addText($this-&amp;gt;item-&amp;gt;title, $paramsText);&lt;br /&gt;
 &lt;br /&gt;
 // Generate the document&lt;br /&gt;
 $docx-&amp;gt;createDocx(&#039;tmp/filename&#039;);&lt;br /&gt;
 &lt;br /&gt;
 // Force the document to the browser&lt;br /&gt;
 $app = JFactory::getApplication();&lt;br /&gt;
 $app-&amp;gt;redirect(&#039;tmp/filename.docx&#039;);&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Obviously, the above example is of little real value, but demonstrates some basic concepts in working with the PHPdocx library.  &lt;br /&gt;
&lt;br /&gt;
Notice that the location and filename of the Word document is determined by the argument you provide the createDocx() method.  In this case the file is created in the tmp/ directory off our site root and saved as &#039;&#039;filename.docx&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The Free version of the library does not include the CreateDocxAndDownload() method (which would send the created file to the browser), so I&#039;ve included the step of using $app-&amp;gt;redirect() to get the file.&lt;br /&gt;
&lt;br /&gt;
The CreateDocx.inc file is well commented to help familiarize you with the possible attribute/value pairs of each method.  The Pro version of the library allows much more flexibility in content generation, including translation of HTML and CSS styles to WordML and use of the MailMerge function.  The image below will give you an idea of what is possible with the expanded library.&lt;br /&gt;
&lt;br /&gt;
[[File:Phpdocx-example.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
== Creating a Word icon button ==&lt;br /&gt;
Now that we have our DOCX view in place, we&#039;ll want to create an icon (similar to the print and email icons in Articles) with which to call it.  Create the file &#039;&#039;&amp;lt;component&amp;gt;/helpers/icon.php&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 // No Direct Access&lt;br /&gt;
 defined(&#039;_JEXEC&#039;) or die(&#039;Restricted access&#039;);&lt;br /&gt;
 &lt;br /&gt;
 // Component HTML Helper&lt;br /&gt;
 class JHtmlIcon&lt;br /&gt;
 {&lt;br /&gt;
 	static function msword($item, $params, $attribs = array())&lt;br /&gt;
	{&lt;br /&gt;
		$url = &#039;index.php?option=&amp;lt;component&amp;gt;&amp;amp;view=&amp;lt;view&amp;gt;&amp;amp;id=&#039;.$item-&amp;gt;id.&#039;&amp;amp;tmpl=component&amp;amp;format=docx&#039;;&lt;br /&gt;
		$text = JHtml::_(&#039;image&#039;, &#039;images/word_icon.gif&#039;, JText::_(&#039;&amp;lt;component&amp;gt;_ICON_MSWORD&#039;), NULL, false);&lt;br /&gt;
		$attribs[&#039;title&#039;] = JText::_(&#039;&amp;lt;component&amp;gt;_ICON_MSWORD&#039;);&lt;br /&gt;
		&lt;br /&gt;
		$output = JHtml::_(&#039;link&#039;, JRoute::_($url), $text, $attribs);&lt;br /&gt;
		return $output;&lt;br /&gt;
	}&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The last argument in the JHtml image method above is important as an indicator of where the system will look for the word_icon.gif image.  By setting the value to &#039;&#039;false&#039;&#039;, we are telling it to look for the specific path and file name we&#039;ve provided, directly from the site root.  In this case, it will be in images/, the default directory for Media Manager.&lt;br /&gt;
&lt;br /&gt;
== Add the Icon to the HTML view ==&lt;br /&gt;
To finish up, we open our &#039;&#039;default.php&#039;&#039; file and add something similar to the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?php if ($params-&amp;gt;get(&#039;show_word_icon&#039;)) : ?&amp;gt;&lt;br /&gt;
 	&amp;lt;ul class=&amp;quot;actions&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li class=&amp;quot;word-icon&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;?php echo JHtml::_(&#039;icon.msword&#039;, $this-&amp;gt;item, $params); ?&amp;gt;&lt;br /&gt;
		&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
[[User:radiant_tech|Denise McLaurin]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Component Development]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Joomla! 1.6]]&lt;br /&gt;
[[Category:Joomla! 1.7]]&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Talk:Creating_a_modal_form_field_using_JFormFieldModal&amp;diff=62655</id>
		<title>Talk:Creating a modal form field using JFormFieldModal</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Talk:Creating_a_modal_form_field_using_JFormFieldModal&amp;diff=62655"/>
		<updated>2011-10-18T13:30:17Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: Created page with &amp;quot;This page is very misleading as it is a proposal for a new feature and not an actual &amp;quot;how-to&amp;quot; for working with the current system.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page is very misleading as it is a proposal for a new feature and not an actual &amp;quot;how-to&amp;quot; for working with the current system.&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:How_to_create_DOCX_views&amp;diff=62544</id>
		<title>Archived:How to create DOCX views</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:How_to_create_DOCX_views&amp;diff=62544"/>
		<updated>2011-10-07T22:01:22Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following tutorial will demonstrate how to generate a view as a Microsoft Word document.  This example is from a Recipe component and we will add the ability to save the recipe as a Word file.  You may note this pattern of steps could also be used to create PDF views in a component with the use of a PDF library such as TCPDF.&lt;br /&gt;
&lt;br /&gt;
{{JVer|1.6}} {{JVer|1.7}}&lt;br /&gt;
&lt;br /&gt;
== Download PHPdocx ==&lt;br /&gt;
PHPdocx is a PHP library which can help you dynamically generate Word documents.  Both a Free and a Pro version are available for download.  Visit http://www.phpdocx.com to select the version you prefer and download the package.&lt;br /&gt;
&lt;br /&gt;
We will add the new library within the &#039;libraries&#039; directory on your website.  This would allow you to easily access the library with other components if desired.  Create a new subdirectory beneath &#039;libraries&#039; on your site named &#039;&#039;phpdocx&#039;&#039;.  Extract the zip file on your computer and upload the contents to the new subdirectory.&lt;br /&gt;
&lt;br /&gt;
== Create the DOCX view ==&lt;br /&gt;
In the frontend of the component structure, we will create a docx view for the recipe.  Create the file &#039;&#039;&amp;lt;component&amp;gt;/views/&amp;lt;view&amp;gt;/view.docx.php&#039;&#039;.  Links that include &amp;quot;&amp;amp;tmpl=component&amp;amp;format=docx&amp;quot; will look for this file in the relevant view folder.&lt;br /&gt;
&lt;br /&gt;
Assuming you are replicating the content of default.php to be shown instead in Word, the display() method of our View class will be the same as view.html.php with one important change.  Be sure to set &#039;&#039;$tpl=docx&#039;&#039; rather than &#039;&#039;$tpl=null&#039;&#039; as an argument of the display() function.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class RecipesViewRecipe extends JView&lt;br /&gt;
{&lt;br /&gt;
	function display($tpl=&#039;docx&#039;)&lt;br /&gt;
	{&lt;br /&gt;
		// Get data from model&lt;br /&gt;
		$item = $this-&amp;gt;get(&#039;Item&#039;);&lt;br /&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;
			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;
		// Add params&lt;br /&gt;
		$this-&amp;gt;params = $this-&amp;gt;state-&amp;gt;get(&#039;params&#039;);&lt;br /&gt;
		&lt;br /&gt;
		// Assign to template&lt;br /&gt;
		$this-&amp;gt;item = $item;&lt;br /&gt;
		$this-&amp;gt;state = $state;&lt;br /&gt;
		&lt;br /&gt;
		parent::display($tpl);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create Word document generator ==&lt;br /&gt;
Rather than naming our template file &#039;&#039;default.php&#039;&#039; as we would with an HTML view, we will include the format in the name.  Create the file &#039;&#039;&amp;lt;component&amp;gt;/views/&amp;lt;view&amp;gt;/tmpl/default_docx.php&#039;&#039;.  A simple example which can be done with the Free version of PHPdocx is shown below.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 // No direct access&lt;br /&gt;
 defined(&#039;_JEXEC&#039;) or die(&#039;Restricted access&#039;);&lt;br /&gt;
&lt;br /&gt;
 // include the PHPdocx library&lt;br /&gt;
 require_once JPATH_SITE.&#039;/libraries/phpdocx/classes/CreateDocx.inc&#039;;&lt;br /&gt;
 &lt;br /&gt;
 $docx = new CreateDocx();&lt;br /&gt;
 &lt;br /&gt;
 // Add a Page Header&lt;br /&gt;
 if ($this-&amp;gt;item-&amp;gt;params-&amp;gt;get(&#039;word_header&#039;)) {&lt;br /&gt;
 	$paramsHeader = array(&#039;name&#039;=&amp;gt;&#039;images/logo.gif&#039;, &#039;jc&#039;=&amp;gt;&#039;center&#039;, &#039;i&#039;=&amp;gt;&#039;single&#039;);&lt;br /&gt;
	$docx-&amp;gt;addHeader(&#039;Document Heading&#039;, $paramsHeader);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Add a Page Footer&lt;br /&gt;
 if ($this-&amp;gt;item-&amp;gt;params-&amp;gt;get(&#039;word_footer&#039;)) {&lt;br /&gt;
 	$paramsFooter = array(&#039;pager&#039;=&amp;gt;&#039;true&#039;, &#039;pagerAlignment&#039;=&amp;gt;&#039;right&#039;);&lt;br /&gt;
	$docx-&amp;gt;addFooter(&#039;Sitename&#039;, $paramsFooter);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Add the Recipe title&lt;br /&gt;
 $paramsText = array(&#039;font&#039;=&amp;gt;&#039;Arial&#039;, &#039;sz&#039;=12);&lt;br /&gt;
 $docx-&amp;gt;addText($this-&amp;gt;item-&amp;gt;title, $paramsText);&lt;br /&gt;
 &lt;br /&gt;
 // Generate the document&lt;br /&gt;
 $docx-&amp;gt;createDocx(&#039;tmp/filename&#039;);&lt;br /&gt;
 &lt;br /&gt;
 // Force the document to the browser&lt;br /&gt;
 $app = JFactory::getApplication();&lt;br /&gt;
 $app-&amp;gt;redirect(&#039;tmp/filename.docx&#039;);&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Obviously, the above example is of little real value, but demonstrates some basic concepts in working with the PHPdocx library.  &lt;br /&gt;
&lt;br /&gt;
Notice that the location and filename of the Word document is determined by the argument you provide the createDocx() method.  In this case the file is created in the tmp/ directory off our site root and saved as &#039;&#039;filename.docx&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The Free version of the library does not include the CreateDocxAndDownload() method (which would send the created file to the browser), so I&#039;ve included the step of using $app-&amp;gt;redirect() to get the file.&lt;br /&gt;
&lt;br /&gt;
The CreateDocx.inc file is well commented to help familiarize you with the possible attribute/value pairs of each method.  The Pro version of the library allows much more flexibility in content generation, including translation of HTML and CSS styles to WordML and use of the MailMerge function.  The image below will give you an idea of what is possible with the expanded library.&lt;br /&gt;
&lt;br /&gt;
[[File:Phpdocx-example.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
== Creating a Word icon button ==&lt;br /&gt;
Now that we have our DOCX view in place, we&#039;ll want to create an icon (similar to the print and email icons in Articles) with which to call it.  Create the file &#039;&#039;&amp;lt;component&amp;gt;/helpers/icon.php&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 // No Direct Access&lt;br /&gt;
 defined(&#039;_JEXEC&#039;) or die(&#039;Restricted access&#039;);&lt;br /&gt;
 &lt;br /&gt;
 // Component HTML Helper&lt;br /&gt;
 class JHtmlIcon&lt;br /&gt;
 {&lt;br /&gt;
 	static function msword($item, $params, $attribs = array())&lt;br /&gt;
	{&lt;br /&gt;
		$url = &#039;index.php?option=&amp;lt;component&amp;gt;&amp;amp;view=&amp;lt;view&amp;gt;&amp;amp;id=&#039;.$item-&amp;gt;id.&#039;&amp;amp;tmpl=component&amp;amp;format=docx&#039;;&lt;br /&gt;
		$text = JHtml::_(&#039;image&#039;, &#039;images/word_icon.gif&#039;, JText::_(&#039;&amp;lt;component&amp;gt;_ICON_MSWORD&#039;), NULL, false);&lt;br /&gt;
		$attribs[&#039;title&#039;] = JText::_(&#039;&amp;lt;component&amp;gt;_ICON_MSWORD&#039;);&lt;br /&gt;
		&lt;br /&gt;
		$output = JHtml::_(&#039;link&#039;, JRoute::_($url), $text, $attribs);&lt;br /&gt;
		return $output;&lt;br /&gt;
	}&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The last argument in the JHtml image method above is important as an indicator of where the system will look for the word_icon.gif image.  By setting the value to &#039;&#039;false&#039;&#039;, we are telling it to look for the specific path and file name we&#039;ve provided, directly from the site root.  In this case, it will be in images/, the default directory for Media Manager.&lt;br /&gt;
&lt;br /&gt;
== Add the Icon to the HTML view ==&lt;br /&gt;
To finish up, we open our &#039;&#039;default.php&#039;&#039; file and add something similar to the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?php if ($params-&amp;gt;get(&#039;show_word_icon&#039;)) : ?&amp;gt;&lt;br /&gt;
 	&amp;lt;ul class=&amp;quot;actions&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li class=&amp;quot;word-icon&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;?php echo JHtml::_(&#039;icon.msword&#039;, $this-&amp;gt;item, $params); ?&amp;gt;&lt;br /&gt;
		&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
[[User:radiant_tech|Denise McLaurin]]&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:Articles that require a review]]&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Phpdocx-example.jpg&amp;diff=62543</id>
		<title>File:Phpdocx-example.jpg</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Phpdocx-example.jpg&amp;diff=62543"/>
		<updated>2011-10-07T21:55:52Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:How_to_create_DOCX_views&amp;diff=62542</id>
		<title>Archived:How to create DOCX views</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:How_to_create_DOCX_views&amp;diff=62542"/>
		<updated>2011-10-07T21:07:57Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: Created page with &amp;quot;The following tutorial will demonstrate how to generate a view as a Microsoft Word document.  This example is from a Recipe component and we will add the ability to save the reci...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following tutorial will demonstrate how to generate a view as a Microsoft Word document.  This example is from a Recipe component and we will add the ability to save the recipe as a Word file.  You may note this pattern of steps could also be used to create PDF views in a component with the use of a PDF library such as TCPDF.&lt;br /&gt;
&lt;br /&gt;
{{JVer|1.6}} {{JVer|1.7}}&lt;br /&gt;
&lt;br /&gt;
== Download PHPdocx ==&lt;br /&gt;
PHPdocx is a PHP library which can help you dynamically generate Word documents.  Both a Free and a Pro version are available for download.  Visit target: http://www.phpdocx.com to select the version you prefer and download the package.&lt;br /&gt;
&lt;br /&gt;
We will add the new library within the &#039;libraries&#039; directory on your website.  This would allow you to easily access the library with other components if desired.  Create a new subdirectory beneath &#039;libraries&#039; on your site named &#039;phpdocx&#039;.  Extract the zip file on your computer and upload the contents to the new subdirectory.&lt;br /&gt;
&lt;br /&gt;
== Create the DOCX view ==&lt;br /&gt;
In the frontend of the component structure, we will create a docx view for the recipe.  Create the file &#039;&#039;&amp;lt;component&amp;gt;/views/&amp;lt;view&amp;gt;/view.docx.php&#039;&#039;.  Links that include &amp;quot;&amp;amp;tmpl=component&amp;amp;format=docx&amp;quot; will look for this file in the relevant view folder.&lt;br /&gt;
&lt;br /&gt;
Assuming you are replicating the content of default.php to be shown instead in Word, the display() method of our View class will be the same as view.html.php with one important change.  Be sure to set &#039;&#039;$tpl=docx&#039;&#039; rather than &#039;&#039;$tpl=null&#039;&#039; as an argument of the display() function.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class RecipesViewRecipe extends JView&lt;br /&gt;
{&lt;br /&gt;
	function display($tpl=&#039;docx&#039;)&lt;br /&gt;
	{&lt;br /&gt;
		// Get data from model&lt;br /&gt;
		$item = $this-&amp;gt;get(&#039;Item&#039;);&lt;br /&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;
			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;
		// Add params&lt;br /&gt;
		$this-&amp;gt;params = $this-&amp;gt;state-&amp;gt;get(&#039;params&#039;);&lt;br /&gt;
		&lt;br /&gt;
		// Assign to template&lt;br /&gt;
		$this-&amp;gt;item = $item;&lt;br /&gt;
		$this-&amp;gt;state = $state;&lt;br /&gt;
		&lt;br /&gt;
		parent::display($tpl);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Create Word document generator ==&lt;br /&gt;
Rather than naming our template file &#039;&#039;default.php&#039;&#039; as we would with an HTML view, we will include the format in the name.  Create the file &#039;&#039;&amp;lt;component&amp;gt;/views/&amp;lt;view&amp;gt;/tmpl/default_docx.php&#039;&#039;.  A simple example which can be done with the Free version of PHPdocx is shown below.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 // No direct access&lt;br /&gt;
 defined(&#039;_JEXEC&#039;) or die(&#039;Restricted access&#039;);&lt;br /&gt;
&lt;br /&gt;
 // include the PHPdocx library&lt;br /&gt;
 require_once JPATH_SITE.&#039;/libraries/phpdocx/classes/CreateDocx.inc&#039;;&lt;br /&gt;
 &lt;br /&gt;
 $docx = new CreateDocx();&lt;br /&gt;
 &lt;br /&gt;
 // Add a Page Header&lt;br /&gt;
 if ($this-&amp;gt;item-&amp;gt;params-&amp;gt;get(&#039;word_header&#039;)) {&lt;br /&gt;
 	$paramsHeader = array(&#039;name&#039;=&amp;gt;&#039;images/logo.gif&#039;, &#039;jc&#039;=&amp;gt;&#039;center&#039;, &#039;i&#039;=&amp;gt;&#039;single&#039;);&lt;br /&gt;
	$docx-&amp;gt;addHeader(&#039;Document Heading&#039;, $paramsHeader);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Add a Page Footer&lt;br /&gt;
 if ($this-&amp;gt;item-&amp;gt;params-&amp;gt;get(&#039;word_footer&#039;)) {&lt;br /&gt;
 	$paramsFooter = array(&#039;pager&#039;=&amp;gt;&#039;true&#039;, &#039;pagerAlignment&#039;=&amp;gt;&#039;right&#039;);&lt;br /&gt;
	$docx-&amp;gt;addFooter(&#039;Sitename&#039;, $paramsFooter);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Add the Recipe title&lt;br /&gt;
 $paramsText = array(&#039;font&#039;=&amp;gt;&#039;Arial&#039;, &#039;sz&#039;=12);&lt;br /&gt;
 $docx-&amp;gt;addText($this-&amp;gt;item-&amp;gt;title, $paramsText);&lt;br /&gt;
 &lt;br /&gt;
 // Generate the document&lt;br /&gt;
 $docx-&amp;gt;createDocx(&#039;tmp/filename&#039;);&lt;br /&gt;
 &lt;br /&gt;
 // Force the document to the browser&lt;br /&gt;
 $app = JFactory::getApplication();&lt;br /&gt;
 $app-&amp;gt;redirect(&#039;tmp/filename.docx&#039;);&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Obviously, the above example is of little real value, but demonstrates some basic concepts in working with the PHPdocx library.  &lt;br /&gt;
&lt;br /&gt;
Notice that the location and filename of the Word document is determined by the argument you provide the createDocx() method.  In this case the file is created in the tmp/ directory off our site root and saved as &#039;&#039;filename.docx&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
The Free version of the library does not include the CreateDocxAndDownload() method (which would send the created file to the browser), so I&#039;ve included the step of using $app-&amp;gt;redirect() to get the file.&lt;br /&gt;
&lt;br /&gt;
The CreateDocx.inc file is well commented to help familiarize you with the possible attribute/value pairs of each method.  The Pro version of the library allows much more flexibility in content generation, including translation of HTML and CSS styles to WordML and use of the MailMerge function.&lt;br /&gt;
&lt;br /&gt;
== Creating a Word icon button ==&lt;br /&gt;
Now that we have our DOCX view in place, we&#039;ll want to create an icon (similar to the print and email icons in Articles) with which to call it.  Create the file &#039;&#039;&amp;lt;component&amp;gt;/helpers/icon.php&#039;&#039;.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 // No Direct Access&lt;br /&gt;
 defined(&#039;_JEXEC&#039;) or die(&#039;Restricted access&#039;);&lt;br /&gt;
 &lt;br /&gt;
 // Component HTML Helper&lt;br /&gt;
 class JHtmlIcon&lt;br /&gt;
 {&lt;br /&gt;
 	static function msword($item, $params, $attribs = array())&lt;br /&gt;
	{&lt;br /&gt;
		$url = &#039;index.php?option=&amp;lt;component&amp;gt;&amp;amp;view=&amp;lt;view&amp;gt;&amp;amp;id=&#039;.$item-&amp;gt;id.&#039;&amp;amp;tmpl=component&amp;amp;format=docx&#039;;&lt;br /&gt;
		$text = JHtml::_(&#039;image&#039;, &#039;images/word_icon.gif&#039;, JText::_(&#039;&amp;lt;component&amp;gt;_ICON_MSWORD&#039;), NULL, false);&lt;br /&gt;
		$attribs[&#039;title&#039;] = JText::_(&#039;&amp;lt;component&amp;gt;_ICON_MSWORD&#039;);&lt;br /&gt;
		&lt;br /&gt;
		$output = JHtml::_(&#039;link&#039;, JRoute::_($url), $text, $attribs);&lt;br /&gt;
		return $output;&lt;br /&gt;
	}&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The last argument in the JHtml image method above is important as an indicator of where the system will look for the word_icon.gif image.  By setting the value to &#039;&#039;false&#039;&#039;, we are telling it to look for the specific path and file name we&#039;ve provided, directly from the site root.  In this case, it will be in images/, the default directory for Media Manager.&lt;br /&gt;
&lt;br /&gt;
== Add the Icon to the HTML view ==&lt;br /&gt;
To finish up, we open our &#039;&#039;default.php&#039;&#039; file and add something similar to the following:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;?php if ($params-&amp;gt;get(&#039;show_word_icon&#039;)) : ?&amp;gt;&lt;br /&gt;
 	&amp;lt;ul class=&amp;quot;actions&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li class=&amp;quot;word-icon&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;?php echo JHtml::_(&#039;icon.msword&#039;, $this-&amp;gt;item, $params); ?&amp;gt;&lt;br /&gt;
		&amp;lt;/li&amp;gt;&lt;br /&gt;
	&amp;lt;/ul&amp;gt;&lt;br /&gt;
 &amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Contributors ==&lt;br /&gt;
[[User:radiant_tech|Denise McLaurin]]&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:Articles that require a review]]&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Text_form_field_type&amp;diff=62101</id>
		<title>Text form field type</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Text_form_field_type&amp;diff=62101"/>
		<updated>2011-09-16T22:09:27Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: added more optional params available to this method&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Params.text.jpg|right]]&lt;br /&gt;
&lt;br /&gt;
{{Ambox|type=notice|text=In Joomla! 1.5, [[Form field|form fields]] were [[Parameter|parameters]]. For that version, you may want to use the corresponding [[Text parameter type]].}}&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;text&#039;&#039;&#039; form field type provides a text box for data entry. If the field has a value saved, this value is displayed when the page is first loaded. If not, the default value (if any) is selected. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; (mandatory) must be &#039;&#039;text&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; (mandatory) is the unique name of the field.&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; (mandatory) (translatable) is the descriptive title of the field.&lt;br /&gt;
* &#039;&#039;&#039;size&#039;&#039;&#039; (optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.&lt;br /&gt;
* &#039;&#039;&#039;maxlength&#039;&#039;&#039; (optional) limits the number of characters that may be entered.&lt;br /&gt;
* &#039;&#039;&#039;default&#039;&#039;&#039; (optional) (translatable) is the default value.&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; (optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.&lt;br /&gt;
* &#039;&#039;&#039;class&#039;&#039;&#039; (optional) is a CSS class name for the HTML form field. If omitted this will default to &#039;text_area&#039;.&lt;br /&gt;
* &#039;&#039;&#039;readonly&#039;&#039;&#039; (optional) &lt;br /&gt;
* &#039;&#039;&#039;disabled&#039;&#039;&#039; (optional)&lt;br /&gt;
&lt;br /&gt;
Example XML field definition:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;field name=&amp;quot;mytextvalue&amp;quot; type=&amp;quot;text&amp;quot; default=&amp;quot;Some text&amp;quot; label=&amp;quot;Enter some text&amp;quot; description=&amp;quot;&amp;quot; size=&amp;quot;10&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=== See also ===&lt;br /&gt;
* [[Textarea form field type]]&lt;br /&gt;
* [[Standard form field types|List of standard form field types]]&lt;br /&gt;
[[Category:Standard form field types]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Editor_form_field_type&amp;diff=62099</id>
		<title>Editor form field type</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Editor_form_field_type&amp;diff=62099"/>
		<updated>2011-09-16T14:54:04Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The &#039;&#039;&#039;Editor&#039;&#039;&#039; field type provides a WYSIWYG editor.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; (mandatory) must be &#039;&#039;editor&#039;&#039;.&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; (mandatory) is the unique name of the parameter.&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; (mandatory) (translatable) is the descriptive title of the field.&lt;br /&gt;
* &#039;&#039;&#039;width&#039;&#039;&#039; (optional) defines the width (in pixels) of the wysiwyg editor and defaults to 100%.&lt;br /&gt;
* &#039;&#039;&#039;height&#039;&#039;&#039; (optional) defines the height (in pixels) of the wysiwyg editor and defaults to 250px.&lt;br /&gt;
* &#039;&#039;&#039;cols&#039;&#039;&#039; (optional) defines the width of the editor (in columns).&lt;br /&gt;
* &#039;&#039;&#039;rows&#039;&#039;&#039; (optional) defines the height of the editor (in rows).&lt;br /&gt;
* &#039;&#039;&#039;buttons&#039;&#039;&#039; (optional) can be an array of plugin buttons to be included or set to false&lt;br /&gt;
* &#039;&#039;&#039;hide&#039;&#039;&#039; (optional) array of plugin buttons to be hidden&lt;br /&gt;
* &#039;&#039;&#039;editor&#039;&#039;&#039; specifies the editor to be used and can include two options (editor=&amp;quot;desired|alternative&amp;quot;)&lt;br /&gt;
* &#039;&#039;&#039;filter&#039;&#039;&#039; (optional) allow the system to save certain html tags or raw data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example XML Definition&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;field name=&amp;quot;test1&amp;quot; label =&amp;quot;Test Field&amp;quot; type=&amp;quot;editor&amp;quot; width=&amp;quot;300&amp;quot; filter=&amp;quot;safehtml&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== See also ===&lt;br /&gt;
* [[Textarea parameter type]]&lt;br /&gt;
* [[Standard form field types|Table of all standard form field types]]&lt;br /&gt;
[[Category:Standard form field types]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived_talk:Developing_a_MVC_Component/Basic_backend&amp;diff=61705</id>
		<title>Archived talk:Developing a MVC Component/Basic backend</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived_talk:Developing_a_MVC_Component/Basic_backend&amp;diff=61705"/>
		<updated>2011-09-01T11:39:35Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Items to be adding/changed on this page:&lt;br /&gt;
&lt;br /&gt;
Note that if using core J! javascript in a form, id=&amp;quot;adminForm&amp;quot; must also be included.&lt;br /&gt;
&lt;br /&gt;
Shouldn&#039;t references to $db-&amp;gt;getDBO() be changed to $db-&amp;gt;getDbo() ?&lt;br /&gt;
&lt;br /&gt;
And what is this comment referring to?  &amp;quot;The _populateState method is, by default, automatically called when a state is read by the getState method.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[User:Radiant tech|Radiant tech]] 06:37, 1 September 2011 (CDT)&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived_talk:Developing_a_MVC_Component/Basic_backend&amp;diff=61704</id>
		<title>Archived talk:Developing a MVC Component/Basic backend</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived_talk:Developing_a_MVC_Component/Basic_backend&amp;diff=61704"/>
		<updated>2011-09-01T11:37:59Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: Created page with &amp;quot;Items to be adding/changed on this page: Note that if using core J! javascript in a form, id=&amp;quot;adminForm&amp;quot; must also be included. Shouldn&amp;#039;t references to $db-&amp;gt;getDBO() be changed t...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Items to be adding/changed on this page:&lt;br /&gt;
Note that if using core J! javascript in a form, id=&amp;quot;adminForm&amp;quot; must also be included.&lt;br /&gt;
Shouldn&#039;t references to $db-&amp;gt;getDBO() be changed to $db-&amp;gt;getDbo() ?&lt;br /&gt;
&lt;br /&gt;
And what is this comment referring to?  &amp;quot;The _populateState method is, by default, automatically called when a state is read by the getState method.&amp;quot;&lt;br /&gt;
[[User:Radiant tech|Radiant tech]] 06:37, 1 September 2011 (CDT)&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:Upgrading_a_Joomla_1.5_template_to_Joomla_2.5&amp;diff=61403</id>
		<title>Archived:Upgrading a Joomla 1.5 template to Joomla 2.5</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:Upgrading_a_Joomla_1.5_template_to_Joomla_2.5&amp;diff=61403"/>
		<updated>2011-08-19T12:01:13Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RightTOC}}&lt;br /&gt;
This page provides feedback on the process of upgrading a Joomla 1.5 template for use with Joomla 1.6 from those who have already attempted it. This is intended to be a living document that can be added to as more experience is gained and is likely to be reorganised periodically. If you have encountered a problem when upgrading a template, or if you have any information that you think will help smooth the way for others who will follow then please add your comments initially on the Talk page. We will then collate the information and incorporate it into this page.&lt;br /&gt;
&lt;br /&gt;
[[User:Chris Davenport|Chris Davenport]] prepared [http://www.slideshare.net/chrisdavenport/template-changes-for-joomla-16 slides for a presentation at the JoomlaDay UK 2010 event] which explain the changes in templates for Joomla! 1.6.&lt;br /&gt;
&lt;br /&gt;
== Template parameters ==&lt;br /&gt;
In both Joomla! 1.5 and 1.6 template parameters are defined in templateDetails.xml. &lt;br /&gt;
&lt;br /&gt;
Whereas in 1.5 parameters are defined as part of the &amp;lt;code&amp;gt;&amp;lt;params&amp;gt;&amp;lt;/code&amp;gt; section, and each parameter is defined as a &amp;lt;code&amp;gt;&amp;lt;param&amp;gt;&amp;lt;/code&amp;gt;, in 1.6 template parameters are contained in the &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt; section and treated as a &amp;lt;code&amp;gt;&amp;lt;field&amp;gt;&amp;lt;/code&amp;gt; nested within the &amp;lt;code&amp;gt;&amp;lt;fieldset&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;fields&amp;gt;&amp;lt;/code&amp;gt; tags, as illustrated below.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;config&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;basic&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;field name=&amp;quot;&amp;quot; type=&amp;quot; default=&amp;quot;&amp;quot; label=&amp;quot;&amp;quot; description=&amp;quot;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;option value=&amp;quot;1&amp;quot;&amp;gt;On&amp;lt;/option&amp;gt;&lt;br /&gt;
                    &amp;lt;option value=&amp;quot;0&amp;quot;&amp;gt;Off&amp;lt;/option&amp;gt;&lt;br /&gt;
                &amp;lt;/field&amp;gt;&lt;br /&gt;
                &amp;lt;field name=&amp;quot;&amp;quot; type=&amp;quot;&amp;quot; default=&amp;quot;&amp;quot; label=&amp;quot;e&amp;quot; description=&amp;quot;&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;/config&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;lt;fieldset name=&amp;quot;basic&amp;quot;&amp;gt;&amp;lt;/code&amp;gt; wraps the parameters in a slider and using name=&amp;quot;basic&amp;quot; labels that slider as &amp;quot;Basic Options&amp;quot; and name=&amp;quot;advanced&amp;quot; labels it as &amp;quot;Advanced Options&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
The name=&amp;quot;&amp;quot; type=&amp;quot; default=&amp;quot;&amp;quot; label=&amp;quot;&amp;quot; description=&amp;quot;&amp;quot; attributes still apply.&lt;br /&gt;
&lt;br /&gt;
== Template Manifest File ==&lt;br /&gt;
Two other important changes to the templateDetails.xml file include: 1) adding the new 1.6 Doctype&lt;br /&gt;
and 2) changing the &amp;lt;install&amp;gt; tag to &amp;lt;extension&amp;gt; as shown below.&lt;br /&gt;
&amp;lt;pre&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;!DOCTYPE install PUBLIC &amp;quot;-//Joomla! 1.6//DTD template 1.0//EN&amp;quot; &amp;quot;http://www.joomla.org/xml/dtd/1.6/template-install.dtd&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;extension version=&amp;quot;1.7&amp;quot; type=&amp;quot;template&amp;quot; client=&amp;quot;site&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice the additional new &amp;quot;client&amp;quot; attribute which is set to &amp;quot;site&amp;quot; for a front-facing template and &amp;quot;administrator&amp;quot; for an back-end template.&lt;br /&gt;
&lt;br /&gt;
== Objects and Methods ==&lt;br /&gt;
=== Sitename ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;?php echo $mainframe-&amp;gt;getCfg(&#039;sitename&#039;);?&amp;gt;&amp;lt;/code&amp;gt; is now &amp;lt;code&amp;gt;$app-&amp;gt;getCfg(&#039;sitename&#039;);&amp;lt;/code&amp;gt; Where &amp;lt;code&amp;gt;$app = JFactory::getApplication();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Error Codes ===&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;error-&amp;gt;code&amp;lt;/code&amp;gt; is replaced by &amp;lt;code&amp;gt;$this-&amp;gt;error-&amp;gt;getCode();&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;$this-&amp;gt;error-&amp;gt;message&amp;lt;/code&amp;gt; is replaced by &amp;lt;code&amp;gt;$this-&amp;gt;error-&amp;gt;getMessage();&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Joomla! 1.6]]&lt;br /&gt;
[[Category:Template Development]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Talk:Custom_error_pages&amp;diff=2953</id>
		<title>Talk:Custom error pages</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Talk:Custom_error_pages&amp;diff=2953"/>
		<updated>2008-02-29T17:13:32Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: New page: I don&amp;#039;t believe the method described here is accurate.  Please see a proposed fix in this forum thread: [http://forum.joomla.org/viewtopic.php?f=469&amp;amp;t=267189|Customizing Error Pages]. ~~~~&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I don&#039;t believe the method described here is accurate.  Please see a proposed fix in this forum thread: [http://forum.joomla.org/viewtopic.php?f=469&amp;amp;t=267189|Customizing Error Pages]. [[User:Radiant tech|Radiant tech]] 12:13, 29 February 2008 (EST)&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Archived:Starting_with_Joomla!_FAQs&amp;diff=2895</id>
		<title>Archived:Starting with Joomla! FAQs</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Archived:Starting_with_Joomla!_FAQs&amp;diff=2895"/>
		<updated>2008-02-22T15:40:11Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==What license is Joomla! released under?==&lt;br /&gt;
&lt;br /&gt;
Joomla! is released under the GPL (Gnu General Public License 2).&lt;br /&gt;
&lt;br /&gt;
Details of the GPL can be found here: http://www.gnu.org/licenses/gpl.html. &lt;br /&gt;
&lt;br /&gt;
==What do the locks mean? How do I get rid of them?==&lt;br /&gt;
&lt;br /&gt;
At any given time you may see a padlock next to a specific item in Joomla!&#039;s administrative backend. These padlocks may be displayed next to any of the following (Content Items, Menu Items, Modules, etc).&lt;br /&gt;
&lt;br /&gt;
The Joomla! system places these padlocks next to an item to indicate that a user is currently editing (or checked out) the item. The lock is removed by the system administratorvwhen the user clicks on the &amp;quot;Save&amp;quot; button for that item.&lt;br /&gt;
If the user never clicks &amp;quot;Save&amp;quot; and instead hits the &amp;quot;Back&amp;quot; button or navigates to another page, then the item stays locked. If another user needs to work with the item he or she must have the item checked back in before they can work on it.&lt;br /&gt;
&lt;br /&gt;
There are two ways of checking items back in. One way is to contact the person that has the item checked out to see if they are done with the item.&lt;br /&gt;
&lt;br /&gt;
The other option utilises the administrative back end;&lt;br /&gt;
Click on &amp;quot;System =&amp;gt; Global check in&amp;quot;&lt;br /&gt;
This option should be used very carefully, especially in multi-user environments. This single action checks in all previously checked out items, whether they were checked out by you or not. Possible undesirable side effects may be that multiple editors end up working on the same document.&lt;br /&gt;
In this case whoever clicks the save button last has their version saved as the final copy. &lt;br /&gt;
&lt;br /&gt;
==How do I eliminate the pathway or breadcrumbs?==&lt;br /&gt;
&lt;br /&gt;
The pathway or breadcrumb is a hierarchical trail that shows your current location on the site. The breadcrumb follows the Section, Category, Content Item hierarchy and a site&#039;s home page is always listed as the root of the hierarchy as &amp;quot;Home&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
An example is as follows; You are currently reading a content item &amp;quot;New Page&amp;quot;. This content item is a member of the &amp;quot;Pages &amp;quot; category. In the turn the pages category is a member of the &amp;quot;Books&amp;quot; section. In this case the breadcrumb for that page would look like: &amp;quot;Home &amp;gt;&amp;gt; Books &amp;gt;&amp;gt; Pages &amp;gt;&amp;gt; New Page&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.0&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you wish to eliminate the pathway entirely, edit your template html (index) file. Usually it will look like this:&lt;br /&gt;
  &amp;lt;div id=&amp;quot;pathway&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;?php mosPathWay(); ?&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you wish to eliminate it on a specific page, such as just the home page, you can modify the template in this way:&lt;br /&gt;
  New line:if($option != &amp;quot;&amp;quot; &amp;amp;&amp;amp; $option != &amp;quot;com_frontpage&amp;quot;)&lt;br /&gt;
  New line:{&lt;br /&gt;
  New line:?&amp;gt;&lt;br /&gt;
  Existing:&amp;lt;div id=&amp;quot;pathway&amp;quot;&amp;gt;&lt;br /&gt;
  Existing:&amp;lt;?php mosPathWay(); ?&amp;gt;&lt;br /&gt;
  Existing:&amp;lt;/div&amp;gt;&lt;br /&gt;
  New line:}&lt;br /&gt;
  New line:?&amp;gt;&lt;br /&gt;
Keep in mind: The first line says that if the option in the url does not equal com_frontpage (!=&amp;quot;com_frontpage&amp;quot;) display the pathway. In php ! means not.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Breadcrumbs have been added as a core module in Joomla! 1.5, and can be enabled or disabled for all pages directly through the Module Manager in the Back-end.  &lt;br /&gt;
&lt;br /&gt;
To prevent the breadcrumb pathway from displaying on the Frontpage only, revise the code of the index.php file of your template as follows:&lt;br /&gt;
: Replace&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&amp;lt;jdoc:include type=&amp;quot;module&amp;quot; name=&amp;quot;breadcrumbs&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: with&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php if( JRequest::getVar( &#039;view&#039; ) == &#039;frontpage&#039; ) { ?&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;&amp;amp;nbsp;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;?php } else { ?&amp;gt;&lt;br /&gt;
    &amp;lt;p&amp;gt;You are here: &amp;lt;jdoc:include type=&amp;quot;module&amp;quot; name=&amp;quot;breadcrumbs&amp;quot; /&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;?php } ?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How do I exit the wrapper?==&lt;br /&gt;
&lt;br /&gt;
(needs permission or rewrite)&lt;br /&gt;
&lt;br /&gt;
==How do I get rid of the News Flash or other module?==&lt;br /&gt;
&lt;br /&gt;
To disable the news flash (or any other) module from being displayed on the front end of the website, you first need to log into the administrative back end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.0&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Once in the back end, on the top menu click Modules =&amp;gt; Site Modules.&lt;br /&gt;
* Locate the Newsflash module. You may need to navigate to another page as there are many modules and they are not all displayed on the first page.&lt;br /&gt;
* Click the &amp;quot;Next&amp;quot; or &amp;quot;Previous&amp;quot; links at the bottom of the page until the module is located.&lt;br /&gt;
* Once the module is located, click on the icon next for this module name in the &amp;quot;Published&amp;quot; column.&lt;br /&gt;
&lt;br /&gt;
The icon should change to a red &amp;quot;X&amp;quot; which indicates that the module is now unpublished and invisible on the site’s front end.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Once in the back end, go to Extensions, Module Manager&lt;br /&gt;
*Locate the newsflash or other module&lt;br /&gt;
*Once the module is located, click on the icon next for this module name in the &amp;quot;Enabled&amp;quot; column.&lt;br /&gt;
&lt;br /&gt;
==How do I remove the page title from the front page of my site?==&lt;br /&gt;
&lt;br /&gt;
(needs permission or rewrite)&lt;br /&gt;
&lt;br /&gt;
==How do I find an extension to do [fill in the blank]?==&lt;br /&gt;
&lt;br /&gt;
The official Joomla! extensions site: http://extensions.joomla.org/ is the main source for extensions.&lt;br /&gt;
&lt;br /&gt;
If you cannot find what you need there, you should also search the Joomla! Extensions Directory Forum.&lt;br /&gt;
&lt;br /&gt;
If you still cannot find the right component then you should post a request or question in the Extensions Directory forum.&lt;br /&gt;
&lt;br /&gt;
1.5 forum: http://forum.joomla.org/index.php/board,470.0.html&lt;br /&gt;
&lt;br /&gt;
1.0 forum: http://forum.joomla.org/index.php/board,465.0.html&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Can content items be assigned to multiple categories or sections?==&lt;br /&gt;
&lt;br /&gt;
No, content items cannot be assigned to multiple categories or sections. In Joomla! 1.0.x content items are restricted to a single category in a single section.&lt;br /&gt;
&lt;br /&gt;
To have the same content in several sections or categories you must make separate content items for each category.&lt;br /&gt;
&lt;br /&gt;
Workarounds include using menus rather than dynamic lists of content items and using various third party extensions that simulate assignment to multiple categories.&lt;br /&gt;
&lt;br /&gt;
==How do I control what items appear in my newsflashes?==&lt;br /&gt;
&lt;br /&gt;
Newsflash is a module that displays content from specific sections and/or categories.&lt;br /&gt;
&lt;br /&gt;
* In the administrative back end from the top menu select “Modules =&amp;gt; Site Modules”.&lt;br /&gt;
* Click on “Newsflash” to edit the module.&lt;br /&gt;
* Go to the parameters section of the page.&lt;br /&gt;
* Next to the “Category” parameter click on the drop down menu to select which category of content items will be displayed by this module.  (In older versions of Joomla! the section and/or category id numbers have to be manually entered).&lt;br /&gt;
* Click the &amp;quot;Save&amp;quot; button to make your changes permanent.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How do I change the image(s) in my template?==&lt;br /&gt;
&lt;br /&gt;
One common template change is to use your own graphic/image. Simple graphics (not banners) are usually linked in your template&#039;s html file. Simply change the reference to the image of your choice in the your template&#039;s html file. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.0&#039;&#039;&#039;&lt;br /&gt;
In the adminstrative interface do this by going to Site =&amp;gt;Template manager and then selecting your template. Click the icon for html.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the administrative interface do this by going to Extensions =&amp;gt;Templates. &lt;br /&gt;
&lt;br /&gt;
Select the template you want to modify and click edit. Then click the icon for html.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keep in mind that if it is a different size than the original image this may change the appearance of the site in unexpected ways.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Additional information:&lt;br /&gt;
&lt;br /&gt;
The images for a given template are generally located in this folder:&lt;br /&gt;
/templates/templatename/images (Substitute the name of the template you are using in place of &amp;quot;templatename&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
A trick for finding the name of the image is to put your cursor over it and click right. Select view image. This will display the image and give its full url. Sometimes the images are background images. This is viewable in Firefox or you can look for the background tag in your page source.&lt;br /&gt;
&lt;br /&gt;
How to upload an image:&lt;br /&gt;
&lt;br /&gt;
There are many ways to upload images. Which one you use will depend on your host and server.&lt;br /&gt;
&lt;br /&gt;
1. You can use the media manager.&lt;br /&gt;
2. You can use an FTP client.&lt;br /&gt;
3. You can use a cPanel file manager.&lt;br /&gt;
4. You can use various extensions that allow uploading.&lt;br /&gt;
&lt;br /&gt;
==How do I change the introductory text for weblinks?==&lt;br /&gt;
&lt;br /&gt;
By default Joomla! 1.0.x uses the &#039;We are out on the web ...&amp;quot; introductory text. If you wish to change you have two options.&lt;br /&gt;
1. In your menu link to the weblinks component, add introductory text to the parameters. This replaces the default text. Note: to see all of the parameters you need to create the component link and then edit it.&lt;br /&gt;
&lt;br /&gt;
2. Change your language file (e.g. english.php). It is found in _WEBLINKS_DESC.&lt;br /&gt;
&lt;br /&gt;
==Why cannot I edit my content from the front end?==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The most common cause of this problem is the item is &amp;quot;checked out.&amp;quot; Either the item is being edited by another user or (more commonly) that the last time someone opened (edited) the file it was not closed properly (or saved).&lt;br /&gt;
&lt;br /&gt;
If you were the person that last edited the article, log into the back end of the site, go to the content manager and find the article in question. It will have a lock next to its name. Open the file and then save it (or cancel). When the content list is reloaded the lock should be gone.&lt;br /&gt;
&lt;br /&gt;
Alternatively, someone with superadministrator privileges can use Global Checkin to checkin all checked out items. If using this option, make sure that no one is actively editing a file or their work may be lost.&lt;br /&gt;
&lt;br /&gt;
It is possible to check in your own items that you may have accidentally locked if a link to checkin is available. This may be called something else. You can add this link to a menu by creating a URL link like this: index.php?option=com_user&amp;amp;task=CheckIn&lt;br /&gt;
&lt;br /&gt;
Note: It is important that whenever you open an article for editing you should close it using either &amp;quot;save&amp;quot; (floppy icon) or &amp;quot;cancel&amp;quot; (red x icon) when finished with your edits. Failure to do so will cause this lock as described above.&lt;br /&gt;
&lt;br /&gt;
==How do I link from inside content to another content item?==&lt;br /&gt;
&lt;br /&gt;
The simple answer is that you get the page URL you want to link to and then make a link using whatever text editor you are using or (if you have no wysiwyg) with html.&lt;br /&gt;
&lt;br /&gt;
The more complicated answer is that some text editors have fancier links managers.  A number of these editors are available in the Joomla! Extensions Directory.&lt;br /&gt;
&lt;br /&gt;
==How is access control set up in Joomla!?==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Joomla! has a limited access control system. By default there are the following groups:&lt;br /&gt;
Front End Only&lt;br /&gt;
&lt;br /&gt;
    * Public&lt;br /&gt;
    * Registered&lt;br /&gt;
    * Author&lt;br /&gt;
    * Publisher&lt;br /&gt;
&lt;br /&gt;
Back End&lt;br /&gt;
&lt;br /&gt;
    * Manager&lt;br /&gt;
    * Administrator&lt;br /&gt;
    * Super Administrator&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are two basic ways that access control is used:&lt;br /&gt;
&lt;br /&gt;
    * To control the ability of users to see modules, content and menu items;&lt;br /&gt;
    * To control the actions that users can take.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Access to content, modules and menu links&lt;br /&gt;
&lt;br /&gt;
All groups except Public and Registered are considered &amp;quot;Special.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
When creating content or setting parameters for modules, you can set access to: Public, Registered or Special.&lt;br /&gt;
&lt;br /&gt;
These groups are hierarchical. Groups further down the list have all the rights of those above them.&lt;br /&gt;
&lt;br /&gt;
Control of privileges to create and edit content and modify administrative settings.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Group 	Front End 	Back End&lt;br /&gt;
Public 	Can view pubic pages 	None&lt;br /&gt;
Registered 	Same permissions as &amp;quot;Public&amp;quot; plus can view content and modules limited to registered. Can submit weblinks 	None&lt;br /&gt;
Author 	Same permissions as &amp;quot;Registered&amp;quot; plus can submit but not publish content. 	None&lt;br /&gt;
Editor 	Same permissions as &amp;quot;Author&amp;quot; plus edit any content. 	None&lt;br /&gt;
Publisher 	Same permissions as &amp;quot;Publisher&amp;quot; plus can publish and edit any content. 	None&lt;br /&gt;
Manager 	Same permissions as as &amp;quot;Publisher&amp;quot; 	Limited&lt;br /&gt;
Administrator 	Same permissions as &amp;quot;Publisher&amp;quot; 	Most privileges&lt;br /&gt;
Super Administrator 	Same permissions as &amp;quot;Publisher&amp;quot; 	All privileges&lt;br /&gt;
Each group can view the content and modules at the same level or above on this table.&lt;br /&gt;
&lt;br /&gt;
There is no way to create additional access groups without modifying Joomla!&#039;s core files.&lt;br /&gt;
&lt;br /&gt;
There are some extensions available which provide additional access control capabilities.&lt;br /&gt;
&lt;br /&gt;
You can learn more about access control here:&lt;br /&gt;
&lt;br /&gt;
http://help.joomla.org/images/User_manual/joomal_users_manual_combined.pdf&lt;br /&gt;
&lt;br /&gt;
==Where are the web pages?==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you are coming from a traditional website made up of separate html pages, you may well wonder where the pages are.&lt;br /&gt;
&lt;br /&gt;
In Joomla! almost everything that you would normally think of as a web page is actually stored in a MySQL database. When you create a new page, your content is stored in a database record, not in a separate file.&lt;br /&gt;
&lt;br /&gt;
Then when your site is viewed, Joomla! calls up different items from your database and puts them together to make what is displayed to the user.&lt;br /&gt;
&lt;br /&gt;
One exception is that your images are usually stored in the images directory and not the database.&lt;br /&gt;
&lt;br /&gt;
Your MySQL database usually is created by you during the installation process (unless you use a Fantastico or a similar installer that will create the database automatically). If you have a control panel on a linux host, you can usually access MySQL through a program called phpAdmin. This will allow you to view your database.&lt;br /&gt;
&lt;br /&gt;
==What determines what is shown on my frontpage?==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Frontpage is a component that is part of the core of Joomla!, like the front page of a newspaper, it shows (usually) multiple pieces of content arranged in some way.&lt;br /&gt;
&lt;br /&gt;
When you install Joomla! the front page component is by default set as the homepage of your site (that is it is the first link on your Main Menu) but front page does not have to be your &amp;quot;home&amp;quot; page.&lt;br /&gt;
&lt;br /&gt;
What exactly appears on the front page and how it is laid out is controlled in two ways. First, if you open the menu link in your menu manager in the back end there are numerous parameters that control the number of items shown, the number of columns etc.&lt;br /&gt;
&lt;br /&gt;
To control which items are shown you must also indicate that an item should be placed on the front page by editing the parameters for the content item. In the back end this will be indicated by an icon in the front page column of the list of content items/articles.&lt;br /&gt;
&lt;br /&gt;
In addition, you can use the front page manager (in the content menu of the backend) to control the publication dates and other variables for content items that are on the front page.&lt;br /&gt;
&lt;br /&gt;
==What determines my home page?==&lt;br /&gt;
&lt;br /&gt;
Your &amp;quot;homepage&amp;quot; in a traditional html site--the page that shows when you type mydomain.com for example-- would be the page displaying that is in the index.html file.&lt;br /&gt;
&lt;br /&gt;
Joomla! is a database driven CMS so it does not have html pages, but rather pulls up the pieces of pages from a mysql database.&lt;br /&gt;
&lt;br /&gt;
When you install Joomla! by default it has a menu link to the frontpage component as the home page. However, any content or component or other link can be used as the &amp;quot;home&amp;quot; page. The default page is controlled using the Main Menu.&lt;br /&gt;
&lt;br /&gt;
Changing the default page.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.0&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;page&amp;quot; that shows when a user navigates to mydomain.com is the page created by clicking on the first link on the Main Menu. The link can be called anything (Home, Bob it does not matter), that is the page that will show.&lt;br /&gt;
&lt;br /&gt;
This menu can be displayed anywhere and can be displayed vertically or horizontally or not at all. The menu does not even need to be published.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;page&amp;quot; that shows is determined by the Main Menu. Go to Menu ==&amp;gt;Main Menu. Select the item you would like as the homepage and click the default icon.&lt;br /&gt;
&lt;br /&gt;
==What are section, categories, content items and articles?==&lt;br /&gt;
&lt;br /&gt;
Joomla! is a content management system. Sections and categories allow you to organize your content.&lt;br /&gt;
&lt;br /&gt;
The basic structure is:&lt;br /&gt;
Sections include Categories.&lt;br /&gt;
Categories include content items (1.0)/articles (1.5).&lt;br /&gt;
&lt;br /&gt;
Section A&lt;br /&gt;
  Category A1&lt;br /&gt;
                  content items/articles&lt;br /&gt;
  Category A2&lt;br /&gt;
                  content items/articles&lt;br /&gt;
  Category A3&lt;br /&gt;
                  content items/articles&lt;br /&gt;
&lt;br /&gt;
 Section B&lt;br /&gt;
  Category B1&lt;br /&gt;
                  content items&lt;br /&gt;
  Category B2&lt;br /&gt;
                  content items&lt;br /&gt;
  Category B3&lt;br /&gt;
                  content items&lt;br /&gt;
&lt;br /&gt;
 Section C&lt;br /&gt;
&lt;br /&gt;
  Category C1&lt;br /&gt;
                  content items&lt;br /&gt;
  Category C2&lt;br /&gt;
                  content items&lt;br /&gt;
  Category C3&lt;br /&gt;
                  content items&lt;br /&gt;
&lt;br /&gt;
The content items/articles are what you would think of as web pages in a traditional html site.&lt;br /&gt;
&lt;br /&gt;
Both section and category &amp;quot;pages&amp;quot; can be created to serve (more or less) as the home pages for the categories and sections, respectively.&lt;br /&gt;
&lt;br /&gt;
Although it makes sense to organize your work into categories and sections, you do not need to show these to your users. Using your menus, you can link directly to sections, categories and content items. You can also select numerous options for the display of content associated with each type of link.&lt;br /&gt;
&lt;br /&gt;
==What are components, modules, mambots and plugins?==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Components&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Content elements or applications that are usually displayed in the center of the main content area of a template. This depends on the design of the template in use. Components are core elements of Joomla!’s functionality. These core elements include Content, Banners, Contact, News Feeds, Polls and Web Links. Members of the Joomla! community produce third party Joomla! components on a continuous basis. They are freely available to download from http://extensions.joomla.org/ and a number of other web sites. See also Modules.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Plugins and Mambots&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Plugins and mambots are the same thing. Plugin is the term used in 1.5 while mambot is used in 1.0.&lt;br /&gt;
&lt;br /&gt;
A plugin or mambot is a small, task-oriented function that intercepts content before it is displayed and manipulates it in some way. Joomla! provides a number of Mambots in the core distribution, e.g. WYSIWYG editors, but there are many other mambots available for specific tasks. Some 3rd Party developer components have their own mambots which need to be installed in order to make the component work properly.&lt;br /&gt;
In Joomla! 1.5 mambots will be renamed plugins.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Modules&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Modules extend the capabilities of Joomla! giving the software new functionality. Modules are small content items that can be displayed anywhere that your template allows it to be displayed by assigning them to positions and pages through the module manager in the administrative interface. Modules are installed in the Admin Section. Joomla! modules may include: Main Menu, Top menu, Template Chooser, Polls, Newsflash, Hit Counter, etc. Members of the Joomla! Community produce Joomla! modules on a continuous basis. Many are freely available at http://forge.joomla.org/ for download.&lt;br /&gt;
&lt;br /&gt;
In addition, some 3rd party components, modules and mambots themselves have plugins.&lt;br /&gt;
&lt;br /&gt;
==How do I change the favicon?==&lt;br /&gt;
&lt;br /&gt;
Favicon is the favorites icon that is associated with your site and appears in the browser address bar. Both Joomla! 1.0.x and 1.5.x come with a default favicon that displays the Joomla! Logo. You may change that as long as your new favicon is in the ICO format and sized 16×16 pixels. Here&#039;s how to do it:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.0&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Upload your new favicon into Joomla!&#039;s /images/ folder.&lt;br /&gt;
* Delete Joomla!&#039;s default /images/favicon.ico file and rename your file into favicon.ico OR&lt;br /&gt;
* Go to your site&#039;s back-end and change the name of the favicon file that&#039;s being loaded at Site &amp;gt; Global Configuration &amp;gt; Site &amp;gt; Favourites Site Icon (make sure configuration.php is writable before you commit your changes).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Unlike the 1.0.x series, the only name you are allowed to use for your favicon is favicon.ico but you are offered the flexibility to associate different favicons with different templates. You only need to upload your favicon.ico into the main folders of your front-end and back-end templates, which are found in the /templates/ and the /administrator/templates/ folders respectively, overwriting any favicon files that came with your templates.&lt;br /&gt;
&lt;br /&gt;
However, if you&#039;d rather use a single favicon.ico for all your templates, just upload it into Joomla!&#039;s main folder (that&#039;s where your index.php resides) and into the /administrator/ folder. Make sure you delete all favicon.ico files found in the template folders mentioned above because Joomla! will check your template folder first for the favicon.ico file.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To see the new favicon you will need to empty your browser cache.&lt;br /&gt;
&lt;br /&gt;
==Why do the pop ups in my WYSIWYG editor not work or show gibberish?==&lt;br /&gt;
&lt;br /&gt;
Depending on the editor, this problem may occur when trying to edit the html, insert tables or perform a similar function that requires javascript.&lt;br /&gt;
&lt;br /&gt;
Most likely the problem with the livesite...&lt;br /&gt;
&lt;br /&gt;
You look in your site configuration (General Configuration, select the Server tab) you will see that the livesite is given. Usually it is either www.mydomain.com or mydomain.com.&lt;br /&gt;
&lt;br /&gt;
When you log into your site, you must log in from the exact livesite. if you don&#039;t the javascript in your editor will not work.&lt;br /&gt;
&lt;br /&gt;
One way to deal with this is to put a redirect from, for example, mydomain.com to www.mydomain.com so that you and your users always login from the correct url. You can do this with .htaccess.&lt;br /&gt;
&lt;br /&gt;
==What are positions?==&lt;br /&gt;
&lt;br /&gt;
Site templates divides the &amp;quot;pages&amp;quot; displayed on a site into a series of positions, each with a different name.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.0&#039;&#039;&#039; &lt;br /&gt;
You can view the location of positions in your default template from the administrator go to Site =&amp;gt;Preview=&amp;gt;Inline with Positions.&lt;br /&gt;
&lt;br /&gt;
You can only preview the default template.&lt;br /&gt;
&lt;br /&gt;
You can annotate your positions through the administrator (backend). Go to Site=&amp;gt;Template Manage=&amp;gt;Module Positions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Extensions =&amp;gt; Templates.&lt;br /&gt;
Select the template you wish to preview and click the edit icon.&lt;br /&gt;
Click the preview icon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can add or remove positions by modifying your template html.&lt;br /&gt;
&lt;br /&gt;
You assign a module to a position using the module manager.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.0&#039;&#039;&#039;&lt;br /&gt;
Modules=&amp;gt;Site Modules==&amp;gt;edit the module&lt;br /&gt;
On the left side of the page, on the third line, there is a drop down menu that lets you select the position.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.5&#039;&#039;&#039;&lt;br /&gt;
In the module manager, edit the module. In the left column select all, none or the specific pages you would like it to appear on.&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
Modules that are not pubished (1.0) or enabled (1.5) will not display.&lt;br /&gt;
Modules can be assigned to unused positions (positions not in the template) if you want to have them published but not displayed in a position (for example, if you want to display a module in content using {mosloadposition} (1.0) or {loadposition} (1.5)).&lt;br /&gt;
Multiple modules may be assigned to the same position. They will be displayed in the order shown for modules in that position in the module manager.&lt;br /&gt;
If you want to display a module in more than one position, use the module manager to create another copy. &lt;br /&gt;
1.0 copy the module and assign the copy to the second position. &lt;br /&gt;
1.5 use the new icon and create another instance of the module.&lt;br /&gt;
&lt;br /&gt;
==Why are the backgrounds of my WYSIWYG editor fields colored?==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 The simple answer as to why this happens is in the term &#039;WYSIWYG&#039;. Content editors like TinyMCE attempt to allow users to see what the text they&#039;re entering will look like when it appears on the front-end of the website. To this end, they show the text against the color or image specified in the template_css.css file of whatever template the front-end of the website is using.&lt;br /&gt;
&lt;br /&gt;
This often presents a problem for users when their website is designed to appear as a lighter content pane floating over  a darker-colored background. The darker background is what appears in the editor windows, making the text almost impossible to see. In such cases, it may be necessary to tell the editor not to use the template_css.css file as a reference, but rather to use a different css file instead.&lt;br /&gt;
&lt;br /&gt;
Note [added by mod]: Some editors (such as JCE and FCK) have configuration interfaces that allow you to override the template_css file or to ignore template classes. You may wish to explore this option before trying the solution below.&lt;br /&gt;
&lt;br /&gt;
Step 1: Create a customized CSS file.&lt;br /&gt;
The first thing you&#039;ll need to do is to write a customized .css file for your editor. It doesn&#039;t have to be very complicated, and you can use the file below for reference (Many thanks to jxl, who wrote the sample file).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: Changes to the image urls would be need to use this file in 1.5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 /* CSS Document */&lt;br /&gt;
&lt;br /&gt;
 /* Editor Assigned Styles */&lt;br /&gt;
 /*make sure that any styles you put here also exist in your template_css.css file or they will have no effect in the front end */&lt;br /&gt;
&lt;br /&gt;
 p.rightalign {&lt;br /&gt;
 text-align: right; &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 .red {&lt;br /&gt;
 color: #c00;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 .green {&lt;br /&gt;
 color: #0c0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 .highlight {&lt;br /&gt;
 background-color: Yellow;&lt;br /&gt;
 color: Blue;&lt;br /&gt;
 padding: 0;&lt;br /&gt;
 }&lt;br /&gt;
 p.code {&lt;br /&gt;
 background-color: #ddd;&lt;br /&gt;
 border: 1px solid #bbb;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 .small {&lt;br /&gt;
 color: #999999;&lt;br /&gt;
 font-size: 10px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 /* Body Tag for Background Color and Font Specs. */&lt;br /&gt;
&lt;br /&gt;
 body {&lt;br /&gt;
 font-family: Arial, Helvetica, Sans Serif;&lt;br /&gt;
 font-size: 12px;&lt;br /&gt;
 color: #333333;&lt;br /&gt;
 background: #ffffff;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 /* Optional Basic Stuff you can use to make everything look like it does on the site itself */&lt;br /&gt;
 /* you can get this stuff right out of your template_css.css file, or you can just leave it out */&lt;br /&gt;
&lt;br /&gt;
 ul&lt;br /&gt;
 {&lt;br /&gt;
 margin: 0;&lt;br /&gt;
 padding: 0;&lt;br /&gt;
 list-style: none;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 li&lt;br /&gt;
 {&lt;br /&gt;
 line-height: 16px;&lt;br /&gt;
 padding-left: 16px;&lt;br /&gt;
 padding-top: 0px;&lt;br /&gt;
 background-image: url(../images/arrow.png); /* use the real image path that you have on your site. An absolute path is   OK */&lt;br /&gt;
 background-repeat: no-repeat;&lt;br /&gt;
 background-position: 0px 2px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 td {&lt;br /&gt;
 text-align: left;&lt;br /&gt;
 font-size: 12px;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 a, a:link, a:visited {&lt;br /&gt;
 color: #c64934; text-decoration: none;&lt;br /&gt;
 font-weight: bold;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 a:hover {&lt;br /&gt;
 color: #900; text-decoration: none;&lt;br /&gt;
 font-weight: bold;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Make careful note of the comments in the file above. The first section is comprised of text classes; you&#039;ll want to go into your template&#039;s template_css.css file and find the text classes (.highlight, .small, etc.) it specifies that you&#039;ll be likely to use in your content and make sure to copy them into the editor_content.css file as well. The same is true of the styles defined in the last section (a:hover, td, ul, etc.).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The key part that fixes the background issue is the &#039;body&#039; style specified in the middle. You can change parts of this to match your template if you like, but leave the &#039;background&#039; rule set to #FFFFFF. This will make the editor windows white, as opposed to the dark background color of your site template.&lt;br /&gt;
&lt;br /&gt;
Incidentally, if your website uses a background IMAGE in addition to a color, the same thing applies.&lt;br /&gt;
&lt;br /&gt;
Also, if this is too much work, you CAN just copy and paste your template&#039;s template_css.css file into a new CSS file and change the BODY style so that the background is set to #FFFFFF. This is less neat and orderly, but you&#039;ll be sure you have all of the classes and such defined properly this way.&lt;br /&gt;
&lt;br /&gt;
When you&#039;ve finished, save your new CSS file as editor_content.css&lt;br /&gt;
&lt;br /&gt;
Step 2: Upload your CSS file to the correct directory.&lt;br /&gt;
&lt;br /&gt;
You&#039;ll use an FTP client for this, which hopefully you&#039;re already doing. If Joomla! is in a separate folder, you&#039;ll navigate to:&lt;br /&gt;
&lt;br /&gt;
joomla/templates/[the template you&#039;re using]/css/&lt;br /&gt;
&lt;br /&gt;
If you don&#039;t have Joomla! in a separate folder, just go to whatever directory houses your Joomla! files. The key is to make sure you&#039;re in the correct front-end template folder for your website. Upload your editor_content.css file to the CSS folder under this template directory.&lt;br /&gt;
&lt;br /&gt;
Note that in most cases, the only other file in this directory is a file called &#039;template_css.css&#039;. If you see that file, you&#039;re probably in the right place. Also, note that there is a &#039;css&#039; directory in joomla/templates/ as well, but this IS NOT the directory you&#039;re looking for. You want the css directory under the template you&#039;re using.&lt;br /&gt;
&lt;br /&gt;
Step 3: Point your Editor to the new CSS.&lt;br /&gt;
&lt;br /&gt;
Now go back to your site and into the administration area. Click on &#039;Mambots&amp;quot; and &amp;quot;Site Mambots&amp;quot; to see the list of Mambots currently in use in your website. Check TinyMCE WYSIWYG (or whatever WYSIWYG editor you&#039;re using) and then &#039;Edit&#039; to open the editing pane for the editor.&lt;br /&gt;
&lt;br /&gt;
Look to the right side under &#039;Parameters&#039; and scroll down until you see the option entitled &#039;Template CSS Classes&#039;. Click the radio button to &#039;no&#039;. Right under this is a field entitled &#039;Custom CSS Classes&#039;. In this field type:&lt;br /&gt;
&lt;br /&gt;
templates/[template you&#039;re using]/css/editor_content.css&lt;br /&gt;
&lt;br /&gt;
Then save and exit.&lt;br /&gt;
&lt;br /&gt;
This should correct the background issue in your editor. If it doesn&#039;t, you&#039;ve either set up your editor_content.css file incorrectly or you&#039;ve uploaded the file to the wrong directory.&lt;br /&gt;
&lt;br /&gt;
==How do you install an extension?==&lt;br /&gt;
&lt;br /&gt;
Before starting it always is wise to read the documentation associated with an extension. Most extensions have homepages and forums, and it is a good idea to look at them first. If there is a README file included with the extension, you should read it.&lt;br /&gt;
&lt;br /&gt;
For most extensions and most users, the procedure will be:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.0&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Download the extension to your local machine&lt;br /&gt;
* From the backend of your joomla site (adminsitration) select Installers and then the type of extension (module, component, mambot/plugin, site template, administrative template, language&lt;br /&gt;
* Browse for the package file&lt;br /&gt;
* Click the install icon&lt;br /&gt;
* Follow any instructions&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1.5&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Download the extension to your local machine&lt;br /&gt;
* From the backend of your joomla site (adminsitration) select Extensions.&lt;br /&gt;
* Browse for the package file&lt;br /&gt;
* Click the install icon&lt;br /&gt;
* Follow any instructions&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are some situations in which this procedure will not work.&lt;br /&gt;
&lt;br /&gt;
Sometimes you need to unzip the file locally prior to installing. If you get an error saying that the file is not in the correct format, the need to unzip is a common cause of this. After unzipping try installing the individual items. Note that the files you upload using the installed still need to be zipped.&lt;br /&gt;
&lt;br /&gt;
Sometimes you cannot use the automated installer. For example, very large extensions may exceed the maximum upload size allowed by your host.&lt;br /&gt;
&lt;br /&gt;
In this case, unzip all of the files locally. Then transfer the files to a folder in the the install directory(for example  administrator/components/com_installer/components) for the type of extension you are installing (using FTP). Then use the installer, but select &amp;quot;install from directory&amp;quot; indicating the correct folder name.&lt;br /&gt;
&lt;br /&gt;
For modules and mambots/plugins to work, you must make sure that they are pubished (1.0) or enabled (1.5).&lt;br /&gt;
&lt;br /&gt;
==Why doesn&#039;t the pdf of my page show the images?==&lt;br /&gt;
&lt;br /&gt;
Images are not supported in Joomla! 1.0.x in the pdf creation script. Images are supported in Joomla! 1.5.&lt;br /&gt;
&lt;br /&gt;
==How do I make a menu link that is not clickable?==&lt;br /&gt;
&lt;br /&gt;
To make a menu link that does not connect to anything (is not clickable) use the link type Separator/Placeholder&lt;br /&gt;
&lt;br /&gt;
==What does a simple Joomla! installation include?==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you simply install Joomla! without any modifications or extensions, the following (incomplete) list of features will be included.&lt;br /&gt;
&lt;br /&gt;
* Content component which allows creation and display of &amp;quot;content items&amp;quot; usually in the middle of the page.&lt;br /&gt;
* Front page component, which displays multiple recent content items designated as &amp;quot;front page&amp;quot; in the content manager. Configurable for layout and number of items.&lt;br /&gt;
* Weblinks component for entering and displaying a list of weblinks.&lt;br /&gt;
* Media manager for uploading and managing images and other media.&lt;br /&gt;
* User manager (administrative end) and user registration module (front end).&lt;br /&gt;
* Newsflash module for displaying specific content items as &amp;quot;newsflashes.&amp;quot;&lt;br /&gt;
* Modules for latest items, most popular, and related items.&lt;br /&gt;
* A simple poll component&lt;br /&gt;
* A menu system&lt;br /&gt;
* A choice of several templates for your site[/li]&lt;br /&gt;
* Installers for third party extensions (templates, components, modules and plugins/mambots).&lt;br /&gt;
* The TinyMCE wysiwyg editor. 1.5 Also includes xStandard Lite&lt;br /&gt;
* Administrative interface for managing your site&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:FAQ]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Core_module-generated_CSS&amp;diff=2889</id>
		<title>J1.5:Core module-generated CSS</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Core_module-generated_CSS&amp;diff=2889"/>
		<updated>2008-02-22T13:26:22Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: added links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following information is gathered from the default output for Joomla! 1.5 core modules and assumes that no template overrides are in place.&lt;br /&gt;
&lt;br /&gt;
Note also that core [[What_is_module_chrome%3F|module chrome]], as generated by the &#039;&#039;System&#039;&#039; template, will wrap a module in a defined manner and in some instances apply [[Core_module_chrome_CSS|additional CSS formatting]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_archive&#039;&#039;&#039;&lt;br /&gt;
: None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_banners&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.bannergroup&amp;lt;/code&amp;gt; class applied to surrounding &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.bannerheader&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of header text if it exists&lt;br /&gt;
* &amp;lt;code&amp;gt;.banneritem&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; for each item&lt;br /&gt;
* &amp;lt;code&amp;gt;.bannerfooter&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of footer text if it exists&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
&#039;&#039;&#039;mod_breadcrumb&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.breadcrumbs&amp;lt;/code&amp;gt; class applied to a &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; element that holds the path links&lt;br /&gt;
* &amp;lt;code&amp;gt;.pathway&amp;lt;/code&amp;gt; class applied to a &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; element that holds the path links&lt;br /&gt;
* &amp;lt;code&amp;gt;.pathway&amp;lt;/code&amp;gt; class is also applied to each link&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_feed&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.moduletable&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of no set width&lt;br /&gt;
* &amp;lt;code&amp;gt;.newsfeed&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_footer&#039;&#039;&#039;&lt;br /&gt;
: None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_latestnews&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.latestnews&amp;lt;/code&amp;gt; class applied to surrounding &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;, to each &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;li&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; and to each link&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_login&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;#form-login-username&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;#modlgn_username&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;#form-login-password&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;#modlgn_password&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;#form-login-remember&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;#modlgn_password&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.button&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.input&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;fieldset&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.inputbox&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_mainmenu&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;#current&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;li&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; for the current page&lt;br /&gt;
* &amp;lt;code&amp;gt;.active&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;li&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; for the current page&lt;br /&gt;
* &amp;lt;code&amp;gt;.parent&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;li&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; if child links exist&lt;br /&gt;
* &amp;lt;code&amp;gt;.item##&amp;lt;/code&amp;gt; class applied to the &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;li&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;, where ## is the ItemId &lt;br /&gt;
* &#039;&#039;Menu-Type Parameters&#039;&#039;:&lt;br /&gt;
** &#039;&#039;List&#039;&#039;&lt;br /&gt;
:: &amp;lt;code&amp;gt;#menu&amp;lt;/code&amp;gt; id is applied to the &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
:: becomes .menu if more than one menu is present on the page [CHECK] &lt;br /&gt;
:* &#039;&#039;Legacy-Vertical&#039;&#039; &lt;br /&gt;
:: &amp;lt;code&amp;gt;.mainlevel&amp;lt;/code&amp;gt; class is applied to each link in a &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of 100% width&lt;br /&gt;
:* &#039;&#039;Legacy-Horizontal&#039;&#039; &lt;br /&gt;
:: &amp;lt;code&amp;gt;.mainlevel&amp;lt;/code&amp;gt; class is applied to each link in a &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of 100% width&lt;br /&gt;
:* &#039;&#039;Legacy-Flat&#039;&#039; &lt;br /&gt;
:: &amp;lt;code&amp;gt;#mainlevel&amp;lt;/code&amp;gt; id is applied to the &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
:: becomes .menu if more than one menu is present on the page [CHECK] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_mostread&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.mostread&amp;lt;/code&amp;gt; class applied to surrounding &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;, to each &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;li&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;, and to each link&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_newsflash&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;Layout-Type Parameters&#039;&#039;:&lt;br /&gt;
** &#039;&#039;Default&#039;&#039;&lt;br /&gt;
:: &amp;lt;code&amp;gt;.contentpaneopen&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of no set width &lt;br /&gt;
::: Two tables are created, one holds the article title, the second holds the abbreviated article text&lt;br /&gt;
:: &amp;lt;code&amp;gt;.contentheading&amp;lt;/code&amp;gt; class applied to the &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; element holding the article titles&lt;br /&gt;
:: &amp;lt;code&amp;gt;.contentpagetitle&amp;lt;/code&amp;gt; class applied to the article link&lt;br /&gt;
:* &#039;&#039;Horz&#039;&#039;&lt;br /&gt;
:: &amp;lt;code&amp;gt;.moduletable&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of no set width&lt;br /&gt;
::: each item is placed in a new &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; element with default styles&lt;br /&gt;
:* &#039;&#039;Vert&#039;&#039;&lt;br /&gt;
:: &amp;lt;code&amp;gt;.article_separator&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; is added after each item if more than one exists&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_poll&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.poll&amp;lt;/code&amp;gt; class applied to surrounding &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of 95% width and centered text-alignment&lt;br /&gt;
* &amp;lt;code&amp;gt;.pollstableborder&amp;lt;/code&amp;gt; applied to inner &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of no set width, which holds the vote options&lt;br /&gt;
* &amp;lt;code&amp;gt;.sectiontableentry1&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; with valign=&amp;quot;top&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;.sectiontableentry2&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; with valign=&amp;quot;top&amp;quot;&lt;br /&gt;
:: &#039;&#039;Note: sectiontableentry1 and sectiontableentry2 alternate each table row to provide for alternate row colors or other formatting&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;#voteid##&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;, where ## is the Id of the option&lt;br /&gt;
* &amp;lt;code&amp;gt;.button&amp;lt;/code&amp;gt; applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_random_image&#039;&#039;&#039;&lt;br /&gt;
: None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_related_items&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.relateditems&amp;lt;/code&amp;gt; class applied to surrounding &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_search&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.search&amp;lt;/code&amp;gt; class applied to surrounding &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.inputbox&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.button&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;image&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_sections&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.sections&amp;lt;/code&amp;gt; class applied to surrounding &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_stats&#039;&#039;&#039;&lt;br /&gt;
: None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_syndicate&#039;&#039;&#039;&lt;br /&gt;
: None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_whosonline&#039;&#039;&#039;&lt;br /&gt;
: None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_wrapper&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;#blockrandom&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;iframe&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.wrapper&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;iframe&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category: Templates]][[Category: Modules]][[Category: Reference]][[Category:Definition lists]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Core_module-generated_CSS&amp;diff=2888</id>
		<title>J1.5:Core module-generated CSS</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Core_module-generated_CSS&amp;diff=2888"/>
		<updated>2008-02-22T13:08:15Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following information is gathered from the default output for Joomla! 1.5 core modules and assumes that no template overrides are in place.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_archive&#039;&#039;&#039;&lt;br /&gt;
: None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_banners&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.bannergroup&amp;lt;/code&amp;gt; class applied to surrounding &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.bannerheader&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of header text if it exists&lt;br /&gt;
* &amp;lt;code&amp;gt;.banneritem&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; for each item&lt;br /&gt;
* &amp;lt;code&amp;gt;.bannerfooter&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of footer text if it exists&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
&#039;&#039;&#039;mod_breadcrumb&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.breadcrumbs&amp;lt;/code&amp;gt; class applied to a &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; element that holds the path links&lt;br /&gt;
* &amp;lt;code&amp;gt;.pathway&amp;lt;/code&amp;gt; class applied to a &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; element that holds the path links&lt;br /&gt;
* &amp;lt;code&amp;gt;.pathway&amp;lt;/code&amp;gt; class is also applied to each link&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_feed&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.moduletable&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of no set width&lt;br /&gt;
* &amp;lt;code&amp;gt;.newsfeed&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_footer&#039;&#039;&#039;&lt;br /&gt;
: None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_latestnews&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.latestnews&amp;lt;/code&amp;gt; class applied to surrounding &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;, to each &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;li&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; and to each link&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_login&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;#form-login-username&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;#modlgn_username&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;#form-login-password&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;#modlgn_password&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;#form-login-remember&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;#modlgn_password&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.button&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.input&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;fieldset&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.inputbox&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_mainmenu&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;#current&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;li&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; for the current page&lt;br /&gt;
* &amp;lt;code&amp;gt;.active&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;li&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; for the current page&lt;br /&gt;
* &amp;lt;code&amp;gt;.parent&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;li&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; if child links exist&lt;br /&gt;
* &amp;lt;code&amp;gt;.item##&amp;lt;/code&amp;gt; class applied to the &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;li&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;, where ## is the ItemId &lt;br /&gt;
* &#039;&#039;Menu-Type Parameters&#039;&#039;:&lt;br /&gt;
** &#039;&#039;List&#039;&#039;&lt;br /&gt;
:: &amp;lt;code&amp;gt;#menu&amp;lt;/code&amp;gt; id is applied to the &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; &lt;br /&gt;
:: becomes .menu if more than one menu is present on the page [CHECK] &lt;br /&gt;
:* &#039;&#039;Legacy-Vertical&#039;&#039; &lt;br /&gt;
:: &amp;lt;code&amp;gt;.mainlevel&amp;lt;/code&amp;gt; class is applied to each link in a &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of 100% width&lt;br /&gt;
:* &#039;&#039;Legacy-Horizontal&#039;&#039; &lt;br /&gt;
:: &amp;lt;code&amp;gt;.mainlevel&amp;lt;/code&amp;gt; class is applied to each link in a &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of 100% width&lt;br /&gt;
:* &#039;&#039;Legacy-Flat&#039;&#039; &lt;br /&gt;
:: &amp;lt;code&amp;gt;#mainlevel&amp;lt;/code&amp;gt; id is applied to the &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
:: becomes .menu if more than one menu is present on the page [CHECK] &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_mostread&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.mostread&amp;lt;/code&amp;gt; class applied to surrounding &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;, to each &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;li&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;, and to each link&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_newsflash&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;Layout-Type Parameters&#039;&#039;:&lt;br /&gt;
** &#039;&#039;Default&#039;&#039;&lt;br /&gt;
:: &amp;lt;code&amp;gt;.contentpaneopen&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of no set width &lt;br /&gt;
::: Two tables are created, one holds the article title, the second holds the abbreviated article text&lt;br /&gt;
:: &amp;lt;code&amp;gt;.contentheading&amp;lt;/code&amp;gt; class applied to the &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; element holding the article titles&lt;br /&gt;
:: &amp;lt;code&amp;gt;.contentpagetitle&amp;lt;/code&amp;gt; class applied to the article link&lt;br /&gt;
:* &#039;&#039;Horz&#039;&#039;&lt;br /&gt;
:: &amp;lt;code&amp;gt;.moduletable&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of no set width&lt;br /&gt;
::: each item is placed in a new &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; element with default styles&lt;br /&gt;
:* &#039;&#039;Vert&#039;&#039;&lt;br /&gt;
:: &amp;lt;code&amp;gt;.article_separator&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; is added after each item if more than one exists&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_poll&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.poll&amp;lt;/code&amp;gt; class applied to surrounding &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of 95% width and centered text-alignment&lt;br /&gt;
* &amp;lt;code&amp;gt;.pollstableborder&amp;lt;/code&amp;gt; applied to inner &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of no set width, which holds the vote options&lt;br /&gt;
* &amp;lt;code&amp;gt;.sectiontableentry1&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; with valign=&amp;quot;top&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;.sectiontableentry2&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;td&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; with valign=&amp;quot;top&amp;quot;&lt;br /&gt;
:: &#039;&#039;Note: sectiontableentry1 and sectiontableentry2 alternate each table row to provide for alternate row colors or other formatting&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;#voteid##&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;, where ## is the Id of the option&lt;br /&gt;
* &amp;lt;code&amp;gt;.button&amp;lt;/code&amp;gt; applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;button&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_random_image&#039;&#039;&#039;&lt;br /&gt;
: None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_related_items&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.relateditems&amp;lt;/code&amp;gt; class applied to surrounding &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_search&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.search&amp;lt;/code&amp;gt; class applied to surrounding &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.inputbox&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;text&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.button&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;image&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_sections&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.sections&amp;lt;/code&amp;gt; class applied to surrounding &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_stats&#039;&#039;&#039;&lt;br /&gt;
: None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_syndicate&#039;&#039;&#039;&lt;br /&gt;
: None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_whosonline&#039;&#039;&#039;&lt;br /&gt;
: None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_wrapper&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;#blockrandom&amp;lt;/code&amp;gt; id applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;iframe&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.wrapper&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;iframe&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category: Templates]][[Category: Modules]][[Category: Reference]][[Category:Definition lists]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Core_module-generated_CSS&amp;diff=2887</id>
		<title>J1.5:Core module-generated CSS</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Core_module-generated_CSS&amp;diff=2887"/>
		<updated>2008-02-22T12:05:10Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{inuse}}&lt;br /&gt;
The following information is gathered from the default output for Joomla! 1.5 core modules and assumes that no template overrides are in place.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_banners&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.bannergroup&amp;lt;/code&amp;gt; class applied to surrounding &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.bannerheader&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of header text if it exists&lt;br /&gt;
* &amp;lt;code&amp;gt;.banneritem&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; for each item&lt;br /&gt;
* &amp;lt;code&amp;gt;.bannerfooter&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of footer text if it exists&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
&#039;&#039;&#039;mod_breadcrumb&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.breadcrumbs&amp;lt;/code&amp;gt; class applied to a &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; element that holds the path links&lt;br /&gt;
* &amp;lt;code&amp;gt;.pathway&amp;lt;/code&amp;gt; class applied to a &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;span&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; element that holds the path links&lt;br /&gt;
* &amp;lt;code&amp;gt;.pathway&amp;lt;/code&amp;gt; class is also applied to each link&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_feed&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.moduletable&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;table&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt; of no set width&lt;br /&gt;
* &amp;lt;code&amp;gt;.newsfeed&amp;lt;/code&amp;gt; class applied to &amp;lt;tt&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;ul&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Core_module-generated_CSS&amp;diff=2886</id>
		<title>J1.5:Core module-generated CSS</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Core_module-generated_CSS&amp;diff=2886"/>
		<updated>2008-02-22T11:52:38Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: New page: {{inuse}} The following information is gathered from the default output for Joomla! 1.5 core modules and assumes that no template overrides are in place.  &amp;#039;&amp;#039;&amp;#039;mod_banners&amp;#039;&amp;#039;&amp;#039; * &amp;lt;code&amp;gt;.banner...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{inuse}}&lt;br /&gt;
The following information is gathered from the default output for Joomla! 1.5 core modules and assumes that no template overrides are in place.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_banners&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.bannergroup&amp;lt;/code&amp;gt; class applied to surrounding &amp;lt;div&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;.bannerheader&amp;lt;/code&amp;gt; class aplied to &amp;lt;div&amp;gt; of header text if exists&lt;br /&gt;
* &amp;lt;code&amp;gt;.banneritem&amp;lt;/code&amp;gt; class applied to &amp;lt;div&amp;gt; for each item&lt;br /&gt;
* &amp;lt;code&amp;gt;.bannerfooter&amp;lt;/code&amp;gt; class applied to &amp;lt;div&amp;gt; of header footer text if exists&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
&#039;&#039;&#039;mod_breadcrumb&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.breadcrumbs&amp;lt;/code&amp;gt; class applied to a &amp;lt;span&amp;gt; element that holds the path links&lt;br /&gt;
* &amp;lt;code&amp;gt;.pathway&amp;lt;/code&amp;gt; class applied to a &amp;lt;span&amp;gt; element that holds the path links&lt;br /&gt;
* &amp;lt;code&amp;gt;.pathway&amp;lt;/code&amp;gt; class is also applied to each link&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;mod_feed&#039;&#039;&#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;.moduletable&amp;lt;/code&amp;gt; class applied to &amp;lt;table&amp;gt; of no set width&lt;br /&gt;
* &amp;lt;code&amp;gt;.newsfeed&amp;lt;/code&amp;gt; class applied to &amp;lt;ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=JDOC:Who_is_working_on_what&amp;diff=2867</id>
		<title>JDOC:Who is working on what</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=JDOC:Who_is_working_on_what&amp;diff=2867"/>
		<updated>2008-02-20T15:39:23Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to work on one or more pages of the documentation then please update this page so we don&#039;t get duplication of effort. If you want to collaborate with someone on one or more pages, that&#039;s fine too of course; you can use this page to find out who to contact.&lt;br /&gt;
&lt;br /&gt;
Simply list the page(s) you are working on and the name(s) of the people working on them.  Thank you.&lt;br /&gt;
&lt;br /&gt;
==== Upgrading a Joomla! 1.0.x template====&lt;br /&gt;
&lt;br /&gt;
New features introduced in Joomla! 1.5 templates [Dex]&lt;br /&gt;
&lt;br /&gt;
==== Fonts and topography ====&lt;br /&gt;
&lt;br /&gt;
Text resizing - [epleste]&lt;br /&gt;
[[Category:Templates]]&lt;br /&gt;
&lt;br /&gt;
==== Tutorials: Template Overrides ====&lt;br /&gt;
&lt;br /&gt;
Tutorial: Template overrides - [madamep and ivanicus]&lt;br /&gt;
[[Category:Templates]]&lt;br /&gt;
&lt;br /&gt;
How to override the output from the Joomla! core [Dex]&lt;br /&gt;
&lt;br /&gt;
==== Cascading Style Sheets ====&lt;br /&gt;
&lt;br /&gt;
List of Joomla! generated core CSS classes (with explanations) [radiant_tech]&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Counting_modules_in_multiple_module_positions&amp;diff=2866</id>
		<title>Counting modules in multiple module positions</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Counting_modules_in_multiple_module_positions&amp;diff=2866"/>
		<updated>2008-02-20T01:19:56Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: /* Counting Modules in multiple Module positions */  corrected &amp;lt;div class=&amp;quot;greyline&amp;quot;&amp;gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===== Counting Modules in multiple Module positions =====&lt;br /&gt;
&lt;br /&gt;
The countModules function can be used to determine the number of Modules in more than one Module position.  More advanced calculations can also be performed.&lt;br /&gt;
&lt;br /&gt;
The argument to the countModules function is normally just the name of a single Module position.  The function will return the number of Modules currently enabled for that Module position.  But you can also do simple logical and arithmetic operations on two or more Module positions.&lt;br /&gt;
&lt;br /&gt;
For example, to determine the total number of Modules enabled in the &#039;user1&#039; and &#039;user2&#039; positions together, you can use the function call&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$this-&amp;gt;countModules( &#039;user1 + user2&#039; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Although the usual arithmetic operators, +. -. *, / will work as expected, these are not as useful as the logical operators &#039;and&#039; and &#039;or&#039;.&lt;br /&gt;
&lt;br /&gt;
For example, to determine if the &#039;user1&#039; position and the &#039;user2&#039; position both have at least one Module enabled, you can use the function call&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$this-&amp;gt;countModules( &#039;user1 and user2&#039; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Careful: A common mistake is to try something like this&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$this-&amp;gt;countModules( &#039;user1&#039; and &#039;user2&#039; );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Intermediate]]&lt;br /&gt;
[[Category:Templates]]&lt;br /&gt;
[[Category:Topics]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is pretty much guaranteed to always return false regardless of the number of Modules enabled in either position, so check what you are passing to countModules carefully.&lt;br /&gt;
&lt;br /&gt;
You must have exactly one space character separating each item in the string.  For example, &#039;user1+user2&#039; will not produce the desired result as there must be a space character either side of the &#039;+&#039; sign.  Also, &#039;user1  +  user2&#039; will produce a PHP error message as there is more than one space separating each element.&lt;br /&gt;
&lt;br /&gt;
Example: The user1 and user2 Module positions are to be displayed in the region, but you want the region to not appear at all if no Modules are enabled in either position.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php if ($this-&amp;gt;countModules( &#039;user1 or user2&#039; )) : ?&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;rightcolumn&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;jdoc:include type=&amp;quot;modules&amp;quot; name=&amp;quot;user1&amp;quot; style=&amp;quot;xhtml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;jdoc:include type=&amp;quot;modules&amp;quot; name=&amp;quot;user2&amp;quot; style=&amp;quot;xhtml&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: The user1 and user2 Module positions are to be displayed side-by-side with a separator between them.  However, if only one of the Module positions has any Modules enabled then the separator is not needed.  Furthermore, if neither user1 or user2 has any Modules enabled then nothing is output.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php if ($this-&amp;gt;countModules( &#039;user1 or user2&#039; )) : ?&amp;gt;&lt;br /&gt;
	&amp;lt;div class=&amp;quot;user1user2&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;?php if ($this-&amp;gt;countModules( &#039;user1&#039; )) : ?&amp;gt;&lt;br /&gt;
			&amp;lt;jdoc:include type=&amp;quot;modules&amp;quot; name=&amp;quot;user1&amp;quot; style=&amp;quot;xhtml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;?php if ($this-&amp;gt;countModules( &#039;user1 and user2&#039; )) : ?&amp;gt;&lt;br /&gt;
			&amp;lt;div class=&amp;quot;greyline&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;?php if ($this-&amp;gt;countModules( &#039;user2&#039; )) : ?&amp;gt;&lt;br /&gt;
			&amp;lt;jdoc:include type=&amp;quot;modules&amp;quot; name=&amp;quot;user2&amp;quot; style=&amp;quot;xhtml&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;?php endif; ?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice how the first countModules call determines if there any Modules to display at all.  The second determines if there are any in the &#039;user1&#039; position and if there are it displays them.  The third call determines if both user1 and user2 positions have any Modules enabled and if they do then if provides a separator between them.  Finally, the fourth call determines if there are any enabled Modules in the &#039;user2&#039; position and displays them if there are any.&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=What_is_the_typical_template_directory_structure%3F&amp;diff=2865</id>
		<title>What is the typical template directory structure?</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=What_is_the_typical_template_directory_structure%3F&amp;diff=2865"/>
		<updated>2008-02-19T23:33:49Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Typical Template Directory Structure===&lt;br /&gt;
It is most common for a template to have at least four files:&lt;br /&gt;
* index.php&lt;br /&gt;
: Provides the logic for the display and positioning of modules and components.&lt;br /&gt;
* template.css&lt;br /&gt;
: Handles the presentational aspects of the template including specifications for margins, fonts, headings, image borders, list formatting, etc.&lt;br /&gt;
* templateDetails.xml&lt;br /&gt;
: Holds meta-information related to the template and used by the Installer and the Template Manager.&lt;br /&gt;
* template_thumbnail.ext - replace .ext with the extension format of the image (.jpg, .png, .gif)&lt;br /&gt;
: Generally a 200x150 pixel image that is shown when the cursor is held over the template name in the Template Manager.  This gives the Administrator a snapshot view of the template before applying it to the Site.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{:Typical template directory structure}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Templates]][[Category:Definition lists]][[Category:Beginners]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Typical_template_directory_structure&amp;diff=2864</id>
		<title>Typical template directory structure</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Typical_template_directory_structure&amp;diff=2864"/>
		<updated>2008-02-19T22:34:09Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A typical template for Joomla! 1.5 will include the following directories:&lt;br /&gt;
* css - contains all the .css files&lt;br /&gt;
* html - contains template override files for core output and module chrome&lt;br /&gt;
* images - contains all images used by the template&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Itemised lists]][[Category:Reference]][[Category:Templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=JDOC:Who_is_working_on_what&amp;diff=2863</id>
		<title>JDOC:Who is working on what</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=JDOC:Who_is_working_on_what&amp;diff=2863"/>
		<updated>2008-02-19T19:50:00Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to work on one or more pages of the documentation then please update this page so we don&#039;t get duplication of effort. If you want to collaborate with someone on one or more pages, that&#039;s fine too of course; you can use this page to find out who to contact.&lt;br /&gt;
&lt;br /&gt;
Simply list the page(s) you are working on and the name(s) of the people working on them.  Thank you.&lt;br /&gt;
&lt;br /&gt;
New features introduced in Joomla! 1.5 templates [Dex]&lt;br /&gt;
&lt;br /&gt;
How to override the output from the Joomla! core [Dex]&lt;br /&gt;
&lt;br /&gt;
==== Fonts and topography ====&lt;br /&gt;
&lt;br /&gt;
Text resizing - [epleste]&lt;br /&gt;
[[Category:Templates]]&lt;br /&gt;
&lt;br /&gt;
==== Tutorials: Template Overrides ====&lt;br /&gt;
&lt;br /&gt;
Tutorial: Template overrides - [madamep and ivanicus]&lt;br /&gt;
[[Category:Templates]]&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=What_is_the_purpose_of_the_templateDetails.xml_file%3F&amp;diff=2862</id>
		<title>What is the purpose of the templateDetails.xml file?</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=What_is_the_purpose_of_the_templateDetails.xml_file%3F&amp;diff=2862"/>
		<updated>2008-02-19T19:48:33Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: /* Parameters */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RightTOC}}&lt;br /&gt;
The templateDetails.xml file holds a variety of meta-data used by the [[Screen.templates.15|Template Manager]] in installation and maintenance. It is helpful to recognize the different sections of the file.  Typically, each section of data is indented to make the file more readable, but this indentation is not necessary. &lt;br /&gt;
&lt;br /&gt;
===Basic Details===&lt;br /&gt;
The initial display of the Template Manager shows a list of available templates and basic details relating to the template.  Each of these bits of information is gathered from the templateDetails.xml file.&lt;br /&gt;
&lt;br /&gt;
[[Image:template_details_basic.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;install version=&amp;quot;1.5&amp;quot; type=&amp;quot;template&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;rhuk_milkyway&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;creationDate&amp;gt;11/20/06&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
    &amp;lt;author&amp;gt;Andy Miller&amp;lt;/author&amp;gt;&lt;br /&gt;
    &amp;lt;authorEmail&amp;gt;rhuk@rockettheme.com.com&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
    &amp;lt;authorUrl&amp;gt;http://www.rockettheme.com&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
    &amp;lt;copyright&amp;gt;&amp;lt;/copyright&amp;gt;&lt;br /&gt;
    &amp;lt;license&amp;gt;GNU/GPL&amp;lt;/license&amp;gt;&lt;br /&gt;
    &amp;lt;version&amp;gt;1.0.2&amp;lt;/version&amp;gt;&lt;br /&gt;
    &amp;lt;description&amp;gt;TPL_RHUK_MILKYWAY&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===File Structure===&lt;br /&gt;
All files related to the template are listed.  Each filename contains full path information starting at the template root.  The Administrator&#039;s Installer uses this information when storing the files during installation.&lt;br /&gt;
&lt;br /&gt;
A small portion of the files listed in the rhuk_milkyway template is given below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;index.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;templateDetails.xml&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;template_thumbnail.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;params.ini&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;images/arrow.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;images/indent1.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Languages===&lt;br /&gt;
Some templates may include language files to allow translation of static text in the template.  Notice that two language files are shown below.  The first holds the language file for text that will be viewed by the User.  The second, placed within &amp;lt;administration&amp;gt; tags, is for text that will be viewed by the Administrator.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;languages&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.tpl_beez.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
    &amp;lt;/languages&amp;gt;&lt;br /&gt;
    &amp;lt;administration&amp;gt;&lt;br /&gt;
	&amp;lt;languages folder=&amp;quot;admin&amp;quot;&amp;gt;&lt;br /&gt;
	    &amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.tpl_beez.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
    &amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Module Positions===&lt;br /&gt;
The available [[module_positions|Module Positions]] that can be used in the template are defined.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;positions&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;breadcrumb&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;left&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;right&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;top&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;user1&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;user2&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;user3&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;user4&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;footer&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;debug&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;syndicate&amp;lt;/position&amp;gt;&lt;br /&gt;
    &amp;lt;/positions&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
A template may offer display options that can be chosen by the Administrator in the Template Manager.  For instance, the rhuk_milkyway template allows the Administrator to change the border colors, change the background color, and define the display width.  &lt;br /&gt;
&lt;br /&gt;
[[Image:template_details_params.png]]&lt;br /&gt;
&lt;br /&gt;
An example of adding a parameter and its values is shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;params&amp;gt;&lt;br /&gt;
	&amp;lt;param name=&amp;quot;colorVariation&amp;quot; type=&amp;quot;list&amp;quot; default=&amp;quot;white&amp;quot; label=&amp;quot;Color Variation&amp;quot; description=&amp;quot;Color variation to use&amp;quot;&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;blue&amp;quot;&amp;gt;Blue&amp;lt;/option&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;red&amp;quot;&amp;gt;Red&amp;lt;/option&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;green&amp;quot;&amp;gt;Green&amp;lt;/option&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;orange&amp;quot;&amp;gt;Orange&amp;lt;/option&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;black&amp;quot;&amp;gt;Black&amp;lt;/option&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;white&amp;quot;&amp;gt;White&amp;lt;/option&amp;gt;&lt;br /&gt;
	&amp;lt;/param&amp;gt;&lt;br /&gt;
    &amp;lt;/params&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more information about working with Parameters, see:&lt;br /&gt;
&lt;br /&gt;
: [[Defining_a_parameter_in_templateDetails.xml|Defining a parameter in templateDetails.xml]]&lt;br /&gt;
: [[Retrieving_parameter_data_in_a_template_file|Retrieving parameter data in a template file]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Templates]][[Category:Topics]][[Category:Beginners]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=What_is_the_purpose_of_the_templateDetails.xml_file%3F&amp;diff=2861</id>
		<title>What is the purpose of the templateDetails.xml file?</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=What_is_the_purpose_of_the_templateDetails.xml_file%3F&amp;diff=2861"/>
		<updated>2008-02-19T19:46:09Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: added links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RightTOC}}&lt;br /&gt;
The templateDetails.xml file holds a variety of meta-data used by the [[Screen.templates.15|Template Manager]] in installation and maintenance. It is helpful to recognize the different sections of the file.  Typically, each section of data is indented to make the file more readable, but this indentation is not necessary. &lt;br /&gt;
&lt;br /&gt;
===Basic Details===&lt;br /&gt;
The initial display of the Template Manager shows a list of available templates and basic details relating to the template.  Each of these bits of information is gathered from the templateDetails.xml file.&lt;br /&gt;
&lt;br /&gt;
[[Image:template_details_basic.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;install version=&amp;quot;1.5&amp;quot; type=&amp;quot;template&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;rhuk_milkyway&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;creationDate&amp;gt;11/20/06&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
    &amp;lt;author&amp;gt;Andy Miller&amp;lt;/author&amp;gt;&lt;br /&gt;
    &amp;lt;authorEmail&amp;gt;rhuk@rockettheme.com.com&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
    &amp;lt;authorUrl&amp;gt;http://www.rockettheme.com&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
    &amp;lt;copyright&amp;gt;&amp;lt;/copyright&amp;gt;&lt;br /&gt;
    &amp;lt;license&amp;gt;GNU/GPL&amp;lt;/license&amp;gt;&lt;br /&gt;
    &amp;lt;version&amp;gt;1.0.2&amp;lt;/version&amp;gt;&lt;br /&gt;
    &amp;lt;description&amp;gt;TPL_RHUK_MILKYWAY&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===File Structure===&lt;br /&gt;
All files related to the template are listed.  Each filename contains full path information starting at the template root.  The Administrator&#039;s Installer uses this information when storing the files during installation.&lt;br /&gt;
&lt;br /&gt;
A small portion of the files listed in the rhuk_milkyway template is given below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;index.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;templateDetails.xml&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;template_thumbnail.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;params.ini&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;images/arrow.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;images/indent1.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Languages===&lt;br /&gt;
Some templates may include language files to allow translation of static text in the template.  Notice that two language files are shown below.  The first holds the language file for text that will be viewed by the User.  The second, placed within &amp;lt;administration&amp;gt; tags, is for text that will be viewed by the Administrator.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;languages&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.tpl_beez.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
    &amp;lt;/languages&amp;gt;&lt;br /&gt;
    &amp;lt;administration&amp;gt;&lt;br /&gt;
	&amp;lt;languages folder=&amp;quot;admin&amp;quot;&amp;gt;&lt;br /&gt;
	    &amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.tpl_beez.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
    &amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Module Positions===&lt;br /&gt;
The available [[module_positions|Module Positions]] that can be used in the template are defined.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;positions&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;breadcrumb&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;left&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;right&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;top&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;user1&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;user2&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;user3&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;user4&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;footer&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;debug&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;syndicate&amp;lt;/position&amp;gt;&lt;br /&gt;
    &amp;lt;/positions&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
A template may offer display options that can be chosen by the Administrator in the Template Manager.  For instance, the rhuk_milkyway template allows the Administrator to change the border colors, change the background color, and define the display width.  &lt;br /&gt;
&lt;br /&gt;
[[Image:template_details_params.png]]&lt;br /&gt;
&lt;br /&gt;
An example of adding a parameter and its values is shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;params&amp;gt;&lt;br /&gt;
	&amp;lt;param name=&amp;quot;colorVariation&amp;quot; type=&amp;quot;list&amp;quot; default=&amp;quot;white&amp;quot; label=&amp;quot;Color Variation&amp;quot; description=&amp;quot;Color variation to use&amp;quot;&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;blue&amp;quot;&amp;gt;Blue&amp;lt;/option&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;red&amp;quot;&amp;gt;Red&amp;lt;/option&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;green&amp;quot;&amp;gt;Green&amp;lt;/option&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;orange&amp;quot;&amp;gt;Orange&amp;lt;/option&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;black&amp;quot;&amp;gt;Black&amp;lt;/option&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;white&amp;quot;&amp;gt;White&amp;lt;/option&amp;gt;&lt;br /&gt;
	&amp;lt;/param&amp;gt;&lt;br /&gt;
    &amp;lt;/params&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more information about working with Parameters, see:&lt;br /&gt;
[[Defining_a_parameter_in_templateDetails.xml|Defining a parameter in templateDetails.xml]]&lt;br /&gt;
[[Retrieving_parameter_data_in_a_template_file|Retrieving parameter data in a template file]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Templates]][[Category:Topics]][[Category:Beginners]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=What_is_the_purpose_of_the_templateDetails.xml_file%3F&amp;diff=2859</id>
		<title>What is the purpose of the templateDetails.xml file?</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=What_is_the_purpose_of_the_templateDetails.xml_file%3F&amp;diff=2859"/>
		<updated>2008-02-19T19:21:13Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: New page: {{RightTOC}} The templateDetails.xml file holds a variety of meta-data used by the Template Manager in installation and maintenance. It is helpful to recognize the different sections of th...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RightTOC}}&lt;br /&gt;
The templateDetails.xml file holds a variety of meta-data used by the Template Manager in installation and maintenance. It is helpful to recognize the different sections of the file.  Typically, each section of data is indented to make the file more readable, but this indentation is not necessary. &lt;br /&gt;
&lt;br /&gt;
===Basic Details===&lt;br /&gt;
The initial display of the Template Manager shows a list of available templates and basic details relating to the template.  Each of these bits of information is gathered from the templateDetails.xml file.&lt;br /&gt;
&lt;br /&gt;
[[Image:template_details_basic.png]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;install version=&amp;quot;1.5&amp;quot; type=&amp;quot;template&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;rhuk_milkyway&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;creationDate&amp;gt;11/20/06&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
    &amp;lt;author&amp;gt;Andy Miller&amp;lt;/author&amp;gt;&lt;br /&gt;
    &amp;lt;authorEmail&amp;gt;rhuk@rockettheme.com.com&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
    &amp;lt;authorUrl&amp;gt;http://www.rockettheme.com&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
    &amp;lt;copyright&amp;gt;&amp;lt;/copyright&amp;gt;&lt;br /&gt;
    &amp;lt;license&amp;gt;GNU/GPL&amp;lt;/license&amp;gt;&lt;br /&gt;
    &amp;lt;version&amp;gt;1.0.2&amp;lt;/version&amp;gt;&lt;br /&gt;
    &amp;lt;description&amp;gt;TPL_RHUK_MILKYWAY&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===File Structure===&lt;br /&gt;
All files related to the template are listed.  Each filename contains full path information starting at the 	&lt;br /&gt;
site root.  The Administrator&#039;s Installer uses this information when storing the files during installation.&lt;br /&gt;
&lt;br /&gt;
A small portion of the files listed in the rhuk_milkyway template is given below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;index.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;templateDetails.xml&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;template_thumbnail.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;params.ini&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;images/arrow.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;images/indent1.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Languages===&lt;br /&gt;
Some templates may include language files to allow translation of static text in the template.  Notice that two language files are shown below.  The first holds the language file for text that will be viewed by the User.  The second, placed within &amp;lt;administration&amp;gt; tags, is for text that will be viewed by the Administrator.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;languages&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.tpl_beez.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
    &amp;lt;/languages&amp;gt;&lt;br /&gt;
    &amp;lt;administration&amp;gt;&lt;br /&gt;
	&amp;lt;languages folder=&amp;quot;admin&amp;quot;&amp;gt;&lt;br /&gt;
	    &amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.tpl_beez.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;/languages&amp;gt;&lt;br /&gt;
    &amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Positions===&lt;br /&gt;
The possible positions that can be used in the template are defined.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;positions&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;breadcrumb&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;left&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;right&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;top&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;user1&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;user2&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;user3&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;user4&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;footer&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;debug&amp;lt;/position&amp;gt;&lt;br /&gt;
	&amp;lt;position&amp;gt;syndicate&amp;lt;/position&amp;gt;&lt;br /&gt;
    &amp;lt;/positions&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Parameters===&lt;br /&gt;
A template may offer display options that can be chosen by the Administrator in the Template Manager.  For instance, the rhuk_milkyway template allows the Administrator to change the border colors, change the background color, and define the display width.  &lt;br /&gt;
&lt;br /&gt;
[[Image:template_details_params.png]]&lt;br /&gt;
&lt;br /&gt;
An example of adding a parameter and its values is shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    &amp;lt;params&amp;gt;&lt;br /&gt;
	&amp;lt;param name=&amp;quot;colorVariation&amp;quot; type=&amp;quot;list&amp;quot; default=&amp;quot;white&amp;quot; label=&amp;quot;Color Variation&amp;quot; description=&amp;quot;Color variation to use&amp;quot;&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;blue&amp;quot;&amp;gt;Blue&amp;lt;/option&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;red&amp;quot;&amp;gt;Red&amp;lt;/option&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;green&amp;quot;&amp;gt;Green&amp;lt;/option&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;orange&amp;quot;&amp;gt;Orange&amp;lt;/option&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;black&amp;quot;&amp;gt;Black&amp;lt;/option&amp;gt;&lt;br /&gt;
	    &amp;lt;option value=&amp;quot;white&amp;quot;&amp;gt;White&amp;lt;/option&amp;gt;&lt;br /&gt;
	&amp;lt;/param&amp;gt;&lt;br /&gt;
    &amp;lt;/params&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:New_features_introduced_in_templates&amp;diff=2856</id>
		<title>J1.5:New features introduced in templates</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:New_features_introduced_in_templates&amp;diff=2856"/>
		<updated>2008-02-19T15:55:09Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: added template directory structure transclusion; corrected initial cap&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A summary of new features introduced in Joomla! 1.5 templates:&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Model View Controller (MVC)&#039;&#039;&#039;&lt;br /&gt;
: This structure has been implemented in Joomla! 1.5, separating out logic, data and view of data. This means that the HTML, CSS and other code used to display Joomla! (to the browser or other device) is now completely separate from the Joomla! logic and is contained entirely within the templating system. This gives you greater control over how you wish to display the data, without having to access (hack!) core Joomla! code.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Template positions&#039;&#039;&#039;&lt;br /&gt;
: The positions used in a template are now declared in &#039;&#039;templateDetails.xml&#039;&#039;.  For example,&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;positions&amp;gt;                        &lt;br /&gt;
&amp;lt;position&amp;gt;top&amp;lt;/position&amp;gt;             &lt;br /&gt;
&amp;lt;position&amp;gt;left&amp;lt;/position&amp;gt;         &lt;br /&gt;
&amp;lt;/positions&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
; &#039;&#039;&#039;Joomla version&#039;&#039;&#039;&lt;br /&gt;
: The version number is now declared in the template.  For example, &#039;&#039;&amp;lt;install version=&amp;quot;1.5&amp;quot; type=&amp;quot;template&amp;quot;&amp;gt;&#039;&#039; replaces 1.0.x &#039;&#039;&amp;lt;mosinstall type=&amp;quot;template&amp;quot;&amp;gt;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Template parameters&#039;&#039;&#039;&lt;br /&gt;
: Parameters may be defined in your template. These are declared in &#039;&#039;templateDetails.xml&#039;&#039;. Parameter default values can be set in &#039;&#039;params.ini&#039;&#039;, which is also referenced in &#039;&#039;templateDetails.XML&#039;&#039; as a template &amp;lt;file&amp;gt;. The parameters can be set in the Administrator Template Manager and also only the fly using the template&#039;s Javascript.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Template overrides&#039;&#039;&#039;&lt;br /&gt;
: The default system chrome (&#039;views&#039;) for any module or component can now be overridden by the template. Default system chrome for each module and component can now be found in directories &#039;&#039;modules/mod_modulename/tmpl&#039;&#039; and &#039;&#039;components/com_componentname/views/layout/tmpl&#039;&#039;. The pagination chrome can also be overridden in &#039;&#039;pagination.php&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Objects and Methods&#039;&#039;&#039;&lt;br /&gt;
: The Joomla! 1.5 framework has been re-engineered and now includes the JApplication layer, which contains a number of objects and methods you can reference from the template &#039;&#039;index.php&#039;&#039;.  For example, &#039;&#039;&amp;lt;jdoc:include type=&amp;quot;head&amp;quot; /&amp;gt;&#039;&#039; replaces the 1.0.x &#039;&#039;&amp;lt;?php mosShowHead(); ?&amp;gt;;&#039;&#039;, &#039;&#039;&amp;lt;?php echo $mainframe-&amp;gt;getCfg(&#039;sitename&#039;);?&amp;gt;&#039;&#039; replaces the 1.0.x &#039;&#039;&amp;lt;?php echo $mosConfig_sitename; ?&amp;gt;&#039;&#039; [N.B. This new method works for all &#039;&#039;configuration.php&#039;&#039; parameters], &#039;&#039;&amp;lt;?php // no direct access defined( &#039;_JEXEC&#039; ) or die( &#039;Restricted access&#039; ); ?&amp;gt;&#039;&#039; replaces the 1.0.x &#039;&#039;&amp;lt;?php defined( &#039;_VALID_MOS&#039; ) or die( &#039;Direct Access to this location is not allowed.&#039; ); ?&amp;gt;&#039;&#039;, &#039;&#039;&amp;lt;?php echo JURI::base();;?&amp;gt;&#039;&#039; replaces the 1.0.x &#039;&#039;&amp;lt;?php echo $mosConfig_live_site; ?&amp;gt;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Module Positions&#039;&#039;&#039;&lt;br /&gt;
: There is a new way of checking which module positions have content to display on the current page. This logic can be used for collapsible columns (e.g. collapse the left or right column if no content is present). The 1.0.x &#039;&#039;mosCountModules&#039;&#039; function has been replaced by the &#039;&#039;$this-&amp;gt;countModules&#039;&#039; and conditions have been added: you can now use &#039;+&#039;, &#039;-&#039;, &#039;or&#039; or &#039;and&#039;, e.g. &#039;&#039;if ($this-&amp;gt;countModules(&#039;left or right&#039;) == 1)&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Template file structure&#039;&#039;&#039;&lt;br /&gt;
: {{:What is the typical template directory structure?}}&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Accessibility and Standards&#039;&#039;&#039;&lt;br /&gt;
: Using template overrides, it is possible to create tableless Joomla! The new parameters and overrides encourage improvements in web standards, accessbility, search engine optimisation (SEO) (source ordering and markup), language (left to right support) and browser optimisation (browser-dependent CSS).&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Default system template&#039;&#039;&#039;&lt;br /&gt;
: The system template (in the &#039;&#039;/templates&#039;&#039; directory) has been expanded to include more CSS files and a standard &#039;&#039;modules.php&#039;&#039; (module chrome) and &#039;&#039;component.php&#039;&#039; (component chrome).  You can include some of the default CSS files in your template.  For example,&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;templates/system/css/system.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;templates/system/css/general.css&amp;quot; type=&amp;quot;text/css&amp;quot; /&amp;gt; &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Additional Javascript&#039;&#039;&#039;&lt;br /&gt;
: There are some additional Javascript libraries available for use in your template.  For example,&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;media/system/js/mootools.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; &lt;br /&gt;
&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;media/system/js/caption.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
: These are included in &#039;&#039;&amp;lt;jdoc:include type=&amp;quot;head&amp;quot; /&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
; &#039;&#039;&#039;Error handling&#039;&#039;&#039;&lt;br /&gt;
: More default error pages are included in the system template (&#039;&#039;403.php&#039;&#039; and &#039;&#039;500.php&#039;&#039;) and a new error message call has been introduced, which must be referenced in your template by &#039;&#039;&amp;lt;jdoc:include type=&amp;quot;message&amp;quot; /&amp;gt;&#039;&#039;&lt;br /&gt;
[[Category:Templates]]&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=What_is_the_typical_template_directory_structure%3F&amp;diff=2855</id>
		<title>What is the typical template directory structure?</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=What_is_the_typical_template_directory_structure%3F&amp;diff=2855"/>
		<updated>2008-02-19T15:52:25Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A typical template for Joomla! 1.5 will include the following directories:&lt;br /&gt;
: {{:Typical template directory structure}}&amp;lt;noinclude&amp;gt;[[Category:Templates]][[Category:Definition lists]][[Category:Beginners]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=What_is_the_typical_template_directory_structure%3F&amp;diff=2854</id>
		<title>What is the typical template directory structure?</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=What_is_the_typical_template_directory_structure%3F&amp;diff=2854"/>
		<updated>2008-02-19T15:48:10Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: New page: A typical template for Joomla! 1.5 will include the following directories: {{:Typical template directory structure}}  &amp;lt;noinclude&amp;gt;Category:TemplatesCategory:Definition lists[[Catego...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A typical template for Joomla! 1.5 will include the following directories:&lt;br /&gt;
{{:Typical template directory structure}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Templates]][[Category:Definition lists]][[Category:Beginners]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Typical_template_directory_structure&amp;diff=2853</id>
		<title>Typical template directory structure</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Typical_template_directory_structure&amp;diff=2853"/>
		<updated>2008-02-19T15:38:24Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: New page: * css - contains all the .css files * html - contains template override files for core output and module chrome * images - contains all images used by the template  &amp;lt;noinclude&amp;gt;[[Category:I...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* css - contains all the .css files&lt;br /&gt;
* html - contains template override files for core output and module chrome&lt;br /&gt;
* images - contains all images used by the template&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Itemised lists]][[Category:Reference]][[Category:Templates]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=JDOC:Who_is_working_on_what&amp;diff=2810</id>
		<title>JDOC:Who is working on what</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=JDOC:Who_is_working_on_what&amp;diff=2810"/>
		<updated>2008-02-17T23:34:58Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: /* Understanding Joomla! templates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to work on one or more pages of the documentation then please update this page so we don&#039;t get duplication of effort. If you want to collaborate with someone on one or more pages, that&#039;s fine too of course; you can use this page to find out who to contact.&lt;br /&gt;
&lt;br /&gt;
Simply list the page(s) you are working on and the name(s) of the people working on them.  Thank you.&lt;br /&gt;
&lt;br /&gt;
New features introduced in Joomla! 1.5 templates [Dex]&lt;br /&gt;
&lt;br /&gt;
How to override the output from the Joomla! core [Dex]&lt;br /&gt;
&lt;br /&gt;
==== Fonts and topography ====&lt;br /&gt;
&lt;br /&gt;
Text resizing - [epleste]&lt;br /&gt;
[[Category:Templates]]&lt;br /&gt;
&lt;br /&gt;
==== Tutorials: Template Overrides ====&lt;br /&gt;
&lt;br /&gt;
Tutorial: Template overrides - [madamep and ivanicus]&lt;br /&gt;
[[Category:Templates]]&lt;br /&gt;
&lt;br /&gt;
====  Understanding Joomla! templates ====&lt;br /&gt;
&lt;br /&gt;
What is the typical template directory structure? [radiant_tech]&lt;br /&gt;
&lt;br /&gt;
What is the purpose of the templateDetails.xml file? [radiant_tech]&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=JDOC:Who_is_working_on_what&amp;diff=2809</id>
		<title>JDOC:Who is working on what</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=JDOC:Who_is_working_on_what&amp;diff=2809"/>
		<updated>2008-02-17T23:34:10Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to work on one or more pages of the documentation then please update this page so we don&#039;t get duplication of effort. If you want to collaborate with someone on one or more pages, that&#039;s fine too of course; you can use this page to find out who to contact.&lt;br /&gt;
&lt;br /&gt;
Simply list the page(s) you are working on and the name(s) of the people working on them.  Thank you.&lt;br /&gt;
&lt;br /&gt;
New features introduced in Joomla! 1.5 templates [Dex]&lt;br /&gt;
&lt;br /&gt;
How to override the output from the Joomla! core [Dex]&lt;br /&gt;
&lt;br /&gt;
==== Fonts and topography ====&lt;br /&gt;
&lt;br /&gt;
Text resizing - [epleste]&lt;br /&gt;
[[Category:Templates]]&lt;br /&gt;
&lt;br /&gt;
==== Tutorials: Template Overrides ====&lt;br /&gt;
&lt;br /&gt;
Tutorial: Template overrides - [madamep and ivanicus]&lt;br /&gt;
[[Category:Templates]]&lt;br /&gt;
&lt;br /&gt;
====  Understanding Joomla! templates ====&lt;br /&gt;
&lt;br /&gt;
What is the typical template directory structure? [radiant_tech]&lt;br /&gt;
What is the purpose of the templateDetails.xml file? [radiant_tech]&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Using_JPagination_in_your_component&amp;diff=2808</id>
		<title>J1.5:Using JPagination in your component</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Using_JPagination_in_your_component&amp;diff=2808"/>
		<updated>2008-02-17T20:55:14Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Content-incomplete}}&lt;br /&gt;
&lt;br /&gt;
{{RightTOC}}&lt;br /&gt;
==Class Overview==&lt;br /&gt;
The JPagination class, introduced in Joomla! 1.5, allows developers to reliably and consistently add pagination to the Front-end and Back-end display of their components.  The file containing the class can be found at /libraries/joomla/html/pagination.php.  &lt;br /&gt;
&lt;br /&gt;
====Variables====&lt;br /&gt;
The construct function of the class requires three variables:&lt;br /&gt;
* $total - the total number of items in a list,&lt;br /&gt;
* $limitstart - the offset of the item at which to start, and&lt;br /&gt;
* $limit - the number of items to display per page.&lt;br /&gt;
&lt;br /&gt;
====Static Class Methods====&lt;br /&gt;
=====getRowOffset($index)=====&lt;br /&gt;
&lt;br /&gt;
=====getData()=====&lt;br /&gt;
&lt;br /&gt;
=====getPagesCounter()=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Create and return the pagination pages counter string&lt;br /&gt;
	 *&lt;br /&gt;
	 * @access	public&lt;br /&gt;
	 * @return	string	Pagination pages counter string&lt;br /&gt;
	 * @since	1.5&lt;br /&gt;
	 */&lt;br /&gt;
	function getPagesCounter()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns a string containing the current page and total pages as [[image:pagescounter.png]]&lt;br /&gt;
&lt;br /&gt;
=====getResultsCounter()=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Create and return the pagination result set counter string&lt;br /&gt;
	 *&lt;br /&gt;
	 * @access	public&lt;br /&gt;
	 * @return	string	Pagination result set counter string&lt;br /&gt;
	 * @since	1.5&lt;br /&gt;
	 */&lt;br /&gt;
	function getResultsCounter()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns a string containing the results currently being displayed as [[image:resultscounter.png]]&lt;br /&gt;
&lt;br /&gt;
=====getPagesLinks()=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Create and return the pagination page list string, ie. Previous, Next, 1 2 3 ... x&lt;br /&gt;
	 *&lt;br /&gt;
	 * @access	public&lt;br /&gt;
	 * @return	string	Pagination page list string&lt;br /&gt;
	 * @since	1.0&lt;br /&gt;
	 */&lt;br /&gt;
	function getPagesLinks()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns an HTML string to display the Pages Links as [[image:pageslinks.png]]&lt;br /&gt;
&lt;br /&gt;
=====getListFooter()=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Return the pagination footer&lt;br /&gt;
	 *&lt;br /&gt;
	 * @access	public&lt;br /&gt;
	 * @return	string	Pagination footer&lt;br /&gt;
	 * @since	1.0&lt;br /&gt;
	 */&lt;br /&gt;
	function getListFooter()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns a combination of the several page-related elements, including: the Display Limit dropdown, the Pages Links and the Pages Counter.  Appearance differs in the Front-end and Back-end due to additional CSS formatting applied with the Khepri template.&lt;br /&gt;
&lt;br /&gt;
Front-end: [[image:listfooter-front.png]]&lt;br /&gt;
&lt;br /&gt;
Back-end: [[image:pagination.png]]&lt;br /&gt;
&lt;br /&gt;
=====getLimitBox()=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Creates a dropdown box for selecting how many records to show per page&lt;br /&gt;
	 *&lt;br /&gt;
	 * @access	public&lt;br /&gt;
	 * @return	string	The html for the limit # input box&lt;br /&gt;
	 * @since	1.0&lt;br /&gt;
	 */&lt;br /&gt;
	function getLimitBox()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns an HTML string that will output the Display Limit dropdown as [[image:limitbox.png]]&lt;br /&gt;
&lt;br /&gt;
=====orderUpIcon()=====&lt;br /&gt;
&lt;br /&gt;
=====orderDownIcon()=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
====Changes to the Model====&lt;br /&gt;
Declare $_total and $_pagination variables in the model; these will be returned by the functions getTotal() and getPagination(), respectively.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /**&lt;br /&gt;
   * Items total&lt;br /&gt;
   * @var integer&lt;br /&gt;
   */&lt;br /&gt;
  var $_total = null;&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * Pagination object&lt;br /&gt;
   * @var object&lt;br /&gt;
   */&lt;br /&gt;
  var $_pagination = null;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add to or create a __construct() function that will establish values for the $limitstart and $limit variables as these are needed by the JPagination class.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function __construct()&lt;br /&gt;
  {&lt;br /&gt;
 	parent::__construct();&lt;br /&gt;
&lt;br /&gt;
	global $mainframe, $option;&lt;br /&gt;
&lt;br /&gt;
	// Get pagination request variables&lt;br /&gt;
	$limit = $mainframe-&amp;gt;getUserStateFromRequest(&#039;global.list.limit&#039;, &#039;limit&#039;, $mainframe-&amp;gt;getCfg(&#039;list_limit&#039;), &#039;int&#039;);&lt;br /&gt;
	$limitstart = $mainframe-&amp;gt;getUserStateFromRequest($option.&#039;.limitstart&#039;, &#039;limitstart&#039;, 0, &#039;int&#039;);&lt;br /&gt;
&lt;br /&gt;
	// In case limit has been changed, adjust it&lt;br /&gt;
	$limitstart = ($limit != 0 ? (floor($limitstart / $limit) * $limit) : 0);&lt;br /&gt;
&lt;br /&gt;
	$this-&amp;gt;setState(&#039;limit&#039;, $limit);&lt;br /&gt;
	$this-&amp;gt;setState(&#039;limitstart&#039;, $limitstart);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Revise the getData() function, adding the $limitstart and $limit values to the _getList() query.  This causes only the needed rows to be returned, rather than all rows. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getData() &lt;br /&gt;
  {&lt;br /&gt;
 	// if data hasn&#039;t already been obtained, load it&lt;br /&gt;
 	if (empty($this-&amp;gt;_data)) {&lt;br /&gt;
 	    $query = $this-&amp;gt;_buildQuery();&lt;br /&gt;
 	    $this-&amp;gt;_data = $this-&amp;gt;_getList($query, $this-&amp;gt;getState(&#039;limitstart&#039;), $this-&amp;gt;getState(&#039;limit&#039;));	&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_data;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a getTotal() function.  This function uses the _getListCount() method from JModel to return the total number of rows in the query.  The value returned will be used by the getPagination() function.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getTotal()&lt;br /&gt;
  {&lt;br /&gt;
 	// Load the content if it doesn&#039;t already exist&lt;br /&gt;
 	if (empty($this-&amp;gt;_total)) {&lt;br /&gt;
 	    $query = $this-&amp;gt;_buildQuery();&lt;br /&gt;
 	    $this-&amp;gt;_total = $this-&amp;gt;_getListCount($query);	&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_total;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a getPagination() function.  The function will create and return a new Pagination object that can be accessed by the View.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getPagination()&lt;br /&gt;
  {&lt;br /&gt;
 	// Load the content if it doesn&#039;t already exist&lt;br /&gt;
 	if (empty($this-&amp;gt;_pagination)) {&lt;br /&gt;
 	    jimport(&#039;joomla.html.pagination&#039;);&lt;br /&gt;
 	    $this-&amp;gt;_pagination = new JPagination($this-&amp;gt;getTotal(), $this-&amp;gt;getState(&#039;limitstart&#039;), $this-&amp;gt;getState(&#039;limit&#039;) );&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_pagination;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Changes to the View====&lt;br /&gt;
Revise the View to obtain the pagination object created in the Model and assign it for use in the template.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  	// Get data from the model&lt;br /&gt;
 	$items =&amp;amp; $this-&amp;gt;get(&#039;Data&#039;);	&lt;br /&gt;
 	$pagination =&amp;amp; $this-&amp;gt;get(&#039;Pagination&#039;);&lt;br /&gt;
&lt;br /&gt;
	// push data into the template&lt;br /&gt;
	$this-&amp;gt;assignRef(&#039;items&#039;, $items);	&lt;br /&gt;
	$this-&amp;gt;assignRef(&#039;pagination&#039;, $pagination);&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Changes to the Template====&lt;br /&gt;
Add a footer area to the display table in the template which holds the pagination object.  The method getListFooter() from the JPagination class generates the buttons and their next/previous functionality as shown in the image above.  Edit colspan=&amp;quot;9&amp;quot; to reflect the number of columns in the table.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;tfoot&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td colspan=&amp;quot;9&amp;quot;&amp;gt;&amp;lt;?php echo $this-&amp;gt;pagination-&amp;gt;getListFooter(); ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/tfoot&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Listfooter-front.png&amp;diff=2807</id>
		<title>File:Listfooter-front.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Listfooter-front.png&amp;diff=2807"/>
		<updated>2008-02-17T20:50:26Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: JPagination class output&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;JPagination class output&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Resultscounter.png&amp;diff=2806</id>
		<title>File:Resultscounter.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Resultscounter.png&amp;diff=2806"/>
		<updated>2008-02-17T20:48:00Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: JPagination class output&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;JPagination class output&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Using_JPagination_in_your_component&amp;diff=2805</id>
		<title>J1.5:Using JPagination in your component</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Using_JPagination_in_your_component&amp;diff=2805"/>
		<updated>2008-02-17T20:38:16Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{inuse}}&lt;br /&gt;
{{Content-incomplete}}&lt;br /&gt;
&lt;br /&gt;
{{RightTOC}}&lt;br /&gt;
==Class Overview==&lt;br /&gt;
The JPagination class, introduced in Joomla! 1.5, allows developers to reliably and consistently add pagination to the Front-end and Back-end display of their components.  The file containing the class can be found at /libraries/joomla/html/pagination.php.  &lt;br /&gt;
&lt;br /&gt;
====Variables====&lt;br /&gt;
The construct function of the class requires three variables:&lt;br /&gt;
* $total - the total number of items in a list,&lt;br /&gt;
* $limitstart - the offset of the item at which to start, and&lt;br /&gt;
* $limit - the number of items to display per page.&lt;br /&gt;
&lt;br /&gt;
====Static Class Methods====&lt;br /&gt;
=====getRowOffset($index)=====&lt;br /&gt;
&lt;br /&gt;
=====getData()=====&lt;br /&gt;
&lt;br /&gt;
=====getPagesCounter()=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Create and return the pagination pages counter string&lt;br /&gt;
	 *&lt;br /&gt;
	 * @access	public&lt;br /&gt;
	 * @return	string	Pagination pages counter string&lt;br /&gt;
	 * @since	1.5&lt;br /&gt;
	 */&lt;br /&gt;
	function getPagesCounter()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns a string containing the current page and total pages as [[image:pagescounter.png]]&lt;br /&gt;
&lt;br /&gt;
=====getResultsCounter()=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Create and return the pagination result set counter string&lt;br /&gt;
	 *&lt;br /&gt;
	 * @access	public&lt;br /&gt;
	 * @return	string	Pagination result set counter string&lt;br /&gt;
	 * @since	1.5&lt;br /&gt;
	 */&lt;br /&gt;
	function getResultsCounter()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns a string containing the results currently being displayed as [[image:resultscounter.png]]&lt;br /&gt;
&lt;br /&gt;
=====getPagesLinks()=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Create and return the pagination page list string, ie. Previous, Next, 1 2 3 ... x&lt;br /&gt;
	 *&lt;br /&gt;
	 * @access	public&lt;br /&gt;
	 * @return	string	Pagination page list string&lt;br /&gt;
	 * @since	1.0&lt;br /&gt;
	 */&lt;br /&gt;
	function getPagesLinks()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns an HTML string to display the Pages Links as [[image:pageslinks.png]]&lt;br /&gt;
&lt;br /&gt;
=====getListFooter()=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Return the pagination footer&lt;br /&gt;
	 *&lt;br /&gt;
	 * @access	public&lt;br /&gt;
	 * @return	string	Pagination footer&lt;br /&gt;
	 * @since	1.0&lt;br /&gt;
	 */&lt;br /&gt;
	function getListFooter()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns a combination of the several page-related elements, including: the Display Limit dropdown, the Pages Links and the Pages Counter.  Appearance differs in the Front-end and Back-end due to additional CSS formatting applied with the Khepri template.&lt;br /&gt;
Front-end: [[image:listfooter_front.png]]&lt;br /&gt;
Back-end: [[image:listfooter_back.png]]&lt;br /&gt;
&lt;br /&gt;
=====getLimitBox()=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	/**&lt;br /&gt;
	 * Creates a dropdown box for selecting how many records to show per page&lt;br /&gt;
	 *&lt;br /&gt;
	 * @access	public&lt;br /&gt;
	 * @return	string	The html for the limit # input box&lt;br /&gt;
	 * @since	1.0&lt;br /&gt;
	 */&lt;br /&gt;
	function getLimitBox()&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Returns an HTML string that will output the Display Limit dropdown as [[image:limitbox.png]]&lt;br /&gt;
&lt;br /&gt;
=====orderUpIcon()=====&lt;br /&gt;
&lt;br /&gt;
=====orderDownIcon()=====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
====Changes to the Model====&lt;br /&gt;
Declare $_total and $_pagination variables in the model; these will be returned by the functions getTotal() and getPagination(), respectively.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /**&lt;br /&gt;
   * Items total&lt;br /&gt;
   * @var integer&lt;br /&gt;
   */&lt;br /&gt;
  var $_total = null;&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * Pagination object&lt;br /&gt;
   * @var object&lt;br /&gt;
   */&lt;br /&gt;
  var $_pagination = null;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add to or create a __construct() function that will establish values for the $limitstart and $limit variables as these are needed by the JPagination class.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function __construct()&lt;br /&gt;
  {&lt;br /&gt;
 	parent::__construct();&lt;br /&gt;
&lt;br /&gt;
	global $mainframe, $option;&lt;br /&gt;
&lt;br /&gt;
	// Get pagination request variables&lt;br /&gt;
	$limit = $mainframe-&amp;gt;getUserStateFromRequest(&#039;global.list.limit&#039;, &#039;limit&#039;, $mainframe-&amp;gt;getCfg(&#039;list_limit&#039;), &#039;int&#039;);&lt;br /&gt;
	$limitstart = $mainframe-&amp;gt;getUserStateFromRequest($option.&#039;.limitstart&#039;, &#039;limitstart&#039;, 0, &#039;int&#039;);&lt;br /&gt;
&lt;br /&gt;
	// In case limit has been changed, adjust it&lt;br /&gt;
	$limitstart = ($limit != 0 ? (floor($limitstart / $limit) * $limit) : 0);&lt;br /&gt;
&lt;br /&gt;
	$this-&amp;gt;setState(&#039;limit&#039;, $limit);&lt;br /&gt;
	$this-&amp;gt;setState(&#039;limitstart&#039;, $limitstart);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Revise the getData() function, adding the $limitstart and $limit values to the _getList() query.  This causes only the needed rows to be returned, rather than all rows. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getData() &lt;br /&gt;
  {&lt;br /&gt;
 	// if data hasn&#039;t already been obtained, load it&lt;br /&gt;
 	if (empty($this-&amp;gt;_data)) {&lt;br /&gt;
 	    $query = $this-&amp;gt;_buildQuery();&lt;br /&gt;
 	    $this-&amp;gt;_data = $this-&amp;gt;_getList($query, $this-&amp;gt;getState(&#039;limitstart&#039;), $this-&amp;gt;getState(&#039;limit&#039;));	&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_data;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a getTotal() function.  This function uses the _getListCount() method from JModel to return the total number of rows in the query.  The value returned will be used by the getPagination() function.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getTotal()&lt;br /&gt;
  {&lt;br /&gt;
 	// Load the content if it doesn&#039;t already exist&lt;br /&gt;
 	if (empty($this-&amp;gt;_total)) {&lt;br /&gt;
 	    $query = $this-&amp;gt;_buildQuery();&lt;br /&gt;
 	    $this-&amp;gt;_total = $this-&amp;gt;_getListCount($query);	// _getListCount is from JModel class&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_total;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a getPagination() function.  The function will create and return a new Pagination object that can be accessed by the View.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getPagination()&lt;br /&gt;
  {&lt;br /&gt;
 	// Load the content if it doesn&#039;t already exist&lt;br /&gt;
 	if (empty($this-&amp;gt;_pagination)) {&lt;br /&gt;
 	    jimport(&#039;joomla.html.pagination&#039;);&lt;br /&gt;
 	    $this-&amp;gt;_pagination = new JPagination($this-&amp;gt;getTotal(), $this-&amp;gt;getState(&#039;limitstart&#039;), $this-&amp;gt;getState(&#039;limit&#039;) );&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_pagination;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Changes to the View====&lt;br /&gt;
Revise the View to obtain the pagination object created in the Model and assign it for use in the template.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  	// Get data from the model&lt;br /&gt;
 	$items =&amp;amp; $this-&amp;gt;get(&#039;Data&#039;);	&lt;br /&gt;
 	$pagination =&amp;amp; $this-&amp;gt;get(&#039;Pagination&#039;);&lt;br /&gt;
&lt;br /&gt;
	// push data into the template&lt;br /&gt;
	$this-&amp;gt;assignRef(&#039;items&#039;, $items);	&lt;br /&gt;
	$this-&amp;gt;assignRef(&#039;pagination&#039;, $pagination);&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Changes to the Template====&lt;br /&gt;
Add a footer area to the display table in the template which holds the pagination object.  The method getListFooter() from the JPagination class generates the buttons and their next/previous functionality as shown in the image above.  Edit colspan=&amp;quot;9&amp;quot; to reflect the number of columns in the table.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;tfoot&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td colspan=&amp;quot;9&amp;quot;&amp;gt;&amp;lt;?php echo $this-&amp;gt;pagination-&amp;gt;getListFooter(); ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/tfoot&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Pagescounter.png&amp;diff=2804</id>
		<title>File:Pagescounter.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Pagescounter.png&amp;diff=2804"/>
		<updated>2008-02-17T20:34:48Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: JPagination class output&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;JPagination class output&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Pageslinks.png&amp;diff=2803</id>
		<title>File:Pageslinks.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Pageslinks.png&amp;diff=2803"/>
		<updated>2008-02-17T20:33:24Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: JPagination class output&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;JPagination class output&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Limitbox.png&amp;diff=2802</id>
		<title>File:Limitbox.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Limitbox.png&amp;diff=2802"/>
		<updated>2008-02-17T20:28:52Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: JPagination class output&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;JPagination class output&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Using_JPagination_in_your_component&amp;diff=2799</id>
		<title>J1.5:Using JPagination in your component</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Using_JPagination_in_your_component&amp;diff=2799"/>
		<updated>2008-02-17T15:18:40Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{inuse}}&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Please Note:&amp;lt;/span&amp;gt; This page has not been completed and instructions below apply specifically to adding Pagination in the Back-end.  Additional instructions for the Front-end will be added soon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
The JPagination class, introduced in Joomla! 1.5, allows developers to reliably and consistently add pagination to the Front-end and Back-end display of their components.  The file containing the class can be found at /libraries/joomla/html/pagination.php.  &lt;br /&gt;
&lt;br /&gt;
In the Back-end, the getListFooter() function is used to display the pagination object.  This generates a limit dropdown listbox, start/end, previous/next, and current page buttons, and current page indicator (i.e., Page 1 of 5) as shown in the image below.&lt;br /&gt;
[[Image:Pagination.png]]&lt;br /&gt;
&lt;br /&gt;
In the Front-end, several functions can be called in the template to produce each of these items separately.&lt;br /&gt;
&lt;br /&gt;
==Changes to the Model==&lt;br /&gt;
Declare $_total and $_pagination variables in the model; these will be returned by the functions getTotal() and getPagination(), respectively.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /**&lt;br /&gt;
   * Items total&lt;br /&gt;
   * @var integer&lt;br /&gt;
   */&lt;br /&gt;
  var $_total = null;&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * Pagination object&lt;br /&gt;
   * @var object&lt;br /&gt;
   */&lt;br /&gt;
  var $_pagination = null;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add to or create a __construct() function that will establish values for the $limitstart and $limit variables as these are needed by the JPagination class.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function __construct()&lt;br /&gt;
  {&lt;br /&gt;
 	parent::__construct();&lt;br /&gt;
&lt;br /&gt;
	global $mainframe, $option;&lt;br /&gt;
&lt;br /&gt;
	// Get pagination request variables&lt;br /&gt;
	$limit = $mainframe-&amp;gt;getUserStateFromRequest(&#039;global.list.limit&#039;, &#039;limit&#039;, $mainframe-&amp;gt;getCfg(&#039;list_limit&#039;), &#039;int&#039;);&lt;br /&gt;
	$limitstart = $mainframe-&amp;gt;getUserStateFromRequest($option.&#039;.limitstart&#039;, &#039;limitstart&#039;, 0, &#039;int&#039;);&lt;br /&gt;
&lt;br /&gt;
	// In case limit has been changed, adjust it&lt;br /&gt;
	$limitstart = ($limit != 0 ? (floor($limitstart / $limit) * $limit) : 0);&lt;br /&gt;
&lt;br /&gt;
	$this-&amp;gt;setState(&#039;limit&#039;, $limit);&lt;br /&gt;
	$this-&amp;gt;setState(&#039;limitstart&#039;, $limitstart);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Revise the getData() function, adding the $limitstart and $limit values to the _getList() query.  This causes only the needed rows to be returned, rather than all rows. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getData() &lt;br /&gt;
  {&lt;br /&gt;
 	// if data hasn&#039;t already been obtained, load it&lt;br /&gt;
 	if (empty($this-&amp;gt;_data)) {&lt;br /&gt;
 	    $query = $this-&amp;gt;_buildQuery();&lt;br /&gt;
 	    $this-&amp;gt;_data = $this-&amp;gt;_getList($query, $this-&amp;gt;getState(&#039;limitstart&#039;), $this-&amp;gt;getState(&#039;limit&#039;));	&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_data;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a getTotal() function.  This function uses the _getListCount() method from JModel to return the total number of rows in the query.  The value returned will be used by the getPagination() function.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getTotal()&lt;br /&gt;
  {&lt;br /&gt;
 	// Load the content if it doesn&#039;t already exist&lt;br /&gt;
 	if (empty($this-&amp;gt;_total)) {&lt;br /&gt;
 	    $query = $this-&amp;gt;_buildQuery();&lt;br /&gt;
 	    $this-&amp;gt;_total = $this-&amp;gt;_getListCount($query);	// _getListCount is from JModel class&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_total;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a getPagination() function.  The function will create and return a new Pagination object that can be accessed by the View.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getPagination()&lt;br /&gt;
  {&lt;br /&gt;
 	// Load the content if it doesn&#039;t already exist&lt;br /&gt;
 	if (empty($this-&amp;gt;_pagination)) {&lt;br /&gt;
 	    jimport(&#039;joomla.html.pagination&#039;);&lt;br /&gt;
 	    $this-&amp;gt;_pagination = new JPagination($this-&amp;gt;getTotal(), $this-&amp;gt;getState(&#039;limitstart&#039;), $this-&amp;gt;getState(&#039;limit&#039;) );&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_pagination;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changes to the View==&lt;br /&gt;
Revise the View to obtain the pagination object created in the Model and assign it for use in the template.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  	// Get data from the model&lt;br /&gt;
 	$items =&amp;amp; $this-&amp;gt;get(&#039;Data&#039;);	&lt;br /&gt;
 	$pagination =&amp;amp; $this-&amp;gt;get(&#039;Pagination&#039;);&lt;br /&gt;
&lt;br /&gt;
	// push data into the template&lt;br /&gt;
	$this-&amp;gt;assignRef(&#039;items&#039;, $items);	&lt;br /&gt;
	$this-&amp;gt;assignRef(&#039;pagination&#039;, $pagination);&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changes to the Template==&lt;br /&gt;
Add a footer area to the display table in the template which holds the pagination object.  The method getListFooter() from the JPagination class generates the buttons and their next/previous functionality as shown in the image above.  Edit colspan=&amp;quot;9&amp;quot; to reflect the number of columns in the table.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;tfoot&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td colspan=&amp;quot;9&amp;quot;&amp;gt;&amp;lt;?php echo $this-&amp;gt;pagination-&amp;gt;getListFooter(); ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/tfoot&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Using_JPagination_in_your_component&amp;diff=2798</id>
		<title>J1.5:Using JPagination in your component</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Using_JPagination_in_your_component&amp;diff=2798"/>
		<updated>2008-02-17T14:46:42Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{inuse}}&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Please Note:&amp;lt;/span&amp;gt; This page has not been completed and instructions below apply specifically to adding Pagination in the Back-end.  Additional instructions for the Front-end will be added soon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
The JPagination class, introduced in Joomla! 1.5, allows developers to reliably and consistently adding pagination to the Front-end and Back-end display of their components.  The file containing the class can be found at /libraries/joomla/html/pagination.php.  The pagination object generates start/end, previous/next, and current page buttons as shown in the image below.&lt;br /&gt;
[[Image:Pagination.png]]&lt;br /&gt;
&lt;br /&gt;
==Changes to the Model==&lt;br /&gt;
Declare $_total and $_pagination variables in the model; these will be returned by the functions getTotal() and getPagination(), respectively.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /**&lt;br /&gt;
   * Items total&lt;br /&gt;
   * @var integer&lt;br /&gt;
   */&lt;br /&gt;
  var $_total = null;&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * Pagination object&lt;br /&gt;
   * @var object&lt;br /&gt;
   */&lt;br /&gt;
  var $_pagination = null;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add to or create a __construct() function that will establish values for the $limitstart and $limit variables as these are needed by the JPagination class.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function __construct()&lt;br /&gt;
  {&lt;br /&gt;
 	parent::__construct();&lt;br /&gt;
&lt;br /&gt;
	global $mainframe, $option;&lt;br /&gt;
&lt;br /&gt;
	// Get pagination request variables&lt;br /&gt;
	$limit = $mainframe-&amp;gt;getUserStateFromRequest(&#039;global.list.limit&#039;, &#039;limit&#039;, $mainframe-&amp;gt;getCfg(&#039;list_limit&#039;), &#039;int&#039;);&lt;br /&gt;
	$limitstart = $mainframe-&amp;gt;getUserStateFromRequest($option.&#039;.limitstart&#039;, &#039;limitstart&#039;, 0, &#039;int&#039;);&lt;br /&gt;
&lt;br /&gt;
	// In case limit has been changed, adjust it&lt;br /&gt;
	$limitstart = ($limit != 0 ? (floor($limitstart / $limit) * $limit) : 0);&lt;br /&gt;
&lt;br /&gt;
	$this-&amp;gt;setState(&#039;limit&#039;, $limit);&lt;br /&gt;
	$this-&amp;gt;setState(&#039;limitstart&#039;, $limitstart);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Revise the getData() function, adding the $limitstart and $limit values to the _getList() query.  This causes only the needed rows to be returned, rather than all rows. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getData() &lt;br /&gt;
  {&lt;br /&gt;
 	// if data hasn&#039;t already been obtained, load it&lt;br /&gt;
 	if (empty($this-&amp;gt;_data)) {&lt;br /&gt;
 	    $query = $this-&amp;gt;_buildQuery();&lt;br /&gt;
 	    $this-&amp;gt;_data = $this-&amp;gt;_getList($query, $this-&amp;gt;getState(&#039;limitstart&#039;), $this-&amp;gt;getState(&#039;limit&#039;));	&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_data;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a getTotal() function.  This function uses the _getListCount() method from JModel to return the total number of rows in the query.  The value returned will be used by the getPagination() function.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getTotal()&lt;br /&gt;
  {&lt;br /&gt;
 	// Load the content if it doesn&#039;t already exist&lt;br /&gt;
 	if (empty($this-&amp;gt;_total)) {&lt;br /&gt;
 	    $query = $this-&amp;gt;_buildQuery();&lt;br /&gt;
 	    $this-&amp;gt;_total = $this-&amp;gt;_getListCount($query);	// _getListCount is from JModel class&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_total;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a getPagination() function.  The function will create and return a new Pagination object that can be accessed by the View.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getPagination()&lt;br /&gt;
  {&lt;br /&gt;
 	// Load the content if it doesn&#039;t already exist&lt;br /&gt;
 	if (empty($this-&amp;gt;_pagination)) {&lt;br /&gt;
 	    jimport(&#039;joomla.html.pagination&#039;);&lt;br /&gt;
 	    $this-&amp;gt;_pagination = new JPagination($this-&amp;gt;getTotal(), $this-&amp;gt;getState(&#039;limitstart&#039;), $this-&amp;gt;getState(&#039;limit&#039;) );&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_pagination;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changes to the View==&lt;br /&gt;
Revise the View to obtain the pagination object created in the Model and assign it for use in the template.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  	// Get data from the model&lt;br /&gt;
 	$items =&amp;amp; $this-&amp;gt;get(&#039;Data&#039;);	&lt;br /&gt;
 	$pagination =&amp;amp; $this-&amp;gt;get(&#039;Pagination&#039;);&lt;br /&gt;
&lt;br /&gt;
	// push data into the template&lt;br /&gt;
	$this-&amp;gt;assignRef(&#039;items&#039;, $items);	&lt;br /&gt;
	$this-&amp;gt;assignRef(&#039;pagination&#039;, $pagination);&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changes to the Template==&lt;br /&gt;
Add a footer area to the display table in the template which holds the pagination object.  The method getListFooter() from the JPagination class generates the buttons and their next/previous functionality as shown in the image above.  Edit colspan=&amp;quot;9&amp;quot; to reflect the number of columns in the table.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;tfoot&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td colspan=&amp;quot;9&amp;quot;&amp;gt;&amp;lt;?php echo $this-&amp;gt;pagination-&amp;gt;getListFooter(); ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/tfoot&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Using_JPagination_in_your_component&amp;diff=2779</id>
		<title>J1.5:Using JPagination in your component</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Using_JPagination_in_your_component&amp;diff=2779"/>
		<updated>2008-02-13T16:54:21Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;Please Note:&amp;lt;/span&amp;gt; This page has not been completed and instructions below apply specifically to adding Pagination in the Back-end.  Additional instructions for the Front-end will be added soon.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
The JPagination class, introduced in Joomla! 1.5, allows developers to reliably and consistently adding pagination to the Front-end and Back-end display of their components.  The file containing the class can be found at /libraries/joomla/html/pagination.php.  The pagination object generates start/end, previous/next, and current page buttons as shown in the image below.&lt;br /&gt;
[[Image:Pagination.png]]&lt;br /&gt;
&lt;br /&gt;
==Changes to the Model==&lt;br /&gt;
Declare $_total and $_pagination variables in the model; these will be returned by the functions getTotal() and getPagination(), respectively.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /**&lt;br /&gt;
   * Items total&lt;br /&gt;
   * @var integer&lt;br /&gt;
   */&lt;br /&gt;
  var $_total = null;&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * Pagination object&lt;br /&gt;
   * @var object&lt;br /&gt;
   */&lt;br /&gt;
  var $_pagination = null;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add to or create a __construct() function that will establish values for the $limitstart and $limit variables as these are needed by the JPagination class.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function __construct()&lt;br /&gt;
  {&lt;br /&gt;
 	parent::__construct();&lt;br /&gt;
&lt;br /&gt;
	global $mainframe, $option;&lt;br /&gt;
&lt;br /&gt;
	// Get pagination request variables&lt;br /&gt;
	$limit = $mainframe-&amp;gt;getUserStateFromRequest(&#039;global.list.limit&#039;, &#039;limit&#039;, $mainframe-&amp;gt;getCfg(&#039;list_limit&#039;), &#039;int&#039;);&lt;br /&gt;
	$limitstart = $mainframe-&amp;gt;getUserStateFromRequest($option.&#039;.limitstart&#039;, &#039;limitstart&#039;, 0, &#039;int&#039;);&lt;br /&gt;
&lt;br /&gt;
	// In case limit has been changed, adjust it&lt;br /&gt;
	$limitstart = ($limit != 0 ? (floor($limitstart / $limit) * $limit) : 0);&lt;br /&gt;
&lt;br /&gt;
	$this-&amp;gt;setState(&#039;limit&#039;, $limit);&lt;br /&gt;
	$this-&amp;gt;setState(&#039;limitstart&#039;, $limitstart);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Revise the getData() function, adding the $limitstart and $limit values to the _getList() query.  This causes only the needed rows to be returned, rather than all rows. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getData() &lt;br /&gt;
  {&lt;br /&gt;
 	// if data hasn&#039;t already been obtained, load it&lt;br /&gt;
 	if (empty($this-&amp;gt;_data)) {&lt;br /&gt;
 	    $query = $this-&amp;gt;_buildQuery();&lt;br /&gt;
 	    $this-&amp;gt;_data = $this-&amp;gt;_getList($query, $this-&amp;gt;getState(&#039;limitstart&#039;), $this-&amp;gt;getState(&#039;limit&#039;));	&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_data;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a getTotal() function.  This function uses the _getListCount() method from JModel to return the total number of rows in the query.  The value returned will be used by the getPagination() function.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getTotal()&lt;br /&gt;
  {&lt;br /&gt;
 	// Load the content if it doesn&#039;t already exist&lt;br /&gt;
 	if (empty($this-&amp;gt;_total)) {&lt;br /&gt;
 	    $query = $this-&amp;gt;_buildQuery();&lt;br /&gt;
 	    $this-&amp;gt;_total = $this-&amp;gt;_getListCount($query);	// _getListCount is from JModel class&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_total;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a getPagination() function.  The function will create and return a new Pagination object that can be accessed by the View.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getPagination()&lt;br /&gt;
  {&lt;br /&gt;
 	// Load the content if it doesn&#039;t already exist&lt;br /&gt;
 	if (empty($this-&amp;gt;_pagination)) {&lt;br /&gt;
 	    jimport(&#039;joomla.html.pagination&#039;);&lt;br /&gt;
 	    $this-&amp;gt;_pagination = new JPagination($this-&amp;gt;getTotal(), $this-&amp;gt;getState(&#039;limitstart&#039;), $this-&amp;gt;getState(&#039;limit&#039;) );&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_pagination;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changes to the View==&lt;br /&gt;
Revise the View to obtain the pagination object created in the Model and assign it for use in the template.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  	// Get data from the model&lt;br /&gt;
 	$items =&amp;amp; $this-&amp;gt;get(&#039;Data&#039;);	&lt;br /&gt;
 	$pagination =&amp;amp; $this-&amp;gt;get(&#039;Pagination&#039;);&lt;br /&gt;
&lt;br /&gt;
	// push data into the template&lt;br /&gt;
	$this-&amp;gt;assignRef(&#039;items&#039;, $items);	&lt;br /&gt;
	$this-&amp;gt;assignRef(&#039;pagination&#039;, $pagination);&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changes to the Template==&lt;br /&gt;
Add a footer area to the display table in the template which holds the pagination object.  The method getListFooter() from the JPagination class generates the buttons and their next/previous functionality as shown in the image above.  Edit colspan=&amp;quot;9&amp;quot; to reflect the number of columns in the table.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;tfoot&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td colspan=&amp;quot;9&amp;quot;&amp;gt;&amp;lt;?php echo $this-&amp;gt;pagination-&amp;gt;getListFooter(); ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/tfoot&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Using_JPagination_in_your_component&amp;diff=2777</id>
		<title>J1.5:Using JPagination in your component</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Using_JPagination_in_your_component&amp;diff=2777"/>
		<updated>2008-02-13T16:10:48Z</updated>

		<summary type="html">&lt;p&gt;Radiant tech: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{inuse}}&lt;br /&gt;
==Introduction==&lt;br /&gt;
The JPagination class, introduced in Joomla! 1.5, allows developers to reliably and consistently adding pagination to the Front-end and Back-end display of their components.  The file containing the class can be found at /libraries/joomla/html/pagination.php.  The pagination object generates start/end, previous/next, and current page buttons as shown in the image below.&lt;br /&gt;
[[Image:Pagination.png]]&lt;br /&gt;
&lt;br /&gt;
==Changes to the Model==&lt;br /&gt;
Declare $_total and $_pagination variables in the model; these will be returned by the functions getTotal() and getPagination(), respectively.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  /**&lt;br /&gt;
   * Items total&lt;br /&gt;
   * @var integer&lt;br /&gt;
   */&lt;br /&gt;
  var $_total = null;&lt;br /&gt;
&lt;br /&gt;
  /**&lt;br /&gt;
   * Pagination object&lt;br /&gt;
   * @var object&lt;br /&gt;
   */&lt;br /&gt;
  var $_pagination = null;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add to or create a __construct() function that will establish values for the $limitstart and $limit variables as these are needed by the JPagination class.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function __construct()&lt;br /&gt;
  {&lt;br /&gt;
 	parent::__construct();&lt;br /&gt;
&lt;br /&gt;
	global $mainframe, $option;&lt;br /&gt;
&lt;br /&gt;
	// Get pagination request variables&lt;br /&gt;
	$limit = $mainframe-&amp;gt;getUserStateFromRequest(&#039;global.list.limit&#039;, &#039;limit&#039;, $mainframe-&amp;gt;getCfg(&#039;list_limit&#039;), &#039;int&#039;);&lt;br /&gt;
	$limitstart = $mainframe-&amp;gt;getUserStateFromRequest($option.&#039;.limitstart&#039;, &#039;limitstart&#039;, 0, &#039;int&#039;);&lt;br /&gt;
&lt;br /&gt;
	// In case limit has been changed, adjust it&lt;br /&gt;
	$limitstart = ($limit != 0 ? (floor($limitstart / $limit) * $limit) : 0);&lt;br /&gt;
&lt;br /&gt;
	$this-&amp;gt;setState(&#039;limit&#039;, $limit);&lt;br /&gt;
	$this-&amp;gt;setState(&#039;limitstart&#039;, $limitstart);&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Revise the getData() function, adding the $limitstart and $limit values to the _getList() query.  This causes only the needed rows to be returned, rather than all rows. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getData() &lt;br /&gt;
  {&lt;br /&gt;
 	// if data hasn&#039;t already been obtained, load it&lt;br /&gt;
 	if (empty($this-&amp;gt;_data)) {&lt;br /&gt;
 	    $query = $this-&amp;gt;_buildQuery();&lt;br /&gt;
 	    $this-&amp;gt;_data = $this-&amp;gt;_getList($query, $this-&amp;gt;getState(&#039;limitstart&#039;), $this-&amp;gt;getState(&#039;limit&#039;));	&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_data;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a getTotal() function.  This function uses the _getListCount() method from JModel to return the total number of rows in the query.  The value returned will be used by the getPagination() function.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getTotal()&lt;br /&gt;
  {&lt;br /&gt;
 	// Load the content if it doesn&#039;t already exist&lt;br /&gt;
 	if (empty($this-&amp;gt;_total)) {&lt;br /&gt;
 	    $query = $this-&amp;gt;_buildQuery();&lt;br /&gt;
 	    $this-&amp;gt;_total = $this-&amp;gt;_getListCount($query);	// _getListCount is from JModel class&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_total;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a getPagination() function.  The function will create and return a new Pagination object that can be accessed by the View.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  function getPagination()&lt;br /&gt;
  {&lt;br /&gt;
 	// Load the content if it doesn&#039;t already exist&lt;br /&gt;
 	if (empty($this-&amp;gt;_pagination)) {&lt;br /&gt;
 	    jimport(&#039;joomla.html.pagination&#039;);&lt;br /&gt;
 	    $this-&amp;gt;_pagination = new JPagination($this-&amp;gt;getTotal(), $this-&amp;gt;getState(&#039;limitstart&#039;), $this-&amp;gt;getState(&#039;limit&#039;) );&lt;br /&gt;
 	}&lt;br /&gt;
 	return $this-&amp;gt;_pagination;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changes to the View==&lt;br /&gt;
Revise the View to obtain the pagination object created in the Model and assign it for use in the template.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  	// Get data from the model&lt;br /&gt;
 	$items =&amp;amp; $this-&amp;gt;get(&#039;Data&#039;);	&lt;br /&gt;
 	$pagination =&amp;amp; $this-&amp;gt;get(&#039;Pagination&#039;);&lt;br /&gt;
&lt;br /&gt;
	// push data into the template&lt;br /&gt;
	$this-&amp;gt;assignRef(&#039;items&#039;, $items);	&lt;br /&gt;
	$this-&amp;gt;assignRef(&#039;pagination&#039;, $pagination);&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Changes to the Template==&lt;br /&gt;
Add a footer area to the display table in the template which holds the pagination object.  The method getListFooter() from the JPagination class generates the buttons and their next/previous functionality as shown in the image above.  Edit colspan=&amp;quot;9&amp;quot; to reflect the number of columns in the table.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
  &amp;lt;tfoot&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td colspan=&amp;quot;9&amp;quot;&amp;gt;&amp;lt;?php echo $this-&amp;gt;pagination-&amp;gt;getListFooter(); ?&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;/tfoot&amp;gt;&lt;br /&gt;
  ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Radiant tech</name></author>
	</entry>
</feed>