admincp_share.php 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  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_share.php 27696 2012-02-10 03:39:50Z svn_project_zhangjie $
  7. */
  8. if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
  9. exit('Access Denied');
  10. }
  11. $detail = $_GET['detail'];
  12. $uid = $_GET['uid'];
  13. $users = $_GET['users'];
  14. $sid = $_GET['sid'];
  15. $type = $_GET['type'];
  16. $hot1 = $_GET['hot1'];
  17. $hot2 = $_GET['hot2'];
  18. $starttime = $_GET['starttime'];
  19. $endtime = $_GET['endtime'];
  20. $searchsubmit = $_GET['searchsubmit'];
  21. $sids = $_GET['sids'];
  22. $fromumanage = $_GET['fromumanage'] ? 1 : 0;
  23. cpheader();
  24. if(!submitcheck('sharesubmit')) {
  25. if(empty($_GET['search'])) {
  26. $newlist = 1;
  27. $detail = 1;
  28. }
  29. if($fromumanage) {
  30. $starttime = !preg_match("/^(0|\d{4}\-\d{1,2}\-\d{1,2})$/", $starttime) ? '' : $starttime;
  31. $endtime = $_G['adminid'] == 3 || !preg_match("/^(0|\d{4}\-\d{1,2}\-\d{1,2})$/", $endtime) ? '' : $endtime;
  32. } else {
  33. $starttime = !preg_match("/^(0|\d{4}\-\d{1,2}\-\d{1,2})$/", $starttime) ? dgmdate(TIMESTAMP - 86400 * 7, 'Y-n-j') : $starttime;
  34. $endtime = $_G['adminid'] == 3 || !preg_match("/^(0|\d{4}\-\d{1,2}\-\d{1,2})$/", $endtime) ? dgmdate(TIMESTAMP, 'Y-n-j') : $endtime;
  35. }
  36. shownav('topic', 'nav_share');
  37. showsubmenu('nav_share', array(
  38. array('newlist', 'share', !empty($newlist)),
  39. array('search', 'share&search=true', empty($newlist)),
  40. ));
  41. empty($newlist) && showsubmenusteps('', array(
  42. array('share_search', !$searchsubmit),
  43. array('nav_share', $searchsubmit)
  44. ));
  45. showtips('share_tips');
  46. echo <<<EOT
  47. <script type="text/javascript" src="static/js/calendar.js"></script>
  48. <script type="text/JavaScript">
  49. function page(number) {
  50. $('shareforum').page.value=number;
  51. $('shareforum').searchsubmit.click();
  52. }
  53. </script>
  54. EOT;
  55. showtagheader('div', 'searchposts', !$searchsubmit && empty($newlist));
  56. showformheader("share".(!empty($_GET['search']) ? '&search=true' : ''), '', 'shareforum');
  57. showhiddenfields(array('page' => $page, 'pp' => $_GET['pp'] ? $_GET['pp'] : $_GET['perpage']));
  58. showtableheader();
  59. showsetting('share_search_detail', 'detail', $detail, 'radio');
  60. showsetting('share_search_perpage', '', $_GET['perpage'], "<select name='perpage'><option value='20'>$lang[perpage_20]</option><option value='50'>$lang[perpage_50]</option><option value='100'>$lang[perpage_100]</option></select>");
  61. $selected[$type] = $type ? 'selected="selected"' : '';
  62. showsetting('share_search_icon', '', $type, "<select name='type'><option value=''>$lang[all]</option><option value='link' $selected[link]>$lang[link]</option>
  63. <option value='video' $selected[video]>$lang[video]</option><option value='music' $selected[music]>$lang[music]</option><option value='flash' $selected[flash]>Flash</option>
  64. <option value='blog' $selected[blog]>$lang[blogs]</option><option value='album' $selected[album]>$lang[albums]</option><option value='pic' $selected[pic]>$lang[pics]</option>
  65. <option value='space' $selected[space]>$lang[members]</option><option value='thread' $selected[thread]>$lang[thread]</option></select>");
  66. showsetting('share_search_uid', 'uid', $uid, 'text');
  67. showsetting('share_search_user', 'users', $users, 'text');
  68. showsetting('share_search_sid', 'sid', $sid, 'text');
  69. showsetting('share_search_hot', array('hot1', 'hot2'), array('', ''), 'range');
  70. showsetting('share_search_time', array('starttime', 'endtime'), array($starttime, $endtime), 'daterange');
  71. echo '<input type="hidden" name="fromumanage" value="'.$fromumanage.'">';
  72. showsubmit('searchsubmit');
  73. showtablefooter();
  74. showformfooter();
  75. showtagfooter('div');
  76. } else {
  77. $sids = authcode($sids, 'DECODE');
  78. $sidsadd = $sids ? explode(',', $sids) : $_GET['delete'];
  79. include_once libfile('function/delete');
  80. $deletecount = count(deleteshares($sidsadd));
  81. $cpmsg = cplang('share_succeed', array('deletecount' => $deletecount));
  82. ?>
  83. <script type="text/JavaScript">alert('<?php echo $cpmsg;?>');parent.$('shareforum').searchsubmit.click();</script>
  84. <?php
  85. }
  86. if(submitcheck('searchsubmit', 1) || $newlist) {
  87. $uids = $sids = $sharecount = 0;
  88. $sql = $error = '';
  89. $users = trim($users);
  90. $uids = array();
  91. if($users != '') {
  92. foreach(C::t('home_share')->fetch_all_by_username(explode(',', str_replace(' ', '', $users))) as $arr) {
  93. $uids[$arr['uid']] = $arr['uid'];
  94. }
  95. if(!$uids) {
  96. $uids = array(-1);
  97. }
  98. $sql .= " AND s.uid IN ($uids)";
  99. }
  100. if($type != '') {
  101. $arr = C::t('home_share')->fetch_by_type($type);
  102. $type = $arr['type'];
  103. }
  104. if($starttime != '') {
  105. $starttime = strtotime($starttime);
  106. $sql .= " AND s.dateline>'$starttime'";
  107. }
  108. if($_G['adminid'] == 1 && $endtime != dgmdate(TIMESTAMP, 'Y-n-j')) {
  109. if($endtime != '') {
  110. $endtime = strtotime($endtime);
  111. $sql .= " AND s.dateline<'$endtime'";
  112. }
  113. } else {
  114. $endtime = TIMESTAMP;
  115. }
  116. if($sid != '') {
  117. $sids = array();
  118. foreach(C::t('home_share')->fetch_all(explode(',', str_replace(' ', '', $sid))) as $fidarr) {
  119. $sids[] = $fidarr['sid'];
  120. }
  121. if(!$sids) {
  122. $sids = array(-1);
  123. }
  124. $sql .= " AND s.sid IN ($sids)";
  125. }
  126. if($uid != '') {
  127. $uidtmp = array();
  128. foreach(C::t('home_share')->fetch_all_by_uid(explode(',', str_replace(' ', '', $uid))) as $uidarr) {
  129. $uidtmp[$uidarr['uid']] = $uidarr['uid'];
  130. }
  131. if($uids && $uids[0] != -1) {
  132. $uids = array_intersect($uids, $uidtmp);
  133. } else {
  134. $uids = $uidtmp;
  135. }
  136. if(!$uids) {
  137. $uids = array(-1);
  138. }
  139. }
  140. $sql .= $hot1 ? " AND s.hot >= '$hot1'" : '';
  141. $sql .= $hot2 ? " AND s.hot <= '$hot2'" : '';
  142. if(($_G['adminid'] == 2 && $endtime - $starttime > 86400 * 16) || ($_G['adminid'] == 3 && $endtime - $starttime > 86400 * 8)) {
  143. $error = 'share_mod_range_illegal';
  144. }
  145. if(!$error) {
  146. if($detail) {
  147. $_GET['perpage'] = intval($_GET['perpage']) < 1 ? 20 : intval($_GET['perpage']);
  148. $perpage = $_GET['pp'] ? $_GET['pp'] : $_GET['perpage'];
  149. $sharecount = C::t('home_share')->count_by_search($sids, $uids, $type, $starttime, $endtime, $hot1, $hot2);
  150. if($sharecount) {
  151. $shares = '';
  152. require_once libfile('function/share');
  153. $start = ($page - 1) * $perpage;
  154. foreach(C::t('home_share')->fetch_all_search($sids, $uids, $type, $starttime, $endtime, $hot1, $hot2, $start, $perpage) as $share) {
  155. $share['dateline'] = dgmdate($share['dateline']);
  156. $share = mkshare($share);
  157. $shares .= showtablerow('', array('', 'style="width:80px;"', 'style="width:150px;"', 'style="width:500px;"'), array(
  158. "<input class=\"checkbox\" type=\"checkbox\" name=\"delete[]\" value=\"$share[sid]\" />",
  159. "<a href=\"home.php?mod=space&uid=$share[uid]\" target=\"_blank\">".$share['username']."</a>",
  160. $share['title_template'],
  161. $share['body_template'],
  162. $share['dateline']
  163. ), TRUE);
  164. }
  165. $multi = multi($sharecount, $perpage, $page, ADMINSCRIPT."?action=share");
  166. $multi = preg_replace("/href=\"".ADMINSCRIPT."\?action=share&amp;page=(\d+)\"/", "href=\"javascript:page(\\1)\"", $multi);
  167. $multi = str_replace("window.location='".ADMINSCRIPT."?action=share&amp;page='+this.value", "page(this.value)", $multi);
  168. }
  169. } else {
  170. $sharecount = 0;
  171. foreach(C::t('home_share')->fetch_all_search($sids, $uids, $type, $starttime, $endtime, $hot1, $hot2) as $share) {
  172. $sids .= ','.$share['sid'];
  173. $sharecount++;
  174. }
  175. $multi = '';
  176. }
  177. if(!$sharecount) {
  178. $error = 'share_post_nonexistence';
  179. }
  180. }
  181. showtagheader('div', 'postlist', $searchsubmit || $newlist);
  182. showformheader('share&frame=no', 'target="shareframe"');
  183. showhiddenfields(array('sids' => authcode($sids, 'ENCODE')));
  184. showtableheader(cplang('share_result').' '.$sharecount.(empty($newlist) ? ' <a href="###" onclick="$(\'searchposts\').style.display=\'\';$(\'postlist\').style.display=\'none\';$(\'shareforum\').pp.value=\'\';$(\'shareforum\').page.value=\'\';" class="act lightlink normal">'.cplang('research').'</a>' : ''), 'fixpadding');
  185. if($error) {
  186. echo "<tr><td class=\"lineheight\" colspan=\"15\">$lang[$error]</td></tr>";
  187. } else {
  188. if($detail) {
  189. showsubtitle(array('', 'author', 'share_title', 'share_body', 'time'));
  190. echo $shares;
  191. }
  192. }
  193. showsubmit('sharesubmit', 'delete', $detail ? 'del' : '', '', $multi);
  194. showtablefooter();
  195. showformfooter();
  196. echo '<iframe name="shareframe" style="display:none"></iframe>';
  197. showtagfooter('div');
  198. }
  199. ?>