Init.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <?php
  2. namespace app\common\behavior;
  3. use think\Cache;
  4. use think\Exception;
  5. class Init
  6. {
  7. public function run(&$params)
  8. {
  9. // 主题配置已在 App::init() 中通过 extra 扫描加载,此处不再重复 include mctheme.php
  10. // 同步到 $GLOBALS 供模板与 mac_tpl_* 直接读取,避免重复 config() 解析
  11. $GLOBALS['mctheme'] = config('mctheme') ?: ['theme' => []];
  12. $config = config('maccms');
  13. $domain = config('domain');
  14. $isMobile = 0;
  15. $ua = strtolower($_SERVER['HTTP_USER_AGENT']);
  16. $uachar = "/(nokia|sony|ericsson|mot|samsung|sgh|lg|philips|panasonic|alcatel|lenovo|meizu|cldc|midp|iphone|wap|mobile|android)/i";
  17. if((preg_match($uachar, $ua))) {
  18. $isMobile = 1;
  19. }
  20. $isDomain=0;
  21. if( is_array($domain) && !empty($domain[$_SERVER['HTTP_HOST']])){
  22. $config['site'] = array_merge($config['site'],$domain[$_SERVER['HTTP_HOST']]);
  23. $isDomain=1;
  24. if(empty($config['site']['mob_template_dir']) || $config['site']['mob_template_dir'] =='no'){
  25. $config['site']['mob_template_dir'] = $config['site']['template_dir'];
  26. }
  27. $config['site']['site_wapurl'] = $config['site']['site_url'];
  28. $config['site']['mob_html_dir'] = $config['site']['html_dir'];
  29. $config['site']['mob_ads_dir'] = $config['site']['ads_dir'];
  30. }
  31. $TMP_ISWAP = 0;
  32. $TMP_TEMPLATEDIR = $config['site']['template_dir'];
  33. $TMP_HTMLDIR = $config['site']['html_dir'];
  34. $TMP_ADSDIR = $config['site']['ads_dir'];
  35. if($isMobile && $isDomain==0){
  36. if( ($config['site']['mob_status']==2 ) || ($config['site']['mob_status']==1 && $_SERVER['HTTP_HOST']==$config['site']['site_wapurl']) || ($config['site']['mob_status']==1 && $isDomain) ) {
  37. $TMP_ISWAP = 1;
  38. $TMP_TEMPLATEDIR = $config['site']['mob_template_dir'];
  39. $TMP_HTMLDIR = $config['site']['mob_html_dir'];
  40. $TMP_ADSDIR = $config['site']['mob_ads_dir'];
  41. }
  42. }
  43. define('MAC_URL','http'.'://'.'www'.'.'.'maccms'.'.'.'la'.'/');
  44. define('MAC_NAME','苹果CMS');
  45. define('MAC_PATH', $config['site']['install_dir'] .'');
  46. define('MAC_MOB', $TMP_ISWAP);
  47. define('MAC_ROOT_TEMPLATE', ROOT_PATH .'template/'.$TMP_TEMPLATEDIR.'/'. $TMP_HTMLDIR .'/');
  48. define('MAC_PATH_TEMPLATE', MAC_PATH.'template/'.$TMP_TEMPLATEDIR.'/');
  49. define('MAC_PATH_TPL', MAC_PATH_TEMPLATE. $TMP_HTMLDIR .'/');
  50. define('MAC_PATH_ADS', MAC_PATH_TEMPLATE. $TMP_ADSDIR .'/');
  51. define('MAC_PAGE_SP', $config['path']['page_sp'] .'');
  52. define('MAC_PLAYER_SORT', $config['app']['player_sort'] );
  53. define('MAC_ADDON_PATH', ROOT_PATH . 'addons' . '/');
  54. define('MAC_ADDON_PATH_STATIC', ROOT_PATH . 'static/addons/');
  55. $GLOBALS['MAC_ROOT_TEMPLATE'] = ROOT_PATH .'template/'.$TMP_TEMPLATEDIR.'/'. $TMP_HTMLDIR .'/';
  56. $GLOBALS['MAC_PATH_TEMPLATE'] = MAC_PATH.'template/'.$TMP_TEMPLATEDIR.'/';
  57. $GLOBALS['MAC_PATH_TPL'] = $GLOBALS['MAC_PATH_TEMPLATE']. $TMP_HTMLDIR .'/';
  58. $GLOBALS['MAC_PATH_ADS'] = $GLOBALS['MAC_PATH_TEMPLATE']. $TMP_ADSDIR .'/';
  59. $GLOBALS['http_type'] = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://';
  60. if(ENTRANCE=='index'){
  61. config('dispatch_success_tmpl','public/jump');
  62. config('dispatch_error_tmpl','public/jump');
  63. }
  64. config('template.view_path', 'template/' . $TMP_TEMPLATEDIR .'/' . $TMP_HTMLDIR .'/');
  65. if(ENTRANCE=='admin'){
  66. if(!file_exists('./template/' . $TMP_TEMPLATEDIR .'/' . $TMP_HTMLDIR .'/')){
  67. config('template.view_path','');
  68. }
  69. }
  70. if(intval($config['app']['search_len'])<1){
  71. $config['app']['search_len'] = 10;
  72. }
  73. config('url_route_on',$config['rewrite']['route_status']);
  74. if(empty($config['app']['pathinfo_depr'])){
  75. $config['app']['pathinfo_depr'] = '/';
  76. }
  77. config('pathinfo_depr',$config['app']['pathinfo_depr']);
  78. if(intval($config['app']['cache_time'])<1){
  79. $config['app']['cache_time'] = 60;
  80. }
  81. config('cache.expire', $config['app']['cache_time'] );
  82. if(!in_array($config['app']['cache_type'],['file','memcache','memcached','redis'])){
  83. $config['app']['cache_type'] = 'file';
  84. }
  85. if(!empty($config['app']['lang'])){
  86. config('default_lang', $config['app']['lang']);
  87. }
  88. config('cache.type', $config['app']['cache_type']);
  89. config('cache.timeout',1000);
  90. config('cache.host',$config['app']['cache_host']);
  91. config('cache.port',$config['app']['cache_port']);
  92. config('cache.username',$config['app']['cache_username']);
  93. config('cache.password',$config['app']['cache_password']);
  94. if($config['app']['cache_type'] == 'redis' && isset($config['app']['cache_db']) && intval($config['app']['cache_db']) > 0){
  95. config('cache.select', intval($config['app']['cache_db']));
  96. }
  97. if($config['app']['cache_type'] != 'file'){
  98. $opt = config('cache');
  99. Cache::$handler = null;
  100. }
  101. $GLOBALS['config'] = $config;
  102. }
  103. }