国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

492 lines
18KB

  1. <?php if(!defined('DEDEMEMBER')) exit('dedecms');
  2. /**
  3. * 空间操作
  4. *
  5. * @version $Id: space_action.php 1 15:18 2010年7月9日Z tianya $
  6. * @package DedeCMS.Member
  7. * @copyright Copyright (c) 2007 - 2020, DesDev, Inc.
  8. * @license http://help.dedecms.com/usersguide/license.html
  9. * @link http://www.dedecms.com
  10. */
  11. //是否允许用户空间显示未审核文档
  12. $addqSql = '';
  13. if($cfg_mb_allowncarc=='N') $addqSql .= " And arc.arcrank > -1 ";
  14. if(isset($mtype)) $mtype = intval($mtype);
  15. if(!empty($mtype)) $addqSql .= " And arc.mtype = '$mtype' ";
  16. /*---------------------------------
  17. 文章列表
  18. function list_article(){ }
  19. -------------------------------------*/
  20. if($action=='article')
  21. {
  22. if(empty($mtype)) $mtype = 0;
  23. include_once(DEDEINC.'/arc.memberlistview.class.php');
  24. include_once(DEDEINC.'/channelunit.func.php');
  25. $query = "SELECT arc.*,mt.mtypename,addt.body,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
  26. FROM `#@__archives` arc
  27. LEFT JOIN `#@__addonarticle` addt ON addt.aid=arc.id
  28. LEFT JOIN `#@__arctype` tp ON tp.id=arc.typeid
  29. LEFT JOIN `#@__mtypes` mt ON mt.mtypeid=arc.mtype
  30. WHERE arc.mid='{$_vars['mid']}' $addqSql AND arc.channel=1 ORDER BY arc.id DESC";
  31. $dlist = new MemberListview();
  32. $dlist->pageSize = $_vars['pagesize'];
  33. $dlist->SetParameter("mtype",$mtype);
  34. $dlist->SetParameter("uid",$_vars['userid']);
  35. $dlist->SetParameter("action",$action);
  36. $dlist->SetTemplate(DEDEMEMBER."/space/{$_vars['spacestyle']}/listarticle.htm");
  37. $dlist->SetSource($query);
  38. $dlist->Display();
  39. exit();
  40. }
  41. /*---------------------------------
  42. 单篇文章显示
  43. function view_archives(){ }
  44. -------------------------------------*/
  45. else if($action=='viewarchives' && !empty($aid) && is_numeric($aid))
  46. {
  47. if(empty($mtype)) $mtype = 0;
  48. include_once(DEDEINC.'/arc.memberlistview.class.php');
  49. include_once(DEDEINC.'/channelunit.func.php');
  50. //读取文章的评论
  51. $sql = "SELECT fb.*,mb.userid,mb.face as mface,mb.spacesta,mb.scores FROM `#@__feedback` fb
  52. LEFT JOIN `#@__member` mb ON mb.mid = fb.mid
  53. WHERE fb.aid='$aid' and fb.ischeck='1' ORDER BY fb.id DESC LIMIT 0, 50";
  54. $msgs = array();
  55. $dsql->Execute('fb', $sql);
  56. while ($row = $dsql->GetArray('fb'))
  57. {
  58. $msgs[] = $row;
  59. }
  60. //读取文章内容
  61. $query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,
  62. tp.ispart,tp.moresite,tp.siteurl,tp.sitepath,ar.body FROM `#@__archives` arc
  63. LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id
  64. LEFT JOIN `#@__addonarticle` ar ON ar.aid=arc.id
  65. WHERE arc.mid='{$_vars['mid']}' AND arc.channel=1 AND ar.typeid=tp.id AND ar.aid='$aid' ";
  66. $arcrow = $dsql->GetOne($query);
  67. if( !is_array($arcrow) )
  68. {
  69. ShowMsg(' 读取文档时发生未知错误! ', '-1');
  70. exit();
  71. }
  72. //解析模板
  73. $dlist = new MemberListview();
  74. $dlist->SetTemplate(DEDEMEMBER."/space/{$_vars['spacestyle']}/blog.htm");
  75. $dlist->Display();
  76. exit();
  77. }
  78. /*---------------------------------
  79. 所有文档列表
  80. function list_archives(){ }
  81. -------------------------------------*/
  82. else if($action=='archives')
  83. {
  84. if(empty($mtype)) $mtype = 0;
  85. include_once(DEDEINC.'/arc.memberlistview.class.php');
  86. include_once(DEDEINC.'/channelunit.func.php');
  87. //如果没指定频道ID的情况下,列出所有非单表模型文档
  88. if($cfg_mb_spaceallarc > 0 && empty($channelid)) $channelid = intval($cfg_mb_spaceallarc);
  89. if(empty($channelid))
  90. {
  91. $channelid = 0;
  92. $query = "SELECT arc.*,mt.mtypename,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
  93. FROM `#@__archives` arc
  94. LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id
  95. LEFT JOIN `#@__mtypes` mt ON mt.mtypeid=arc.mtype
  96. WHERE arc.mid='{$_vars['mid']}' $addqSql ORDER BY arc.id DESC";
  97. }
  98. else
  99. {
  100. $channelid = intval($channelid);
  101. $chRow = $dsql->GetOne("SELECT issystem,addtable,listfields From `#@__channeltype` WHERE id='$channelid' ");
  102. if(!is_array($chRow)) die(' Channel Error! ');
  103. if($chRow['issystem']==-1)
  104. {
  105. $addtable = trim($chRow['addtable']);
  106. $listfields = explode(',', $chRow['listfields']);
  107. $listfields_str = 'arc.'.join(',arc.', $listfields);
  108. if($listfields_str!='arc.')
  109. {
  110. $listfields_str = $listfields_str.',';
  111. }
  112. else {
  113. $listfields_str = '';
  114. }
  115. $query = "SELECT arc.aid,arc.aid as id,arc.typeid,'' as mtypename,1 as ismake,0 as money,'' as filename,{$listfields_str}
  116. tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
  117. FROM `{$addtable}` arc
  118. LEFT JOIN `#@__arctype` tp ON arc.typeid=tp.id
  119. WHERE arc.mid='{$_vars['mid']}' And arc.channel='$channelid' $addqSql ORDER BY arc.aid DESC";
  120. }
  121. else
  122. {
  123. $query = "SELECT arc.*,mt.mtypename,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
  124. from `#@__archives` arc
  125. LEFT JOIN `#@__arctype` tp on arc.typeid=tp.id
  126. LEFT JOIN `#@__mtypes` mt on mt.mtypeid=arc.mtype
  127. WHERE arc.mid='{$_vars['mid']}' And arc.channel='$channelid' $addqSql order by arc.id desc";
  128. }
  129. }
  130. $dlist = new MemberListview();
  131. $dlist->pageSize = $_vars['pagesize'];
  132. $dlist->SetParameter("mtype", $mtype);
  133. $dlist->SetParameter("uid", $_vars['userid']);
  134. $dlist->SetParameter("channelid", $channelid);
  135. $dlist->SetParameter("action", $action);
  136. $dlist->SetTemplate(DEDEMEMBER."/space/{$_vars['spacestyle']}/listarchives.htm");
  137. $dlist->SetSource($query);
  138. $dlist->Display();
  139. exit();
  140. }
  141. /*---------------------------------
  142. 所有文档列表
  143. function list_album(){ }
  144. -------------------------------------*/
  145. else if($action=='album')
  146. {
  147. if(empty($mtype)) {
  148. $mtype = 0;
  149. }
  150. include_once(DEDEINC.'/arc.memberlistview.class.php');
  151. include_once(DEDEINC.'/channelunit.func.php');
  152. $query = "SELECT arc.*,mt.mtypename,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
  153. from `#@__archives` arc
  154. left join `#@__arctype` tp on arc.typeid=tp.id
  155. left join `#@__mtypes` mt on mt.mtypeid=arc.mtype
  156. where arc.mid='{$_vars['mid']}' And arc.channel=2 $addqSql order by arc.id desc";
  157. $dlist = new MemberListview();
  158. $dlist->pageSize = $_vars['pagesize'];
  159. $dlist->SetParameter("mtype",$mtype);
  160. $dlist->SetParameter("uid",$_vars['userid']);
  161. $dlist->SetParameter("action",$action);
  162. $dlist->SetTemplate(DEDEMEMBER."/space/{$_vars['spacestyle']}/listalbum.htm");
  163. $dlist->SetSource($query);
  164. $dlist->Display();
  165. exit();
  166. }
  167. /*---------------------------------
  168. 留言本
  169. function guestbook(){ }
  170. -------------------------------------*/
  171. else if($action=='guestbook')
  172. {
  173. if(empty($mtype)) {
  174. $mtype = 0;
  175. }
  176. include_once(DEDEINC.'/datalistcp.class.php');
  177. $query = "SELECT mg.*,mb.face,mb.userid,mb.sex From `#@__member_guestbook` mg
  178. left join `#@__member` mb on mb.userid=mg.gid
  179. where mg.mid='{$_vars['mid']}' order by mg.aid desc";
  180. $dlist = new DataListCP();
  181. $dlist->pageSize = 10;
  182. $dlist->SetParameter("uid",$_vars['userid']);
  183. $dlist->SetParameter("action",$action);
  184. $dlist->SetTemplate(DEDEMEMBER."/space/{$_vars['spacestyle']}/guestbook.htm");
  185. $dlist->SetSource($query);
  186. $dlist->Display();
  187. exit();
  188. }
  189. /*---------------------------------
  190. 我的好友
  191. function friend(){ }
  192. -------------------------------------*/
  193. else if($action=='friend')
  194. {
  195. if(empty($mtype)) {
  196. $mtype = 0;
  197. }
  198. include_once(DEDEINC.'/arc.memberlistview.class.php');
  199. include_once(DEDEINC.'/channelunit.func.php');
  200. $query = "SELECT arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
  201. from `#@__archives` arc
  202. left join `#@__arctype` tp on arc.typeid=tp.id
  203. where arc.mid='{$_vars['mid']}' $addqSql order by arc.id desc";
  204. $dlist = new MemberListview();
  205. $dlist->pageSize = 8;
  206. $dlist->SetParameter("mtype",$mtype);
  207. $dlist->SetParameter("uid",$_vars['userid']);
  208. $dlist->SetParameter("action",$action);
  209. $dlist->SetTemplate(DEDEMEMBER."/space/{$_vars['spacestyle']}/friend.htm");
  210. $dlist->SetSource($query);
  211. $dlist->Display();
  212. exit();
  213. }
  214. /*---------------------------------
  215. 个人资料
  216. function infos(){ }
  217. -------------------------------------*/
  218. else if($action=='infos')
  219. {
  220. include_once(DEDEDATA.'/enums/nativeplace.php');
  221. include_once(DEDEINC."/enums.func.php");
  222. $row = $dsql->GetOne("SELECT * from `#@__member_person` where mid='{$_vars['mid']}' ");
  223. $dpl = new DedeTemplate();
  224. $dpl->LoadTemplate(DEDEMEMBER."/space/{$_vars['spacestyle']}/infos.htm");
  225. $dpl->display();
  226. }
  227. /*---------------------------------
  228. 保存留言
  229. function guestbook_save(){ }
  230. -------------------------------------*/
  231. else if($action=='guestbooksave')
  232. {
  233. CheckRank(0,0);
  234. $svali = GetCkVdValue();
  235. if(strtolower($vdcode)!=$svali || $svali=='')
  236. {
  237. ResetVdValue();
  238. ShowMsg('验证码错误!', '-1');
  239. exit();
  240. }
  241. $uidnum = intval($uidnum);
  242. if(empty($uidnum))
  243. {
  244. ShowMsg('参数错误!', '-1');
  245. exit();
  246. }
  247. if(strlen($msg)<6)
  248. {
  249. ShowMsg('你的留言内容太短!', '-1');
  250. exit();
  251. }
  252. $uname = HtmlReplace($uname, 1);
  253. $msg = cn_substrR(HtmlReplace($msg), 2048);
  254. $title = cn_substrR(HtmlReplace($title), 255);
  255. if($cfg_ml->M_UserName != '' && $cfg_ml->M_ID != $uidnum)
  256. {
  257. $gid = $cfg_ml->M_UserName;
  258. }
  259. else
  260. {
  261. $gid = '';
  262. }
  263. $inquery = "INSERT INTO `#@__member_guestbook`(mid,gid,title,msg,uname,ip,dtime)
  264. VALUES ('$uidnum','$gid','$title','$msg','$uname','".GetIP()."',".time()."); ";
  265. $dsql->ExecuteNoneQuery($inquery);
  266. ShowMsg('成功提交你的留言!', "index.php?uid={$uid}&action=guestbook");
  267. exit();
  268. }
  269. /*---------------------------------
  270. 删除留言
  271. function guestbook_del(){ }
  272. -------------------------------------*/
  273. else if($action=='guestbookdel')
  274. {
  275. CheckRank(0,0);
  276. if($cfg_ml->M_LoginID!=$uid)
  277. {
  278. ShowMsg('这条留言不是给你的,你不能删除!', -1);
  279. exit();
  280. }
  281. $aid = intval($aid);
  282. $inquery = "DELETE FROM `#@__member_guestbook` WHERE aid='$aid' AND mid='$mid'";
  283. $dsql->ExecuteNoneQuery($inquery);
  284. ShowMsg('成功删除!', "index.php?uid={$uid}&action=guestbook");
  285. exit();
  286. }
  287. /*---------------------------------
  288. 删除我的动态信息
  289. function feed_del(){ }
  290. -------------------------------------*/
  291. else if($action=='feeddel')
  292. {
  293. CheckRank(0,0);
  294. $fid=(empty($fid))? "" : intval($fid);
  295. $row = $dsql->GetOne("SELECT mid FROM `#@__member_feed` WHERE fid='$fid'");
  296. if($cfg_ml->M_ID!=$row['mid'])
  297. {
  298. ShowMsg('此动态信息不存在!', -1);
  299. exit();
  300. }
  301. $inquery = "DELETE FROM `#@__member_feed` WHERE fid='$fid' AND mid='".$cfg_ml->M_ID."'";
  302. $dsql->ExecuteNoneQuery($inquery);
  303. ShowMsg('成功删除一条动态信息!', "index.php");
  304. exit();
  305. }
  306. /*---------------------------------
  307. 删除我的心情信息
  308. function mood_del(){ }
  309. -------------------------------------*/
  310. else if($action=='mooddel')
  311. {
  312. CheckRank(0,0);
  313. $id=(empty($id))? "" : intval($id);
  314. $row = $dsql->GetOne("SELECT mid FROM `#@__member_msg` WHERE id='$id'");
  315. if($cfg_ml->M_ID!=$row['mid'])
  316. {
  317. ShowMsg('此动态信息不存在!', -1);
  318. exit();
  319. }
  320. $inquery = "DELETE FROM `#@__member_msg` WHERE id='$id' AND mid='".$cfg_ml->M_ID."'";
  321. $dsql->ExecuteNoneQuery($inquery);
  322. ShowMsg('成功删除一条心情!', "index.php");
  323. exit();
  324. }
  325. /*---------------------------------
  326. 加好友
  327. function newfriend(){ }
  328. -------------------------------------*/
  329. else if($action=='newfriend')
  330. {
  331. CheckRank(0,0);
  332. if($_vars['mid']==$cfg_ml->M_ID)
  333. {
  334. ShowMsg("你不能加自己为好友!","index.php?uid=".$uid);
  335. exit();
  336. }
  337. $addtime = time();
  338. $row = $dsql->GetOne("SELECT * FROM `#@__member_friends` where fid='{$_vars['mid']}' And mid='{$cfg_ml->M_ID}' ");
  339. if(is_array($row))
  340. {
  341. ShowMsg("该用户已经是你的好友!","index.php?uid=".$uid);
  342. exit();
  343. }
  344. else
  345. {
  346. #api{{
  347. if(defined('UC_API') && @include_once DEDEROOT.'/uc_client/client.php')
  348. {
  349. if($data = uc_get_user($cfg_ml->M_LoginID)) uc_friend_add($uid,$data[0]);
  350. }
  351. #/aip}}
  352. $inquery = "INSERT INTO `#@__member_friends` (`fid` , `floginid` , `funame` , `mid` , `addtime` , `ftype`)
  353. VALUES ('{$_vars['mid']}' , '{$_vars['userid']}' , '{$_vars['uname']}' , '{$cfg_ml->M_ID}' , '$addtime' , '0'); ";
  354. $dsql->ExecuteNoneQuery($inquery);
  355. //统计我的好友数量
  356. $row = $dsql->GetOne("SELECT COUNT(*) AS nums FROM `#@__member_friends` WHERE `mid`='".$cfg_ml->M_ID."'");
  357. $dsql->ExecuteNoneQuery("UPDATE `#@__member_tj` SET friend='$row[nums]' WHERE `mid`='".$cfg_ml->M_ID."'");
  358. //会员动态记录
  359. $cfg_ml->RecordFeeds('addfriends',"","",$_vars['userid']);
  360. ShowMsg("成功添加好友!","index.php?uid=".$uid);
  361. exit();
  362. }
  363. }
  364. /*---------------------------------
  365. 解除好友关系
  366. function newfriend(){ }
  367. -------------------------------------*/
  368. else if($action=='delfriend')
  369. {
  370. CheckRank(0,0);
  371. if($_vars['mid']==$cfg_ml->M_ID)
  372. {
  373. ShowMsg("你不能和自己为解除关系!","index.php?uid=".$uid);
  374. exit();
  375. }
  376. $addtime = time();
  377. $row = $dsql->GetOne("Select * FROM `#@__member_friends` where fid='{$_vars['mid']}' And mid='{$cfg_ml->M_ID}' ");
  378. if(!is_array($row))
  379. {
  380. ShowMsg("该用户已经不是你的好友!","index.php?uid=".$uid);
  381. exit();
  382. }
  383. else
  384. {
  385. #api{{
  386. if(defined('UC_API') && @include_once DEDEROOT.'/uc_client/client.php')
  387. {
  388. if($data = uc_get_user($cfg_ml->M_LoginID)) uc_friend_add($uid,$data[0]);
  389. }
  390. #/aip}}
  391. $inquery = "DELETE FROM `dede_member_friends` where fid='{$_vars['mid']}' And mid='{$cfg_ml->M_ID}' ";
  392. $dsql->ExecuteNoneQuery($inquery);
  393. //统计我的好友数量
  394. $row = $dsql->GetOne("SELECT COUNT(*) AS nums FROM `#@__member_friends` WHERE `mid`='".$cfg_ml->M_ID."'");
  395. $dsql->ExecuteNoneQuery("UPDATE `#@__member_tj` SET friend='$row[nums]' WHERE `mid`='".$cfg_ml->M_ID."'");
  396. ShowMsg("成功解除好友关系!","myfriend.php");
  397. exit();
  398. }
  399. }
  400. /*---------------------------------
  401. 加黑名单
  402. function blackfriend(){ }
  403. -------------------------------------*/
  404. else if($action=='blackfriend')
  405. {
  406. CheckRank(0,0);
  407. if($_vars['mid']==$cfg_ml->M_ID)
  408. {
  409. ShowMsg("你不能加自己到黑名单!","index.php?uid=".$uid);
  410. exit();
  411. }
  412. $addtime = time();
  413. $row = $dsql->GetOne("Select * FROM `#@__member_friends` where fid='{$_vars['mid']}' And mid='{$cfg_ml->M_ID}' ");
  414. if(is_array($row))
  415. {
  416. ShowMsg("该用户已经是你的好友!","index.php?uid=".$uid);
  417. exit();
  418. }
  419. else
  420. {
  421. $inquery = "INSERT INTO `#@__member_friends` (`fid` , `floginid` , `funame` , `mid` , `addtime` , `ftype`)
  422. VALUES ('{$cfg_ml->M_ID}' , '{$cfg_ml->M_LoginID}' , '{$cfg_ml->M_UserName}' , '{$_vars['mid']}' , '$addtime' , '-1'); ";
  423. $dsql->ExecuteNoneQuery($inquery);
  424. ShowMsg("成功添加好友在黑名单!","index.php?uid=".$uid);
  425. exit();
  426. }
  427. }
  428. /*--------------------
  429. function _contact_introduce() {}
  430. 公司简介
  431. ---------------------*/
  432. elseif($action == 'introduce')
  433. {
  434. $dpl = new DedeTemplate();
  435. $dpl->LoadTemplate(DEDEMEMBER."/space/{$_vars['spacestyle']}/introduce.htm");
  436. $dpl->display();
  437. }
  438. //联系我们
  439. elseif ($action == 'contact')
  440. {
  441. $dpl = new DedeTemplate();
  442. $dpl->LoadTemplate(DEDEMEMBER."/space/{$_vars['spacestyle']}/contact.htm");
  443. $dpl->display();
  444. }
  445. /*-------------------------------
  446. function products() { }
  447. 公司产品或新闻
  448. --------------------------------*/
  449. elseif($action == 'products')
  450. {
  451. $mtype = isset($mtype) && is_numeric($mtype) ? $mtype : 0;
  452. if($action == 'products') {
  453. $channel = 6;
  454. }
  455. include_once(DEDEINC.'/arc.memberlistview.class.php');
  456. include_once(DEDEINC.'/channelunit.func.php');
  457. $query = "Select arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,tp.namerule,
  458. tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath FROM `#@__archives` arc
  459. left join `#@__arctype` tp on arc.typeid=tp.id
  460. where arc.mid='{$_vars['mid']}' and arc.channel='$channel' $addqSql order by arc.id desc";
  461. $dlist = new MemberListview();
  462. $dlist->pageSize = 12;
  463. $dlist->SetParameter('mtype', $mtype);
  464. $dlist->SetParameter('uid', $_vars['userid']);
  465. $dlist->SetParameter('action', $action);
  466. $dlist->SetTemplate(DEDEMEMBER."/space/{$_vars['spacestyle']}/listproducts.htm");
  467. $dlist->SetSource($query);
  468. $dlist->Display();
  469. exit();
  470. }