admincp_counter.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530
  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: admincp_counter.php 33048 2013-04-12 08:50:27Z zhangjie $
  7. */
  8. if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
  9. exit('Access Denied');
  10. }
  11. cpheader();
  12. $pertask = isset($_GET['pertask']) ? intval($_GET['pertask']) : 100;
  13. $current = isset($_GET['current']) && $_GET['current'] > 0 ? intval($_GET['current']) : 0;
  14. $next = $current + $pertask;
  15. if(submitcheck('forumsubmit', 1)) {
  16. $nextlink = "action=counter&current=$next&pertask=$pertask&forumsubmit=yes";
  17. $processed = 0;
  18. $queryf = C::t('forum_forum')->fetch_all_fids(1, '', '', $current, $pertask);
  19. foreach($queryf as $forum) {
  20. $processed = 1;
  21. $threads = $posts = 0;
  22. $threadtables = array('0');
  23. $archive = 0;
  24. foreach(C::t('forum_forum_threadtable')->fetch_all_by_fid($forum['fid']) as $data) {
  25. if($data['threadtableid']) {
  26. $threadtables[] = $data['threadtableid'];
  27. }
  28. }
  29. $threadtables = array_unique($threadtables);
  30. foreach($threadtables as $tableid) {
  31. $data = C::t('forum_thread')->count_posts_by_fid($forum['fid'], $tableid);
  32. $threads += $data['threads'];
  33. $posts += $data['posts'];
  34. if($data['threads'] == 0 && $tableid != 0) {
  35. C::t('forum_forum_threadtable')->delete($forum['fid'], $tableid);
  36. }
  37. if($data['threads'] > 0 && $tableid != 0) {
  38. $archive = 1;
  39. }
  40. }
  41. C::t('forum_forum')->update($forum['fid'], array('archive' => $archive));
  42. $thread = C::t('forum_thread')->fetch_by_fid_displayorder($forum['fid']);
  43. $lastpost = "$thread[tid]\t$thread[subject]\t$thread[lastpost]\t$thread[lastposter]";
  44. C::t('forum_forum')->update($forum['fid'], array('threads' => $threads, 'posts' => $posts, 'lastpost' => $lastpost));
  45. }
  46. if($processed) {
  47. cpmsg("$lang[counter_forum]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
  48. } else {
  49. C::t('forum_forum')->clear_forum_counter_for_group();
  50. cpmsg('counter_forum_succeed', 'action=counter', 'succeed');
  51. }
  52. } elseif(submitcheck('digestsubmit', 1)) {
  53. if(!$current) {
  54. C::t('common_member_count')->clear_digestposts();
  55. $current = 0;
  56. }
  57. $nextlink = "action=counter&current=$next&pertask=$pertask&digestsubmit=yes";
  58. $processed = 0;
  59. $membersarray = $postsarray = array();
  60. foreach(C::t('forum_thread')->fetch_all_by_digest_displayorder(0, '<>', 0, '>=', $current, $pertask) as $thread) {
  61. $processed = 1;
  62. $membersarray[$thread['authorid']]++;
  63. }
  64. $threadtableids = C::t('common_setting')->fetch('threadtableids', true);
  65. foreach($threadtableids as $tableid) {
  66. if(!$tableid) {
  67. continue;
  68. }
  69. foreach(C::t('forum_thread')->fetch_all_by_digest_displayorder(0, '<>', 0, '>=', $current, $pertask, $tableid) as $thread) {
  70. $processed = 1;
  71. $membersarray[$thread['authorid']] ++;
  72. }
  73. }
  74. foreach($membersarray as $uid => $posts) {
  75. $postsarray[$posts][] = $uid;
  76. }
  77. unset($membersarray);
  78. foreach($postsarray as $posts => $uids) {
  79. C::t('common_member_count')->increase($uids, array('digestposts' => $posts));
  80. }
  81. if($processed) {
  82. cpmsg("$lang[counter_digest]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
  83. } else {
  84. cpmsg('counter_digest_succeed', 'action=counter', 'succeed');
  85. }
  86. } elseif(submitcheck('membersubmit', 1)) {
  87. $nextlink = "action=counter&current=$next&pertask=$pertask&membersubmit=yes";
  88. $processed = 0;
  89. $threadtableids = C::t('common_setting')->fetch('threadtableids', true);
  90. $queryt = C::t('common_member')->range($current, $pertask);
  91. foreach($queryt as $mem) {
  92. $processed = 1;
  93. $postcount = 0;
  94. loadcache('posttable_info');
  95. if(!empty($_G['cache']['posttable_info']) && is_array($_G['cache']['posttable_info'])) {
  96. foreach($_G['cache']['posttable_info'] as $key => $value) {
  97. $postcount += C::t('forum_post')->count_by_authorid($key, $mem['uid']);
  98. }
  99. } else {
  100. $postcount += C::t('forum_post')->count_by_authorid(0, $mem['uid']);
  101. }
  102. $postcount += C::t('forum_postcomment')->count_by_authorid($mem['uid']);
  103. $threadcount = C::t('forum_thread')->count_by_authorid($mem['uid']);
  104. foreach($threadtableids as $tableid) {
  105. if(!$tableid) {
  106. continue;
  107. }
  108. $threadcount += C::t('forum_thread')->count_by_authorid($mem['uid'], $tableid);
  109. }
  110. C::t('common_member_count')->update($mem['uid'], array('posts' => $postcount, 'threads' => $threadcount));
  111. }
  112. if($processed) {
  113. cpmsg("$lang[counter_member]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
  114. } else {
  115. cpmsg('counter_member_succeed', 'action=counter', 'succeed');
  116. }
  117. } elseif(submitcheck('threadsubmit', 1)) {
  118. $nextlink = "action=counter&current=$next&pertask=$pertask&threadsubmit=yes";
  119. $processed = 0;
  120. foreach(C::t('forum_thread')->fetch_all_by_displayorder(0, '>=', $current, $pertask) as $threads) {
  121. $processed = 1;
  122. $replynum = C::t('forum_post')->count_visiblepost_by_tid($threads['tid']);
  123. $replynum--;
  124. $lastpost = C::t('forum_post')->fetch_visiblepost_by_tid('tid:'.$threads['tid'], $threads['tid'], 0, 1);
  125. if($threads['replies'] != $replynum || $threads['lastpost'] != $lastpost['dateline'] || $threads['lastposter'] != $lastpost['author']) {
  126. if(empty($threads['author'])) {
  127. $lastpost['author'] = '';
  128. }
  129. $updatedata = array(
  130. 'replies' => $replynum,
  131. 'lastpost' => $lastpost['dateline'],
  132. 'lastposter' => $lastpost['author']
  133. );
  134. C::t('forum_thread')->update($threads['tid'], $updatedata, true, true);
  135. }
  136. }
  137. if($processed) {
  138. cpmsg("$lang[counter_thread]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
  139. } else {
  140. cpmsg('counter_thread_succeed', 'action=counter', 'succeed');
  141. }
  142. } elseif(submitcheck('movedthreadsubmit', 1)) {
  143. $nextlink = "action=counter&current=$next&pertask=$pertask&movedthreadsubmit=yes";
  144. $processed = 0;
  145. $tids = array();
  146. $updateclosed = array();
  147. foreach(C::t('forum_thread')->fetch_all_movedthread($current, $pertask) as $thread) {
  148. $processed = 1;
  149. if($thread['isgroup'] && $thread['status'] == 3) {
  150. $updateclosed[] = $thread['tid'];
  151. } elseif($thread['threadexists']) {
  152. $tids[] = $thread['tid'];
  153. $log_handler = Cloud::loadClass('Cloud_Service_SearchHelper');
  154. $log_handler->myThreadLog('delete', array('tid' => $thread['tid']));
  155. }
  156. }
  157. if($tids) {
  158. C::t('forum_thread')->delete_by_tid($tids, true);
  159. }
  160. if($updateclosed) {
  161. C::t('forum_thread')->update($updateclosed, array('closed' => ''));
  162. }
  163. if($processed) {
  164. cpmsg(cplang('counter_moved_thread').': '.cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
  165. } else {
  166. cpmsg('counter_moved_thread_succeed', 'action=counter', 'succeed');
  167. }
  168. } elseif(submitcheck('specialarrange', 1)) {
  169. $cursort = empty($_GET['cursort']) ? 0 : intval($_GET['cursort']);
  170. $changesort = isset($_GET['changesort']) && empty($_GET['changesort']) ? 0 : 1;
  171. $processed = 0;
  172. $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');
  173. $optionvalues = array();
  174. $optionvalues = $sortids = array();
  175. foreach(C::t('forum_typevar')->fetch_all_by_search_optiontype(1, array('checkbox', 'radio', 'select', 'number')) as $row) {
  176. $optionvalues[$row['sortid']][$row['identifier']] = $row['type'];
  177. $optionids[$row['sortid']][$row['optionid']] = $row['identifier'];
  178. $searchs[$row['sortid']][$row['optionid']] = $row['search'];
  179. $sortids[] = $row['sortid'];
  180. }
  181. $sortids = array_unique($sortids);
  182. sort($sortids);
  183. if($sortids[$cursort] && $optionvalues[$sortids[$cursort]]) {
  184. $processed = 1;
  185. $sortid = $sortids[$cursort];
  186. $options = $optionvalues[$sortid];
  187. $search = $searchs[$sortid];
  188. $dbcharset = $_G['config']['db'][1]['dbcharset'];
  189. $dbcharset = empty($dbcharset) ? str_replace('-', '', CHARSET) : $dbcharset;
  190. $fields = "tid mediumint(8) UNSIGNED NOT NULL DEFAULT '0',fid smallint(6) UNSIGNED NOT NULL DEFAULT '0',KEY (fid)";
  191. C::t('forum_optionvalue')->create($sortid, $fields, $dbcharset);
  192. if($changesort) {
  193. C::t('forum_optionvalue')->truncate($sortid);
  194. }
  195. $opids = array_keys($optionids[$sortid]);
  196. $tables = C::t('forum_optionvalue')->showcolumns($sortid);
  197. foreach($optionids[$sortid] as $optionid => $identifier) {
  198. if(!$tables[$identifier] && (in_array($options[$identifier], array('checkbox', 'radio', 'select', 'number')) || $search[$optionid])) {
  199. $fieldname = $identifier;
  200. if(in_array($options[$identifier], array('radio'))) {
  201. $fieldtype = 'smallint(6) UNSIGNED NOT NULL DEFAULT \'0\'';
  202. } elseif(in_array($options[$identifier], array('number', 'range'))) {
  203. $fieldtype = 'int(10) UNSIGNED NOT NULL DEFAULT \'0\'';
  204. } elseif($options[$identifier] == 'select') {
  205. $fieldtype = 'varchar(50) NOT NULL';
  206. } else {
  207. $fieldtype = 'mediumtext NOT NULL';
  208. }
  209. C::t('forum_optionvalue')->alter($sortid, "ADD $fieldname $fieldtype");
  210. if(in_array($options[$identifier], array('radio', 'select', 'number'))) {
  211. C::t('forum_optionvalue')->alter($sortid, "ADD INDEX ($fieldname)");
  212. }
  213. }
  214. }
  215. $inserts = array();
  216. $typeoptionvararr = C::t('forum_typeoptionvar')->fetch_all_by_search($sortid, null, null, $opids);
  217. if($typeoptionvararr) {
  218. $tids = array();
  219. foreach($typeoptionvararr as $value) {
  220. $tids[$value['tid']] = $value['tid'];
  221. }
  222. $tids = C::t('forum_thread')->fetch_all($tids);
  223. foreach($typeoptionvararr as $row) {
  224. $row['fid'] = $tids[$row['tid']]['fid'];
  225. $opname = $optionids[$sortid][$row['optionid']];
  226. if(empty($inserts[$row[tid]])) {
  227. $inserts[$row['tid']]['tid'] = $row['tid'];
  228. $inserts[$row['tid']]['fid'] = $row['fid'];
  229. }
  230. $inserts[$row['tid']][$opname] = addslashes($row['value']);
  231. }
  232. unset($tids, $typeoptionvararr);
  233. }
  234. if($inserts) {
  235. foreach($inserts as $tid => $fieldval) {
  236. $rfields = array();
  237. $ikey = $ival = '';
  238. foreach($fieldval as $ikey => $ival) {
  239. $rfields[] = "`$ikey`='$ival'";
  240. }
  241. C::t('forum_optionvalue')->insert($sortid, "SET ".implode(',', $rfields), true);
  242. }
  243. }
  244. $cursort ++;
  245. $changesort = 1;
  246. }
  247. $nextlink = "action=counter&changesort=$changesort&cursort=$cursort&specialarrange=yes";
  248. if($processed) {
  249. cpmsg('counter_special_arrange', $nextlink, 'loading', array('cursort' => $cursort, 'sortids' => count($sortids)));
  250. } else {
  251. cpmsg('counter_special_arrange_succeed', 'action=counter', 'succeed');
  252. }
  253. $nextlink = "action=counter&current=$next&pertask=$pertask&membersubmit=yes";
  254. $processed = 0;
  255. $queryt = C::t('common_member')->range($current, $pertask);
  256. foreach($queryt as $mem) {
  257. $processed = 1;
  258. $postcount = 0;
  259. loadcache('posttable_info');
  260. if(!empty($_G['cache']['posttable_info']) && is_array($_G['cache']['posttable_info'])) {
  261. foreach($_G['cache']['posttable_info'] as $key => $value) {
  262. $postcount += C::t('forum_post')->count_by_authorid($key, $mem['uid']);
  263. }
  264. } else {
  265. $postcount += C::t('forum_post')->count_by_authorid(0, $mem['uid']);
  266. }
  267. $postcount += C::t('forum_postcomment')->count_by_authorid($mem['uid']);
  268. $threadcount = C::t('forum_thread')->count_by_authorid($mem['uid']);
  269. C::t('common_member_count')->update($mem['uid'], array('posts' => $postcount, 'threads' => $threadcount));
  270. }
  271. if($processed) {
  272. cpmsg("$lang[counter_member]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
  273. } else {
  274. cpmsg('counter_member_succeed', 'action=counter', 'succeed');
  275. }
  276. } elseif(submitcheck('groupmembernum', 1)) {
  277. $nextlink = "action=counter&current=$next&pertask=$pertask&groupmembernum=yes";
  278. $processed = 0;
  279. $query = C::t('forum_forum')->fetch_all_fid_for_group($current, $pertask, 1);
  280. foreach($query as $group) {
  281. $processed = 1;
  282. $membernum = C::t('forum_groupuser')->fetch_count_by_fid($group['fid']);
  283. C::t('forum_forumfield')->update($group['fid'], array('membernum' => $membernum));
  284. }
  285. if($processed) {
  286. cpmsg("$lang[counter_groupmember_num]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
  287. } else {
  288. cpmsg('counter_groupmember_num_succeed', 'action=counter', 'succeed');
  289. }
  290. } elseif(submitcheck('groupmemberpost', 1)) {
  291. $nextlink = "action=counter&current=$next&pertask=$pertask&groupmemberpost=yes";
  292. $processed = 0;
  293. $queryf = C::t('forum_forum')->fetch_all_fid_for_group($current, $pertask, 1);
  294. foreach($queryf as $group) {
  295. $processed = 1;
  296. $mreplies_array = array();
  297. loadcache('posttableids');
  298. $posttables = empty($_G['cache']['posttableids']) ? array(0) : $_G['cache']['posttableids'];
  299. foreach($posttables as $posttableid) {
  300. $mreplieslist = C::t('forum_post')->count_group_authorid_by_fid($posttableid, $group['fid']);
  301. if($mreplieslist) {
  302. foreach($mreplieslist as $mreplies) {
  303. $mreplies_array[$mreplies['authorid']] = $mreplies_array[$mreplies['authorid']] + $mreplies['num'];
  304. }
  305. }
  306. }
  307. unset($mreplieslist);
  308. foreach($mreplies_array as $authorid => $num) {
  309. C::t('forum_groupuser')->update_for_user($authorid, $group['fid'], null, $num);
  310. }
  311. foreach(C::t('forum_thread')->count_group_thread_by_fid($group['fid']) as $mthreads) {
  312. C::t('forum_groupuser')->update_for_user($mthreads['authorid'], $group['fid'], $mthreads['num']);
  313. }
  314. }
  315. if($processed) {
  316. cpmsg("$lang[counter_groupmember_post]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
  317. } else {
  318. cpmsg('counter_groupmember_post_succeed', 'action=counter', 'succeed');
  319. }
  320. } elseif(submitcheck('groupnum', 1)) {
  321. $nextlink = "action=counter&current=$next&pertask=$pertask&groupnum=yes";
  322. $processed = 0;
  323. $queryf = C::t('forum_forum')->fetch_all_fid_for_group($current, $pertask);
  324. foreach($queryf as $group) {
  325. $processed = 1;
  326. $groupnum = C::t('forum_forum')->fetch_groupnum_by_fup($group['fid']);
  327. C::t('forum_forumfield')->update($group['fid'], array('groupnum' => intval($groupnum)));
  328. }
  329. if($processed) {
  330. cpmsg("$lang[counter_groupnum]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
  331. } else {
  332. updatecache('grouptype');
  333. cpmsg('counter_groupnum_succeed', 'action=counter', 'succeed');
  334. }
  335. } elseif(submitcheck('blogreplynum', 1)) {
  336. $nextlink = "action=counter&current=$next&pertask=$pertask&blogreplynum=yes";
  337. if(blog_replynum_stat($current, $pertask)) {
  338. cpmsg("$lang[counter_blog_replynum]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
  339. } else {
  340. cpmsg('counter_blog_replynum_succeed', 'action=counter', 'succeed');
  341. }
  342. } elseif(submitcheck('friendnum', 1)) {
  343. $nextlink = "action=counter&current=$next&pertask=$pertask&friendnum=yes";
  344. if(space_friendnum_stat($current, $pertask)) {
  345. cpmsg("$lang[counter_friendnum]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
  346. } else {
  347. cpmsg('counter_friendnum_succeed', 'action=counter', 'succeed');
  348. }
  349. } elseif(submitcheck('albumpicnum', 1)) {
  350. $nextlink = "action=counter&current=$next&pertask=$pertask&albumpicnum=yes";
  351. if(album_picnum_stat($current, $pertask)) {
  352. cpmsg("$lang[counter_album_picnum]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
  353. } else {
  354. cpmsg('counter_album_picnum_succeed', 'action=counter', 'succeed');
  355. }
  356. } elseif(submitcheck('setthreadcover', 1)) {
  357. $fid = intval($_GET['fid']);
  358. $allthread = intval($_GET['allthread']);
  359. if(empty($fid)) {
  360. cpmsg('counter_thread_cover_fiderror', 'action=counter', 'error');
  361. }
  362. $nextlink = "action=counter&current=$next&pertask=$pertask&setthreadcover=yes&fid=$fid&allthread=$allthread";
  363. $starttime = strtotime($_GET['starttime']);
  364. $endtime = strtotime($_GET['endtime']);
  365. $timesql = '';
  366. if($starttime) {
  367. $timesql .= " AND lastpost > $starttime";
  368. $nextlink .= '&starttime='.$_GET['starttime'];
  369. }
  370. if($endtime) {
  371. $timesql .= " AND lastpost < $endtime";
  372. $nextlink .= '&endtime='.$_GET['endtime'];
  373. }
  374. $processed = 0;
  375. $foruminfo = C::t('forum_forum')->fetch_info_by_fid($fid);
  376. if(empty($foruminfo['picstyle'])) {
  377. cpmsg('counter_thread_cover_fidnopicstyle', 'action=counter', 'error');
  378. }
  379. if($_G['setting']['forumpicstyle']) {
  380. $_G['setting']['forumpicstyle'] = dunserialize($_G['setting']['forumpicstyle']);
  381. empty($_G['setting']['forumpicstyle']['thumbwidth']) && $_G['setting']['forumpicstyle']['thumbwidth'] = 214;
  382. empty($_G['setting']['forumpicstyle']['thumbheight']) && $_G['setting']['forumpicstyle']['thumbheight'] = 160;
  383. } else {
  384. $_G['setting']['forumpicstyle'] = array('thumbwidth' => 214, 'thumbheight' => 160);
  385. }
  386. require_once libfile('function/post');
  387. $coversql = empty($allthread) ? 'AND cover=\'0\'' : '';
  388. $cover = empty($allthread) ? 0 : null;
  389. $_G['forum']['ismoderator'] = 1;
  390. foreach(C::t('forum_thread')->fetch_all_by_fid_cover_lastpost($fid, $cover, $starttime, $endtime, $current, $pertask) as $thread) {
  391. $processed = 1;
  392. $pid = C::t('forum_post')->fetch_threadpost_by_tid_invisible($thread['tid'], 0);
  393. $pid = $pid['pid'];
  394. setthreadcover($pid);
  395. }
  396. if($processed) {
  397. cpmsg("$lang[counter_thread_cover]: ".cplang('counter_processing', array('current' => $current, 'next' => $next)), $nextlink, 'loading');
  398. } else {
  399. cpmsg('counter_thread_cover_succeed', 'action=counter', 'succeed');
  400. }
  401. } else {
  402. shownav('tools', 'nav_updatecounters');
  403. showsubmenu('nav_updatecounters');
  404. showtips('counter_tips');
  405. showformheader('counter');
  406. showtableheader();
  407. showsubtitle(array('', 'counter_amount'));
  408. showhiddenfields(array('pertask' => ''));
  409. showtablerow('', array('class="td21"'), array(
  410. "$lang[counter_forum]:",
  411. '<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'].'" />'
  412. ));
  413. showtablerow('', array('class="td21"'), array(
  414. "$lang[counter_digest]:",
  415. '<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'].'" />'
  416. ));
  417. showtablerow('', array('class="td21"'), array(
  418. "$lang[counter_member]:",
  419. '<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'].'" />'
  420. ));
  421. showtablerow('', array('class="td21"'), array(
  422. "$lang[counter_thread]:",
  423. '<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'].'" />'
  424. ));
  425. showtablerow('', array('class="td21"'), array(
  426. "$lang[counter_special]:",
  427. '<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'].'" />'
  428. ));
  429. showtablerow('', array('class="td21"'), array(
  430. "$lang[counter_groupnum]:",
  431. '<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'].'" />'
  432. ));
  433. showtablerow('', array('class="td21"'), array(
  434. "$lang[counter_groupmember_num]:",
  435. '<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'].'" />'
  436. ));
  437. showtablerow('', array('class="td21"'), array(
  438. "$lang[counter_groupmember_post]:",
  439. '<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'].'" />'
  440. ));
  441. showtablerow('', array('class="td21"'), array(
  442. "$lang[counter_blog_replynum]:",
  443. '<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'].'" />'
  444. ));
  445. showtablerow('', array('class="td21"'), array(
  446. "$lang[counter_friendnum]:",
  447. '<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'].'" />'
  448. ));
  449. showtablerow('', array('class="td21"'), array(
  450. "$lang[counter_album_picnum]:",
  451. '<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'].'" />'
  452. ));
  453. showtablerow('', array('class="td21"'), array(
  454. "$lang[counter_thread_cover]:",
  455. '<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">&nbsp;<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'].') &nbsp;&nbsp;<input type="submit" class="btn" name="setthreadcover" onclick="this.form.pertask.value=this.form.pertask14.value" value="'.$lang['submit'].'" />'
  456. ));
  457. showtablefooter();
  458. showformfooter();
  459. }
  460. function runuchcount($start, $perpage) {
  461. }
  462. ?>