optimizer_setting.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. <?php
  2. /**
  3. * [Discuz!] (C)2001-2099 Comsenz Inc.
  4. * This is NOT a freeware, use is subject to license terms
  5. *
  6. * $Id: optimizer_setting.php 33488 2013-06-24 01:48:20Z jeffjzhang $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. class optimizer_setting {
  12. private $setting;
  13. public function __construct() {
  14. include_once DISCUZ_ROOT.'./source/language/lang_optimizer.php';
  15. $this->setting = array(
  16. 'cacheindexlife' => array(
  17. 'initvalue' => '0',
  18. 'optimizedvalue' => '900',
  19. 'title' => $lang['optimizer_setting_cache_index'],
  20. 'description' => $lang['optimizer_setting_cache_index_desc'],
  21. 'optimizerdesc' => $lang['optimizer_setting_cache_optimize_desc'],
  22. ),
  23. 'cachethreadlife' => array(
  24. 'initvalue' => '0',
  25. 'optimizedvalue' => '900',
  26. 'title' => $lang['optimizer_setting_cache_post'],
  27. 'description' => $lang['optimizer_setting_cache_post_desc'],
  28. 'optimizerdesc'=> $lang['optimizer_setting_cache_post_optimize_desc'],
  29. ),
  30. 'optimizeviews' => array(
  31. 'initvalue' => '0',
  32. 'optimizedvalue' => '1',
  33. 'title' => $lang['optimizer_setting_optimizeviews'],
  34. 'description' => $lang['optimizer_setting_optimizeviews_desc'],
  35. 'optimizerdesc' => $lang['optimizer_setting_optimizeviews_optimize_desc'],
  36. ),
  37. 'delayviewcount' => array(
  38. 'initvalue' => '0',
  39. 'optimizedvalue' => '1',
  40. 'title' => $lang['optimizer_setting_delayviewcount'],
  41. 'description' => $lang['optimizer_setting_delayviewcount_desc'],
  42. 'optimizerdesc' => $lang['optimizer_setting_delayviewcount_optimize_desc'],
  43. ),
  44. 'preventrefresh' => array(
  45. 'initvalue' => '0',
  46. 'optimizedvalue' => '1',
  47. 'title' => $lang['optimizer_setting_preventrefresh'],
  48. 'description' => $lang['optimizer_setting_preventrefresh_desc'],
  49. 'optimizerdesc' => $lang['optimizer_setting_preventrefresh_optimize_desc'],
  50. ),
  51. 'nocacheheaders' => array(
  52. 'initvalue' => '1',
  53. 'optimizedvalue' => '0',
  54. 'title' => $lang['optimizer_setting_nocacheheaders'],
  55. 'description' => $lang['optimizer_setting_nocacheheaders_desc'],
  56. 'optimizerdesc' => $lang['optimizer_setting_nocacheheaders_optimize_desc'],
  57. ),
  58. 'jspath' => array(
  59. 'initvalue' => 'static/js/',
  60. 'optimizedvalue' => 'data/cache/',
  61. 'title' => $lang['optimizer_setting_jspath'],
  62. 'description' => $lang['optimizer_setting_jspath_desc'],
  63. 'optimizerdesc' => $lang['optimizer_setting_jspath_optimize_desc'],
  64. ),
  65. 'lazyload' => array(
  66. 'initvalue' => '0',
  67. 'optimizedvalue' => '1',
  68. 'title' => $lang['optimizer_setting_lazyload'],
  69. 'description' => $lang['optimizer_setting_lazyload_desc'],
  70. 'optimizerdesc' => $lang['optimizer_setting_lazyload_optimize_desc'],
  71. ),
  72. 'sessionclose' => array(
  73. 'initvalue' => '0',
  74. 'optimizedvalue' => '1',
  75. 'title' => $lang['optimizer_setting_sessionclose'],
  76. 'description' => $lang['optimizer_setting_sessionclose_desc'],
  77. 'optimizerdesc' => $lang['optimizer_setting_sessionclose_optimize_desc'],
  78. ),
  79. 'rewriteguest' => array(
  80. 'initvalue' => 0,
  81. 'optimizedvalue' => '1',
  82. 'title' => $lang['optimizer_setting_rewriteguest'],
  83. 'description' => $lang['optimizer_setting_rewriteguest_desc'],
  84. 'optimizerdesc' => $lang['optimizer_setting_rewriteguest_optimize_desc'],
  85. ),
  86. );
  87. }
  88. public function check() {
  89. $count = 0;
  90. $options = $this->get_option();
  91. foreach($options as $option) {
  92. if($option[4] == '1') {
  93. $count++;
  94. }
  95. }
  96. if($count) {
  97. $return = array('status' => 1, 'type' => 'view', 'lang' => lang('optimizer', 'optimizer_setting_need_optimizer', array('count' => $count)));
  98. } else {
  99. $return = array('status' => 0, 'type' => 'view', 'lang' => lang('optimizer', 'optimizer_setting_no_need'));
  100. }
  101. return $return;
  102. }
  103. public function optimizer() {
  104. $adminfile = defined(ADMINSCRIPT) ? ADMINSCRIPT : 'admin.php';
  105. dheader('Location: '.$_G['siteurl'].$adminfile.'?action=optimizer&operation=setting_optimizer&type=optimizer_setting&anchor=performance');
  106. }
  107. public function option_optimizer($options) {
  108. $update = array();
  109. foreach($options as $option) {
  110. if(isset($this->setting[$option])) {
  111. $update[$option] = $this->setting[$option]['optimizedvalue'];
  112. }
  113. }
  114. if($update) {
  115. C::t('common_setting')->update_batch($update);
  116. updatecache('setting');
  117. }
  118. return true;
  119. }
  120. public function get_option() {
  121. $return = array();
  122. $settings = C::t('common_setting')->fetch_all(array_keys($this->setting));
  123. foreach($this->setting as $k => $setting) {
  124. if($settings[$k] == $setting['initvalue']) {
  125. $return[] = array($k, $setting['title'], $setting['description'], $setting['optimizerdesc'], '1');
  126. } else {
  127. $return[] = array($k, $setting['title'], $setting['description'], $setting['optimizerdesc'], '0');
  128. }
  129. }
  130. return $return;
  131. }
  132. }
  133. ?>