mirror of
				https://github.com/pierre42100/ComunicWeb
				synced 2025-10-31 10:14:51 +00:00 
			
		
		
		
	Upgraded initialization system
This commit is contained in:
		| @@ -18,7 +18,7 @@ ComunicWeb.debug = { | |||||||
|      */ |      */ | ||||||
|     logMessage: function(message){ |     logMessage: function(message){ | ||||||
|         //We check we are not in production mode |         //We check we are not in production mode | ||||||
|         if(ComunicWeb.__config.productionMode != 1){ |         if(ComunicWeb.__config.productionMode != true){ | ||||||
|             console.log("ComunicWebApp debug message", message); |             console.log("ComunicWebApp debug message", message); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,218 +0,0 @@ | |||||||
| <?php |  | ||||||
| /** |  | ||||||
|  * PHP dev config for the website |  | ||||||
|  * |  | ||||||
|  * @author Pierre HUBERT |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| //Path to assets |  | ||||||
| $config['pathAssets'] = $config['siteURL']."assets/"; |  | ||||||
|  |  | ||||||
| //3rdparty CSS files to include |  | ||||||
| $config['3rdPartyCSSfiles'] = array( |  | ||||||
| 	//CSS files - adminLTE distribution / bootstrap / plugins |  | ||||||
| 	"%PATH_ASSETS%3rdparty/adminLTE/bootstrap/css/bootstrap.min.css", |  | ||||||
| 	"%PATH_ASSETS%3rdparty/adminLTE/plugins/font-awesome/css/font-awesome.min.css", |  | ||||||
| 	"%PATH_ASSETS%3rdparty/adminLTE/plugins/ionicons/css/ionicons.min.css", |  | ||||||
| 	"%PATH_ASSETS%3rdparty/adminLTE/plugins/iCheck/square/blue.css", |  | ||||||
| 	"%PATH_ASSETS%3rdparty/adminLTE/plugins/iCheck/flat/blue.css", |  | ||||||
| 	"%PATH_ASSETS%3rdparty/adminLTE/plugins/select2/select2.min.css", |  | ||||||
| 	"%PATH_ASSETS%3rdparty/adminLTE/dist/css/AdminLTE.min.css", |  | ||||||
| 	"%PATH_ASSETS%3rdparty/adminLTE/dist/css/skins/_all-skins.min.css", |  | ||||||
|  |  | ||||||
| 	//Light box |  | ||||||
| 	"%PATH_ASSETS%3rdparty/lightbox/ekko-lightbox.min.css", |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| //App CSS files |  | ||||||
| $config['CSSfiles'] = array( |  | ||||||
| 	//App stylesheets - common stylesheets |  | ||||||
| 	"%PATH_ASSETS%css/common/global.css", |  | ||||||
| 	"%PATH_ASSETS%css/common/page/waitSplashScreen.css", |  | ||||||
| 	"%PATH_ASSETS%css/common/network/networkError.css", |  | ||||||
|  |  | ||||||
| 	//Components stylesheets |  | ||||||
| 		//Menubar stylesheet |  | ||||||
| 		"%PATH_ASSETS%css/components/menuBar.css", |  | ||||||
| 		 |  | ||||||
| 		//Searchform stylesheet |  | ||||||
| 		"%PATH_ASSETS%css/components/searchForm.css", |  | ||||||
| 		 |  | ||||||
| 		//Friendbar stylesheet |  | ||||||
| 		"%PATH_ASSETS%css/components/friends/friendsBar.css", |  | ||||||
| 		 |  | ||||||
| 		//Conversations stylesheet |  | ||||||
| 		"%PATH_ASSETS%css/components/conversations/manager.css", |  | ||||||
| 		"%PATH_ASSETS%css/components/conversations/windows.css", |  | ||||||
| 		"%PATH_ASSETS%css/components/conversations/list.css", |  | ||||||
| 		 |  | ||||||
| 		//User selector stylesheet |  | ||||||
| 		"%PATH_ASSETS%css/components/userSelect/userSelect.css", |  | ||||||
|  |  | ||||||
| 		//Emojies |  | ||||||
| 		"%PATH_ASSETS%css/components/emoji/parser.css", |  | ||||||
|  |  | ||||||
| 		//Posts component |  | ||||||
| 		"%PATH_ASSETS%css/components/posts/ui.css", |  | ||||||
|  |  | ||||||
| 	//Pages stylesheets |  | ||||||
| 		//User Page |  | ||||||
| 		"%PATH_ASSETS%css/pages/userPage/main.css", |  | ||||||
| 		"%PATH_ASSETS%css/pages/userPage/accessForbidden.css", |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| //3rd party JS files to include (at the end of the page) |  | ||||||
| $config['3rdPartyJSfiles'] = array( |  | ||||||
| 	//Jquery |  | ||||||
| 	"%PATH_ASSETS%3rdparty/adminLTE/plugins/jQuery/jquery-2.2.3.min.js", |  | ||||||
| 	 |  | ||||||
| 	//Bootstrap |  | ||||||
| 	"%PATH_ASSETS%3rdparty/adminLTE/bootstrap/js/bootstrap.min.js", |  | ||||||
| 	 |  | ||||||
| 	//JQuery UI |  | ||||||
| 	"%PATH_ASSETS%3rdparty/adminLTE/plugins/jquery-ui/jquery-ui.min.js", |  | ||||||
| 	 |  | ||||||
| 	//iCheck |  | ||||||
| 	"%PATH_ASSETS%3rdparty/adminLTE/plugins/iCheck/icheck.min.js", |  | ||||||
| 	 |  | ||||||
| 	//Slimscroll |  | ||||||
| 	"%PATH_ASSETS%3rdparty/adminLTE/plugins/slimScroll/jquery.slimscroll.min.js", |  | ||||||
| 	 |  | ||||||
| 	//Select2 |  | ||||||
| 	"%PATH_ASSETS%3rdparty/adminLTE/plugins/select2/select2.min.js", |  | ||||||
| 	 |  | ||||||
| 	//adminLTE script |  | ||||||
| 	"%PATH_ASSETS%3rdparty/adminLTE/dist/js/app.min.js", |  | ||||||
|  |  | ||||||
| 	//Bootstrap notify |  | ||||||
| 	"%PATH_ASSETS%3rdparty/bootstrap-notify-3.1.3.min.js", |  | ||||||
|  |  | ||||||
| 	//Twitter emojies |  | ||||||
| 	"%PATH_ASSETS%3rdparty/twemoji/2/twemoji.min.js", |  | ||||||
|  |  | ||||||
| 	//Textarea auto-size |  | ||||||
| 	"%PATH_ASSETS%3rdparty/jquery.textarea_autosize/jquery.textarea_autosize.min.js", |  | ||||||
|  |  | ||||||
| 	//Light box |  | ||||||
| 	"%PATH_ASSETS%3rdparty/lightbox/ekko-lightbox.min.js", |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| //Application JS files |  | ||||||
| $config['JSfiles'] = array( |  | ||||||
|  |  | ||||||
| 	//Utilities |  | ||||||
| 	"%PATH_ASSETS%js/common/utils.js", |  | ||||||
|  |  | ||||||
| 	//Functions schema |  | ||||||
| 	"%PATH_ASSETS%js/common/functionsSchema.js", |  | ||||||
|  |  | ||||||
| 	//Pages list |  | ||||||
| 	"%PATH_ASSETS%js/pagesList.js", |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 	//App scripts -- common scripts |  | ||||||
| 	"%PATH_ASSETS%js/common/cacheManager.js", |  | ||||||
| 	"%PATH_ASSETS%js/common/network.js", |  | ||||||
| 	"%PATH_ASSETS%js/common/api.js", |  | ||||||
| 	"%PATH_ASSETS%js/common/errors.js", |  | ||||||
| 	"%PATH_ASSETS%js/common/messages.js", |  | ||||||
| 	"%PATH_ASSETS%js/common/langs.js", |  | ||||||
| 	"%PATH_ASSETS%js/common/url.js", |  | ||||||
| 	"%PATH_ASSETS%js/common/jsFiles.js", |  | ||||||
| 	"%PATH_ASSETS%js/common/debug.js", |  | ||||||
| 	"%PATH_ASSETS%js/common/page.js", |  | ||||||
| 	"%PATH_ASSETS%js/common/notifications.js", |  | ||||||
| 	"%PATH_ASSETS%js/common/formChecker.js", |  | ||||||
| 	"%PATH_ASSETS%js/common/date.js", |  | ||||||
| 	"%PATH_ASSETS%js/common/system.js", |  | ||||||
|  |  | ||||||
| 	//Default langage |  | ||||||
| 	"%PATH_ASSETS%js/langs/en.inc.js", |  | ||||||
|  |  | ||||||
| 	//Components |  | ||||||
| 		//Mail caching |  | ||||||
| 		"%PATH_ASSETS%js/components/mailCaching.js", |  | ||||||
| 		 |  | ||||||
| 		//Search form |  | ||||||
| 		"%PATH_ASSETS%js/components/searchForm/searchForm.js", |  | ||||||
| 		 |  | ||||||
| 		//Main menubar |  | ||||||
| 		"%PATH_ASSETS%js/components/menuBar/common.js", |  | ||||||
| 		"%PATH_ASSETS%js/components/menuBar/notAuthenticated.js", |  | ||||||
| 		"%PATH_ASSETS%js/components/menuBar/authenticated.js", |  | ||||||
| 		 |  | ||||||
| 		//Friends components |  | ||||||
| 		"%PATH_ASSETS%js/components/friends/friendsList.js", |  | ||||||
| 		"%PATH_ASSETS%js/components/friends/friendsBar.js", |  | ||||||
| 		 |  | ||||||
| 		//Private conversations |  | ||||||
| 		"%PATH_ASSETS%js/components/conversations/manager.js", |  | ||||||
| 		"%PATH_ASSETS%js/components/conversations/list.js", |  | ||||||
| 		"%PATH_ASSETS%js/components/conversations/windows.js", |  | ||||||
| 		"%PATH_ASSETS%js/components/conversations/chatWindows.js", |  | ||||||
| 		"%PATH_ASSETS%js/components/conversations/interface.js", |  | ||||||
| 		"%PATH_ASSETS%js/components/conversations/service.js", |  | ||||||
| 		"%PATH_ASSETS%js/components/conversations/cachingOpened.js", |  | ||||||
| 		"%PATH_ASSETS%js/components/conversations/utils.js", |  | ||||||
| 		 |  | ||||||
| 		//User selector |  | ||||||
| 		"%PATH_ASSETS%js/components/userSelect/userSelect.js", |  | ||||||
|  |  | ||||||
| 		//Emojies |  | ||||||
| 		"%PATH_ASSETS%js/components/emoji/parser.js", |  | ||||||
| 		"%PATH_ASSETS%js/components/emoji/list.js", |  | ||||||
|  |  | ||||||
| 		//Like button |  | ||||||
| 		"%PATH_ASSETS%js/components/like/button.js", |  | ||||||
| 		"%PATH_ASSETS%js/components/like/interface.js", |  | ||||||
|  |  | ||||||
| 		//Posts component |  | ||||||
| 		"%PATH_ASSETS%js/components/posts/interface.js", |  | ||||||
| 		"%PATH_ASSETS%js/components/posts/ui.js", |  | ||||||
|  |  | ||||||
| 		//Modern textarea handler |  | ||||||
| 		"%PATH_ASSETS%js/components/textarea.js", |  | ||||||
|  |  | ||||||
| 	//User scripts |  | ||||||
| 	"%PATH_ASSETS%js/user/loginTokens.js", |  | ||||||
| 	"%PATH_ASSETS%js/user/userLogin.js", |  | ||||||
| 	"%PATH_ASSETS%js/user/userInfos.js", |  | ||||||
| 		 |  | ||||||
|  |  | ||||||
| 	//Pages scripts |  | ||||||
| 		//Home page |  | ||||||
| 		"%PATH_ASSETS%js/pages/home/home.js", |  | ||||||
| 		"%PATH_ASSETS%js/pages/home/landingPage.js", |  | ||||||
| 		 |  | ||||||
| 		//User page |  | ||||||
| 		"%PATH_ASSETS%js/pages/userPage/main.js", |  | ||||||
| 		"%PATH_ASSETS%js/pages/userPage/accessForbidden.js", |  | ||||||
| 		"%PATH_ASSETS%js/pages/userPage/friendshipStatus.js", |  | ||||||
| 		"%PATH_ASSETS%js/pages/userPage/profileInfos.js", |  | ||||||
| 		"%PATH_ASSETS%js/pages/userPage/posts.js", |  | ||||||
|  |  | ||||||
| 		//Login page |  | ||||||
| 		"%PATH_ASSETS%js/pages/login.js", |  | ||||||
| 		 |  | ||||||
| 		//Logout page |  | ||||||
| 		"%PATH_ASSETS%js/pages/logout.js", |  | ||||||
|  |  | ||||||
| 	//Create shortcuts for common functions |  | ||||||
| 	"%PATH_ASSETS%js/common/shorcuts.js", |  | ||||||
| 	"%PATH_ASSETS%js/common/helpers.js", |  | ||||||
|  |  | ||||||
| 	//Init script |  | ||||||
| 	"%PATH_ASSETS%js/init.js", |  | ||||||
| ); |  | ||||||
|  |  | ||||||
| //JS language path |  | ||||||
| $config['languagesPath'] = "%PATH_ASSETS%js/langs/"; |  | ||||||
|  |  | ||||||
| //Production mode |  | ||||||
| $config['productionMode'] = 0; |  | ||||||
|  |  | ||||||
| //Application version |  | ||||||
| $config['appVersion'] = "0.1"; |  | ||||||
|  |  | ||||||
| //Templates URL |  | ||||||
| $config['templatesURL'] = $config['pathAssets']."templates/"; |  | ||||||
| @@ -1,17 +0,0 @@ | |||||||
| <?php |  | ||||||
| /** |  | ||||||
|  * Project main config page |  | ||||||
|  * |  | ||||||
|  * @author Pierre HUBERT |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| //Site mode (could be dev or prod) |  | ||||||
| $config['siteMode'] = "dev"; |  | ||||||
|  |  | ||||||
| //Site URL |  | ||||||
| $config['siteURL'] = "http://devweb.local/comunic/v2/"; |  | ||||||
|  |  | ||||||
| //API config |  | ||||||
| $config['API_URL'] = "http://devweb.local/comunic/api/"; |  | ||||||
| $config['API_SERVICE_NAME'] = "ComunicWeb"; |  | ||||||
| $config['API_SERVICE_TOKEN'] = "12XU67pJUlnNQ"; |  | ||||||
| @@ -1,26 +0,0 @@ | |||||||
| <?php |  | ||||||
| /** |  | ||||||
|  * Assets helper inclusion |  | ||||||
|  * |  | ||||||
|  * @author Pierre HUBERT |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * Returns the source code for including a javascript file |  | ||||||
|  *  |  | ||||||
|  * @param String $file The path to the file |  | ||||||
|  * @return String Source code for including a javascript file |  | ||||||
|  */ |  | ||||||
| function javascriptFileInclusionCode($file){ |  | ||||||
|     return "<script type='text/javascript' src='".$file."'></script>".(config['siteMode'] == 0 ? "\n\t\t" : ""); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * Returns the source code for including a CSS file |  | ||||||
|  *  |  | ||||||
|  * @param String $file Path to the CSS file |  | ||||||
|  * @return String HTML Source code to include the CSS file |  | ||||||
|  */ |  | ||||||
| function CSSFileInclusionCode($file){ |  | ||||||
|     return "<link rel='stylesheet' href='".$file."'>".(config['siteMode'] == 0 ? "\n\t\t" : ""); |  | ||||||
| } |  | ||||||
| @@ -1,34 +0,0 @@ | |||||||
| <?php |  | ||||||
| /** |  | ||||||
|  * Page initiator |  | ||||||
|  * |  | ||||||
|  * @author Pierre HUBERT |  | ||||||
|  */ |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * Define system path |  | ||||||
|  */ |  | ||||||
| define("SYSTEM_PATH", __DIR__."/"); |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * Include main config |  | ||||||
|  */ |  | ||||||
|  require(SYSTEM_PATH."config/global.config.php"); |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * Include site mode config |  | ||||||
|  */ |  | ||||||
| require(SYSTEM_PATH."config/".$config['siteMode'].".config.php"); |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * Include helpers |  | ||||||
|  */ |  | ||||||
| foreach (glob(SYSTEM_PATH . "helpers/*.php") as $file) { |  | ||||||
|     //Including helpers file |  | ||||||
|     include($file); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| /** |  | ||||||
|  * Make config constant |  | ||||||
|  */ |  | ||||||
| define("config", $config); |  | ||||||
							
								
								
									
										136
									
								
								index.php
									
									
									
									
									
								
							
							
						
						
									
										136
									
								
								index.php
									
									
									
									
									
								
							| @@ -1,123 +1,23 @@ | |||||||
| <?php | <?php | ||||||
|     //Include page initiator | /** | ||||||
|     include("corePage/initPage.php"); |  * Comunic Web APP launcher | ||||||
|  |  *  | ||||||
|  |  * @author Pierre HUBERT | ||||||
|  |  */ | ||||||
|  |  | ||||||
|     //We check if it is a redirection | //We check if it is a redirection to handle 404 errors | ||||||
|     if(isset($_SERVER["REDIRECT_URL"])){ | if(isset($_SERVER["REDIRECT_URL"])){ | ||||||
|         //We check if it is an asset request |     //We check if it is an asset request | ||||||
|         if(preg_match("<assets>", $_SERVER["REDIRECT_URL"])){ |     if(preg_match("<assets>", $_SERVER["REDIRECT_URL"])){ | ||||||
|             //This is a 404 not found error... |         //This is a 404 not found error... | ||||||
|             echo "<p>Error! 404 not found</p>"; |         echo "<p>Error! 404 not found</p>"; | ||||||
|             http_response_code(404); |         http_response_code(404); | ||||||
|             exit(); |         exit(); | ||||||
|         } |  | ||||||
|     } |     } | ||||||
| ?> | } | ||||||
| <!-- |  | ||||||
|     Comunic web app client |  | ||||||
|     Main HTML file |  | ||||||
|  |  | ||||||
|     (c) Pierre HUBERT 2017 | //Include system | ||||||
| --> | require __DIR__."/system/system.php"; | ||||||
| <!DOCTYPE html> |  | ||||||
| <html> |  | ||||||
|     <head> |  | ||||||
|         <!-- Page title, should be automaticaly modified next --> |  | ||||||
|         <title>Comunic</title> |  | ||||||
|  |  | ||||||
|         <!-- Make the website responsive --> | //Load the page | ||||||
|         <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> | echo load_page("dev"); | ||||||
|  |  | ||||||
|         <!-- UTF-8 support --> |  | ||||||
|         <meta charset="utf-8"> |  | ||||||
|  |  | ||||||
|         <!-- Favicons --> |  | ||||||
|         <link rel="icon" type="image/vnd.microsoft.icon" href="<?php echo config['pathAssets']; ?>img/favicon.png" /> |  | ||||||
|         <link rel="shortcut icon" type="image/x-icon" href="<?php echo config['pathAssets']; ?>img/favicon.png" /> |  | ||||||
|  |  | ||||||
|         <!--3rdPary Stylesheet requirements --> |  | ||||||
|         <?php |  | ||||||
|             foreach($config['3rdPartyCSSfiles'] as $file){ |  | ||||||
|                 //Include CSS file |  | ||||||
|                 $file = str_replace("%PATH_ASSETS%", $config['pathAssets'], $file); |  | ||||||
|                 echo CSSFileInclusionCode($file); |  | ||||||
|             } |  | ||||||
|         ?> |  | ||||||
|  |  | ||||||
|         <!--App Stylesheet requirements --> |  | ||||||
|         <?php |  | ||||||
|             foreach($config['CSSfiles'] as $file){ |  | ||||||
|                 //Include CSS file |  | ||||||
|                 $file = str_replace("%PATH_ASSETS%", $config['pathAssets'], $file); |  | ||||||
|                 echo CSSFileInclusionCode($file); |  | ||||||
|             } |  | ||||||
|         ?> |  | ||||||
|  |  | ||||||
|         <!-- Javascript config --> |  | ||||||
|         <script> |  | ||||||
|             //Configuration definition |  | ||||||
|             var ComunicConfig = { |  | ||||||
|                 //Production mode |  | ||||||
|                 productionMode: <?php echo config['productionMode']; ?>, |  | ||||||
|  |  | ||||||
|                 //AppVersion |  | ||||||
|                 appVersion: "<?php echo config['appVersion']; ?>", |  | ||||||
|  |  | ||||||
|                 //Assets URL |  | ||||||
|                 assetsURL: "<?php echo config['pathAssets']; ?>", |  | ||||||
|  |  | ||||||
|                 //Templates URL |  | ||||||
|                 templatesURL : "<?php echo config['templatesURL']; ?>", |  | ||||||
|  |  | ||||||
|                 //Site URL |  | ||||||
|                 siteURL: "<?php echo config['siteURL']; ?>", |  | ||||||
|  |  | ||||||
|                 //apiURL and credentials |  | ||||||
|                 apiURL: "<?php echo config['API_URL']; ?>", |  | ||||||
|                 apiServiceName: "<?php echo config['API_SERVICE_NAME']; ?>", |  | ||||||
|                 apiServiceToken: "<?php echo config['API_SERVICE_TOKEN']; ?>", |  | ||||||
|  |  | ||||||
|                 //Default language |  | ||||||
|                 defaultLanguage: "en", |  | ||||||
|  |  | ||||||
|                 //LanguagesPath |  | ||||||
|                 languagesPath: "<?php echo str_replace("%PATH_ASSETS%", config['pathAssets'], config['languagesPath']); ?>", |  | ||||||
|             }; |  | ||||||
|         </script> |  | ||||||
|          |  | ||||||
|     </head> |  | ||||||
|     <body> |  | ||||||
|         <!-- Welcome message --> |  | ||||||
|         <div style="text-align: center; font-size: 150%; padding-top: 10%;"> |  | ||||||
|             Welcome !<br /> |  | ||||||
|             Bienvenue !<br /><br /> |  | ||||||
|  |  | ||||||
|             <img src="<?php echo config['pathAssets']; ?>img/roundProgress.gif" /><br /><br /> |  | ||||||
|  |  | ||||||
|             Please wait while Comunic is starting...<br /> |  | ||||||
|             Veuillez patienter pendant le démarrage de Comunic...<br /><br /> |  | ||||||
|          |  | ||||||
|          |  | ||||||
|             <p><small>If this screen doesn't disappear after a while, please check javascript is enabled in your browser...</small></p> |  | ||||||
|         </div> |  | ||||||
|      |  | ||||||
|         <!-- 3rdparty Javascript files inclusion --> |  | ||||||
|         <?php |  | ||||||
|             foreach($config['3rdPartyJSfiles'] as $file){ |  | ||||||
|                 //Include JS file |  | ||||||
|                 $file = str_replace("%PATH_ASSETS%", $config['pathAssets'], $file); |  | ||||||
|                 echo javascriptFileInclusionCode($file); |  | ||||||
|             } |  | ||||||
|         ?> |  | ||||||
|  |  | ||||||
|         <!-- Application Javascript files inclusion --> |  | ||||||
|         <?php |  | ||||||
|             foreach($config['JSfiles'] as $file){ |  | ||||||
|                 //Include JS file |  | ||||||
|                 $file = str_replace("%PATH_ASSETS%", $config['pathAssets'], $file); |  | ||||||
|                 echo javascriptFileInclusionCode($file); |  | ||||||
|             } |  | ||||||
|         ?> |  | ||||||
|  |  | ||||||
|     </body> |  | ||||||
| </html> |  | ||||||
|   | |||||||
							
								
								
									
										240
									
								
								system/config/dev.config.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										240
									
								
								system/config/dev.config.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,240 @@ | |||||||
|  | <?php | ||||||
|  | /** | ||||||
|  |  * PHP dev config for the website | ||||||
|  |  * | ||||||
|  |  * @author Pierre HUBERT | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | class Dev { | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Site URL | ||||||
|  | 	 */ | ||||||
|  | 	const SITE_URL = "http://devweb.local/comunic/v2/"; | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Site production mode | ||||||
|  | 	 */ | ||||||
|  | 	const PROD_MODE = false; | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Path to assets | ||||||
|  | 	 */ | ||||||
|  | 	const ASSETS_URL = "http://devweb.local/comunic/v2/assets/"; | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Third party CSS files | ||||||
|  | 	 */ | ||||||
|  | 	const THIRD_PARTY_CSS = array( | ||||||
|  | 		//CSS files - adminLTE distribution / bootstrap / plugins | ||||||
|  | 		"3rdparty/adminLTE/bootstrap/css/bootstrap.min.css", | ||||||
|  | 		"3rdparty/adminLTE/plugins/font-awesome/css/font-awesome.min.css", | ||||||
|  | 		"3rdparty/adminLTE/plugins/ionicons/css/ionicons.min.css", | ||||||
|  | 		"3rdparty/adminLTE/plugins/iCheck/square/blue.css", | ||||||
|  | 		"3rdparty/adminLTE/plugins/iCheck/flat/blue.css", | ||||||
|  | 		"3rdparty/adminLTE/plugins/select2/select2.min.css", | ||||||
|  | 		"3rdparty/adminLTE/dist/css/AdminLTE.min.css", | ||||||
|  | 		"3rdparty/adminLTE/dist/css/skins/_all-skins.min.css", | ||||||
|  |  | ||||||
|  | 		//Light box | ||||||
|  | 		"3rdparty/lightbox/ekko-lightbox.min.css" | ||||||
|  | 	); | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Third party Javascript files | ||||||
|  | 	 */ | ||||||
|  | 	const THIRD_PARTY_JS = array( | ||||||
|  | 		//Jquery | ||||||
|  | 		"3rdparty/adminLTE/plugins/jQuery/jquery-2.2.3.min.js", | ||||||
|  | 		 | ||||||
|  | 		//Bootstrap | ||||||
|  | 		"3rdparty/adminLTE/bootstrap/js/bootstrap.min.js", | ||||||
|  | 		 | ||||||
|  | 		//JQuery UI | ||||||
|  | 		"3rdparty/adminLTE/plugins/jquery-ui/jquery-ui.min.js", | ||||||
|  | 		 | ||||||
|  | 		//iCheck | ||||||
|  | 		"3rdparty/adminLTE/plugins/iCheck/icheck.min.js", | ||||||
|  | 		 | ||||||
|  | 		//Slimscroll | ||||||
|  | 		"3rdparty/adminLTE/plugins/slimScroll/jquery.slimscroll.min.js", | ||||||
|  | 		 | ||||||
|  | 		//Select2 | ||||||
|  | 		"3rdparty/adminLTE/plugins/select2/select2.min.js", | ||||||
|  | 		 | ||||||
|  | 		//adminLTE script | ||||||
|  | 		"3rdparty/adminLTE/dist/js/app.min.js", | ||||||
|  |  | ||||||
|  | 		//Bootstrap notify | ||||||
|  | 		"3rdparty/bootstrap-notify-3.1.3.min.js", | ||||||
|  |  | ||||||
|  | 		//Twitter emojies | ||||||
|  | 		"3rdparty/twemoji/2/twemoji.min.js", | ||||||
|  |  | ||||||
|  | 		//Textarea auto-size | ||||||
|  | 		"3rdparty/jquery.textarea_autosize/jquery.textarea_autosize.min.js", | ||||||
|  |  | ||||||
|  | 		//Light box | ||||||
|  | 		"3rdparty/lightbox/ekko-lightbox.min.js", | ||||||
|  | 	); | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Application CSS files | ||||||
|  | 	 */ | ||||||
|  | 	const APP_CSS = array( | ||||||
|  | 		//App stylesheets - common stylesheets | ||||||
|  | 		"css/common/global.css", | ||||||
|  | 		"css/common/page/waitSplashScreen.css", | ||||||
|  | 		"css/common/network/networkError.css", | ||||||
|  |  | ||||||
|  | 		//Components stylesheets | ||||||
|  | 			//Menubar stylesheet | ||||||
|  | 			"css/components/menuBar.css", | ||||||
|  | 			 | ||||||
|  | 			//Searchform stylesheet | ||||||
|  | 			"css/components/searchForm.css", | ||||||
|  | 			 | ||||||
|  | 			//Friendbar stylesheet | ||||||
|  | 			"css/components/friends/friendsBar.css", | ||||||
|  | 			 | ||||||
|  | 			//Conversations stylesheet | ||||||
|  | 			"css/components/conversations/manager.css", | ||||||
|  | 			"css/components/conversations/windows.css", | ||||||
|  | 			"css/components/conversations/list.css", | ||||||
|  | 			 | ||||||
|  | 			//User selector stylesheet | ||||||
|  | 			"css/components/userSelect/userSelect.css", | ||||||
|  |  | ||||||
|  | 			//Emojies | ||||||
|  | 			"css/components/emoji/parser.css", | ||||||
|  |  | ||||||
|  | 			//Posts component | ||||||
|  | 			"css/components/posts/ui.css", | ||||||
|  |  | ||||||
|  | 		//Pages stylesheets | ||||||
|  | 			//User Page | ||||||
|  | 			"css/pages/userPage/main.css", | ||||||
|  | 			"css/pages/userPage/accessForbidden.css", | ||||||
|  | 	); | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Application JS files | ||||||
|  | 	 */ | ||||||
|  | 	const APP_JS = array( | ||||||
|  |  | ||||||
|  | 		//Utilities | ||||||
|  | 		"js/common/utils.js", | ||||||
|  |  | ||||||
|  | 		//Functions schema | ||||||
|  | 		"js/common/functionsSchema.js", | ||||||
|  |  | ||||||
|  | 		//Pages list | ||||||
|  | 		"js/pagesList.js", | ||||||
|  |  | ||||||
|  |  | ||||||
|  | 		//App scripts -- common scripts | ||||||
|  | 		"js/common/cacheManager.js", | ||||||
|  | 		"js/common/network.js", | ||||||
|  | 		"js/common/api.js", | ||||||
|  | 		"js/common/errors.js", | ||||||
|  | 		"js/common/messages.js", | ||||||
|  | 		"js/common/langs.js", | ||||||
|  | 		"js/common/url.js", | ||||||
|  | 		"js/common/jsFiles.js", | ||||||
|  | 		"js/common/debug.js", | ||||||
|  | 		"js/common/page.js", | ||||||
|  | 		"js/common/notifications.js", | ||||||
|  | 		"js/common/formChecker.js", | ||||||
|  | 		"js/common/date.js", | ||||||
|  | 		"js/common/system.js", | ||||||
|  |  | ||||||
|  | 		//Default langage | ||||||
|  | 		"js/langs/en.inc.js", | ||||||
|  |  | ||||||
|  | 		//Components | ||||||
|  | 			//Mail caching | ||||||
|  | 			"js/components/mailCaching.js", | ||||||
|  | 			 | ||||||
|  | 			//Search form | ||||||
|  | 			"js/components/searchForm/searchForm.js", | ||||||
|  | 			 | ||||||
|  | 			//Main menubar | ||||||
|  | 			"js/components/menuBar/common.js", | ||||||
|  | 			"js/components/menuBar/notAuthenticated.js", | ||||||
|  | 			"js/components/menuBar/authenticated.js", | ||||||
|  | 			 | ||||||
|  | 			//Friends components | ||||||
|  | 			"js/components/friends/friendsList.js", | ||||||
|  | 			"js/components/friends/friendsBar.js", | ||||||
|  | 			 | ||||||
|  | 			//Private conversations | ||||||
|  | 			"js/components/conversations/manager.js", | ||||||
|  | 			"js/components/conversations/list.js", | ||||||
|  | 			"js/components/conversations/windows.js", | ||||||
|  | 			"js/components/conversations/chatWindows.js", | ||||||
|  | 			"js/components/conversations/interface.js", | ||||||
|  | 			"js/components/conversations/service.js", | ||||||
|  | 			"js/components/conversations/cachingOpened.js", | ||||||
|  | 			"js/components/conversations/utils.js", | ||||||
|  | 			 | ||||||
|  | 			//User selector | ||||||
|  | 			"js/components/userSelect/userSelect.js", | ||||||
|  |  | ||||||
|  | 			//Emojies | ||||||
|  | 			"js/components/emoji/parser.js", | ||||||
|  | 			"js/components/emoji/list.js", | ||||||
|  |  | ||||||
|  | 			//Like button | ||||||
|  | 			"js/components/like/button.js", | ||||||
|  | 			"js/components/like/interface.js", | ||||||
|  |  | ||||||
|  | 			//Posts component | ||||||
|  | 			"js/components/posts/interface.js", | ||||||
|  | 			"js/components/posts/ui.js", | ||||||
|  |  | ||||||
|  | 			//Modern textarea handler | ||||||
|  | 			"js/components/textarea.js", | ||||||
|  |  | ||||||
|  | 		//User scripts | ||||||
|  | 		"js/user/loginTokens.js", | ||||||
|  | 		"js/user/userLogin.js", | ||||||
|  | 		"js/user/userInfos.js", | ||||||
|  | 			 | ||||||
|  |  | ||||||
|  | 		//Pages scripts | ||||||
|  | 			//Home page | ||||||
|  | 			"js/pages/home/home.js", | ||||||
|  | 			"js/pages/home/landingPage.js", | ||||||
|  | 			 | ||||||
|  | 			//User page | ||||||
|  | 			"js/pages/userPage/main.js", | ||||||
|  | 			"js/pages/userPage/accessForbidden.js", | ||||||
|  | 			"js/pages/userPage/friendshipStatus.js", | ||||||
|  | 			"js/pages/userPage/profileInfos.js", | ||||||
|  | 			"js/pages/userPage/posts.js", | ||||||
|  |  | ||||||
|  | 			//Login page | ||||||
|  | 			"js/pages/login.js", | ||||||
|  | 			 | ||||||
|  | 			//Logout page | ||||||
|  | 			"js/pages/logout.js", | ||||||
|  |  | ||||||
|  | 		//Create shortcuts for common functions | ||||||
|  | 		"js/common/shorcuts.js", | ||||||
|  | 		"js/common/helpers.js", | ||||||
|  |  | ||||||
|  | 		//Init script | ||||||
|  | 		"js/init.js", | ||||||
|  | 	); | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Language settings | ||||||
|  | 	 */ | ||||||
|  | 	const LANGUAGE_PATH = "js/langs/"; | ||||||
|  | 	const DEFAULT_LANGUAGE = "en"; | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Templates settings | ||||||
|  | 	 */ | ||||||
|  | 	const TEMPLATES_PATH = "templates/"; | ||||||
|  | } | ||||||
							
								
								
									
										22
									
								
								system/config/global.config.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								system/config/global.config.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | |||||||
|  | <?php | ||||||
|  | /** | ||||||
|  |  * Project main config page (common properties) | ||||||
|  |  * | ||||||
|  |  * @author Pierre HUBERT | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | class Config { | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Application version | ||||||
|  | 	 */ | ||||||
|  | 	const VERSION = "0.1"; | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * API access and credentials | ||||||
|  | 	 */ | ||||||
|  | 	const API_URL = "http://devweb.local/comunic/api/"; | ||||||
|  | 	const API_SERVICE_NAME = "ComunicWeb"; | ||||||
|  | 	const API_SERVICE_TOKEN = "12XU67pJUlnNQ"; | ||||||
|  |  | ||||||
|  | } | ||||||
							
								
								
									
										141
									
								
								system/system.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										141
									
								
								system/system.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,141 @@ | |||||||
|  | <?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 | ||||||
|  |     require __DIR__."/config/".$config.".config.php"; | ||||||
|  |     $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 | ||||||
|  |     $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); | ||||||
|  |  | ||||||
|  |     return $source; | ||||||
|  | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 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."', | ||||||
|  |         apiServiceName: '".Config::API_SERVICE_NAME."', | ||||||
|  |         apiServiceToken: '".Config::API_SERVICE_TOKEN."', | ||||||
|  |  | ||||||
|  |         //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){ | ||||||
|  |         $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."'>"; | ||||||
|  | } | ||||||
							
								
								
									
										55
									
								
								system/tpl/page.tpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								system/tpl/page.tpl
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | |||||||
|  | <!-- | ||||||
|  |     Comunic web app client | ||||||
|  |     Main HTML file | ||||||
|  |  | ||||||
|  |     (c) Pierre HUBERT 2017 | ||||||
|  | --> | ||||||
|  | <!DOCTYPE html> | ||||||
|  | <html> | ||||||
|  |     <head> | ||||||
|  |         <!-- Page title, should be automaticaly modified next --> | ||||||
|  |         <title>Comunic</title> | ||||||
|  |  | ||||||
|  |         <!-- Make the website responsive --> | ||||||
|  |         <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport"> | ||||||
|  |  | ||||||
|  |         <!-- UTF-8 support --> | ||||||
|  |         <meta charset="utf-8"> | ||||||
|  |  | ||||||
|  |         <!-- Favicons --> | ||||||
|  |         <link rel="icon" type="image/vnd.microsoft.icon" href="{ASSETS_URL}img/favicon.png" /> | ||||||
|  |         <link rel="shortcut icon" type="image/x-icon" href="{ASSETS_URL}img/favicon.png" /> | ||||||
|  |  | ||||||
|  |         <!--3rdPary Stylesheet requirements --> | ||||||
|  |         {THIRD_PARTY_CSS} | ||||||
|  |  | ||||||
|  |         <!--App Stylesheet requirements --> | ||||||
|  |         {APP_CSS} | ||||||
|  |  | ||||||
|  |         <!-- Javascript config --> | ||||||
|  |         {js_config} | ||||||
|  |          | ||||||
|  |     </head> | ||||||
|  |     <body> | ||||||
|  |         <!-- Welcome message --> | ||||||
|  |         <div style="text-align: center; font-size: 150%; padding-top: 10%;"> | ||||||
|  |             Welcome !<br /> | ||||||
|  |             Bienvenue !<br /><br /> | ||||||
|  |  | ||||||
|  |             <img src="{ASSETS_URL}img/roundProgress.gif" /><br /><br /> | ||||||
|  |  | ||||||
|  |             Please wait while Comunic is starting...<br /> | ||||||
|  |             Veuillez patienter pendant le démarrage de Comunic...<br /><br /> | ||||||
|  |          | ||||||
|  |          | ||||||
|  |             <p><small>If this screen doesn't disappear after a while, please check javascript is enabled in your browser...</small></p> | ||||||
|  |         </div> | ||||||
|  |      | ||||||
|  |         <!-- 3rdparty Javascript files inclusion --> | ||||||
|  |         {THIRD_PARTY_JS} | ||||||
|  |  | ||||||
|  |         <!-- Application Javascript files inclusion --> | ||||||
|  |         {APP_JS} | ||||||
|  |  | ||||||
|  |     </body> | ||||||
|  | </html> | ||||||
		Reference in New Issue
	
	Block a user
	 Pierre
					Pierre