PageRenderTime 26ms CodeModel.GetById 13ms RepoModel.GetById 1ms app.codeStats 0ms

/admin/library/com/mokoala/config.php

https://bitbucket.org/rkandpal/nustechgmgitfork
PHP | 281 lines | 213 code | 47 blank | 21 comment | 37 complexity | a1ed2738fa41784cb8d0fb47da8f5c10 MD5 | raw file
  1. <?php
  2. // Parse config
  3. $config_ini = parse_ini_file(dirname(__FILE__).'/../../../config.ini.php');
  4. foreach( $config_ini as $config_key => $config_value )
  5. {
  6. if( is_string($config_value) )
  7. {
  8. $config_ini[$config_key] = MK_Utility::unescapeText( $config_value );
  9. }
  10. }
  11. // set timezone
  12. $config_ini['site.timezone'] = !empty($config_ini['site.timezone']) ? $config_ini['site.timezone'] : 'Europe/London' ;
  13. date_default_timezone_set($config_ini['site.timezone']);
  14. // Set error reporting
  15. $error_levels = array(
  16. 0 => 0,
  17. 1 => E_ERROR | E_WARNING | E_PARSE,
  18. 2 => E_ALL
  19. );
  20. $error_level = !empty($config_ini['site.error_reporting']) ? $config_ini['site.error_reporting'] : 1;
  21. $error_level = in_array($error_level, $error_levels) ? $error_level : 1;
  22. $error_level = $error_levels[$error_level];
  23. error_reporting( $error_level );
  24. // Current URI
  25. $current_page = parse_url($_SERVER['REQUEST_URI']);
  26. $current_page = $current_page['path'].(!empty($current_page['query']) ? '?'.$current_page['query'] : '').(!empty($current_page['fragment']) ? '#'.$current_page['fragment'] : '');
  27. // Base URI
  28. $base_href_path = pathinfo($_SERVER['SCRIPT_NAME'], PATHINFO_DIRNAME);
  29. $cookie_base_href_path = rtrim( str_replace('admin', '', $base_href_path), '\\/' ).'/';
  30. $current_page_name = str_replace_first($base_href_path, '', $current_page);
  31. $base_href_protocol = ( array_key_exists('HTTPS', $_SERVER) && $_SERVER['HTTPS'] !== 'off' ? 'https' : 'http' ).'://';
  32. if( array_key_exists('HTTP_HOST', $_SERVER) && !empty($_SERVER['HTTP_HOST']) )
  33. {
  34. $base_href_host = $_SERVER['HTTP_HOST'];
  35. }
  36. elseif( array_key_exists('SERVER_NAME', $_SERVER) && !empty($_SERVER['SERVER_NAME']) )
  37. {
  38. $base_href_host = $_SERVER['SERVER_NAME'].( $_SERVER['SERVER_PORT'] !== 80 ? ':'.$_SERVER['SERVER_PORT'] : '' );
  39. }
  40. $base_href = rtrim( $base_href_protocol.$base_href_host.$base_href_path, '\\/' ).'/';
  41. // $_POST, $_FILES, $_GET
  42. $params = $_GET;
  43. $post = array_merge_replace($_POST, $_FILES);
  44. $path = array();
  45. if( !empty( $params['module_path'] ) )
  46. {
  47. $path = array_filter( explode( '/', $params['module_path'] ) );
  48. unset( $params['module_path'] );
  49. }
  50. MK_Request::init( $params, $post );
  51. // Define Cookie & Session
  52. $cookie_path = str_replace('admin', '', $base_href_path);
  53. MK_Session::start( 'mk', $cookie_base_href_path, ( $_SERVER['SERVER_NAME'] === 'localhost' ? false : $base_href_host ) );
  54. MK_Cookie::start( $cookie_base_href_path, ( $_SERVER['SERVER_NAME'] === 'localhost' ? false : $base_href_host ) );
  55. // Get session
  56. $session = MK_Session::getInstance();
  57. /*
  58. Referring URL
  59. */
  60. if($tidy_referer = !empty($_SERVER['HTTP_REFERER']) ? parse_url($_SERVER['HTTP_REFERER']) : null)
  61. {
  62. $tidy_referer = $tidy_referer['path'].(!empty($tidy_referer['query']) ? '?'.$tidy_referer['query'] : '').(!empty($tidy_referer['fragment']) ? '#'.$tidy_referer['fragment'] : '');
  63. }
  64. if($tidy_current = !empty($_SERVER['REQUEST_URI']) ? parse_url($_SERVER['REQUEST_URI']) : null)
  65. {
  66. $tidy_current = $tidy_current['path'].(!empty($tidy_current['query']) ? '?'.$tidy_current['query'] : '').(!empty($tidy_current['fragment']) ? '#'.$tidy_current['fragment'] : '');
  67. }
  68. // If no refer has been set
  69. if( empty($session->referer) )
  70. {
  71. // Has the user came from another site
  72. if(!empty($tidy_referer) && strpos($_SERVER['HTTP_REFERER'], $base_href_host) === false)
  73. {
  74. $http_referer = $tidy_referer;
  75. }
  76. // If not then set their session to the actual referer
  77. else
  78. {
  79. $http_referer = $tidy_current;
  80. }
  81. }
  82. elseif( $tidy_referer !== $tidy_current )
  83. {
  84. $http_referer = $tidy_referer;
  85. }
  86. else
  87. {
  88. $http_referer = $session->referer;
  89. }
  90. $session->referer = $http_referer;
  91. // Custom module settings
  92. foreach($config_ini as $custom_key => $custom_value)
  93. {
  94. $config_key_sections = explode('.', $custom_key);
  95. if(count($config_key_sections) === 3 && $config_key_sections[0] === 'extensions')
  96. {
  97. $config_data['extensions'][$config_key_sections[1]][$config_key_sections[2]] = $custom_value;
  98. }
  99. }
  100. // Template / Theme
  101. list($template, $template_theme) = explode('/', $config_ini['site.template']);
  102. $config_data['db']['host'] = (string) !empty($config_ini['db.host']) ? $config_ini['db.host'] : null;
  103. $config_data['db']['name'] = (string) !empty($config_ini['db.name']) ? $config_ini['db.name'] : null;
  104. $config_data['db']['username'] = (string) !empty($config_ini['db.username']) ? $config_ini['db.username'] : null;
  105. $config_data['db']['password'] = (string) !empty($config_ini['db.password']) ? $config_ini['db.password'] : null;
  106. $config_data['db']['charset'] = (string) 'utf8';
  107. $config_data['db']['components'] = !empty($config_ini['db.components']) ? $config_ini['db.components'] : array();
  108. $config_data['site']['facebook']['app_id'] = (string) !empty($config_ini['site.facebook.app_id']) ? $config_ini['site.facebook.app_id'] : null;
  109. $config_data['site']['facebook']['app_secret'] = (string) !empty($config_ini['site.facebook.app_secret']) ? $config_ini['site.facebook.app_secret'] : null;
  110. $config_data['site']['facebook']['login'] = (boolean) !empty($config_ini['site.facebook.login']) ? $config_ini['site.facebook.login'] : null;
  111. $config_data['site']['twitter']['app_key'] = (string) !empty($config_ini['site.twitter.app_key']) ? $config_ini['site.twitter.app_key'] : null;
  112. $config_data['site']['twitter']['app_secret'] = (string) !empty($config_ini['site.twitter.app_secret']) ? $config_ini['site.twitter.app_secret'] : null;
  113. $config_data['site']['twitter']['login'] = (boolean) !empty($config_ini['site.twitter.login']) ? $config_ini['site.twitter.login'] : null;
  114. $config_data['site']['yahoo']['consumer_key'] = (string) !empty($config_ini['site.yahoo.consumer_key']) ? $config_ini['site.yahoo.consumer_key'] : null;
  115. $config_data['site']['yahoo']['consumer_secret'] = (string) !empty($config_ini['site.yahoo.consumer_secret']) ? $config_ini['site.yahoo.consumer_secret'] : null;
  116. $config_data['site']['yahoo']['app_id'] = (string) !empty($config_ini['site.yahoo.app_id']) ? $config_ini['site.yahoo.app_id'] : null;
  117. $config_data['site']['yahoo']['login'] = (boolean) !empty($config_ini['site.yahoo.login']) ? $config_ini['site.yahoo.login'] : null;
  118. $config_data['site']['windowslive']['client_id'] = (string) !empty($config_ini['site.windowslive.client_id']) ? $config_ini['site.windowslive.client_id'] : null;
  119. $config_data['site']['windowslive']['client_secret']= (string) !empty($config_ini['site.windowslive.client_secret']) ? $config_ini['site.windowslive.client_secret'] : null;
  120. $config_data['site']['windowslive']['login'] = (boolean) !empty($config_ini['site.windowslive.login']) ? $config_ini['site.windowslive.login'] : null;
  121. $config_data['site']['google']['client_id'] = (string) !empty($config_ini['site.google.client_id']) ? $config_ini['site.google.client_id'] : null;
  122. $config_data['site']['google']['client_secret']= (string) !empty($config_ini['site.google.client_secret']) ? $config_ini['site.google.client_secret'] : null;
  123. $config_data['site']['google']['login'] = (boolean) !empty($config_ini['site.google.login']) ? $config_ini['site.google.login'] : null;
  124. $config_data['site']['installed'] = (boolean) !empty($config_ini['site.installed']) ? $config_ini['site.installed'] : null;
  125. $config_data['site']['path'] = (string) realpath(dirname(__FILE__).'/../../../..');
  126. $config_data['site']['base'] = (string) str_replace('admin', '', $base_href_path);
  127. $config_data['site']['page'] = (string) $current_page;
  128. $config_data['site']['page_name'] = (string) $current_page_name;
  129. $config_data['site']['base_href'] = (string) $base_href;
  130. $config_data['site']['upload_path'] = (string) !empty($config_ini['site.upload_path']) ? $config_ini['site.upload_path'] : null;
  131. $config_data['admin']['path'] = (string) realpath(dirname(__FILE__).'/../../..');
  132. $config_data['site']['valid_file_extensions'] = !empty($config_ini['site.valid_file_extensions']) ? explode(',', $config_ini['site.valid_file_extensions']) : array();
  133. $config_data['site']['date_format'] = (string) !empty($config_ini['site.date_format']) ? $config_ini['site.date_format'] : null;
  134. $config_data['site']['time_format'] = (string) !empty($config_ini['site.time_format']) ? $config_ini['site.time_format'] : null;
  135. $config_data['site']['datetime_format'] = (string) $config_data['site']['date_format'].' \a\t '.$config_data['site']['time_format'];
  136. $config_data['site']['referer'] = (string) $session->referer;
  137. $config_data['site']['charset'] = (string) 'utf-8';
  138. $config_data['site']['name'] = (string) !empty($config_ini['site.name']) ? $config_ini['site.name'] : null;
  139. $config_data['site']['url'] = (string) !empty($config_ini['site.url']) ? $config_ini['site.url'] : null;
  140. $config_data['site']['timezone'] = (string) $config_ini['site.timezone'];
  141. $config_data['site']['email'] = (string) !empty($config_ini['site.email']) ? $config_ini['site.email'] : null;
  142. $config_data['site']['email_signature'] = (string) !empty($config_ini['site.email_signature']) ? $config_ini['site.email_signature'] : null;
  143. $config_data['site']['user_timeout'] = (integer) !empty($config_ini['user.timeout']) ? $config_ini['user.timeout'] : null;
  144. $config_data['server']['local'] = (string) $_SERVER['SERVER_NAME'] === 'localhost' ? true : false;
  145. $config_data['server']['name'] = (string) $base_href_host;
  146. $config_data['server']['time'] = (integer) time();
  147. $config_data['server']['execution_start'] = (float) !empty($start) ? $start : 0;
  148. $config_data['template'] = (string) $template;
  149. $config_data['template_theme'] = (string) $template_theme;
  150. $config_data['core']['name'] = (string) 'Mokoala';
  151. $config_data['core']['version'] = (string) '3.5.0';
  152. $config_data['core']['mode'] = (string) MK_Core::MODE_PRODUCT;
  153. $config_data['core']['clean_uris'] = (boolean) false;
  154. $config_data['core']['url'] = (string) 'http://mokoala.com/';
  155. $config_data['instance']['name'] = (string) 'Grocery Mate CMS';
  156. $config_data['instance']['version'] = (string) '3.0';
  157. $config_data['instance']['url'] = (string) 'http://marketplace.mattlowden.com/php/user-manager/';
  158. // If the PayPal API details are defined then instantiate the PayPal API class
  159. if( function_exists('curl_init') && !empty($config_data['extensions']['payments_paypal']['api_signature']) && !empty($config_data['extensions']['payments_paypal']['api_password']) && !empty($config_data['extensions']['payments_paypal']['api_username']) && !empty($config_data['extensions']['payments_paypal']['currency']) )
  160. {
  161. $config_data['paypal'] = new MK_PayPal($config_data['extensions']['payments_paypal']['api_username'], $config_data['extensions']['payments_paypal']['api_password'], $config_data['extensions']['payments_paypal']['api_signature'], true);
  162. }
  163. // If the Facebook API & Secret are defined then load the Facebook API class
  164. if( function_exists('curl_init') && function_exists('json_encode') && !empty($config_data['site']['facebook']['app_secret']) && !empty($config_data['site']['facebook']['app_id']) )
  165. {
  166. $facebook = new Facebook(array(
  167. 'appId' => $config_data['site']['facebook']['app_id'],
  168. 'secret' => $config_data['site']['facebook']['app_secret'],
  169. 'cookie' => false
  170. ));
  171. $config_data['facebook'] = $facebook;
  172. }
  173. else
  174. {
  175. $config_data['site']['facebook']['login'] = (boolean) false;
  176. $config_data['facebook'] = null;
  177. }
  178. // If the Windows Live API details are defined then instantiate the Windows Live API class
  179. if( $config_data['site']['windowslive']['login'] && $config_data['site']['windowslive']['client_id'] && $config_data['site']['windowslive']['client_secret'] )
  180. {
  181. $config_data['windowslive'] = new WindowsLive($config_data['site']['windowslive']['client_id'], $config_data['site']['windowslive']['client_secret'], $config_data['site']['url']);
  182. }
  183. else
  184. {
  185. $config_data['site']['windowslive']['login'] = (boolean) false;
  186. $config_data['windowslive'] = null;
  187. }
  188. // If the Twitter Key & Secret are defined then load the Twitter API class
  189. if( !empty($config_data['site']['twitter']['app_secret']) && !empty($config_data['site']['twitter']['app_key']) )
  190. {
  191. if(empty($session->twitter_access_token) && ( $oauth_verifier = MK_Request::getQuery('oauth_verifier') ) && !empty($session->twitter_oauth_token) && !empty($session->twitter_oauth_token_secret))
  192. {
  193. $twitter = new TwitterOAuth($config_data['site']['twitter']['app_key'], $config_data['site']['twitter']['app_secret'], $session->twitter_oauth_token, $session->twitter_oauth_token_secret);
  194. unset($session->twitter_oauth_token, $session->twitter_oauth_token_secret);
  195. $twitter_access_token = $twitter->getAccessToken($oauth_verifier);
  196. $session->twitter_access_token = true;
  197. $twitter = new TwitterOAuth($config_data['site']['twitter']['app_key'], $config_data['site']['twitter']['app_secret'], $twitter_access_token['oauth_token'], $twitter_access_token['oauth_token_secret']);
  198. }
  199. else
  200. {
  201. $twitter = new TwitterOAuth($config_data['site']['twitter']['app_key'], $config_data['site']['twitter']['app_secret']);
  202. }
  203. $config_data['twitter'] = $twitter;
  204. }
  205. else
  206. {
  207. $config_data['site']['twitter']['login'] = (boolean) false;
  208. $config_data['twitter'] = null;
  209. }
  210. // If the Google Key & Secret are defined then load the Google API class
  211. if( !empty($config_data['site']['google']['client_id']) && !empty($config_data['site']['google']['client_secret']) )
  212. {
  213. if(empty($session->google_access_token) && ( $oauth_verifier = MK_Request::getQuery('oauth_verifier') ) && !empty($session->google_oauth_token) && !empty($session->google_oauth_token_secret))
  214. {
  215. $google = new GoogleOAuth($config_data['site']['google']['client_id'], $config_data['site']['google']['client_secret'], $session->google_oauth_token, $session->google_oauth_token_secret);
  216. unset($session->google_oauth_token, $session->google_oauth_token_secret);
  217. $google_access_token = $google->getAccessToken($oauth_verifier);
  218. $session->google_access_token = true;
  219. $google = new GoogleOAuth($config_data['site']['google']['client_id'], $config_data['site']['google']['client_secret'], $google_access_token['oauth_token'], $google_access_token['oauth_token_secret']);
  220. }
  221. else
  222. {
  223. $google = new GoogleOAuth($config_data['site']['google']['client_id'], $config_data['site']['google']['client_secret']);
  224. }
  225. $config_data['google'] = $google;
  226. }
  227. else
  228. {
  229. $config_data['site']['google']['login'] = (boolean) false;
  230. $config_data['google'] = null;
  231. }
  232. MK_Config::loadConfig($config_data);
  233. $config = MK_Config::getInstance();
  234. ?>