Joomla has back end and front end interface. If you observe that when you login to joomla site with URL like http://localhost/joomla/administrator/ so this indicate that you are entering the interface from the administrator area whereas http://localhost/joomla/ will take you to front end interface. When someone tries to enter into administrator area, he lands into index.php file of Administrator folder. On the other hand front end user lands into root folder and index.php file of root folder is lifted for the front end access.
Administrator folder has similar directory structure like Joomla root directory structure which you will observe after reading the details below. Look into the details of Joomla directory structure.
Cache– Joomla uses this folder to store cached pages. If Joomla cache feature is ON then Joomla uses cached pages to deliver content instead of accessing database and generating content. It improves CMS performance and reduces the load on server.
CLI – This folder stores command- line- interface (CLI) applications.
Components – This folder stores front end files of all the components. Inside this components folder, there are sub-folders for specific component like com_banners, com_contact, com_content (for articles), com_finder (for Smart Search), com_mailto, com_media, com_search, com_users etc resides which has their specific front end component files.
Images – This folder contains all the images used in the applications.
Includes –When a front- end or back- end session is started it loads different classes and constants into memory. The files inside in this Includes folder load the files that we require to start a front-end session. There is one similar includes folder in administrator/includes which loads files that are needed for starting a back-end session.
Installation – This is a completely independent application which plays important role at the time of Joomla installation. It is a self-contained application. Whenever Joomla is accessed either through back-end or front-end, system checks for file called configuration.php located in the root directory. If system do not find configuration.php then it start the installation application. After the Joomla installation, this installation application create configuration.php file and installation folder need to be removed either manually or automatically. This is reason, the installation folder is not visible in already installed Joomla but same is available in Joomla installation package.
Language – Joomla has native support for more than 68 languages. All the text strings in the Joomla applications are translated in particular language before showing it on browser. Joomla accomplish this task with the help of language pack of each language. Each language pack has set of language files which provide appropriate word for each text string. For a standard English Joomla installation, there are two sub folders inside language folder, namely language/en-GB and language/overrides. The subfolder en-GB contains language file which help in translating text whereas subfolder overrides provides files which can change the value of text string without changing the entire language file. The current language folder contain language file for the front end language translations whereas back-end language files are placed inside administrator/language folder.
Layouts – This folder contains all the layout files. Joomla 3.0 introduced JLayout class, it helps in creating layout for views which are repeatedly used in the display. Before this class, the layouts were confined with specific view file but JLayout empowers for the cases where specific layouts like sidebar, search etc can be commonly used between different views.
Libraries – This contains multiple subfolder where each folder has specific library file. Software libraries have set of programs which are used repeatedly in several main applications. What we see in Joomla CMS, Joomla framework is all compilation of these library file which in totality provides a vast set of functionality. Phpmailer library set is used to send emails, framework library has core framework programs, CMS library has Joomla CMS set of programs etc.
Logs – This folder contains event logs which are generated on certain condition. For example Joomla generates error logs in program error conditions and same is registered in error.log file.
Modules – It contains subfolder for each of the Joomla module. A similar module subfolder exists in administrator folder for backend modules. The naming convention for each module folder is very simple like mod_menu, mod_banners, mod_feed ,mod_login , mod_search etc.
Plugins – This folder contains subfolder for each of the Joomla plugin extension like authentication, search, system, content etc. Each plugin has specific role which is triggered on particular event.
Templates – This folder contains subfolder for each of the front end template. The back end templates are located in administrator/template folder.
Tmp – As the name suggest, this folder stores temporary files. For example , when new extension is installed Joomla places a archived copy of extension in tem folder and then unzips the achieve copy for installation into appropriate directory.
Administrator – This is main folder where all the backend files are located. Whenever any user enters from Joomla backend with URL like http://localhost/joomla/administrator/, the first file lifted is index.php from this administrator folder. You can browse inside this folder where you will see that it has folder cache, components, help, includes, language, manifests, modules and templates. So these folders serve for all the essential application requirement of back end.
Administrator/Cache -This folder contains the cache files for the back end of the site.
Administrator/Components – It contains all the Joomla components that are available in the Joomla back-end.
Administrator/Help – Contains XML file for links of Joomla help pages and HTML file help for local /online help
Administrator/Includes – This folder keeps all the files which connect to all the essential files for an active back-end session.
Administrator/Language – This is same as top level language folder which is used for front end language translation whereas this is used for back end language translation. Each language folder like en-GB has two language file with extension ini and sys.ini.
Administrator/Manifests – It contains three subfolder files, libraries and packages. These folders have files which support for one click update feature in Joomla. These files help in updating the Joomla installation.
Administrator/Modules – It has multiple subfolder for each of the back end Joomla module
Administrator/Templates – Contains template file for the back end
Administrator/index.php – First file which is used by the browser when administrator back end is accessed.
Top Root Level Files in Joomla
It is created after successful Joomla installation. It has all the settings for site, database connection and other Joomla configurations.
It can be renamed to .htaccess and used with the Apache web server for mod_rewrite feature. It eliminates the index.php from all Joomla URLs and improves security of Joomla installation, if used.
This is the first file that is loaded by the web server for front end interface.
Contains Joomla license information
Contains general information about Joomla
Search engines robots automatically crawls into the web space for collecting the page index information. Robots.txt file can be used to grant permission or limit access to crawler into your web space. Some malicious robots can steal your web information if permission is open for all crawlers. The backend pages and other sub-folders which need not to be indexed by search engine can be blocked through this file.
robots.txt.dist is a distribution/model file.
It is similar to .htaccess file but it is used for web servers which are running Microsoft IIS.