modcp_forum.php 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  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: modcp_forum.php 32563 2013-02-21 03:38:50Z zhangguosheng $
  7. */
  8. if(!defined('IN_DISCUZ') || !defined('IN_MODCP')) {
  9. exit('Access Denied');
  10. }
  11. $forumupdate = $listupdate = false;
  12. $op = !in_array($op , array('editforum', 'recommend')) ? 'editforum' : $op;
  13. if(empty($_G['fid'])) {
  14. if(!empty($_G['cookie']['modcpfid'])) {
  15. $fid = $_G['cookie']['modcpfid'];
  16. } else {
  17. list($fid) = array_keys($modforums['list']);
  18. }
  19. dheader("Location: {$cpscript}?mod=modcp&action=$_GET[action]&op=$op&fid=$fid");
  20. }
  21. if($_G['fid'] && $_G['forum']['ismoderator']) {
  22. if($op == 'editforum') {
  23. require_once libfile('function/editor');
  24. $alloweditrules = $_G['adminid'] == 1 || $_G['forum']['alloweditrules'] ? true : false;
  25. if(!submitcheck('editsubmit')) {
  26. $_G['forum']['rules'] = html2bbcode($_G['forum']['rules']);
  27. } else {
  28. require_once libfile('function/discuzcode');
  29. $forumupdate = true;
  30. $rulesnew = $alloweditrules ? preg_replace('/on(mousewheel|mouseover|click|load|onload|submit|focus|blur)="[^"]*"/i', '', discuzcode($_GET['rulesnew'], 1, 0, 0, 0, 1, 1, 0, 0, 1)) : $_G['forum']['rules'];
  31. C::t('forum_forumfield')->update($_G['fid'], array('rules' => $rulesnew));
  32. $_G['forum']['description'] = html2bbcode($descnew);
  33. $_G['forum']['rules'] = html2bbcode($rulesnew);
  34. }
  35. } elseif($op == 'recommend') {
  36. $useradd = 0;
  37. if($_G['adminid'] == 3) {
  38. $useradd = $_G['uid'];
  39. }
  40. $ordernew = !empty($_GET['ordernew']) && is_array($_GET['ordernew']) ? $_GET['ordernew'] : array();
  41. if(submitcheck('editsubmit') && $_G['forum']['modrecommend']['sort'] != 1) {
  42. $threads = array();
  43. foreach($_GET['order'] as $id => $position) {
  44. $threads[$id]['order'] = $position;
  45. }
  46. foreach($_GET['subject'] as $id => $title) {
  47. $threads[$id]['subject'] = $title;
  48. }
  49. foreach($_GET['expirationrecommend'] as $id => $expiration) {
  50. $expiration = trim($expiration);
  51. if(!empty($expiration)) {
  52. if(!preg_match('/^\d{4}-\d{1,2}-\d{1,2} +\d{1,2}:\d{1,2}$/', $expiration)) {
  53. showmessage('recommend_expiration_invalid');
  54. }
  55. list($expiration_date, $expiration_time) = explode(' ', $expiration);
  56. list($expiration_year, $expiration_month, $expiration_day) = explode('-', $expiration_date);
  57. list($expiration_hour, $expiration_min) = explode(':', $expiration_time);
  58. $expiration_sec = 0;
  59. $expiration_timestamp = mktime($expiration_hour, $expiration_min, $expiration_sec, $expiration_month, $expiration_day, $expiration_year);
  60. } else {
  61. $expiration_timestamp = 0;
  62. }
  63. $threads[$id]['expiration'] = $expiration_timestamp;
  64. }
  65. if($_GET['delete']) {
  66. $listupdate = true;
  67. C::t('forum_forumrecommend')->delete($_GET['delete']);
  68. }
  69. if(!empty($_GET['delete']) && is_array($_GET['delete'])) {
  70. foreach($_GET['delete'] as $id) {
  71. $threads[$id]['delete'] = true;
  72. unset($threads[$id]);
  73. }
  74. }
  75. foreach($threads as $id => $item) {
  76. $item['displayorder'] = intval($item['order']);
  77. $item['subject'] = dhtmlspecialchars($item['subject']);
  78. C::t('forum_forumrecommend')->update($id, array(
  79. 'subject' => $item['subject'],
  80. 'displayorder' => $item['displayorder'],
  81. 'expiration' => $item['expiration']
  82. ));
  83. }
  84. $listupdate = true;
  85. }
  86. $page = max(1, intval($_G['page']));
  87. $start_limit = ($page - 1) * $_G['tpp'];
  88. $threadcount = C::t('forum_forumrecommend')->count_by_fid($_G['fid']);
  89. $multipage = multi($threadcount, $_G['tpp'], $page, "$cpscript?action=$_GET[action]&fid=$_G[fid]&page=$page");
  90. $threadlist = $moderatormembers = array();
  91. $moderatorids = array();
  92. foreach(C::t('forum_forumrecommend')->fetch_all_by_fid($_G['fid'], false, $useradd, $start_limit, $_G['tpp']) as $thread) {
  93. if($thread['moderatorid']) {
  94. $moderatorids[$thread['moderatorid']] = $thread['moderatorid'];
  95. }
  96. $thread['authorlink'] = $thread['authorid'] ? "<a href=\"home.php?mod=space&uid=$thread[authorid]\" target=\"_blank\">$thread[author]</a>" : 'Guest';
  97. $thread['expiration'] = $thread['expiration'] ? dgmdate($thread['expiration']) : '';
  98. $threadlist[] = $thread;
  99. }
  100. if($moderatorids) {
  101. $moderatormembers = C::t('common_member')->fetch_all($moderatorids, false, 0);
  102. }
  103. }
  104. }
  105. ?>