Elxis filesystem

Last update by Elxis Team

A presentation of the Elxis filesystem structure.

Although Elxis is a full featured CMS the development team tried to create a solid filesystem in order for the CMS to have as small footprint as possible. The files are well organized in sub-folders based on their scope. The goal was for both the web master and the developer to be able to locate easily a file based on its functionality. For instance all media files are under a single folder (media/). In Elxis chaos refers only to cosmogony.

General structure

Root files

  • .htaccess: Needed in order SEO PRO links to work.
  • configuration.php: Contains the site general settings. If multisites are enabled extra configuration files in the form of configX.php are created, one for each site.
  • index.php: This is where the magic begins, a single point of entry for Elxis CMS. Elxis does not allow accessing directly PHP files except from 4 special ones index.php, inner.php, estia/index.php and estia/inner.php
  • inner.php: Same as for index.php but for internal requests (AJAX calls, popup windows, etc). In older Elxis versions (2009.x) it was named index2.php. Modules do not get loaded on inner.php requests.
  • license.txt: A copy of the Elxis Public License.

More extensions

Elxis has a number of other extension types (content plugins, search engines, etc). But where are those? I dont see them! In Elxis we consider some extension types as component specific. For example search engines rely on component Search and can not work without it. So we placed them inside that component. Here is where you should look for these extensions.

  • Search engines: Extensions for component search located in components/com_search/engines/
  • Content plugins: Extensions for component content located in components/com_content/plugins/
  • Authentication methods: Extensions for component user located in components/com_user/auth/

System libraries

Elxis libraries are great tools for the developers. They are located in includes/libraries/elxis/ and named following this pattern: name.class.php. Each library file contains a PHP class named as elxisName (the first character of the library uppercase). For example if you want to deal with files you should check the files.class.php file and the corresponding class is named elxisFiles. Most libraries get loaded via the Elxis Factory (eFactory) but this is outside the scope of this article.

Helpers

Helpers are core libraries for handling special tasks like encryption, tree generation, toolbar, zip, etc. They are located in includes/libraries/elxis/helpers/. A helper is always loaded via the elxisFramework instance.
Example:

$browser = eFactory::getElxis()->obj('browser');

 

It has been read 8795 times
Elxis 4.0 features
Next article
Elxis 4.0 features