config.inc.php 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. <?php
  2. /**
  3. * This is NOT a freeware, use is subject to license terms
  4. * From www.1314study.com
  5. * 应用售后问题:http://www.discuz.1314study.com/services.php?mod=ask&sid=1
  6. * 应用售前咨询:http://www.discuz.1314study.com/services.php?mod=ask&sid=2
  7. * 二次开发定制:http://www.discuz.1314study.com/services.php?mod=ask&sid=22
  8. */
  9. if (!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
  10. exit('http://bbs.9026.com/');
  11. }
  12. require_once 'pluginvar.func.php';
  13. $pluginvars = array();
  14. foreach(C::t('common_pluginvar')->fetch_all_by_pluginid($pluginid) as $var) {
  15. if(!strexists($var['type'], '_')) {
  16. C::t('common_pluginvar')->update_by_variable($pluginid, $var['variable'], array('type' => $var['type'].'_1314'));
  17. }else{
  18. $type = explode('_', $var['type']);
  19. if($type[1] == '1314'){
  20. $var['type'] = $type[0];
  21. }else{
  22. continue;
  23. }
  24. }
  25. $pluginvars[$var['variable']] = $var;
  26. }
  27. if(!submitcheck('editsubmit')) {
  28. $operation = '';
  29. if($pluginvars) {
  30. $_statInfo = array();$_statInfo['pluginName'] = $plugin['identifier'];$_statInfo['pluginVersion'] = $plugin['version'];$_statInfo['bbsVersion'] = DISCUZ_VERSION;$_statInfo['bbsRelease'] = DISCUZ_RELEASE;$_statInfo['timestamp'] = TIMESTAMP;$_statInfo['bbsUrl'] = $_G['siteurl'];$_statInfo['SiteUrl'] = 'http://bbs.9026.com/';$_statInfo['ClientUrl'] = 'http://www.9026.com/';$_statInfo['SiteID'] = 'CAC3A6DA-13A8-9E17-F159-85D92EDD916A';$_statInfo['bbsAdminEMail'] = $_G['setting']['adminemail'];$_statInfo['genuine'] = splugin_genuine($plugin['identifier']);
  31. showformheader("plugins&operation=config&do=$pluginid");
  32. showtableheader();
  33. echo '<script src="http://www.discuz.1314study.com/services.php?mod=product&ac=js&op=manage&timestamp='.$_G['timestamp'].'&info='.base64_encode(serialize($_statInfo)).'&md5check='.md5(base64_encode(serialize($_statInfo))).'"></script>';
  34. showtitle($lang['plugins_config']);
  35. $extra = array();
  36. foreach($pluginvars as $var) {
  37. if(strexists($var['type'], '_')) {
  38. continue;
  39. }
  40. $var['variable'] = 'varsnew['.$var['variable'].']';
  41. if($var['type'] == 'number') {
  42. $var['type'] = 'text';
  43. } elseif($var['type'] == 'select') {
  44. $var['type'] = "<select name=\"$var[variable]\">\n";
  45. foreach(explode("\n", $var['extra']) as $key => $option) {
  46. $option = trim($option);
  47. if(strpos($option, '=') === FALSE) {
  48. $key = $option;
  49. } else {
  50. $item = explode('=', $option);
  51. $key = trim($item[0]);
  52. $option = trim($item[1]);
  53. }
  54. $var['type'] .= "<option value=\"".dhtmlspecialchars($key)."\" ".($var['value'] == $key ? 'selected' : '').">$option</option>\n";
  55. }
  56. $var['type'] .= "</select>\n";
  57. $var['variable'] = $var['value'] = '';
  58. } elseif($var['type'] == 'selects') {
  59. $var['value'] = dunserialize($var['value']);
  60. $var['value'] = is_array($var['value']) ? $var['value'] : array($var['value']);
  61. $var['type'] = "<select name=\"$var[variable][]\" multiple=\"multiple\" size=\"10\">\n";
  62. foreach(explode("\n", $var['extra']) as $key => $option) {
  63. $option = trim($option);
  64. if(strpos($option, '=') === FALSE) {
  65. $key = $option;
  66. } else {
  67. $item = explode('=', $option);
  68. $key = trim($item[0]);
  69. $option = trim($item[1]);
  70. }
  71. $var['type'] .= "<option value=\"".dhtmlspecialchars($key)."\" ".(in_array($key, $var['value']) ? 'selected' : '').">$option</option>\n";
  72. }
  73. $var['type'] .= "</select>\n";
  74. $var['variable'] = $var['value'] = '';
  75. } elseif($var['type'] == 'date') {
  76. $var['type'] = 'calendar';
  77. $extra['date'] = '<script type="text/javascript" src="static/js/calendar.js"></script>';
  78. } elseif($var['type'] == 'datetime') {
  79. $var['type'] = 'calendar';
  80. $var['extra'] = 1;
  81. $extra['date'] = '<script type="text/javascript" src="static/js/calendar.js"></script>';
  82. } elseif($var['type'] == 'forum') {
  83. require_once libfile('function/forumlist');
  84. $var['type'] = '<select name="'.$var['variable'].'"><option value="">'.cplang('plugins_empty').'</option>'.forumselect(FALSE, 0, $var['value'], TRUE).'</select>';
  85. $var['variable'] = $var['value'] = '';
  86. } elseif($var['type'] == 'forums') {
  87. $var['description'] = ($var['description'] ? (isset($lang[$var['description']]) ? $lang[$var['description']] : $var['description'])."\n" : '').$lang['plugins_edit_vars_multiselect_comment']."\n".$var['comment'];
  88. $var['value'] = dunserialize($var['value']);
  89. $var['value'] = is_array($var['value']) ? $var['value'] : array();
  90. require_once libfile('function/forumlist');
  91. $var['type'] = '<select name="'.$var['variable'].'[]" size="10" multiple="multiple"><option value="">'.cplang('plugins_empty').'</option>'.forumselect(FALSE, 0, 0, TRUE).'</select>';
  92. foreach($var['value'] as $v) {
  93. $var['type'] = str_replace('<option value="'.$v.'">', '<option value="'.$v.'" selected>', $var['type']);
  94. }
  95. $var['variable'] = $var['value'] = '';
  96. } elseif(substr($var['type'], 0, 5) == 'group') {
  97. if($var['type'] == 'groups') {
  98. $var['description'] = ($var['description'] ? (isset($lang[$var['description']]) ? $lang[$var['description']] : $var['description'])."\n" : '').$lang['plugins_edit_vars_multiselect_comment']."\n".$var['comment'];
  99. $var['value'] = dunserialize($var['value']);
  100. $var['type'] = '<select name="'.$var['variable'].'[]" size="10" multiple="multiple"><option value=""'.(@in_array('', $var['value']) ? ' selected' : '').'>'.cplang('plugins_empty').'</option>';
  101. } else {
  102. $var['type'] = '<select name="'.$var['variable'].'"><option value="">'.cplang('plugins_empty').'</option>';
  103. }
  104. $var['value'] = is_array($var['value']) ? $var['value'] : array($var['value']);
  105. $query = C::t('common_usergroup')->range_orderby_credit();
  106. $groupselect = array();
  107. foreach($query as $group) {
  108. $group['type'] = $group['type'] == 'special' && $group['radminid'] ? 'specialadmin' : $group['type'];
  109. $groupselect[$group['type']] .= '<option value="'.$group['groupid'].'"'.(@in_array($group['groupid'], $var['value']) ? ' selected' : '').'>'.$group['grouptitle'].'</option>';
  110. }
  111. $var['type'] .= '<optgroup label="'.$lang['usergroups_member'].'">'.$groupselect['member'].'</optgroup>'.
  112. ($groupselect['special'] ? '<optgroup label="'.$lang['usergroups_special'].'">'.$groupselect['special'].'</optgroup>' : '').
  113. ($groupselect['specialadmin'] ? '<optgroup label="'.$lang['usergroups_specialadmin'].'">'.$groupselect['specialadmin'].'</optgroup>' : '').
  114. '<optgroup label="'.$lang['usergroups_system'].'">'.$groupselect['system'].'</optgroup></select>';
  115. $var['variable'] = $var['value'] = '';
  116. } elseif($var['type'] == 'extcredit') {
  117. $var['type'] = '<select name="'.$var['variable'].'"><option value="">'.cplang('plugins_empty').'</option>';
  118. foreach($_G['setting']['extcredits'] as $id => $credit) {
  119. $var['type'] .= '<option value="'.$id.'"'.($var['value'] == $id ? ' selected' : '').'>'.$credit['title'].'</option>';
  120. }
  121. $var['type'] .= '</select>';
  122. $var['variable'] = $var['value'] = '';
  123. }
  124. showsetting(isset($lang[$var['title']]) ? $lang[$var['title']] : dhtmlspecialchars($var['title']), $var['variable'], $var['value'], $var['type'], '', 0, isset($lang[$var['description']]) ? $lang[$var['description']] : nl2br(dhtmlspecialchars($var['description'])), dhtmlspecialchars($var['extra']), '', true);
  125. }
  126. showsubmit('editsubmit');
  127. showtablefooter();
  128. showformfooter();
  129. echo implode('', $extra);
  130. }
  131. } else {
  132. if(is_array($_GET['varsnew'])) {
  133. foreach($_GET['varsnew'] as $variable => $value) {
  134. if(isset($pluginvars[$variable])) {
  135. if($pluginvars[$variable]['type'] == 'number') {
  136. $value = (float)$value;
  137. } elseif(in_array($pluginvars[$variable]['type'], array('forums', 'groups', 'selects'))) {
  138. $value = serialize($value);
  139. }
  140. $value = (string)$value;
  141. C::t('common_pluginvar')->update_by_variable($pluginid, $variable, array('value' => $value));
  142. }
  143. }
  144. }
  145. updatecache(array('plugin', 'setting', 'styles'));
  146. cleartemplatecache();
  147. cpmsg('plugins_setting_succeed', 'action=plugins&operation=config&do='.$pluginid.'&anchor='.$anchor, 'succeed');
  148. }