Dissemination of views, information and knowledge without any cost or ado was made possible after blogging dawned upon us. Lets take a look at some of the burning topics, general discussion, innovations and techniques from our Editor’s desk
Apr 2 2013
Folder structure of Joomla 3.0.3: A look inside the Joomla 3.0 folder
Powering more than 2.4 % of all the websites present on the Internet, Joomla is the second most popular content management system available today. It is open source, highly customizable, secure, and has a collection of more than 6000 extensions on the main Joomla.org website alone. So if you are thinking about making your website in Joomla, you are thinking on the right track. But if you are not familiar with Joomla, the first step in learning Joomla is to understand what the directory structure of Joomla is along with learning the role of each folder and file in Joomla software.
The Folder structure of Joomla
For this tutorial we have installed Joomla 3.0.3 on XAMPP localhost server, so the main Joomla folder is in XAMMP directory at location xammp/htdocs/Joomla3. If you are using the Joomla content management system directly on the domain then the location would be different but the main Joomla directory will have the same contents.
Now, if you open the Joomla directory, the folders you will find inside it would be administrator, bin, cache, cli, components, images, includes, installation (removed after installation), layouts, libraries, logs, media, modules, templates, and tmp. In addition there are some PHP and txt files such as changlog.php, configuration.php, phpunit.xml.dist, htaccess.txt, index.php, licence.txt, and web.config.txt. Each file and folder has a role to play in the CMS which we will be discussing below.
Administrator folder contains all the PHP, CSS, and HTML files that make up the Joomla Administrator backend. The administrator folder contains 8 other folders such as cache, components, includes etc. This folder is very important and should not be touched if you wish for continued working of your website. The folder should only be touched if you know what you are doing or if you want to try something new on an experimental installation.
As the name suggests, this folder is used by the Joomla CMS and its extensions to store cached files.
The CLI of the folder stands for Command Line Interface and contains the stand alone command line applications that uses Joomla platform.
Components are sort of like a mini application that can be utilized to achieve various functionalities. They are a kind of Joomla extension that works at the front-end of the Joomla site and administrator page. The Component folder contains the components that are installed on Joomla, more specifically the components that will be functioning on the front end of the CMS. Every component comes with separate additional file that goes in joomla3/administrator/components and thus allows the component to be configured from the admin page.
Images folder contain all the images that you have stored in your Joomla CMS through the systems media manager. You can additionally add more images to the Joomla website by uploading it directly in the Images folder but that’s not advisable. Additional folders inside the Images folder corresponds to additional organizational directories you have created through the media manager or through a manual process.
Includes folder contain files that make up the Joomla framework. This folder is accessed by experienced programmers only specifically when creating and using custom extensions and modules.
This is temporary Joomla folder that contains the installation files for Joomla software. This is usually untouched by programmers and is removed after installation. A very useful folder and also a security risk so it is advised to remove it after installation.
Language is a type of Joomla extension along with components, modules, plugins, and templates, which focuses mainly on translating static string texts from one language to another. The language packs that may be installed either as extension or in the core Joomla, are stored in the Languages folder.
As the name suggests layout folder contains files that defines the layout of the rendered Joomla website. It contains the layout of the pages and all the layouts that you may have installed or used. Its used by programmers to create custom layout or to install a new layout manually by uploading a file in the folder.
This folder contains all the additional classes and Joomla application interface files, along with some additional Joomla files that are necessary for smooth running of the Joomla CMS.
Logs folder is used by the Joomla CMS and its extensions to store necessary log files. Its accessed only for debugging the CMS and understanding logged changes.
Media folder comprises of some additional media files that are saved in the Joomla galleries by the user either through the CMS itself or through extensions.
It is one of the most important folders of Joomla CMS along with Components, Template, and Plugin folder that contains the code for the installed modules of the Joomla website.
This folder contains the installed plugins that are used in the Joomla website. It also contains any files that are to be used in Joomla extensions as plugins.
As said earlier it a very important folder of the CMS and it contains all the template files of Joomla CMS, modules, plugins and components.
A temporary folder used in various CMS logics
Changelog.php is a Joomla log file that contains all the changes that have been made in the various versions of the Joomla CMS. It doesn’t have any function in the CMS and can be deleted. The file is not present in Joomla 3.0.3 but is included in the previous versions.
Configuration.php (This is created during installation)
This is a Joomla configuration file that contains username and passwords of MySQL database server along with some other useful data that is required by the CMS.
This is a sample .htaccess file that can be used to create an access file to the CMS in the domain’s apache server. It should be carefully used. The name has to be changed from .txt to .htaccess so that the Apacher server can recognize the file.
Index.PHP is the default PHP file that the CMS access in case of any error before even installing the CMS. It contains PHP version checker and some other useful constructors and initiators.
It is the file that contains the Joomla license information. It is often underestimated and neglected by even some professional web-developers but is a very significant file.
Robot.txt is very important file from search engine optimization point-of-view. It is used by search engines to recognize which pages to access and which are to be left alone and are not required for the search engine indexing.