mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-12-26 10:58:49 +00:00
165 lines
4.4 KiB
PHP
165 lines
4.4 KiB
PHP
<?php
|
|
/**
|
|
* Page initiator
|
|
*
|
|
* @author Pierre HUBERT
|
|
*/
|
|
|
|
/**
|
|
* Include main config
|
|
*/
|
|
require_once __DIR__."/config/global.config.php";
|
|
|
|
/**
|
|
* Load a page
|
|
*
|
|
* @param string $config The configuration to use to load a page
|
|
* @return string Generated source page
|
|
*/
|
|
function load_page(string $config) : string {
|
|
|
|
//Load configuration
|
|
load_config($config);
|
|
$conf = new $config();
|
|
|
|
//Load page template
|
|
$source = file_get_contents(__DIR__."/tpl/page.tpl");
|
|
|
|
//Replace path to assets when required
|
|
$source = str_replace("{ASSETS_URL}", $config::ASSETS_URL, $source);
|
|
|
|
//Update javascript config
|
|
$source = str_replace("{js_config}", get_javascript_config($conf), $source);
|
|
|
|
//Update assets inclusion
|
|
if(is_array($conf::THIRD_PARTY_CSS)){
|
|
$source = str_replace("{THIRD_PARTY_CSS}", src_inc_list_css($conf::ASSETS_URL, $conf::THIRD_PARTY_CSS), $source);
|
|
$source = str_replace("{APP_CSS}", src_inc_list_css($conf::ASSETS_URL, $conf::APP_CSS), $source);
|
|
$source = str_replace("{THIRD_PARTY_JS}", src_inc_list_js($conf::ASSETS_URL, $conf::THIRD_PARTY_JS), $source);
|
|
$source = str_replace("{APP_JS}", src_inc_list_js($conf::ASSETS_URL, $conf::APP_JS), $source);
|
|
}
|
|
else {
|
|
$source = str_replace("{THIRD_PARTY_CSS}", src_inc_css($conf::ASSETS_URL.$conf::THIRD_PARTY_CSS), $source);
|
|
$source = str_replace("{APP_CSS}", src_inc_css($conf::ASSETS_URL.$conf::APP_CSS), $source);
|
|
$source = str_replace("{THIRD_PARTY_JS}", src_inc_js($conf::ASSETS_URL.$conf::THIRD_PARTY_JS), $source);
|
|
$source = str_replace("{APP_JS}", src_inc_js($conf::ASSETS_URL.$conf::APP_JS), $source);
|
|
}
|
|
|
|
return $source;
|
|
}
|
|
|
|
/**
|
|
* Load a configuration
|
|
*
|
|
* @param string $name The name of the configuration to load
|
|
*/
|
|
function load_config(string $config){
|
|
require_once __DIR__."/config/".$config.".config.php";
|
|
}
|
|
|
|
/**
|
|
* Get javascript configuration
|
|
*
|
|
* @param object $config The configuration object
|
|
* @return string The javascript configuration
|
|
*/
|
|
function get_javascript_config($config) : string {
|
|
$js_config = "<script>
|
|
|
|
var ComunicConfig = {
|
|
|
|
//Production mode
|
|
productionMode: ".($config::PROD_MODE ? "true" : "false").",
|
|
|
|
//AppVersion
|
|
appVersion: '".Config::VERSION."',
|
|
|
|
//Assets URL
|
|
assetsURL: '".$config::ASSETS_URL."',
|
|
|
|
//Templates URL
|
|
templatesURL : '".$config::ASSETS_URL.$config::TEMPLATES_PATH."',
|
|
|
|
//Site URL
|
|
siteURL: '".$config::SITE_URL."',
|
|
|
|
//API configuration
|
|
apiURL: '".$config::API_URL."',
|
|
apiClientName: '".$config::API_CLIENT_NAME."',
|
|
|
|
//About website URL
|
|
aboutWebsiteURL: '".$config::ABOUT_WEBSITE_URL."',
|
|
|
|
//Default language
|
|
defaultLanguage: '".$config::DEFAULT_LANGUAGE."',
|
|
|
|
"/*LanguagesPath
|
|
"languagesPath: '".$config::ASSETS_URL.$config::LANGUAGE_PATH."', */."
|
|
|
|
};
|
|
|
|
</script>";
|
|
|
|
return $js_config;
|
|
}
|
|
|
|
/**
|
|
* Return the source code to include an array of css assets
|
|
*
|
|
* @param string $asset_url URL path to assets
|
|
* @param array $files The list of files to include
|
|
* @return string Generated source code
|
|
*/
|
|
function src_inc_list_css(string $assets_url, array $files) : string {
|
|
$source = "";
|
|
|
|
//Process the list of files
|
|
foreach($files as $file){
|
|
$source .= src_inc_css($assets_url.$file)."\n\t\t";
|
|
}
|
|
|
|
return $source;
|
|
}
|
|
|
|
/**
|
|
* Return the source code to include an array of javascript assets
|
|
*
|
|
* @param string $asset_url URL path to assets
|
|
* @param array $files The list of files to include
|
|
* @return string Generated source code
|
|
*/
|
|
function src_inc_list_js(string $assets_url, array $files) : string {
|
|
$source = "";
|
|
|
|
//Process the list of files
|
|
foreach($files as $file){
|
|
|
|
if(is_array($file))
|
|
$file = $file["path"];
|
|
|
|
$source .= src_inc_js($assets_url.$file)."\n\t\t";
|
|
}
|
|
|
|
return $source;
|
|
}
|
|
|
|
/**
|
|
* Returns the source code to include a javascript file
|
|
*
|
|
* @param string $file The path to the file
|
|
* @return string Source code for including a javascript file
|
|
*/
|
|
function src_inc_js(string $file) : string{
|
|
return "<script type='text/javascript' src='".$file."'></script>";
|
|
}
|
|
|
|
/**
|
|
* Returns the source code to include a CSS file
|
|
*
|
|
* @param string $file Path to the CSS file
|
|
* @return string HTML Source code to include the CSS file
|
|
*/
|
|
function src_inc_css(string $file) : string {
|
|
return "<link rel='stylesheet' href='".$file."'>";
|
|
}
|