Common.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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: Common.php 25828 2011-11-23 10:50:40Z zhengqingpeng $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. class Cloud_Service_Server_Common extends Cloud_Service_Server_Restful {
  12. protected static $_instance;
  13. public static function getInstance() {
  14. if (!(self::$_instance instanceof self)) {
  15. self::$_instance = new self();
  16. }
  17. return self::$_instance;
  18. }
  19. public function onCommonSetConfig($data) {
  20. $settings = array();
  21. if (is_array($data) && $data) {
  22. foreach($data as $key => $val) {
  23. if (substr($key, 0, 3) != 'my_') {
  24. continue;
  25. }
  26. $settings[$key] = $val;
  27. }
  28. if ($settings) {
  29. C::t('common_setting')->update_batch($settings);
  30. require_once DISCUZ_ROOT . './source/function/function_cache.php';
  31. updatecache('setting');
  32. return true;
  33. }
  34. }
  35. return false;
  36. }
  37. public function onCommonGetConfig($keys) {
  38. global $_G;
  39. $confs = array();
  40. foreach ($keys as $key) {
  41. if ($key && $_G['setting']) {
  42. $setting = $_G['setting'];
  43. if ($key == 'search' && is_array($setting['search'])) {
  44. $conf = array();
  45. foreach ($setting['search'] as $app => $v) {
  46. $conf[$app] = array(
  47. 'status' => $v['status'] ? true : false,
  48. 'interval' => $v['searchctrl'],
  49. 'frequence' => $v['maxspm'],
  50. 'maxResults' => $v['maxsearchresults']
  51. );
  52. }
  53. $confs[$key] = $conf;
  54. continue;
  55. }
  56. if ($key == 'rewrite') {
  57. $conf = array();
  58. if ($setting['rewritestatus'] && $setting['rewriterule']) {
  59. $conf['compatible'] = $setting['rewritecompatible'] ? true : false;
  60. foreach($setting['rewriterule'] as $mod => $rule) {
  61. $conf['modules'][$mod]['rule'] = $rule;
  62. if (in_array($mod, $setting['rewritestatus'])) {
  63. $conf['modules'][$mod]['status'] = true;
  64. } else {
  65. $conf['modules'][$mod]['status'] = false;
  66. }
  67. }
  68. }
  69. $confs[$key] = $conf;
  70. continue;
  71. }
  72. }
  73. }
  74. return $confs;
  75. }
  76. public function onCommonGetNavs($type = '') {
  77. Cloud::loadFile('Service_SearchHelper');
  78. $navtype = null;
  79. switch($type) {
  80. case 'footer':
  81. $navtype = 1;
  82. break;
  83. case 'space':
  84. $navtype = 2;
  85. break;
  86. case 'my':
  87. $navtype = 3;
  88. break;
  89. case 'header':
  90. $navtype = 0;
  91. break;
  92. }
  93. $navs = $subNavs = array();
  94. foreach(C::t('common_nav')->fetch_all_by_navtype($navtype) as $nav) {
  95. if (!$nav['parentid']) {
  96. $navs[$nav['id']] = Cloud_Service_SearchHelper::convertNav($nav);
  97. } else {
  98. $subNavs[$nav['id']] = $nav;
  99. }
  100. }
  101. foreach($subNavs as $k => $v) {
  102. $navs[$v['parentid']]['navs'][$v['id']] = Cloud_Service_SearchHelper::convertNav($v);
  103. }
  104. return $navs;
  105. }
  106. }