Routing

SQL

By default, 8 SQL tables are created during the installation process:

All tables are prefixed with the chosen DB_PREFIX.

Informations for displaying home page are located in settings_(frt_bck), informations for specific pages are located in pages_(frt_bck), i18n informations in pages_lang_(frt_bck), and users informations in users_(frt_bck).

URL routing is automatically setted in ../core/(front_end/back_end)/actions/_init/themes.init.php

Three routing constants are defined and can also be used in the action files:

THEME_LANG_FRT/BCK // language defined for the involved page
THEME_FOLDER_FRT/BCK // theme defined for the involved page
TPL_FRT/BCK // TPL defined for the involved page

page_id

By default, a page is displayed by the GET_PAGE_ID ($_GET['page_id']) matched with the corresponding page_id_(frt/bck) in pages_(frt/bck).

<!-- Example -->
<a href="?page_id=1"> <!-- displays page whose page_id_(frt/bck) = 1 in DB -->

New pages can easily be created with the back-end panel. If GET_PAGE_ID does not exist in page_id_(frt/bck), a 404 error message will be displayed.

page_lang

A home page can also be displayed in different languages with GET_PAGE_LANG ($_GET['page_lang']):

<!-- Example -->
<a href="?page_lang=fr-fr"> <!-- displays French home page -->

If GET_PAGE_LANG does not exist as home page, a 404 error message will be displayed.

If another language that default language has been chosen via GET_PAGE_LANG, it will be stored in SESSION_PAGE_LANG and will become the new default language until another language is chosen.

A page can also be matched to another one with the same content but in another language (e.g. for purpose of translation); to do this, you need first to associate your referral page_id (e.g. '1' for 'en-us') with the corresponding page_id for the chosen language (e.g. '2' for 'fr-fr') in pages_lang_(frt/bck).

Then, create a HTML link which associate the language chosen with referral page_id:

<!-- Example -->
<a href="?page_lang=fr-fr&page_id=1">
<!-- will redirect user on the equivalent of page_id=1 for French language i.e. page_id=2 -->

Permissions

Access can be controlled with the constant AUTH_ACCESS_FRT/BCK in the actions files.

//-----------------------------------------------------
// restricted access
//-----------------------------------------------------
if (defined("AUTH_ACCESS_FRT/BCK") && (AUTH_ACCESS_FRT/BCK == x)) {

...

//-----------------------------------------------------
// public access
//-----------------------------------------------------
} else {

...

}

Replace 'x' by the user access level defined in users_frt/bck with user_level_access_frt/bck. User access level must be different from 0.