spacecp_index.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  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: spacecp_index.php 26205 2011-12-05 10:09:32Z zhangguosheng $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. $op = in_array($_GET['op'], array('start', 'layout', 'block', 'style', 'diy', 'image', 'getblock', 'edit', 'setmusic', 'getspaceinfo', 'savespaceinfo', 'editnv', 'getpersonalnv')) ? $_GET['op'] : 'start';
  12. require_once libfile('function/space');
  13. require_once libfile('function/portalcp');
  14. if ($op == 'start') {
  15. } elseif ($op == 'layout') {
  16. $layoutarr = getlayout();
  17. } elseif ($op == 'style') {
  18. $themes = gettheme('space');
  19. } elseif ($op == 'block') {
  20. $block = getblockdata();
  21. } elseif ($op == 'diy' || $op == 'image') {
  22. $albumid = empty($_GET['albumid'])?0:intval($_GET['albumid']);
  23. $page = empty($_GET['page'])?1:intval($_GET['page']);
  24. if($page<1) $page=1;
  25. $perpage = 6;
  26. $perpage = mob_perpage($perpage);
  27. $start = ($page-1)*$perpage;
  28. ckstart($start, $perpage);
  29. $albumlist = array();
  30. $query = C::t('home_album')->fetch_all_by_uid($space['uid'], 'updatetime');
  31. foreach($query as $value) {
  32. if (!isset($_GET['albumid']) && empty($albumid)) $albumid = $value['albumid'];
  33. $albumlist[$value['albumid']] = $value;
  34. }
  35. $count = C::t('home_pic')->check_albumpic(0, NULL, $space['uid']);
  36. $albumlist[0] = array(
  37. 'uid' => $space['uid'],
  38. 'albumid' => 0,
  39. 'albumname' => lang('space', 'default_albumname'),
  40. 'picnum' => $count
  41. );
  42. if ($albumid > 0) {
  43. if (!isset($albumlist[$albumid])) {
  44. showmessage('to_view_the_photo_does_not_exist');
  45. }
  46. $count = $albumlist[$albumid]['picnum'];
  47. } else {
  48. $wheresql = "albumid='0' AND uid='$space[uid]'";
  49. }
  50. $list = array();
  51. if($count) {
  52. $query = C::t('home_pic')->fetch_all_by_albumid($albumid, $start, $perpage, 0, 0, 1, ($albumid > 0 ? 0 : $space['uid']));
  53. foreach($query as $value) {
  54. $value['pic'] = pic_get($value['filepath'], 'album', $value['thumb'], $value['remote']);
  55. $list[] = $value;
  56. }
  57. }
  58. $_GET['ajaxtarget'] = empty($_GET['ajaxtarget']) ? 'diyimages' : $_GET['ajaxtarget'];
  59. $multi = multi($count, $perpage, $page, "home.php?mod=spacecp&ac=index&op=image&albumid=$albumid");
  60. } elseif ($op == 'getblock') {
  61. $blockname = getstr($_GET['blockname'],15);
  62. $blockhtml = '';
  63. if(check_ban_block($name, $space)) {
  64. space_merge($space,'field_home');
  65. $data = getuserdiydata($space);
  66. $blockhtml = getblockhtml($blockname, $data['parameters'][$blockname]);
  67. }
  68. } elseif ($op == 'edit') {
  69. $blockname = getstr($_GET['blockname'],15);
  70. $blockdata = lang('space','blockdata');
  71. if (!empty($blockdata[$blockname]) && check_ban_block($blockname, $space)) {
  72. space_merge($space,'field_home');
  73. $userdiy = getuserdiydata($space);
  74. $para = $userdiy['parameters'][$blockname];
  75. $para['title'] = !isset($para['title']) ? $blockdata[$blockname] : $para['title'];
  76. } else {
  77. showmessage('the_block_is_not_available');
  78. }
  79. } elseif ($op == 'editnv') {
  80. space_merge($space,'field_home');
  81. $blockposition = dunserialize($space['blockposition']);
  82. $personalnv = !empty($blockposition) && isset($blockposition['nv']) ? $blockposition['nv'] : '';
  83. } elseif ($op == 'savespaceinfo') {
  84. space_merge($space,'field_home');
  85. if (submitcheck('savespaceinfosubmit')) {
  86. $spacename = getstr($_POST['spacename'], 30);
  87. $spacedescription = getstr($_POST['spacedescription'], 135);
  88. $setarr = array();
  89. $setarr['spacename'] = $spacename;
  90. $setarr['spacedescription'] = $spacedescription;
  91. C::t('common_member_field_home')->update($_G['uid'], $setarr);
  92. $space['spacename'] = $spacename;
  93. $space['spacedescription'] = $spacedescription;
  94. }
  95. } elseif ($op == 'getspaceinfo') {
  96. space_merge($space,'field_home');
  97. } elseif ($op == 'getpersonalnv') {
  98. space_merge($space,'field_home');
  99. getuserdiydata($space);
  100. $personalnv = isset($_G['blockposition']['nv']) ? $_G['blockposition']['nv'] : '';
  101. if($personalnv && !empty($_GET['show'])) {
  102. $personalnv['nvhidden'] = 0;
  103. }
  104. }
  105. if (submitcheck('blocksubmit')) {
  106. $blockname = getstr($_GET['blockname'],15);
  107. if(check_ban_block($blockname, $space)) {
  108. space_merge($space,'field_home');
  109. $blockdata = dunserialize($space['blockposition']);
  110. $title = getstr($_POST['blocktitle'],50);
  111. $blockdata['parameters'][$blockname]['title'] = $title;
  112. if (in_array($blockname, array('block1', 'block2', 'block3', 'block4', 'block5'))) {
  113. $content = censor(getstr($_POST['content'],1000,0,0,0,1));
  114. $blockdata['parameters'][$blockname]['content'] = $content;
  115. } elseif($blockname == 'profile') {
  116. $blockdata['parameters'][$blockname]['banavatar'] = in_array($_GET['avatar'], array('big', 'middle', 'small')) ? $_GET['avatar'] : 'middle';
  117. } elseif($blockname == 'statistic') {
  118. $blockdata['parameters'][$blockname]['bancredits'] = $_GET['credits'] ? 0 : 1;
  119. $blockdata['parameters'][$blockname]['banfriends'] = $_GET['friends'] ? 0 : 1;
  120. $blockdata['parameters'][$blockname]['banthreads'] = $_GET['threads'] ? 0 : 1;
  121. $blockdata['parameters'][$blockname]['banblogs'] = $_GET['blogs'] ? 0 : 1;
  122. $blockdata['parameters'][$blockname]['banalbums'] = $_GET['albums'] ? 0 : 1;
  123. $blockdata['parameters'][$blockname]['bansharings'] = $_GET['sharings'] ? 0 : 1;
  124. $blockdata['parameters'][$blockname]['banviews'] = $_GET['views'] ? 0 : 1;
  125. } elseif(in_array($blockname, array('personalinfo'))) {
  126. } else {
  127. $shownum = max(1,intval($_POST['shownum']));
  128. if ($shownum <= 20) {
  129. $blockdata['parameters'][$blockname]['shownum'] = $shownum;
  130. }
  131. }
  132. if($blockname == 'blog') {
  133. $blockdata['parameters'][$blockname]['showmessage'] = min(100000, abs(intval($_GET['showmessage'])));
  134. } elseif($blockname == 'myapp') {
  135. $blockdata['parameters'][$blockname]['logotype'] = in_array($_GET['logotype'], array('logo', 'icon')) ? $_GET['logotype'] : 'logo';
  136. }
  137. $setarr = array();
  138. $setarr['blockposition'] = serialize($blockdata);
  139. C::t('common_member_field_home')->update($space['uid'], $setarr);
  140. showmessage('do_success', 'portal.php?mod=spacecp&ac=index&op=getblock&blockname='.$blockname, array('blockname'=>$blockname));
  141. } else {
  142. showmessage('the_block_is_not_available');
  143. }
  144. }
  145. if (submitcheck('editnvsubmit')) {
  146. $hidden = intval($_POST['nvhidden']);
  147. $nv = array('index', 'feed', 'doing', 'blog', 'album', 'topic', 'share', 'friends', 'wall', 'profile', 'follow');
  148. space_merge($space,'field_home');
  149. $blockdata = dunserialize($space['blockposition']);
  150. $personalnv = array();
  151. $personalnv['nvhidden'] = $hidden;
  152. foreach($nv as $value) {
  153. $namevalue = trim($_POST[$value]);
  154. $personalnv['items'][$value] = getstr($namevalue,15);
  155. $personalnv['banitems'][$value] = empty($_POST['ban'.$value]) ? 0 : 1;
  156. }
  157. $blockdata['nv'] = $personalnv;
  158. $setarr = array();
  159. $setarr['blockposition'] = serialize($blockdata);
  160. C::t('common_member_field_home')->update($space['uid'], $setarr);
  161. showmessage('do_success', 'portal.php?mod=spacecp&ac=index&op=getnv');
  162. }
  163. if (submitcheck('musicsubmit')) {
  164. $blockname = getstr($_GET['blockname'],15);
  165. space_merge($space,'field_home');
  166. $blockdata = dunserialize($space['blockposition']);
  167. if ($_POST['act'] == 'config') {
  168. $config = array (
  169. 'showmod' => $_POST['showmod'],
  170. 'autorun' => $_POST['autorun'],
  171. 'shuffle' => $_POST['shuffle'],
  172. 'crontabcolor' => $_POST['crontabcolor'],
  173. 'buttoncolor' => $_POST['buttoncolor'],
  174. 'fontcolor' => $_POST['fontcolor'],
  175. 'crontabbj' => $_POST['crontabbj'],
  176. 'height' => min(9999,abs(intval($_POST['height']))),
  177. );
  178. $blockdata['parameters']['music']['config'] = $config;
  179. $blockdata['parameters']['music']['title']= getstr($_POST['blocktitle'],50);
  180. } elseif ($_POST['act'] == 'addmusic') {
  181. $mp3url = $_POST['mp3url'];
  182. $mp3name = $_POST['mp3name'];
  183. $cdbj = $_POST['cdbj'];
  184. $mp3list = empty($blockdata['parameters']['music']['mp3list']) ? array() : $blockdata['parameters']['music']['mp3list'];
  185. foreach ($mp3url as $key => $value) {
  186. if (!empty($value)) {
  187. if(empty($mp3name[$key])) $mp3name[$key] = substr($value,strrpos($value,'/')+1,strlen($value));
  188. $mp3list[] = array('mp3url'=>$value, 'mp3name'=>$mp3name[$key], 'cdbj'=>$cdbj[$key]);
  189. }
  190. }
  191. $blockdata['parameters']['music']['mp3list'] = $mp3list;
  192. } elseif ($_POST['act'] == 'editlist') {
  193. $mp3url = $_POST['mp3url'];
  194. $mp3name = $_POST['mp3name'];
  195. $cdbj = $_POST['cdbj'];
  196. $mp3list = array();
  197. foreach ($mp3url as $key => $value) {
  198. if (!empty($value)) {
  199. if(empty($mp3name[$key])) $mp3name[$key] = substr($value,strrpos($value,'/')+1,strlen($value));
  200. $mp3list[] = array('mp3url'=>$value, 'mp3name'=>$mp3name[$key], 'cdbj'=>$cdbj[$key]);
  201. }
  202. }
  203. $blockdata['parameters']['music']['mp3list'] = $mp3list;
  204. }
  205. if (empty($blockdata['parameters']['music']['config'])) {
  206. $blockdata['parameters']['music']['config'] = array (
  207. 'showmod' => 'default',
  208. 'autorun' => 'true',
  209. 'shuffle' => 'true',
  210. 'crontabcolor' => '#D2FF8C',
  211. 'buttoncolor' => '#1F43FF',
  212. 'fontcolor' => '#1F43FF',
  213. );
  214. }
  215. $setarr = array();
  216. $setarr['blockposition'] = serialize($blockdata);
  217. C::t('common_member_field_home')->update($space['uid'], $setarr);
  218. showmessage('do_success', 'home.php?mod=spacecp&ac=index&op=getblock&blockname='.$blockname, array('blockname'=>$blockname));
  219. }
  220. if (submitcheck('diysubmit')) {
  221. $blockdata = array();
  222. checksecurity($_POST['spacecss']);
  223. $spacecss = $_POST['spacecss'];
  224. $spacecss = preg_replace("/(\<|\>)/is", '', $spacecss);
  225. $currentlayout = getstr($_POST['currentlayout'],5);
  226. $style = empty($_POST['style'])?'':preg_replace("/[^0-9a-z]/i", '', $_POST['style']);
  227. $layoutdata = $_POST['layoutdata'];
  228. require_once libfile('class/xml');
  229. $layoutdata = xml2array($layoutdata);
  230. if (empty($layoutdata)) showmessage('space_data_format_invalid');
  231. $layoutdata = $layoutdata['diypage'];
  232. if($style && $style != 'uchomedefault') {
  233. $cssfile = DISCUZ_ROOT.'./static/space/'.$style.'/style.css';
  234. if(!file_exists($cssfile)) {
  235. showmessage('theme_does_not_exist');
  236. }
  237. }
  238. space_merge($space, 'field_home');
  239. $blockdata = dunserialize($space['blockposition']);
  240. $blockdata['block'] = $layoutdata;
  241. $blockdata['currentlayout'] = $currentlayout;
  242. $setarr = array();
  243. $setarr['spacecss'] = $spacecss;
  244. $setarr['blockposition'] = serialize($blockdata);
  245. $setarr['theme'] = $style;
  246. C::t('common_member_field_home')->update($space['uid'], $setarr);
  247. showmessage('do_success','home.php?mod=space'.($_G['adminid'] == 1 && $_G['setting']['allowquickviewprofile'] ? '&view=admin' : ''));
  248. }
  249. if (submitcheck('uploadsubmit')) {
  250. $albumid = $picid = 0;
  251. if(!checkperm('allowupload')) {
  252. echo "<script>";
  253. echo "alert(\"".lang('spacecp', 'not_allow_upload')."\")";
  254. echo "</script>";
  255. exit();
  256. }
  257. $uploadfiles = pic_save($_FILES['attach'], $_POST['albumid'], $_POST['pic_title'], false);
  258. if($uploadfiles && is_array($uploadfiles)) {
  259. $albumid = $uploadfiles['albumid'];
  260. $picid = $uploadfiles['picid'];
  261. $uploadStat = 1;
  262. require_once libfile('function/spacecp');
  263. album_update_pic($albumid);
  264. } else {
  265. $uploadStat = $uploadfiles;
  266. }
  267. $picurl = pic_get($uploadfiles['filepath'], 'album', $uploadfiles['thumb'], $uploadfiles['remote']);
  268. echo "<script>";
  269. if($uploadStat == 1) {
  270. echo "parent.spaceDiy.getdiy('diy', 'albumid', '$albumid');";
  271. echo "parent.spaceDiy.setBgImage('$picurl');";
  272. echo "parent.Util.toggleEle('upload');";
  273. } else {
  274. echo "parent.showDialog('$uploadStat','notice');";
  275. }
  276. echo "</script>";
  277. exit();
  278. }
  279. include_once(template('home/spacecp_index'));
  280. ?>