admincp_album.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  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_album.php 27892 2012-02-16 07:24:19Z chenmengshu $
  7. */
  8. if(!defined('IN_DISCUZ') || !defined('IN_ADMINCP')) {
  9. exit('Access Denied');
  10. }
  11. include_once libfile('function/portalcp');
  12. cpheader();
  13. $detail = $_GET['detail'];
  14. $albumname = $_GET['albumname'];
  15. $albumid = $_GET['albumid'];
  16. $uid = $_GET['uid'];
  17. $users = $_GET['users'];
  18. $starttime = $_GET['starttime'];
  19. $endtime = $_GET['endtime'];
  20. $searchsubmit = $_GET['searchsubmit'];
  21. $albumids = $_GET['albumids'];
  22. $friend = $_GET['friend'];
  23. $orderby = $_GET['orderby'];
  24. $ordersc = $_GET['ordersc'];
  25. $fromumanage = $_GET['fromumanage'] ? 1 : 0;
  26. $muticondition = '';
  27. $muticondition .= $albumname ? '&albumname='.$albumname : '';
  28. $muticondition .= $albumid ? '&albumid='.$albumid : '';
  29. $muticondition .= $uid ? '&uid='.$uid : '';
  30. $muticondition .= $users ? '&users='.$users : '';
  31. $muticondition .= $starttime ? '&starttime='.$starttime : '';
  32. $muticondition .= $endtime ? '&endtime='.$endtime : '';
  33. $muticondition .= $friend ? '&friend='.$friend : '';
  34. $muticondition .= $orderby ? '&orderby='.$orderby : '';
  35. $muticondition .= $ordersc ? '&ordersc='.$ordersc : '';
  36. $muticondition .= $fromumanage ? '&fromumanage='.$fromumanage : '';
  37. $muticondition .= $searchsubmit ? '&searchsubmit='.$searchsubmit : '';
  38. $muticondition .= $_GET['search'] ? '&search='.$_GET['search'] : '';
  39. $muticondition .= $detail ? '&detail='.$detail : '';
  40. if(!submitcheck('albumsubmit')) {
  41. if(empty($_GET['search'])) {
  42. $newlist = 1;
  43. $detail = 1;
  44. }
  45. if($fromumanage) {
  46. $starttime = !preg_match("/^(0|\d{4}\-\d{1,2}\-\d{1,2})$/", $starttime) ? '' : $starttime;
  47. $endtime = $_G['adminid'] == 3 || !preg_match("/^(0|\d{4}\-\d{1,2}\-\d{1,2})$/", $endtime) ? '' : $endtime;
  48. } else {
  49. $starttime = !preg_match("/^(0|\d{4}\-\d{1,2}\-\d{1,2})$/", $starttime) ? dgmdate(TIMESTAMP - 86400 * 7, 'Y-n-j') : $starttime;
  50. $endtime = $_G['adminid'] == 3 || !preg_match("/^(0|\d{4}\-\d{1,2}\-\d{1,2})$/", $endtime) ? dgmdate(TIMESTAMP, 'Y-n-j') : $endtime;
  51. }
  52. shownav('topic', 'nav_album');
  53. showsubmenu('nav_album', array(
  54. array('newlist', 'album', !empty($newlist)),
  55. array('search', 'album&search=true', empty($newlist)),
  56. ));
  57. empty($newlist) && showsubmenusteps('', array(
  58. array('album_search', !$searchsubmit),
  59. array('nav_album', $searchsubmit)
  60. ));
  61. if($muticondition) {
  62. showtips('album_tips');
  63. }
  64. echo <<<EOT
  65. <script type="text/javascript" src="static/js/calendar.js"></script>
  66. <script type="text/JavaScript">
  67. function page(number) {
  68. $('albumforum').page.value=number;
  69. $('albumforum').searchsubmit.click();
  70. }
  71. </script>
  72. EOT;
  73. showtagheader('div', 'searchposts', !$searchsubmit && empty($newlist));
  74. showformheader("album".(!empty($_GET['search']) ? '&search=true' : ''), '', 'albumforum');
  75. showhiddenfields(array('page' => $page, 'pp' => $_GET['pp'] ? $_GET['pp'] : $_GET['perpage']));
  76. showtableheader();
  77. showsetting('album_search_detail', 'detail', $detail, 'radio');
  78. showsetting('album_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>");
  79. showsetting('resultsort', '', $orderby, "<select name='orderby'><option value=''>$lang[defaultsort]</option><option value='dateline'>$lang[topic_dateline]</option><option value='updatetime'>$lang[updatetime]</option><option value='picnum'>$lang[pic_num]</option></select> ");
  80. showsetting('', '', $ordersc, "<select name='ordersc'><option value='desc'>$lang[orderdesc]</option><option value='asc'>$lang[orderasc]</option></select>", '', 0, '', '', '', true);
  81. showsetting('album_search_albumname', 'albumname', $albumname, 'text');
  82. showsetting('album_search_albumid', 'albumid', $albumid, 'text');
  83. showsetting('album_search_uid', 'uid', $uid, 'text');
  84. showsetting('album_search_user', 'users', $users, 'text');
  85. showsetting('blog_search_friend', '', $friend, "<select name='friend'><option value='0'>$lang[setting_home_privacy_alluser]</option><option value='1'>$lang[setting_home_privacy_friend]</option><option value='2'>$lang[setting_home_privacy_specified_friend]</option><option value='3'>$lang[setting_home_privacy_self]</option><option value='4'>$lang[setting_home_privacy_password]</option></select>");
  86. showsetting('album_search_time', array('starttime', 'endtime'), array($starttime, $endtime), 'daterange');
  87. echo '<input type="hidden" name="fromumanage" value="'.$fromumanage.'">';
  88. showsubmit('searchsubmit');
  89. showtablefooter();
  90. showformfooter();
  91. showtagfooter('div');
  92. } else {
  93. if($_GET['albumids']) {
  94. $albumids = authcode($_GET['albumids'], 'DECODE');
  95. $albumidsadd = $albumids ? explode(',', $albumids) : $_GET['delete'];
  96. include_once libfile('function/delete');
  97. $deletecount = count(deletealbums($albumidsadd));
  98. $cpmsg = cplang('album_succeed', array('deletecount' => $deletecount));
  99. } else {
  100. $albums = $catids = array();
  101. $selectalbumids = !empty($_GET['ids']) && is_array($_GET['ids']) ? $_GET['ids'] : array();
  102. if($selectalbumids) {
  103. $query = C::t('home_album')->fetch_all($selectalbumids);
  104. foreach($query as $value) {
  105. $albums[$value['albumid']] = $value;
  106. $catids[] = intval($value['catid']);
  107. }
  108. }
  109. if($albums) {
  110. $selectalbumids = array_keys($albums);
  111. if($_POST['optype'] == 'delete') {
  112. include_once libfile('function/delete');
  113. $deletecount = count(deletealbums($selectalbumids));
  114. $cpmsg = cplang('album_succeed', array('deletecount' => $deletecount));
  115. } elseif($_POST['optype'] == 'move') {
  116. $tocatid = intval($_POST['tocatid']);
  117. $catids[] = $tocatid;
  118. $catids = array_merge($catids);
  119. C::t('home_album')->update($selectalbumids, array('catid'=>$tocatid));
  120. foreach($catids as $catid) {
  121. $catid = intval($catid);
  122. $cnt = C::t('home_album')->count_by_catid($catid);
  123. C::t('home_album_category')->update($catid, array('num'=>intval($cnt)));
  124. }
  125. $cpmsg = cplang('album_move_succeed');
  126. } else {
  127. $cpmsg = cplang('album_choose_at_least_one_operation');
  128. }
  129. } else {
  130. $cpmsg = cplang('album_choose_at_least_one_album');
  131. }
  132. }
  133. ?>
  134. <script type="text/JavaScript">alert('<?php echo $cpmsg;?>');parent.$('albumforum').searchsubmit.click();</script>
  135. <?php
  136. }
  137. if(submitcheck('searchsubmit', 1) || $newlist) {
  138. $albumids = $albumcount = '0';
  139. $sql = $error = '';
  140. $users = trim($users);
  141. if($users != '') {
  142. $uids = array(-1);
  143. $query = C::t('home_album')->fetch_uid_by_username(explode(',', $users));
  144. $uids = array_keys($query) + $uids;
  145. }
  146. if($starttime != '') {
  147. $starttime = strtotime($starttime);
  148. }
  149. if($_G['adminid'] == 1 && $endtime != dgmdate(TIMESTAMP, 'Y-n-j')) {
  150. if($endtime != '') {
  151. $endtime = strtotime($endtime);
  152. }
  153. } else {
  154. $endtime = TIMESTAMP;
  155. }
  156. if($albumid != '') {
  157. $albumids = explode(',', $albumid);
  158. }
  159. if($uid != '') {
  160. $query = C::t('home_album')->fetch_uid_by_uid($uid);
  161. if(!$uids) {
  162. $uids = array_keys($query);
  163. } else {
  164. $uids = array_intersect(array_keys($query), $uids);
  165. }
  166. if(!$uids) {
  167. $uids = array(-1);
  168. }
  169. }
  170. $orderby = $orderby ? $orderby : 'updatetime';
  171. $ordersc = $ordersc ? $ordersc : 'DESC';
  172. if(($_G['adminid'] == 2 && $endtime - $starttime > 86400 * 16) || ($_G['adminid'] == 3 && $endtime - $starttime > 86400 * 8)) {
  173. $error = 'album_mod_range_illegal';
  174. }
  175. if(!$error) {
  176. if($detail) {
  177. $_GET['perpage'] = intval($_GET['perpage']) < 1 ? 20 : intval($_GET['perpage']);
  178. $perpage = $_GET['pp'] ? $_GET['pp'] : $_GET['perpage'];
  179. $query = C::t('home_album')->fetch_all_by_search(1, $uids, $albumname, false, '', $starttime, $endtime, $albumids, $friend, $orderby, $ordersc, (($page - 1) * $perpage), $perpage);
  180. $albums = '';
  181. include_once libfile('function/home');
  182. foreach($query as $album) {
  183. if($album['friend'] != 4 && ckfriend($album['uid'], $album['friend'], $album['target_ids'])) {
  184. $album['pic'] = pic_cover_get($album['pic'], $album['picflag']);
  185. } else {
  186. $album['pic'] = STATICURL.'image/common/nopublish.gif';
  187. }
  188. $album['updatetime'] = dgmdate($album['updatetime']);
  189. switch ($album['friend']) {
  190. case '0':
  191. $privacy_name = $lang[setting_home_privacy_alluser];
  192. break;
  193. case '1':
  194. $privacy_name = $lang[setting_home_privacy_friend];
  195. break;
  196. case '2':
  197. $privacy_name = $lang[setting_home_privacy_specified_friend];
  198. break;
  199. case '3':
  200. $privacy_name = $lang[setting_home_privacy_self];
  201. break;
  202. case '4':
  203. $privacy_name = $lang[setting_home_privacy_password];
  204. break;
  205. default:
  206. $privacy_name = $lang[setting_home_privacy_alluser];
  207. }
  208. $album['friend'] = $album['friend'] ? " <a href=\"".ADMINSCRIPT."?action=album&friend=$album[friend]\">$privacy_name</a>" : $privacy_name;
  209. $albums .= showtablerow('', '', array(
  210. "<input class=\"checkbox\" type=\"checkbox\" name=\"ids[]\" value=\"$album[albumid]\" />",
  211. "<a href=\"home.php?mod=space&uid=$album[uid]&do=album&id=$album[albumid]\" target=\"_blank\"><img src='$album[pic]' /></a>",
  212. "<a href=\"home.php?mod=space&uid=$album[uid]&do=album&id=$album[albumid]\" target=\"_blank\">$album[albumname]</a>",
  213. "<a href=\"home.php?mod=space&uid=$album[uid]\" target=\"_blank\">".$album['username']."</a>",
  214. $album['updatetime'],"<a href=\"".ADMINSCRIPT."?action=pic&albumid=$album[albumid]\">".$album['picnum']."</a>",
  215. $album['friend']
  216. ), TRUE);
  217. }
  218. $albumcount = C::t('home_album')->fetch_all_by_search(3, $uids, $albumname, false, '', $starttime, $endtime, $albumids, $friend);
  219. $multi = multi($albumcount, $perpage, $page, ADMINSCRIPT."?action=album$muticondition");
  220. } else {
  221. $albumcount = 0;
  222. $query = C::t('home_album')->fetch_all_by_search(2, $uids, $albumname, false, '', $starttime, $endtime, $albumids, $friend);
  223. foreach($query as $album) {
  224. $albumids .= ','.$album['albumid'];
  225. $albumcount++;
  226. }
  227. $multi = '';
  228. }
  229. if(!$albumcount) {
  230. $error = 'album_post_nonexistence';
  231. }
  232. }
  233. showtagheader('div', 'postlist', $searchsubmit || $newlist);
  234. showformheader('album&frame=no', 'target="albumframe"');
  235. if(!$muticondition) {
  236. showtableheader(cplang('album_new_result').' '.$albumcount, 'fixpadding');
  237. } else {
  238. showtableheader(cplang('album_result').' '.$albumcount.(empty($newlist) ? ' <a href="###" onclick="$(\'searchposts\').style.display=\'\';$(\'postlist\').style.display=\'none\';$(\'albumforum\').pp.value=\'\';$(\'albumforum\').page.value=\'\';" class="act lightlink normal">'.cplang('research').'</a>' : ''), 'fixpadding');
  239. }
  240. if($error) {
  241. echo "<tr><td class=\"lineheight\" colspan=\"15\">$lang[$error]</td></tr>";
  242. } else {
  243. if($detail) {
  244. showsubtitle(array('', 'albumpic', 'albumname', 'author', 'updatetime', 'pic_num', 'privacy'));
  245. echo $albums;
  246. $optypehtml = ''
  247. .'<input type="radio" name="optype" id="optype_delete" value="delete" class="radio" /><label for="optype_delete">'.cplang('delete').'</label>&nbsp;&nbsp;'
  248. ;
  249. $optypehtml .= '<input type="radio" name="optype" id="optype_move" value="move" class="radio" /><label for="optype_move">'.cplang('article_opmove').'</label> '
  250. .category_showselect('album', 'tocatid', false)
  251. .'&nbsp;&nbsp;';
  252. showsubmit('', '', '', '<input type="checkbox" name="chkall" id="chkall" class="checkbox" onclick="checkAll(\'prefix\', this.form, \'ids\')" /><label for="chkall">'.cplang('select_all').'</label>&nbsp;&nbsp;'.$optypehtml.'<input type="submit" class="btn" name="albumsubmit" value="'.cplang('submit').'" />', $multi);
  253. } else {
  254. showhiddenfields(array('albumids' => authcode($albumids, 'ENCODE')));
  255. showsubmit('albumsubmit', 'delete', $detail ? 'del' : '', '', $multi);
  256. }
  257. }
  258. showtablefooter();
  259. showformfooter();
  260. echo '<iframe name="albumframe" style="display:none;"></iframe>';
  261. showtagfooter('div');
  262. }
  263. ?>