2016-12-15 08:20:54 -05:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* [Discuz!] (C)2001-2099 Comsenz Inc.
|
|
|
|
* This is NOT a freeware, use is subject to license terms
|
|
|
|
*
|
|
|
|
* $Id: admincp_counter.php 33048 2013-04-12 08:50:27Z zhangjie $
|
|
|
|
*/
|
|
|
|
|
|
|
|
if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
|
|
|
|
exit('Access Denied');
|
|
|
|
}
|
|
|
|
|
|
|
|
cpheader();
|
|
|
|
|
|
|
|
$pertask = isset($_GET['pertask']) ? intval($_GET['pertask']) : 100;
|
|
|
|
$current = isset($_GET['current']) && $_GET['current'] > 0 ? intval($_GET['current']) : 0;
|
|
|
|
$next = $current + $pertask;
|
|
|
|
|
|
|
|
if(submitcheck('forumsubmit', 1)) {
|
|
|
|
|
|
|
|
$nextlink = "action=counter¤t=$next&pertask=$pertask&forumsubmit=yes";
|
|
|
|
$processed = 0;
|
|
|
|
|
|
|
|
$queryf = C::t('forum_forum')->fetch_all_fids(1, '', '', $current, $pertask);
|
|
|
|
foreach($queryf as $forum) {
|
|
|
|
$processed = 1;
|
|
|
|
$threads = $posts = 0;
|
|
|
|
$threadtables = array('0');
|
|
|
|
$archive = 0;
|
|
|
|
foreach(C::t('forum_forum_threadtable')->fetch_all_by_fid($forum['fid']) as $data) {
|
|
|
|
if($data['threadtableid']) {
|
|
|
|
$threadtables[] = $data['threadtableid'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$threadtables = array_unique($threadtables);
|
|
|
|
foreach($threadtables as $tableid) {
|
|
|
|
$data = C::t('forum_thread')->count_posts_by_fid($forum['fid'], $tableid);
|
|
|
|
$threads += $data['threads'];
|
|
|
|
$posts += $data['posts'];
|
|
|
|
if($data['threads'] == 0 && $tableid != 0) {
|
|
|
|
C::t('forum_forum_threadtable')->delete($forum['fid'], $tableid);
|
|
|
|
}
|
|
|
|
if($data['threads'] > 0 && $tableid != 0) {
|
|
|
|
$archive = 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
C::t('forum_forum')->update($forum['fid'], array('archive' => $archive));
|
|
|
|
|
|
|
|
$thread = C::t('forum_thread')->fetch_by_fid_displayorder($forum['fid']);
|
|
|
|
$lastpost = "$thread[tid]\t$thread[subject]\t$thread[lastpost]\t$thread[lastposter]";
|
|
|
|
|
|
|
|
C::t('forum_forum')->update($forum['fid'], array('threads' => $threads, 'posts' => $posts, 'lastpost' => $lastpost));
|
|
|
|
}
|
|
|
|
|
|
|
|
if($processed) {
|
|
|
|
cpmsg("$lang[counter_forum]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
|
|
|
|
} else {
|
|
|
|
C::t('forum_forum')->clear_forum_counter_for_group();
|
|
|
|
cpmsg('counter_forum_succeed', 'action=counter', 'succeed');
|
|
|
|
}
|
|
|
|
|
|
|
|
} elseif(submitcheck('digestsubmit', 1)) {
|
|
|
|
|
|
|
|
if(!$current) {
|
|
|
|
C::t('common_member_count')->clear_digestposts();
|
|
|
|
$current = 0;
|
|
|
|
}
|
|
|
|
$nextlink = "action=counter¤t=$next&pertask=$pertask&digestsubmit=yes";
|
|
|
|
$processed = 0;
|
|
|
|
$membersarray = $postsarray = array();
|
|
|
|
|
|
|
|
foreach(C::t('forum_thread')->fetch_all_by_digest_displayorder(0, '<>', 0, '>=', $current, $pertask) as $thread) {
|
|
|
|
$processed = 1;
|
|
|
|
$membersarray[$thread['authorid']]++;
|
|
|
|
}
|
|
|
|
$threadtableids = C::t('common_setting')->fetch('threadtableids', true);
|
|
|
|
foreach($threadtableids as $tableid) {
|
|
|
|
if(!$tableid) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
foreach(C::t('forum_thread')->fetch_all_by_digest_displayorder(0, '<>', 0, '>=', $current, $pertask, $tableid) as $thread) {
|
|
|
|
$processed = 1;
|
|
|
|
$membersarray[$thread['authorid']] ++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
foreach($membersarray as $uid => $posts) {
|
|
|
|
$postsarray[$posts][] = $uid;
|
|
|
|
}
|
|
|
|
unset($membersarray);
|
|
|
|
|
|
|
|
foreach($postsarray as $posts => $uids) {
|
|
|
|
C::t('common_member_count')->increase($uids, array('digestposts' => $posts));
|
|
|
|
}
|
|
|
|
|
|
|
|
if($processed) {
|
|
|
|
cpmsg("$lang[counter_digest]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
|
|
|
|
} else {
|
|
|
|
cpmsg('counter_digest_succeed', 'action=counter', 'succeed');
|
|
|
|
}
|
|
|
|
|
|
|
|
} elseif(submitcheck('membersubmit', 1)) {
|
|
|
|
|
|
|
|
$nextlink = "action=counter¤t=$next&pertask=$pertask&membersubmit=yes";
|
|
|
|
$processed = 0;
|
|
|
|
|
|
|
|
$threadtableids = C::t('common_setting')->fetch('threadtableids', true);
|
|
|
|
$queryt = C::t('common_member')->range($current, $pertask);
|
|
|
|
foreach($queryt as $mem) {
|
|
|
|
$processed = 1;
|
|
|
|
$postcount = 0;
|
|
|
|
loadcache('posttable_info');
|
|
|
|
if(!empty($_G['cache']['posttable_info']) && is_array($_G['cache']['posttable_info'])) {
|
|
|
|
foreach($_G['cache']['posttable_info'] as $key => $value) {
|
|
|
|
$postcount += C::t('forum_post')->count_by_authorid($key, $mem['uid']);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$postcount += C::t('forum_post')->count_by_authorid(0, $mem['uid']);
|
|
|
|
}
|
|
|
|
$postcount += C::t('forum_postcomment')->count_by_authorid($mem['uid']);
|
|
|
|
$threadcount = C::t('forum_thread')->count_by_authorid($mem['uid']);
|
|
|
|
foreach($threadtableids as $tableid) {
|
|
|
|
if(!$tableid) {
|
|
|
|
continue;
|
|
|
|
}
|
|
|
|
$threadcount += C::t('forum_thread')->count_by_authorid($mem['uid'], $tableid);
|
|
|
|
}
|
|
|
|
C::t('common_member_count')->update($mem['uid'], array('posts' => $postcount, 'threads' => $threadcount));
|
|
|
|
}
|
|
|
|
|
|
|
|
if($processed) {
|
|
|
|
cpmsg("$lang[counter_member]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
|
|
|
|
} else {
|
|
|
|
cpmsg('counter_member_succeed', 'action=counter', 'succeed');
|
|
|
|
}
|
|
|
|
|
|
|
|
} elseif(submitcheck('threadsubmit', 1)) {
|
|
|
|
|
|
|
|
$nextlink = "action=counter¤t=$next&pertask=$pertask&threadsubmit=yes";
|
|
|
|
$processed = 0;
|
|
|
|
|
|
|
|
foreach(C::t('forum_thread')->fetch_all_by_displayorder(0, '>=', $current, $pertask) as $threads) {
|
|
|
|
$processed = 1;
|
|
|
|
$replynum = C::t('forum_post')->count_visiblepost_by_tid($threads['tid']);
|
|
|
|
$replynum--;
|
|
|
|
$lastpost = C::t('forum_post')->fetch_visiblepost_by_tid('tid:'.$threads['tid'], $threads['tid'], 0, 1);
|
|
|
|
if($threads['replies'] != $replynum || $threads['lastpost'] != $lastpost['dateline'] || $threads['lastposter'] != $lastpost['author']) {
|
|
|
|
if(empty($threads['author'])) {
|
|
|
|
$lastpost['author'] = '';
|
|
|
|
}
|
|
|
|
$updatedata = array(
|
|
|
|
'replies' => $replynum,
|
|
|
|
'lastpost' => $lastpost['dateline'],
|
|
|
|
'lastposter' => $lastpost['author']
|
|
|
|
);
|
|
|
|
C::t('forum_thread')->update($threads['tid'], $updatedata, true, true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if($processed) {
|
|
|
|
cpmsg("$lang[counter_thread]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
|
|
|
|
} else {
|
|
|
|
cpmsg('counter_thread_succeed', 'action=counter', 'succeed');
|
|
|
|
}
|
|
|
|
|
|
|
|
} elseif(submitcheck('movedthreadsubmit', 1)) {
|
|
|
|
|
|
|
|
$nextlink = "action=counter¤t=$next&pertask=$pertask&movedthreadsubmit=yes";
|
|
|
|
$processed = 0;
|
|
|
|
|
|
|
|
$tids = array();
|
|
|
|
$updateclosed = array();
|
|
|
|
|
|
|
|
foreach(C::t('forum_thread')->fetch_all_movedthread($current, $pertask) as $thread) {
|
|
|
|
$processed = 1;
|
|
|
|
if($thread['isgroup'] && $thread['status'] == 3) {
|
|
|
|
$updateclosed[] = $thread['tid'];
|
|
|
|
} elseif($thread['threadexists']) {
|
2017-07-10 02:12:08 -04:00
|
|
|
$tids[] = $thread['tid'];
|
2016-12-15 08:20:54 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if($tids) {
|
|
|
|
C::t('forum_thread')->delete_by_tid($tids, true);
|
|
|
|
}
|
|
|
|
if($updateclosed) {
|
|
|
|
C::t('forum_thread')->update($updateclosed, array('closed' => ''));
|
|
|
|
}
|
|
|
|
|
|
|
|
if($processed) {
|
|
|
|
cpmsg(cplang('counter_moved_thread').': '.cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
|
|
|
|
} else {
|
|
|
|
cpmsg('counter_moved_thread_succeed', 'action=counter', 'succeed');
|
|
|
|
}
|
|
|
|
|
|
|
|
} elseif(submitcheck('specialarrange', 1)) {
|
|
|
|
$cursort = empty($_GET['cursort']) ? 0 : intval($_GET['cursort']);
|
|
|
|
$changesort = isset($_GET['changesort']) && empty($_GET['changesort']) ? 0 : 1;
|
|
|
|
$processed = 0;
|
|
|
|
|
|
|
|
$fieldtypes = array('number' => 'bigint(20)', 'text' => 'mediumtext', 'radio' => 'smallint(6)', 'checkbox' => 'mediumtext', 'textarea' => 'mediumtext', 'select' => 'smallint(6)', 'calendar' => 'mediumtext', 'email' => 'mediumtext', 'url' => 'mediumtext', 'image' => 'mediumtext');
|
|
|
|
|
|
|
|
$optionvalues = array();
|
|
|
|
|
|
|
|
$optionvalues = $sortids = array();
|
|
|
|
foreach(C::t('forum_typevar')->fetch_all_by_search_optiontype(1, array('checkbox', 'radio', 'select', 'number')) as $row) {
|
|
|
|
$optionvalues[$row['sortid']][$row['identifier']] = $row['type'];
|
|
|
|
$optionids[$row['sortid']][$row['optionid']] = $row['identifier'];
|
|
|
|
$searchs[$row['sortid']][$row['optionid']] = $row['search'];
|
|
|
|
$sortids[] = $row['sortid'];
|
|
|
|
}
|
|
|
|
$sortids = array_unique($sortids);
|
|
|
|
sort($sortids);
|
|
|
|
if($sortids[$cursort] && $optionvalues[$sortids[$cursort]]) {
|
|
|
|
$processed = 1;
|
|
|
|
$sortid = $sortids[$cursort];
|
|
|
|
$options = $optionvalues[$sortid];
|
|
|
|
$search = $searchs[$sortid];
|
|
|
|
$dbcharset = $_G['config']['db'][1]['dbcharset'];
|
|
|
|
$dbcharset = empty($dbcharset) ? str_replace('-', '', CHARSET) : $dbcharset;
|
|
|
|
$fields = "tid mediumint(8) UNSIGNED NOT NULL DEFAULT '0',fid smallint(6) UNSIGNED NOT NULL DEFAULT '0',KEY (fid)";
|
|
|
|
C::t('forum_optionvalue')->create($sortid, $fields, $dbcharset);
|
|
|
|
if($changesort) {
|
|
|
|
C::t('forum_optionvalue')->truncate($sortid);
|
|
|
|
}
|
|
|
|
$opids = array_keys($optionids[$sortid]);
|
|
|
|
|
|
|
|
$tables = C::t('forum_optionvalue')->showcolumns($sortid);
|
|
|
|
foreach($optionids[$sortid] as $optionid => $identifier) {
|
|
|
|
if(!$tables[$identifier] && (in_array($options[$identifier], array('checkbox', 'radio', 'select', 'number')) || $search[$optionid])) {
|
|
|
|
$fieldname = $identifier;
|
|
|
|
if(in_array($options[$identifier], array('radio'))) {
|
|
|
|
$fieldtype = 'smallint(6) UNSIGNED NOT NULL DEFAULT \'0\'';
|
|
|
|
} elseif(in_array($options[$identifier], array('number', 'range'))) {
|
|
|
|
$fieldtype = 'int(10) UNSIGNED NOT NULL DEFAULT \'0\'';
|
|
|
|
} elseif($options[$identifier] == 'select') {
|
|
|
|
$fieldtype = 'varchar(50) NOT NULL';
|
|
|
|
} else {
|
|
|
|
$fieldtype = 'mediumtext NOT NULL';
|
|
|
|
}
|
|
|
|
C::t('forum_optionvalue')->alter($sortid, "ADD $fieldname $fieldtype");
|
|
|
|
|
|
|
|
if(in_array($options[$identifier], array('radio', 'select', 'number'))) {
|
|
|
|
C::t('forum_optionvalue')->alter($sortid, "ADD INDEX ($fieldname)");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
$inserts = array();
|
|
|
|
$typeoptionvararr = C::t('forum_typeoptionvar')->fetch_all_by_search($sortid, null, null, $opids);
|
|
|
|
if($typeoptionvararr) {
|
|
|
|
$tids = array();
|
|
|
|
foreach($typeoptionvararr as $value) {
|
|
|
|
$tids[$value['tid']] = $value['tid'];
|
|
|
|
}
|
|
|
|
$tids = C::t('forum_thread')->fetch_all($tids);
|
|
|
|
foreach($typeoptionvararr as $row) {
|
|
|
|
$row['fid'] = $tids[$row['tid']]['fid'];
|
|
|
|
$opname = $optionids[$sortid][$row['optionid']];
|
|
|
|
if(empty($inserts[$row[tid]])) {
|
|
|
|
$inserts[$row['tid']]['tid'] = $row['tid'];
|
|
|
|
$inserts[$row['tid']]['fid'] = $row['fid'];
|
|
|
|
}
|
|
|
|
$inserts[$row['tid']][$opname] = addslashes($row['value']);
|
|
|
|
}
|
|
|
|
unset($tids, $typeoptionvararr);
|
|
|
|
}
|
|
|
|
if($inserts) {
|
|
|
|
foreach($inserts as $tid => $fieldval) {
|
|
|
|
$rfields = array();
|
|
|
|
$ikey = $ival = '';
|
|
|
|
foreach($fieldval as $ikey => $ival) {
|
|
|
|
$rfields[] = "`$ikey`='$ival'";
|
|
|
|
}
|
|
|
|
C::t('forum_optionvalue')->insert($sortid, "SET ".implode(',', $rfields), true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
$cursort ++;
|
|
|
|
$changesort = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
$nextlink = "action=counter&changesort=$changesort&cursort=$cursort&specialarrange=yes";
|
|
|
|
if($processed) {
|
|
|
|
cpmsg('counter_special_arrange', $nextlink, 'loading', array('cursort' => $cursort, 'sortids' => count($sortids)));
|
|
|
|
} else {
|
|
|
|
cpmsg('counter_special_arrange_succeed', 'action=counter', 'succeed');
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$nextlink = "action=counter¤t=$next&pertask=$pertask&membersubmit=yes";
|
|
|
|
$processed = 0;
|
|
|
|
|
|
|
|
$queryt = C::t('common_member')->range($current, $pertask);
|
|
|
|
foreach($queryt as $mem) {
|
|
|
|
$processed = 1;
|
|
|
|
$postcount = 0;
|
|
|
|
loadcache('posttable_info');
|
|
|
|
if(!empty($_G['cache']['posttable_info']) && is_array($_G['cache']['posttable_info'])) {
|
|
|
|
foreach($_G['cache']['posttable_info'] as $key => $value) {
|
|
|
|
$postcount += C::t('forum_post')->count_by_authorid($key, $mem['uid']);
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
$postcount += C::t('forum_post')->count_by_authorid(0, $mem['uid']);
|
|
|
|
}
|
|
|
|
$postcount += C::t('forum_postcomment')->count_by_authorid($mem['uid']);
|
|
|
|
$threadcount = C::t('forum_thread')->count_by_authorid($mem['uid']);
|
|
|
|
C::t('common_member_count')->update($mem['uid'], array('posts' => $postcount, 'threads' => $threadcount));
|
|
|
|
}
|
|
|
|
|
|
|
|
if($processed) {
|
|
|
|
cpmsg("$lang[counter_member]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
|
|
|
|
} else {
|
|
|
|
cpmsg('counter_member_succeed', 'action=counter', 'succeed');
|
|
|
|
}
|
|
|
|
|
|
|
|
} elseif(submitcheck('groupmembernum', 1)) {
|
|
|
|
|
|
|
|
$nextlink = "action=counter¤t=$next&pertask=$pertask&groupmembernum=yes";
|
|
|
|
$processed = 0;
|
|
|
|
|
|
|
|
$query = C::t('forum_forum')->fetch_all_fid_for_group($current, $pertask, 1);
|
|
|
|
foreach($query as $group) {
|
|
|
|
$processed = 1;
|
|
|
|
$membernum = C::t('forum_groupuser')->fetch_count_by_fid($group['fid']);
|
|
|
|
C::t('forum_forumfield')->update($group['fid'], array('membernum' => $membernum));
|
|
|
|
}
|
|
|
|
|
|
|
|
if($processed) {
|
|
|
|
cpmsg("$lang[counter_groupmember_num]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
|
|
|
|
} else {
|
|
|
|
cpmsg('counter_groupmember_num_succeed', 'action=counter', 'succeed');
|
|
|
|
}
|
|
|
|
} elseif(submitcheck('groupmemberpost', 1)) {
|
|
|
|
|
|
|
|
$nextlink = "action=counter¤t=$next&pertask=$pertask&groupmemberpost=yes";
|
|
|
|
$processed = 0;
|
|
|
|
|
|
|
|
$queryf = C::t('forum_forum')->fetch_all_fid_for_group($current, $pertask, 1);
|
|
|
|
foreach($queryf as $group) {
|
|
|
|
$processed = 1;
|
|
|
|
|
|
|
|
$mreplies_array = array();
|
|
|
|
loadcache('posttableids');
|
|
|
|
$posttables = empty($_G['cache']['posttableids']) ? array(0) : $_G['cache']['posttableids'];
|
|
|
|
foreach($posttables as $posttableid) {
|
|
|
|
$mreplieslist = C::t('forum_post')->count_group_authorid_by_fid($posttableid, $group['fid']);
|
|
|
|
if($mreplieslist) {
|
|
|
|
foreach($mreplieslist as $mreplies) {
|
|
|
|
$mreplies_array[$mreplies['authorid']] = $mreplies_array[$mreplies['authorid']] + $mreplies['num'];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
unset($mreplieslist);
|
|
|
|
foreach($mreplies_array as $authorid => $num) {
|
|
|
|
C::t('forum_groupuser')->update_for_user($authorid, $group['fid'], null, $num);
|
|
|
|
|
|
|
|
}
|
|
|
|
foreach(C::t('forum_thread')->count_group_thread_by_fid($group['fid']) as $mthreads) {
|
|
|
|
C::t('forum_groupuser')->update_for_user($mthreads['authorid'], $group['fid'], $mthreads['num']);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if($processed) {
|
|
|
|
cpmsg("$lang[counter_groupmember_post]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
|
|
|
|
} else {
|
|
|
|
cpmsg('counter_groupmember_post_succeed', 'action=counter', 'succeed');
|
|
|
|
}
|
|
|
|
|
|
|
|
} elseif(submitcheck('groupnum', 1)) {
|
|
|
|
|
|
|
|
$nextlink = "action=counter¤t=$next&pertask=$pertask&groupnum=yes";
|
|
|
|
$processed = 0;
|
|
|
|
|
|
|
|
$queryf = C::t('forum_forum')->fetch_all_fid_for_group($current, $pertask);
|
|
|
|
foreach($queryf as $group) {
|
|
|
|
$processed = 1;
|
|
|
|
$groupnum = C::t('forum_forum')->fetch_groupnum_by_fup($group['fid']);
|
|
|
|
C::t('forum_forumfield')->update($group['fid'], array('groupnum' => intval($groupnum)));
|
|
|
|
}
|
|
|
|
|
|
|
|
if($processed) {
|
|
|
|
cpmsg("$lang[counter_groupnum]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
|
|
|
|
} else {
|
|
|
|
updatecache('grouptype');
|
|
|
|
cpmsg('counter_groupnum_succeed', 'action=counter', 'succeed');
|
|
|
|
}
|
|
|
|
|
|
|
|
} elseif(submitcheck('blogreplynum', 1)) {
|
|
|
|
|
|
|
|
$nextlink = "action=counter¤t=$next&pertask=$pertask&blogreplynum=yes";
|
|
|
|
if(blog_replynum_stat($current, $pertask)) {
|
|
|
|
cpmsg("$lang[counter_blog_replynum]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
|
|
|
|
} else {
|
|
|
|
cpmsg('counter_blog_replynum_succeed', 'action=counter', 'succeed');
|
|
|
|
}
|
|
|
|
|
|
|
|
} elseif(submitcheck('friendnum', 1)) {
|
|
|
|
|
|
|
|
$nextlink = "action=counter¤t=$next&pertask=$pertask&friendnum=yes";
|
|
|
|
if(space_friendnum_stat($current, $pertask)) {
|
|
|
|
cpmsg("$lang[counter_friendnum]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
|
|
|
|
} else {
|
|
|
|
cpmsg('counter_friendnum_succeed', 'action=counter', 'succeed');
|
|
|
|
}
|
|
|
|
|
|
|
|
} elseif(submitcheck('albumpicnum', 1)) {
|
|
|
|
|
|
|
|
$nextlink = "action=counter¤t=$next&pertask=$pertask&albumpicnum=yes";
|
|
|
|
if(album_picnum_stat($current, $pertask)) {
|
|
|
|
cpmsg("$lang[counter_album_picnum]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
|
|
|
|
} else {
|
|
|
|
cpmsg('counter_album_picnum_succeed', 'action=counter', 'succeed');
|
|
|
|
}
|
|
|
|
} elseif(submitcheck('setthreadcover', 1)) {
|
|
|
|
$fid = intval($_GET['fid']);
|
|
|
|
$allthread = intval($_GET['allthread']);
|
|
|
|
if(empty($fid)) {
|
|
|
|
cpmsg('counter_thread_cover_fiderror', 'action=counter', 'error');
|
|
|
|
}
|
|
|
|
$nextlink = "action=counter¤t=$next&pertask=$pertask&setthreadcover=yes&fid=$fid&allthread=$allthread";
|
|
|
|
$starttime = strtotime($_GET['starttime']);
|
|
|
|
$endtime = strtotime($_GET['endtime']);
|
|
|
|
$timesql = '';
|
|
|
|
if($starttime) {
|
|
|
|
$timesql .= " AND lastpost > $starttime";
|
|
|
|
$nextlink .= '&starttime='.$_GET['starttime'];
|
|
|
|
}
|
|
|
|
if($endtime) {
|
|
|
|
$timesql .= " AND lastpost < $endtime";
|
|
|
|
$nextlink .= '&endtime='.$_GET['endtime'];
|
|
|
|
}
|
|
|
|
$processed = 0;
|
|
|
|
$foruminfo = C::t('forum_forum')->fetch_info_by_fid($fid);
|
|
|
|
if(empty($foruminfo['picstyle'])) {
|
|
|
|
cpmsg('counter_thread_cover_fidnopicstyle', 'action=counter', 'error');
|
|
|
|
}
|
|
|
|
if($_G['setting']['forumpicstyle']) {
|
|
|
|
$_G['setting']['forumpicstyle'] = dunserialize($_G['setting']['forumpicstyle']);
|
|
|
|
empty($_G['setting']['forumpicstyle']['thumbwidth']) && $_G['setting']['forumpicstyle']['thumbwidth'] = 214;
|
|
|
|
empty($_G['setting']['forumpicstyle']['thumbheight']) && $_G['setting']['forumpicstyle']['thumbheight'] = 160;
|
|
|
|
} else {
|
|
|
|
$_G['setting']['forumpicstyle'] = array('thumbwidth' => 214, 'thumbheight' => 160);
|
|
|
|
}
|
|
|
|
require_once libfile('function/post');
|
|
|
|
$coversql = empty($allthread) ? 'AND cover=\'0\'' : '';
|
|
|
|
$cover = empty($allthread) ? 0 : null;
|
|
|
|
$_G['forum']['ismoderator'] = 1;
|
|
|
|
foreach(C::t('forum_thread')->fetch_all_by_fid_cover_lastpost($fid, $cover, $starttime, $endtime, $current, $pertask) as $thread) {
|
|
|
|
$processed = 1;
|
|
|
|
$pid = C::t('forum_post')->fetch_threadpost_by_tid_invisible($thread['tid'], 0);
|
|
|
|
$pid = $pid['pid'];
|
|
|
|
setthreadcover($pid);
|
|
|
|
}
|
|
|
|
|
|
|
|
if($processed) {
|
|
|
|
cpmsg("$lang[counter_thread_cover]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
|
|
|
|
} else {
|
|
|
|
cpmsg('counter_thread_cover_succeed', 'action=counter', 'succeed');
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
|
|
|
|
shownav('tools', 'nav_updatecounters');
|
|
|
|
showsubmenu('nav_updatecounters');
|
|
|
|
showtips('counter_tips');
|
|
|
|
showformheader('counter');
|
|
|
|
showtableheader();
|
|
|
|
showsubtitle(array('', 'counter_amount'));
|
|
|
|
showhiddenfields(array('pertask' => ''));
|
|
|
|
showtablerow('', array('class="td21"'), array(
|
|
|
|
"$lang[counter_forum]:",
|
|
|
|
'<input name="pertask1" type="text" class="txt" value="15" /><input type="submit" class="btn" name="forumsubmit" onclick="this.form.pertask.value=this.form.pertask1.value" value="'.$lang['submit'].'" />'
|
|
|
|
));
|
|
|
|
showtablerow('', array('class="td21"'), array(
|
|
|
|
"$lang[counter_digest]:",
|
|
|
|
'<input name="pertask2" type="text" class="txt" value="1000" /><input type="submit" class="btn" name="digestsubmit" onclick="this.form.pertask.value=this.form.pertask2.value" value="'.$lang['submit'].'" />'
|
|
|
|
));
|
|
|
|
showtablerow('', array('class="td21"'), array(
|
|
|
|
"$lang[counter_member]:",
|
|
|
|
'<input name="pertask3" type="text" class="txt" value="1000" /><input type="submit" class="btn" name="membersubmit" onclick="this.form.pertask.value=this.form.pertask3.value" value="'.$lang['submit'].'" />'
|
|
|
|
));
|
|
|
|
showtablerow('', array('class="td21"'), array(
|
|
|
|
"$lang[counter_thread]:",
|
|
|
|
'<input name="pertask4" type="text" class="txt" value="500" /><input type="submit" class="btn" name="threadsubmit" onclick="this.form.pertask.value=this.form.pertask4.value" value="'.$lang['submit'].'" />'
|
|
|
|
));
|
|
|
|
showtablerow('', array('class="td21"'), array(
|
|
|
|
"$lang[counter_special]:",
|
|
|
|
'<input name="pertask7" type="text" class="txt" value="1" disabled/><input type="submit" class="btn" name="specialarrange" onclick="this.form.pertask.value=this.form.pertask7.value" value="'.$lang['submit'].'" />'
|
|
|
|
));
|
|
|
|
|
|
|
|
showtablerow('', array('class="td21"'), array(
|
|
|
|
"$lang[counter_groupnum]:",
|
|
|
|
'<input name="pertask8" type="text" class="txt" value="10" /><input type="submit" class="btn" name="groupnum" onclick="this.form.pertask.value=this.form.pertask8.value" value="'.$lang['submit'].'" />'
|
|
|
|
));
|
|
|
|
showtablerow('', array('class="td21"'), array(
|
|
|
|
"$lang[counter_groupmember_num]:",
|
|
|
|
'<input name="pertask9" type="text" class="txt" value="100" /><input type="submit" class="btn" name="groupmembernum" onclick="this.form.pertask.value=this.form.pertask9.value" value="'.$lang['submit'].'" />'
|
|
|
|
));
|
|
|
|
showtablerow('', array('class="td21"'), array(
|
|
|
|
"$lang[counter_groupmember_post]:",
|
|
|
|
'<input name="pertask10" type="text" class="txt" value="100" /><input type="submit" class="btn" name="groupmemberpost" onclick="this.form.pertask.value=this.form.pertask10.value" value="'.$lang['submit'].'" />'
|
|
|
|
));
|
|
|
|
showtablerow('', array('class="td21"'), array(
|
|
|
|
"$lang[counter_blog_replynum]:",
|
|
|
|
'<input name="pertask11" type="text" class="txt" value="100" /><input type="submit" class="btn" name="blogreplynum" onclick="this.form.pertask.value=this.form.pertask11.value" value="'.$lang['submit'].'" />'
|
|
|
|
));
|
|
|
|
showtablerow('', array('class="td21"'), array(
|
|
|
|
"$lang[counter_friendnum]:",
|
|
|
|
'<input name="pertask12" type="text" class="txt" value="100" /><input type="submit" class="btn" name="friendnum" onclick="this.form.pertask.value=this.form.pertask12.value" value="'.$lang['submit'].'" />'
|
|
|
|
));
|
|
|
|
showtablerow('', array('class="td21"'), array(
|
|
|
|
"$lang[counter_album_picnum]:",
|
|
|
|
'<input name="pertask13" type="text" class="txt" value="100" /><input type="submit" class="btn" name="albumpicnum" onclick="this.form.pertask.value=this.form.pertask13.value" value="'.$lang['submit'].'" />'
|
|
|
|
));
|
|
|
|
showtablerow('', array('class="td21"'), array(
|
|
|
|
"$lang[counter_thread_cover]:",
|
|
|
|
'<script type="text/javascript" src="static/js/calendar.js"></script><input name="pertask14" type="text" class="txt" value="100" /> '.$lang['counter_forumid'].': <input type="text" class="txt" name="fid" value="" size="10"> <input type="checkbox" value="1" name="allthread">'.$lang['counter_have_cover'].'<br><input type="text" onclick="showcalendar(event, this)" value="" name="starttime" class="txt"> -- <input type="text" onclick="showcalendar(event, this)" value="" name="endtime" class="txt">('.$lang['counter_thread_cover_settime'].') <input type="submit" class="btn" name="setthreadcover" onclick="this.form.pertask.value=this.form.pertask14.value" value="'.$lang['submit'].'" />'
|
|
|
|
));
|
|
|
|
showtablefooter();
|
|
|
|
showformfooter();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
function runuchcount($start, $perpage) {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
?>
|