fetch_all_rule() as $value) { $rules[$value['rid']] = $value; } if(!submitcheck('rulesubmit')) { $anchor = in_array($_GET['anchor'], array('base', 'policytable', 'edit')) ? $_GET['anchor'] : 'base'; $current = array($anchor => 1); showsubmenu('setting_credits', array( array('setting_credits_base', 'setting&operation=credits&anchor=base', $current['base']), array('setting_credits_policy', 'credits&operation=list&anchor=policytable', $current['policytable']), )); showformheader("credits&operation=list"); showtableheader('setting_credits_policy', 'nobottom', 'id="policytable"'.($anchor != 'policytable' ? ' style="display: none"' : '')); echo ''.$lang['setting_credits_policy_name'].''.$lang['setting_credits_policy_cycletype'].''.$lang['setting_credits_policy_rewardnum'].''; for($i = 1; $i <= 8; $i++) { if($_G['setting']['extcredits'][$i]) { echo "".$_G['setting']['extcredits'][$i]['title'].""; } } echo ' '; foreach($rules as $rid => $rule) { $tdarr = array($rule['rulename'], $rule['rid'] ? $lang['setting_credits_policy_cycletype_'.$rule['cycletype']] : 'N/A', $rule['rid'] && $rule['cycletype'] ? $rule['rewardnum'] : 'N/A'); for($i = 1; $i <= 8; $i++) { if($_G['setting']['extcredits'][$i]) { array_push($tdarr, ''); } } $opstr = ''.$lang['edit'].''; array_push($tdarr, $opstr); showtablerow('', array_fill(0, count($_G['setting']['extcredits']) + 4, 'class="td25"'), $tdarr); } showtablerow('', 'class="lineheight" colspan="9"', $lang['setting_credits_policy_comment']); showtablefooter(); showtableheader('', 'nobottom', ''); showsetting('setting_credits_policy_mobile', 'settingnew[creditspolicymobile]', $_G['setting']['creditspolicymobile'], 'text'); showsubmit('rulesubmit'); showtablefooter(); showformfooter(); } else { foreach($_GET['credit'] as $rid => $credits) { $rule = array(); for($i = 1; $i <= 8; $i++) { if($_G['setting']['extcredits'][$i]) { $rule['extcredits'.$i] = $credits[$i]; } } C::t('common_credit_rule')->update($rid, $rule); } $settings = array( 'creditspolicymobile' => $_GET['settingnew']['creditspolicymobile'], ); C::t('common_setting')->update_batch($settings); updatecache(array('setting', 'creditrule')); cpmsg('credits_update_succeed', 'action=credits&operation=list&anchor=policytable', 'succeed'); } } elseif($operation == 'edit') { $rid = intval($_GET['rid']); $fid = intval($_GET['fid']); if($rid) { $globalrule = $ruleinfo = C::t('common_credit_rule')->fetch($rid); if($fid) { $query = C::t('forum_forum')->fetch_info_by_fid($fid); $forumname = $query['name']; $policy = $query['creditspolicy'] ? dunserialize($query['creditspolicy']) : array(); if(isset($policy[$ruleinfo['action']])) { $ruleinfo = $policy[$ruleinfo['action']]; } } } if(!submitcheck('rulesubmit')) { if(!$rid) { $ruleinfo['rulename'] = $lang['credits_edit_lowerlimit']; } if(!$fid) { shownav('global', 'credits_edit'); showsubmenu("$lang[credits_edit] - $ruleinfo[rulename]"); } else { if(!in_array($fid, explode(',', $globalrule['fids']))) { for($i = 1; $i <= 8; $i++) { $ruleinfo['extcredits'.$i] = ''; } } shownav('forum', 'forums_edit'); showsubmenu("$forumname - $lang[credits_edit] - $ruleinfo[rulename]"); showtips('forums_edit_tips'); } showformheader("credits&operation=edit&rid=$rid&".($fid ? "fid=$fid" : '')); $extra = ''; if($fid) { $actives = $checkarr = array(); $usecustom = in_array($fid, explode(',', $globalrule['fids'])) ? 1 : 0; $actives[$usecustom] = ' class="checked"'; $checkarr[$usecustom] = ' checked'; showtableheader('', 'nobottom'); $str = <<  $lang[yes]  $lang[no] EOF; showsetting('setting_credits_use_custom_credit', 'usecustom', $usecustom, $str); showtablefooter(); $extra = !$usecustom ? ' style="display:none;" ' : ''; } showtips('setting_credits_policy_comment'); showtableheader('credits_edit', 'nobottom', 'id="edit"'.$extra); if($rid) { showsetting('setting_credits_policy_cycletype', array('rule[cycletype]', array( array(0, $lang['setting_credits_policy_cycletype_0'], array('cycletimetd' => 'none', 'rewardnumtd' => 'none')), array(1, $lang['setting_credits_policy_cycletype_1'], array('cycletimetd' => 'none', 'rewardnumtd' => '')), array(2, $lang['setting_credits_policy_cycletype_2'], array('cycletimetd' => '', 'rewardnumtd' => '')), array(3, $lang['setting_credits_policy_cycletype_3'], array('cycletimetd' => '', 'rewardnumtd' => '')), array(4, $lang['setting_credits_policy_cycletype_4'], array('cycletimetd' => 'none', 'rewardnumtd' => '')), )), $ruleinfo['cycletype'], 'mradio'); showtagheader('tbody', 'cycletimetd', in_array($ruleinfo['cycletype'], array(2, 3)), 'sub'); showsetting('credits_edit_cycletime', 'rule[cycletime]', $ruleinfo['cycletime'], 'text'); showtagfooter('tbody'); showtagheader('tbody', 'rewardnumtd', in_array($ruleinfo['cycletype'], array(1, 2, 3, 4)), 'sub'); showsetting('credits_edit_rewardnum', 'rule[rewardnum]', $ruleinfo['rewardnum'], 'text'); showtagfooter('tbody'); } for($i = 1; $i <= 8; $i++) { if($_G['setting']['extcredits'][$i]) { if($rid) { showsetting("extcredits{$i}(".$_G['setting']['extcredits'][$i]['title'].')', "rule[extcredits{$i}]", $ruleinfo['extcredits'.$i], 'text', '', 0, $fid ? '('.$lang['credits_edit_globalrule'].':'.$globalrule['extcredits'.$i].')' : ''); } else { showsetting("extcredits{$i}(".$_G['setting']['extcredits'][$i]['title'].')', "rule[extcredits{$i}]", $_G['setting']['creditspolicy']['lowerlimit'][$i], 'text'); } } } showtablefooter(); showtableheader('', 'nobottom'); showsubmit('rulesubmit'); showtablefooter(); showformfooter(); } else { $rid = $_GET['rid']; $rule = $_GET['rule']; if($rid) { if(!$rule['cycletype']) { $rule['cycletime'] = 0; $rule['rewardnum'] = 1; } $havecredit = $rule['usecustom'] ? true : false; for($i = 1; $i <= 8; $i++) { if(!$_G['setting']['extcredits'][$i]) { $rule['extcredits'.$i] = 0; } } foreach($rule as $key => $val) { $rule[$key] = intval($val); } if($fid) { $fids = $globalrule['fids'] ? explode(',', $globalrule['fids']) : array(); if($havecredit) { $rule['rid'] = $rid; $rule['fid'] = $fid; $rule['rulename'] = $ruleinfo['rulename']; $rule['action'] = $ruleinfo['action']; $policy[$ruleinfo['action']] = $rule; if(!in_array($fid, $fids)) { $fids[] = $fid; } } else { if($rule['cycletype'] != 0 && ($rule['cycletype'] == 4 && !$rule['rewardnum'])) { require_once DISCUZ_ROOT.'./source/class/class_credit.php'; credit::deletelogbyfid($rid, $fid); } unset($policy[$ruleinfo['action']]); if(in_array($fid, $fids)) { unset($fids[array_search($fid, $fids)]); } } C::t('forum_forumfield')->update($fid, array('creditspolicy' => serialize($policy))); C::t('common_credit_rule')->update($rid, array('fids' => implode(',', $fids))); updatecache('creditrule'); cpmsg('credits_update_succeed', 'action=forums&operation=edit&anchor=credits&fid='.$fid, 'succeed'); } else { C::t('common_credit_rule')->update($rid, $rule); } updatecache('creditrule'); } else { $lowerlimit['creditspolicy']['lowerlimit'] = array(); for($i = 1; $i <= 8; $i++) { if($_G['setting']['extcredits'][$i]) { $lowerlimit['creditspolicy']['lowerlimit'][$i] = (float)$rule['extcredits'.$i]; } } C::t('common_setting')->update('creditspolicy', $lowerlimit['creditspolicy']); updatecache(array('setting', 'creditrule')); } cpmsg('credits_update_succeed', 'action=credits&operation=list&anchor=policytable', 'succeed'); } } ?>