PageRenderTime 47ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/core/module/u.module.php

https://github.com/alin40404/FanweShare
PHP | 1067 lines | 890 code | 171 blank | 6 comment | 46 complexity | 21b51d664377dec160711731ae5441c4 MD5 | raw file
Possible License(s): Apache-2.0
  1. <?php
  2. class UModule
  3. {
  4. public function me()
  5. {
  6. global $_FANWE;
  7. Cache::getInstance()->loadCache('citys');
  8. $home_uid = $_FANWE['home_uid'];
  9. $home_user = FS('User')->getUserById($home_uid);
  10. $reside_province = $_FANWE['cache']['citys']['all'][$home_user['reside_province']]['name'];
  11. $reside_city = $_FANWE['cache']['citys']['all'][$home_user['reside_city']]['name'];
  12. $page_size = 30;
  13. $uids = array();
  14. $uids[] = $_FANWE['uid'];
  15. //获取我关注的会员编号
  16. $sql = 'SELECT uid
  17. FROM '.FDB::table('user_follow').'
  18. WHERE f_uid = '.$_FANWE['uid'];
  19. $res = FDB::query($sql);
  20. while($data = FDB::fetch($res))
  21. {
  22. $uids[] = (int)$data['uid'];
  23. }
  24. $is_all = false;
  25. $sql = 'SELECT COUNT(share_id)
  26. FROM '.FDB::table("share").'
  27. WHERE uid IN ('.implode(',',$uids).')';
  28. $count = FDB::resultFirst($sql);
  29. if($count == 0)
  30. {
  31. $max_count = $page_size * 5;
  32. $is_all = true;
  33. $sql = 'SELECT COUNT(share_id) FROM '.FDB::table("share");
  34. $count = FDB::resultFirst($sql);
  35. if($count > $max_count)
  36. $count = $max_count;
  37. }
  38. $pager = buildPage('u/'.ACTION_NAME,array(),$count,$_FANWE['page'],$page_size);
  39. if($is_all)
  40. $sql = 'SELECT *
  41. FROM '.FDB::table("share").'
  42. ORDER BY share_id DESC LIMIT '.$pager['limit'];
  43. else
  44. $sql = 'SELECT *
  45. FROM '.FDB::table("share").'
  46. WHERE uid IN ('.implode(',',$uids).')
  47. ORDER BY share_id DESC LIMIT '.$pager['limit'];
  48. $share_list = FDB::fetchAll($sql);
  49. $share_list = FS('Share')->getShareDetailList($share_list,true,true,true);
  50. $args = array('share_list'=>&$share_list,'pager'=>&$pager);
  51. $share_list_html = tplFetch("inc/u/me_share_list",$args);
  52. $hot_events = FS('Event')->getHotImgEvent(3);
  53. $today_daren = FS('Daren')->getIndexTodayDaren();
  54. include template('page/u/u_me');
  55. display();
  56. }
  57. public function book()
  58. {
  59. global $_FANWE;
  60. $home_uid = $_FANWE['home_uid'];
  61. $home_user = FS('User')->getUserById($home_uid);
  62. Cache::getInstance()->loadCache('citys');
  63. $reside_province = $_FANWE['cache']['citys']['all'][$home_user['reside_province']]['name'];
  64. $reside_city = $_FANWE['cache']['citys']['all'][$home_user['reside_city']]['name'];
  65. $tags_sql = 'SELECT DISTINCT(st.tag_name)
  66. FROM '.FDB::table('share').' AS s
  67. INNER JOIN '.FDB::table('share_tags').' AS st ON st.share_id = s.share_id
  68. WHERE s.uid = '.$home_uid.' LIMIT 0,20';
  69. $focus_tags = FDB::fetchAll($tags_sql);
  70. $condition = " WHERE s.share_data in ('goods','photo','goods_photo') AND s.uid = ".$home_uid;
  71. $sql = 'SELECT COUNT(DISTINCT s.share_id) FROM '.FDB::table('share').' AS s '.$condition;
  72. $count=FDB::resultFirst($sql);
  73. $page_size = 43;
  74. $pageargs = array();
  75. $pageargs['uid'] = $home_uid;
  76. $pager = buildPage('u/'.ACTION_NAME,$pageargs,$count,$_FANWE['page'],$page_size,'',2);
  77. $sql = 'SELECT s.*
  78. FROM '.FDB::table('share').' as s '.$condition.' GROUP BY s.share_id LIMIT '.$pager['limit'];
  79. $share_list = FDB::fetchAll($sql);
  80. $share_list = FS('Share')->getShareDetailList($share_list,false,false,false,true,2);
  81. $is_show_follow = false;
  82. if($home_uid != $_FANWE['uid'])
  83. {
  84. if(!FS('User')->getIsFollowUId($home_uid))
  85. $is_show_follow = true;
  86. }
  87. $col = 4;
  88. $index = 0;
  89. $findex = 0;
  90. $share_display = array();
  91. foreach($share_list as $share)
  92. {
  93. if($findex < 3)
  94. {
  95. $share_display['col'.($findex + 1)][] = $share;
  96. }
  97. else
  98. {
  99. $mod = $index % $col;
  100. $share_display['col'.$mod][] = $share;
  101. $index++;
  102. }
  103. $findex++;
  104. }
  105. include template('page/u/u_book');
  106. display();
  107. }
  108. public function talk()
  109. {
  110. global $_FANWE;
  111. Cache::getInstance()->loadCache('citys');
  112. $home_uid = $_FANWE['home_uid'];
  113. $home_user = FS('User')->getUserById($home_uid);
  114. $reside_province = $_FANWE['cache']['citys']['all'][$home_user['reside_province']]['name'];
  115. $reside_city = $_FANWE['cache']['citys']['all'][$home_user['reside_city']]['name'];
  116. $page_size = 30;
  117. $pageargs = array();
  118. $pageargs['uid'] = $home_uid;
  119. $sql = 'SELECT COUNT(share_id)
  120. FROM '.FDB::table("share").'
  121. WHERE uid = '.$home_uid;
  122. $count = FDB::resultFirst($sql);
  123. $pager = buildPage('u/'.ACTION_NAME,$pageargs,$count,$_FANWE['page'],$page_size);
  124. $sql = 'SELECT *
  125. FROM '.FDB::table("share").'
  126. WHERE uid = '.$home_uid.'
  127. ORDER BY share_id DESC LIMIT '.$pager['limit'];
  128. $share_list = FDB::fetchAll($sql);
  129. $share_list = FS('Share')->getShareDetailList($share_list,true,true,true);
  130. $args = array('share_list'=>&$share_list,'pager'=>&$pager);
  131. if($home_uid == $_FANWE['uid'])
  132. $share_list_html = tplFetch("inc/u/u_share_list",$args);
  133. else
  134. $share_list_html = tplFetch("inc/u/me_share_list",$args);
  135. $hot_events = FS('Event')->getHotImgEvent(3);
  136. $today_daren = FS('Daren')->getIndexTodayDaren();
  137. include template('page/u/u_me');
  138. display();
  139. }
  140. public function atme()
  141. {
  142. global $_FANWE;
  143. Cache::getInstance()->loadCache('citys');
  144. $home_uid = $_FANWE['home_uid'];
  145. $home_user = FS('User')->getUserById($home_uid);
  146. $type = $_FANWE['request']['type'];
  147. $reside_province = $_FANWE['cache']['citys']['all'][$home_user['reside_province']]['name'];
  148. $reside_city = $_FANWE['cache']['citys']['all'][$home_user['reside_city']]['name'];
  149. $page_size = 30;
  150. $pageargs = array();
  151. $pageargs['uid'] = $home_uid;
  152. $pageargs['type'] = $type;
  153. if($type =='faved')
  154. {
  155. if($_FANWE['uid']==$home_uid)
  156. {
  157. //将评论我的统计设置为0
  158. FDB::query("update ".FDB::table("user_notice")." set num=0 where `type`=2 and uid=".intval($_FANWE['uid']));
  159. }
  160. $sql = 'SELECT COUNT(s.share_id)
  161. FROM '.FDB::table("share").' AS s
  162. LEFT JOIN '.FDB::table("user_collect").' as uc on uc.c_uid=s.uid and uc.share_id=s.parent_id
  163. WHERE uc.uid = '.$home_uid.' and s.type=\'fav\' ';
  164. $count = FDB::resultFirst($sql);
  165. $pager = buildPage('u/'.ACTION_NAME,$pageargs,$count,$_FANWE['page'],$page_size);
  166. $sql = 'SELECT s.*
  167. FROM '.FDB::table("share").' AS s
  168. LEFT JOIN '.FDB::table("user_collect").' as uc on uc.c_uid=s.uid and uc.share_id=s.parent_id
  169. WHERE uc.uid = '.$home_uid.' and s.type=\'fav\'
  170. ORDER BY s.share_id DESC LIMIT '.$pager['limit'];
  171. $share_list = FDB::fetchAll($sql);
  172. }
  173. else
  174. {
  175. if($_FANWE['uid']==$home_uid)
  176. {
  177. //将评论我的统计设置为0
  178. FDB::query("update ".FDB::table("user_notice")." set num=0 where `type`=4 and uid=".intval($_FANWE['uid']));
  179. }
  180. $sql = 'SELECT COUNT(*)
  181. FROM '.FDB::table("share").' AS s
  182. LEFT JOIN '.FDB::table("atme").' as a on a.share_id=s.share_id
  183. WHERE a.uid = '.$home_uid.' and s.uid <> '.$home_uid.' and s.type<>\'fav\' ';
  184. $count = FDB::resultFirst($sql);
  185. $pager = buildPage('u/'.ACTION_NAME,$pageargs,$count,$_FANWE['page'],$page_size);
  186. $sql = 'SELECT s.*
  187. FROM '.FDB::table("share").' AS s
  188. LEFT JOIN '.FDB::table("atme").' as a on a.share_id=s.share_id
  189. WHERE a.uid = '.$home_uid.' and s.uid <> '.$home_uid.' and s.type<>\'fav\'
  190. ORDER BY s.share_id DESC LIMIT '.$pager['limit'];
  191. $share_list = FDB::fetchAll($sql);
  192. }
  193. $share_list = FS('Share')->getShareDetailList($share_list,true,true,true);
  194. $args = array('share_list'=>&$share_list,'pager'=>&$pager);
  195. $share_list_html = tplFetch("inc/u/u_share_list",$args);
  196. $hot_events = FS('Event')->getHotImgEvent(3);
  197. $today_daren = FS('Daren')->getIndexTodayDaren();
  198. include template('page/u/u_me');
  199. display();
  200. }
  201. public function comments()
  202. {
  203. global $_FANWE;
  204. Cache::getInstance()->loadCache('citys');
  205. $home_uid = $_FANWE['home_uid'];
  206. $home_user = FS('User')->getUserById($home_uid);
  207. if($_FANWE['uid']==$home_uid)
  208. {
  209. //将评论我的统计设置为0
  210. FDB::query("update ".FDB::table("user_notice")." set num=0 where `type`=3 and uid=".intval($_FANWE['uid']));
  211. }
  212. $reside_province = $_FANWE['cache']['citys']['all'][$home_user['reside_province']]['name'];
  213. $reside_city = $_FANWE['cache']['citys']['all'][$home_user['reside_city']]['name'];
  214. $page_size = 30;
  215. $pageargs = array();
  216. $pageargs['uid'] = $home_uid;
  217. $sql = 'SELECT COUNT(sc.comment_id)
  218. FROM '.FDB::table("share").' AS s
  219. INNER JOIN '.FDB::table("share_comment").' AS sc ON sc.share_id = s.share_id
  220. WHERE s.uid = '.$home_uid;
  221. $count = FDB::resultFirst($sql);
  222. $pager = buildPage('u/'.ACTION_NAME,$pageargs,$count,$_FANWE['page'],$page_size);
  223. $comment_list = array();
  224. $sql = 'SELECT sc.*,s.content as scontent
  225. FROM '.FDB::table("share").' AS s
  226. INNER JOIN '.FDB::table("share_comment").' AS sc ON sc.share_id = s.share_id
  227. WHERE s.uid = '.$home_uid.'
  228. ORDER BY comment_id DESC LIMIT '.$pager['limit'];
  229. $res = FDB::query($sql);
  230. while($data = FDB::fetch($res))
  231. {
  232. $data['time'] = getBeforeTimelag($data['create_time']);
  233. $data['url'] = FU('note/index',array('sid'=>$data['share_id']));
  234. $comment_list[] = $data;
  235. }
  236. $args = array('comment_list'=>&$comment_list,'pager'=>&$pager);
  237. $share_list_html = tplFetch("inc/u/u_comments_list",$args);
  238. $hot_events = FS('Event')->getHotImgEvent(3);
  239. $today_daren = FS('Daren')->getIndexTodayDaren();
  240. include template('page/u/u_me');
  241. display();
  242. }
  243. public function all()
  244. {
  245. global $_FANWE;
  246. Cache::getInstance()->loadCache('citys');
  247. $home_uid = $_FANWE['home_uid'];
  248. $home_user = FS('User')->getUserById($home_uid);
  249. $reside_province = $_FANWE['cache']['citys']['all'][$home_user['reside_province']]['name'];
  250. $reside_city = $_FANWE['cache']['citys']['all'][$home_user['reside_city']]['name'];
  251. $page_size = 30;
  252. $max_count = $page_size * 5;
  253. $is_all = true;
  254. $sql = 'SELECT COUNT(share_id) FROM '.FDB::table("share");
  255. $count = FDB::resultFirst($sql);
  256. if($count > $max_count)
  257. $count = $max_count;
  258. $pager = buildPage('u/'.ACTION_NAME,array(),$count,$_FANWE['page'],$page_size);
  259. $sql = 'SELECT *
  260. FROM '.FDB::table("share").'
  261. ORDER BY share_id DESC LIMIT '.$pager['limit'];
  262. $share_list = FDB::fetchAll($sql);
  263. $share_list = FS('Share')->getShareDetailList($share_list,true,true,true);
  264. $args = array('share_list'=>&$share_list,'pager'=>&$pager);
  265. $share_list_html = tplFetch("inc/u/me_share_list",$args);
  266. $hot_events = FS('Event')->getHotImgEvent(3);
  267. $today_daren = FS('Daren')->getIndexTodayDaren();
  268. include template('page/u/u_me');
  269. display();
  270. }
  271. public function fav()
  272. {
  273. global $_FANWE;
  274. Cache::getInstance()->loadCache('citys');
  275. $home_uid = $_FANWE['home_uid'];
  276. $home_user = FS('User')->getUserById($home_uid);
  277. $current_menu = 'fav';
  278. $reside_province = $_FANWE['cache']['citys']['all'][$home_user['reside_province']]['name'];
  279. $reside_city = $_FANWE['cache']['citys']['all'][$home_user['reside_city']]['name'];
  280. $page_size = 30;
  281. $pageargs = array();
  282. $pageargs['uid'] = $home_uid;
  283. $fav_share_ids = array();
  284. $sql = 'SELECT parent_id
  285. FROM '.FDB::table("share").'
  286. WHERE type = \'fav\' AND uid = '.$home_uid.'
  287. GROUP BY parent_id';
  288. $res = FDB::query($sql);
  289. while($data = FDB::fetch($res))
  290. {
  291. $fav_share_ids[] = $data['parent_id'];
  292. }
  293. $count = count($fav_share_ids);
  294. if($count > 0)
  295. {
  296. $sql = 'SELECT uid
  297. FROM '.FDB::table("share").'
  298. WHERE share_id '.FDB::createIN($fav_share_ids).'
  299. GROUP BY uid';
  300. $fav_uids = array();
  301. $res = FDB::query($sql);
  302. while($data = FDB::fetch($res))
  303. {
  304. $fav_uids[] = $data['uid'];
  305. }
  306. $fav_share_ids = array();
  307. $sql = 'SELECT parent_id
  308. FROM '.FDB::table("share").'
  309. WHERE type = \'fav\' AND uid '.FDB::createIN($fav_uids).'
  310. GROUP BY parent_id
  311. ORDER BY parent_id DESC LIMIT 0,100';
  312. $res = FDB::query($sql);
  313. while($data = FDB::fetch($res))
  314. {
  315. $fav_share_ids[] = $data['parent_id'];
  316. }
  317. $sql = 'SELECT *
  318. FROM '.FDB::table("share").'
  319. WHERE share_id '.FDB::createIN($fav_share_ids).'
  320. AND share_data IN (\'goods\',\'goods_photo\',\'photo\')
  321. AND uid <> '.$home_uid.'
  322. GROUP BY share_id ORDER BY share_id DESC LIMIT 0,10';
  323. $fav_list = FDB::fetchAll($sql);
  324. $fav_list = FS('Share')->getShareDetailList($fav_list);
  325. }
  326. $pager = buildPage('u/'.ACTION_NAME,$pageargs,$count,$_FANWE['page'],$page_size);
  327. $fav_share_ids = array();
  328. $sql = 'SELECT parent_id
  329. FROM '.FDB::table("share").'
  330. WHERE type = \'fav\' AND uid = '.$home_uid.'
  331. GROUP BY parent_id
  332. ORDER BY parent_id DESC LIMIT '.$pager['limit'];
  333. $res = FDB::query($sql);
  334. while($data = FDB::fetch($res))
  335. {
  336. $fav_share_ids[] = $data['parent_id'];
  337. }
  338. $share_list = array();
  339. if(count($fav_share_ids) > 0)
  340. {
  341. $sql = 'SELECT *
  342. FROM '.FDB::table("share").'
  343. WHERE share_id '.FDB::createIN($fav_share_ids).'
  344. GROUP BY share_id ORDER BY share_id DESC LIMIT 0,10';
  345. $share_list = FDB::fetchAll($sql);
  346. $share_list = FS('Share')->getShareDetailList($share_list,true,true,true);
  347. }
  348. $args = array('share_list'=>&$share_list,'pager'=>&$pager);
  349. $share_list_html = tplFetch("inc/u/u_share_list",$args);
  350. $hot_events = FS('Event')->getHotImgEvent(3);
  351. $today_daren = FS('Daren')->getIndexTodayDaren();
  352. include template('page/u/u_fav');
  353. display();
  354. }
  355. public function bao()
  356. {
  357. global $_FANWE;
  358. $home_uid = $_FANWE['home_uid'];
  359. $home_user = FS('User')->getUserById($home_uid);
  360. $user_names = FS('User')->getUserShowName($home_uid);
  361. $page_args = array(
  362. 'uid'=>$home_uid
  363. );
  364. $current_menu = 'bao';
  365. $pager = buildPage('u/'.ACTION_NAME,$page_args,$home_user['goods'],$_FANWE['page'],36);
  366. $goods_list = array();
  367. $res = FDB::query('SELECT sg.goods_id,sg.share_id,sg.img,sg.name,sg.price,s.collect_count
  368. FROM '.FDB::table('share_goods').' AS sg
  369. INNER JOIN '.FDB::table("share").' AS s ON s.share_id = sg.share_id
  370. WHERE sg.uid = '.$home_uid.' ORDER BY sg.goods_id DESC LIMIT '.$pager['limit']);
  371. while($goods = FDB::fetch($res))
  372. {
  373. $goods['url'] = FU('note/g',array('sid'=>$goods['share_id'],'id'=>$goods['goods_id']));
  374. $goods_list[] = $goods;
  375. }
  376. include template('page/u/u_bao');
  377. display();
  378. }
  379. public function photo()
  380. {
  381. global $_FANWE;
  382. $home_uid = $_FANWE['home_uid'];
  383. $home_user = FS('User')->getUserById($home_uid);
  384. $user_names = FS('User')->getUserShowName($home_uid);
  385. $page_args = array(
  386. 'uid'=>$home_uid
  387. );
  388. $current_menu = 'photo';
  389. $pager = buildPage('u/'.ACTION_NAME,$page_args,$home_user['photos'],$_FANWE['page'],36);
  390. $photo_list = array();
  391. $res = FDB::query('SELECT sp.photo_id,sp.share_id,sp.img,s.collect_count
  392. FROM '.FDB::table('share_photo').' AS sp
  393. INNER JOIN '.FDB::table("share").' AS s ON s.share_id = sp.share_id
  394. WHERE sp.uid = '.$home_uid.' ORDER BY sp.photo_id DESC LIMIT '.$pager['limit']);
  395. while($photo = FDB::fetch($res))
  396. {
  397. $photo['url'] = FU('note/m',array('sid'=>$photo['share_id'],'id'=>$photo['photo_id']));
  398. $photo_list[] = $photo;
  399. }
  400. include template('page/u/u_photo');
  401. display();
  402. }
  403. public function topic()
  404. {
  405. global $_FANWE;
  406. $home_uid = $_FANWE['home_uid'];
  407. $home_user = FS('User')->getUserById($home_uid);
  408. FanweService::instance()->cache->loadCache('forums');
  409. $current_menu = 'topic';
  410. $page_args = array(
  411. 'uid'=>$home_uid
  412. );
  413. $pager = buildPage('u/'.ACTION_NAME,$page_args,$home_user['forums'],$_FANWE['page'],10);
  414. $thread_list = array();
  415. $res = FDB::query('SELECT ft.*,s.cache_data FROM '.FDB::table('forum_thread').' AS ft
  416. INNER JOIN '.FDB::table('share').' AS s ON s.share_id = ft.share_id
  417. WHERE ft.uid = '.$home_uid.' ORDER BY ft.tid DESC LIMIT '.$pager['limit']);
  418. while($thread = FDB::fetch($res))
  419. {
  420. $thread['cache_data'] = fStripslashes(unserialize($thread['cache_data']));
  421. $thread['url'] = FU('club/detail',array('tid'=>$thread['tid']));
  422. $thread['time'] = getBeforeTimelag($thread['create_time']);
  423. $thread['cate'] = $_FANWE['cache']['forums']['all'][$thread['fid']];
  424. FS('Share')->shareImageFormat($thread);
  425. unset($thread['cache_data']);
  426. $thread_list[$thread['share_id']] = $thread;
  427. }
  428. include template('page/u/u_topic');
  429. display();
  430. }
  431. public function maybe()
  432. {
  433. global $_FANWE;
  434. $home_uid = $_FANWE['home_uid'];
  435. $home_user = FS('User')->getUserById($home_uid);
  436. $user_names = FS('User')->getUserShowName($home_uid);
  437. FanweService::instance()->cache->loadCache('forums');
  438. $page_args = array(
  439. 'uid'=>$home_uid
  440. );
  441. $current_menu = 'topic';
  442. $follow_uids = array();
  443. $sql = 'SELECT uid
  444. FROM '.FDB::table('user_follow').'
  445. WHERE f_uid = '.$home_uid.'
  446. GROUP BY uid';
  447. $res = FDB::query($sql);
  448. while($data = FDB::fetch($res))
  449. {
  450. $follow_uids[] = $data['uid'];
  451. }
  452. if(count($follow_uids) > 0)
  453. {
  454. $sql = 'SELECT COUNT(tid)
  455. FROM '.FDB::table('forum_thread').'
  456. WHERE uid '.FDB::createIN($follow_uids);
  457. $count = FDB::resultFirst($sql);
  458. $pager = buildPage('u/'.ACTION_NAME,$page_args,$count,$_FANWE['page'],10);
  459. $thread_list = array();
  460. $res = FDB::query('SELECT ft.*,s.cache_data FROM '.FDB::table('forum_thread').' AS ft
  461. INNER JOIN '.FDB::table('share').' AS s ON s.share_id = ft.share_id
  462. WHERE ft.uid '.FDB::createIN($follow_uids).' ORDER BY ft.tid DESC LIMIT '.$pager['limit']);
  463. while($thread = FDB::fetch($res))
  464. {
  465. $thread['cache_data'] = fStripslashes(unserialize($thread['cache_data']));
  466. $thread['url'] = FU('club/detail',array('tid'=>$thread['tid']));
  467. $thread['time'] = getBeforeTimelag($thread['create_time']);
  468. $thread['cate'] = $_FANWE['cache']['forums']['all'][$thread['fid']];
  469. FS('Share')->shareImageFormat($thread);
  470. unset($thread['cache_data']);
  471. $thread_list[$thread['share_id']] = $thread;
  472. }
  473. }
  474. include template('page/u/u_topic');
  475. display();
  476. }
  477. public function ask()
  478. {
  479. global $_FANWE;
  480. $home_uid = $_FANWE['home_uid'];
  481. $home_user = FS('User')->getUserById($home_uid);
  482. FanweService::instance()->cache->loadCache('asks');
  483. $page_args = array(
  484. 'uid'=>$home_uid
  485. );
  486. $current_menu = 'topic';
  487. $pager = buildPage('u/'.ACTION_NAME,$page_args,$home_user['ask'],$_FANWE['page'],10);
  488. $thread_list = array();
  489. $res = FDB::query('SELECT at.*,s.cache_data FROM '.FDB::table('ask_thread').' AS at
  490. INNER JOIN '.FDB::table('share').' AS s ON s.share_id = at.share_id
  491. WHERE at.uid = '.$home_uid.' ORDER BY at.tid DESC LIMIT '.$pager['limit']);
  492. while($thread = FDB::fetch($res))
  493. {
  494. $thread['cache_data'] = fStripslashes(unserialize($thread['cache_data']));
  495. $thread['url'] = FU('ask/detail',array('tid'=>$thread['tid']));
  496. $thread['time'] = getBeforeTimelag($thread['create_time']);
  497. $thread['cate'] = $_FANWE['cache']['asks'][$thread['aid']];
  498. FS('Share')->shareImageFormat($thread);
  499. unset($thread['cache_data']);
  500. $thread_list[$thread['share_id']] = $thread;
  501. }
  502. include template('page/u/u_topic');
  503. display();
  504. }
  505. public function attention()
  506. {
  507. global $_FANWE;
  508. $home_uid = $_FANWE['home_uid'];
  509. $home_user = FS('User')->getUserById($home_uid);
  510. FanweService::instance()->cache->loadCache('asks');
  511. FanweService::instance()->cache->loadCache('forums');
  512. $page_args = array(
  513. 'uid'=>$home_uid
  514. );
  515. $current_menu = 'topic';
  516. $share_datas = array();
  517. $count = FDB::resultFirst('SELECT COUNT(uid) FROM '.FDB::table('user_attention').' WHERE uid = '.$home_uid);
  518. $pager = buildPage('u/'.ACTION_NAME,$page_args,$count,$_FANWE['page'],10);
  519. $thread_list = array();
  520. $res = FDB::query('SELECT ua.rec_id,s.cache_data,ua.type,ua.share_id
  521. FROM '.FDB::table('user_attention').' AS ua
  522. INNER JOIN '.FDB::table('share').' AS s ON s.share_id = ua.share_id
  523. WHERE ua.uid = '.$home_uid.' ORDER BY ua.create_time DESC LIMIT '.$pager['limit']);
  524. while($attention = FDB::fetch($res))
  525. {
  526. if($attention['type'] == 'bar')
  527. {
  528. $sql = 'SELECT tid,fid,title,content,ft.uid,post_count,ft.create_time
  529. FROM '.FDB::table('forum_thread').' AS ft
  530. WHERE ft.tid = '.$attention['rec_id'];
  531. }
  532. else
  533. {
  534. $sql = 'SELECT tid,aid,title,content,at.uid,post_count,at.create_time
  535. FROM '.FDB::table('ask_thread').' AS at
  536. WHERE at.tid = '.$attention['rec_id'];
  537. }
  538. $thread = FDB::fetchFirst($sql);
  539. if($attention['type'] == 'bar')
  540. {
  541. $thread['url'] = FU('club/detail',array('tid'=>$thread['tid']));
  542. $thread['cate'] = $_FANWE['cache']['forums']['all'][$thread['fid']];
  543. }
  544. else
  545. {
  546. $thread['url'] = FU('ask/detail',array('tid'=>$thread['tid']));
  547. $thread['cate'] = $_FANWE['cache']['asks'][$thread['aid']];
  548. }
  549. $thread['time'] = getBeforeTimelag($thread['create_time']);
  550. $thread['cache_data'] = fStripslashes(unserialize($thread['cache_data']));
  551. FS('Share')->shareImageFormat($thread);
  552. unset($thread['cache_data']);
  553. $thread_list[$attention['share_id']] = $thread;
  554. }
  555. include template('page/u/u_topic');
  556. display();
  557. }
  558. public function feed()
  559. {
  560. global $_FANWE;
  561. $home_uid = $_FANWE['home_uid'];
  562. $home_user = FS('User')->getUserById($home_uid);
  563. FanweService::instance()->cache->loadCache('asks');
  564. FanweService::instance()->cache->loadCache('forums');
  565. $page_args = array(
  566. 'uid'=>$home_uid
  567. );
  568. $current_menu = 'topic';
  569. $count = FDB::resultFirst('SELECT COUNT(DISTINCT parent_id)
  570. FROM '.FDB::table('share').'
  571. WHERE type IN (\'bar_post\',\'ask_post\') AND uid = '.$home_uid);
  572. $pager = buildPage('u/'.ACTION_NAME,$page_args,$count,$_FANWE['page'],10);
  573. $thread_list = array();
  574. $res = FDB::query('SELECT s1.share_id,s.rec_id,s1.cache_data,s.type
  575. FROM '.FDB::table('share').' AS s
  576. INNER JOIN '.FDB::table('share').' AS s1 ON s1.share_id = s.parent_id
  577. WHERE s.type IN (\'bar_post\',\'ask_post\') AND s.uid = '.$home_uid.'
  578. GROUP BY s.parent_id
  579. ORDER BY s.parent_id DESC LIMIT '.$pager['limit']);
  580. while($data = FDB::fetch($res))
  581. {
  582. if($data['type'] == 'bar_post')
  583. {
  584. $sql = 'SELECT tid,fid,title,content,ft.uid,post_count,ft.create_time
  585. FROM '.FDB::table('forum_thread').' AS ft
  586. WHERE ft.tid = '.$data['rec_id'];
  587. }
  588. else
  589. {
  590. $sql = 'SELECT tid,aid,title,content,at.uid,post_count,at.create_time
  591. FROM '.FDB::table('ask_thread').' AS at
  592. WHERE at.tid = '.$data['rec_id'];
  593. }
  594. $thread = FDB::fetchFirst($sql);
  595. if($data['type'] == 'bar_post')
  596. {
  597. $thread['url'] = FU('club/detail',array('tid'=>$thread['tid']));
  598. $thread['cate'] = $_FANWE['cache']['forums']['all'][$thread['fid']];
  599. }
  600. else
  601. {
  602. $thread['url'] = FU('ask/detail',array('tid'=>$thread['tid']));
  603. $thread['cate'] = $_FANWE['cache']['asks'][$thread['aid']];
  604. }
  605. $thread['cache_data'] = fStripslashes(unserialize($data['cache_data']));
  606. $thread['time'] = getBeforeTimelag($thread['create_time']);
  607. FS('Share')->shareImageFormat($thread);
  608. unset($thread['cache_data']);
  609. $thread_list[$data['share_id']] = $thread;
  610. }
  611. include template('page/u/u_topic');
  612. display();
  613. }
  614. public function follow()
  615. {
  616. global $_FANWE;
  617. $home_uid = $_FANWE['home_uid'];
  618. $home_user = FS('User')->getUserById($home_uid);
  619. $page_args = array(
  620. 'uid'=>$home_uid
  621. );
  622. Cache::getInstance()->loadCache('citys');
  623. $reside_province = $_FANWE['cache']['citys']['all'][$home_user['reside_province']]['name'];
  624. $reside_city = $_FANWE['cache']['citys']['all'][$home_user['reside_city']]['name'];
  625. $count = FDB::resultFirst('SELECT COUNT(uid) FROM '.FDB::table('user_follow').' WHERE f_uid = '.$home_uid);
  626. $pager = buildPage('u/'.ACTION_NAME,$page_args,$count,$_FANWE['page'],20);
  627. $user_list = array();
  628. $res = FDB::query('SELECT u.uid,u.user_name,u.server_code,uc.fans,up.reside_province,up.reside_city
  629. FROM '.FDB::table('user_follow').' AS uf
  630. INNER JOIN '.FDB::table('user').' AS u ON u.uid = uf.uid
  631. INNER JOIN '.FDB::table('user_count').' AS uc ON uc.uid = uf.uid
  632. INNER JOIN '.FDB::table('user_profile').' AS up ON up.uid = uf.uid
  633. WHERE uf.f_uid = '.$home_uid.' ORDER BY uf.create_time DESC LIMIT '.$pager['limit']);
  634. while($data = FDB::fetch($res))
  635. {
  636. if($home_uid == $_FANWE['uid'])
  637. $data['is_follow'] = FS('User')->getIsFollowUId2($data['uid'],$home_uid);
  638. if($home_uid != $_FANWE['uid'])
  639. $data['is_follow'] = FS('User')->getIsFollowUId($data['uid']);
  640. $data['reside_province'] = $_FANWE['cache']['citys']['all'][$data['reside_province']]['name'];
  641. $data['reside_city'] = $_FANWE['cache']['citys']['all'][$data['reside_city']]['name'];
  642. $data['share'] = FDB::fetchFirst('SELECT share_id,create_time,content
  643. FROM '.FDB::table('share').'
  644. WHERE uid = '.$data['uid'].'
  645. ORDER BY share_id DESC
  646. LIMIT 0,1');
  647. if($data['share'])
  648. {
  649. $data['share']['url'] = FU('note/index',array('sid'=>$data['share']['share_id']));
  650. $data['share']['time'] = getBeforeTimelag($data['share']['create_time']);
  651. }
  652. $user_list[] = $data;
  653. }
  654. include template('page/u/u_follow');
  655. display();
  656. }
  657. public function fans()
  658. {
  659. global $_FANWE;
  660. $home_uid = $_FANWE['home_uid'];
  661. $home_user = FS('User')->getUserById($home_uid);
  662. if($_FANWE['uid']==$home_uid)
  663. {
  664. //将我的粉丝信息统计设置为0
  665. FDB::query("update ".FDB::table("user_notice")." set num=0 where `type`=1 and uid=".intval($_FANWE['uid']));
  666. }
  667. $page_args = array(
  668. 'uid'=>$home_uid
  669. );
  670. Cache::getInstance()->loadCache('citys');
  671. $reside_province = $_FANWE['cache']['citys']['all'][$home_user['reside_province']]['name'];
  672. $reside_city = $_FANWE['cache']['citys']['all'][$home_user['reside_city']]['name'];
  673. $count = FDB::resultFirst('SELECT COUNT(uid) FROM '.FDB::table('user_follow').' WHERE uid = '.$home_uid);
  674. $pager = buildPage('u/'.ACTION_NAME,$page_args,$count,$_FANWE['page'],20);
  675. $user_list = array();
  676. $res = FDB::query('SELECT u.uid,u.user_name,u.server_code,uc.fans,up.reside_province,up.reside_city
  677. FROM '.FDB::table('user_follow').' AS uf
  678. INNER JOIN '.FDB::table('user').' AS u ON u.uid = uf.f_uid
  679. INNER JOIN '.FDB::table('user_count').' AS uc ON uc.uid = uf.f_uid
  680. INNER JOIN '.FDB::table('user_profile').' AS up ON up.uid = uf.f_uid
  681. WHERE uf.uid = '.$home_uid.' ORDER BY uf.create_time DESC LIMIT '.$pager['limit']);
  682. while($data = FDB::fetch($res))
  683. {
  684. $data['is_follow'] = FS('User')->getIsFollowUId($data['uid']);
  685. $data['reside_province'] = $_FANWE['cache']['citys']['all'][$data['reside_province']]['name'];
  686. $data['reside_city'] = $_FANWE['cache']['citys']['all'][$data['reside_city']]['name'];
  687. $data['share'] = FDB::fetchFirst('SELECT share_id,create_time,content
  688. FROM '.FDB::table('share').'
  689. WHERE uid = '.$data['uid'].'
  690. ORDER BY share_id DESC
  691. LIMIT 0,1');
  692. if($data['share'])
  693. {
  694. $data['share']['url'] = FU('note/index',array('sid'=>$data['share']['share_id']));
  695. $data['share']['time'] = getBeforeTimelag($data['share']['create_time']);
  696. }
  697. $user_list[] = $data;
  698. }
  699. include template('page/u/u_fans');
  700. display();
  701. }
  702. public function message()
  703. {
  704. global $_FANWE;
  705. $home_uid = $_FANWE['uid'];
  706. $home_user = FS('User')->getUserById($home_uid);
  707. $current_menu = 'message';
  708. $count = FS('Message')->getMsgCount($_FANWE['uid']);
  709. $pager = buildPage('u/'.ACTION_NAME,array(),$count,$_FANWE['page'],10);
  710. $sys_msgs = FS('Message')->getSysMsgs($_FANWE['uid']);
  711. $sys_notices = FS('Notice')->getList($_FANWE['uid']);
  712. $msg_list = FS('Message')->getMsgList($_FANWE['uid'],$pager['limit']);
  713. FDB::query("DELETE FROM ".FDB::table('user_notice')." WHERE uid='$home_uid' AND type=5");
  714. include template('page/u/u_message');
  715. display();
  716. }
  717. public function sendmsg()
  718. {
  719. global $_FANWE;
  720. $home_uid = $_FANWE['uid'];
  721. $home_user = FS('User')->getUserById($home_uid);
  722. $current_menu = 'message';
  723. $count = FDB::resultFirst('SELECT COUNT(uid) FROM '.FDB::table('user_follow').' WHERE uid = '.$home_uid);
  724. $pager = buildPage('',array(),$count,$_FANWE['page'],30);
  725. $user_list = FDB::fetchAll('SELECT u.uid,u.user_name,u.server_code
  726. FROM '.FDB::table('user_follow').' AS uf
  727. INNER JOIN '.FDB::table('user').' AS u ON u.uid = uf.f_uid
  728. WHERE uf.uid = '.$home_uid.' ORDER BY uf.create_time DESC LIMIT '.$pager['limit']);
  729. include template('page/u/u_sendmsg');
  730. display();
  731. }
  732. public function msgview()
  733. {
  734. global $_FANWE;
  735. $home_uid = $_FANWE['uid'];
  736. $home_user = FS('User')->getUserById($home_uid);
  737. $current_menu = 'message';
  738. $mlid = intval($_FANWE['request']['lid']);
  739. $mid = intval($_FANWE['request']['mid']);
  740. if($mlid == 0 && $mid == 0)
  741. fHeader("location: ".FU('u/message',array('uid'=>$_FANWE['uid'])));
  742. $pageargs = array();
  743. if($mlid > 0)
  744. {
  745. $pageargs['lid'] = $mlid;
  746. $mlist = FS('Message')->getListByMlid($mlid,$_FANWE['uid']);
  747. if(empty($mlist))
  748. fHeader("location: ".FU('u/message',array('uid'=>$_FANWE['uid'])));
  749. $pager = buildPage('u/'.ACTION_NAME,$pageargs,$mlist['num'],$_FANWE['page'],10);
  750. $msg_list = FS('Message')->getMsgsByMlid($mlid,$_FANWE['uid'],$pager['limit']);
  751. include template('page/u/u_msgview');
  752. }
  753. elseif($mid)
  754. {
  755. $msg = FS('Message')->getSysMsgByMid($_FANWE['uid'],$mid);
  756. include template('page/u/u_smsgview');
  757. }
  758. display();
  759. }
  760. public function exchange()
  761. {
  762. global $_FANWE;
  763. $home_uid = $_FANWE['uid'];
  764. $home_user = FS('User')->getUserById($home_uid);
  765. $current_menu = 'exchange';
  766. $args = array();
  767. $where = " AND uid = ".$_FANWE['uid'];
  768. $goods_status = (int)$_FANWE['request']['status'];
  769. if($goods_status > 0)
  770. {
  771. $where.=" AND goods_status = ".($goods_status - 1);
  772. $args['status'] = $goods_status;
  773. }
  774. $count = FDB::resultFirst('SELECT COUNT(id) FROM '.FDB::table('order').' WHERE status < 2 '.$where);
  775. $pager = buildPage('u/exchange',$args,$count,$_FANWE['page'],15);
  776. $sql = 'SELECT * FROM '.FDB::table('order').' WHERE status < 2 '.$where.' GROUP BY id ORDER BY id DESC LIMIT '.$pager['limit'];
  777. $res = FDB::query($sql);
  778. $order_list = array();
  779. while($order = FDB::fetch($res))
  780. {
  781. $order['goods_status'] = lang('exchange','order_goods_status_'.$order['goods_status']);
  782. $order['create_time'] = fToDate($order['create_time']);
  783. $order_list[] = $order;
  784. }
  785. include template('page/u/u_exchange');
  786. display();
  787. }
  788. public function album()
  789. {
  790. global $_FANWE;
  791. $home_uid = $_FANWE['home_uid'];
  792. $home_user = FS('User')->getUserById($home_uid);
  793. $current_menu = 'album';
  794. $album_list = array();
  795. $pager = array();
  796. $type = (int)$_FANWE['request']['type'];
  797. switch($type)
  798. {
  799. case '2':
  800. $uids = array();
  801. //获取我关注的会员编号
  802. $sql = 'SELECT uid
  803. FROM '.FDB::table('user_follow').'
  804. WHERE f_uid = '.$home_uid;
  805. $res = FDB::query($sql);
  806. while($data = FDB::fetch($res))
  807. {
  808. $uids[] = (int)$data['uid'];
  809. }
  810. if(count($uids) > 0)
  811. {
  812. $sql = 'SELECT COUNT(id) FROM '.FDB::table("album").'
  813. WHERE uid IN ('.implode(',',$uids).')';
  814. $count = FDB::resultFirst($sql);
  815. $args['type'] = 2;
  816. $pager = buildPage('u/album',$args,$count,$_FANWE['page'],10);
  817. $sql = 'SELECT * FROM '.FDB::table('album').'
  818. WHERE uid IN ('.implode(',',$uids).') ORDER BY id DESC LIMIT '.$pager['limit'];
  819. $res = FDB::query($sql);
  820. while($data = FDB::fetch($res))
  821. {
  822. $data['imgs'] = array();
  823. if(!empty($data['cache_data']))
  824. {
  825. $cache_data = fStripslashes(unserialize($data['cache_data']));
  826. $data['imgs'] = $cache_data['imgs'];
  827. unset($data['cache_data']);
  828. }
  829. $data['url'] = FU('album/show',array('id'=>$data['id']));
  830. $album_list[$data['id']] = $data;
  831. }
  832. }
  833. break;
  834. case '3':
  835. $aids = array();
  836. $sql = 'SELECT album_id
  837. FROM '.FDB::table('album_best').'
  838. WHERE uid = '.$home_uid;
  839. $res = FDB::query($sql);
  840. while($data = FDB::fetch($res))
  841. {
  842. $aids[] = (int)$data['album_id'];
  843. }
  844. if(count($aids) > 0)
  845. {
  846. $sql = 'SELECT COUNT(id) FROM '.FDB::table("album").'
  847. WHERE id IN ('.implode(',',$aids).')';
  848. $count = FDB::resultFirst($sql);
  849. $args['type'] = 3;
  850. $pager = buildPage('u/album',$args,$count,$_FANWE['page'],10);
  851. $sql = 'SELECT * FROM '.FDB::table('album').'
  852. WHERE id IN ('.implode(',',$aids).') ORDER BY id DESC LIMIT '.$pager['limit'];
  853. $res = FDB::query($sql);
  854. while($data = FDB::fetch($res))
  855. {
  856. $data['imgs'] = array();
  857. if(!empty($data['cache_data']))
  858. {
  859. $cache_data = fStripslashes(unserialize($data['cache_data']));
  860. $data['imgs'] = $cache_data['imgs'];
  861. unset($data['cache_data']);
  862. }
  863. $data['url'] = FU('album/show',array('id'=>$data['id']));
  864. $album_list[$data['id']] = $data;
  865. }
  866. }
  867. break;
  868. default:
  869. $type = 1;
  870. if($home_user['albums'] > 0)
  871. {
  872. $args['type'] = 1;
  873. $pager = buildPage('u/album',$args,$home_user['albums'],$_FANWE['page'],10);
  874. $sql = 'SELECT * FROM '.FDB::table('album').'
  875. WHERE uid = '.$home_uid.' ORDER BY id DESC LIMIT '.$pager['limit'];
  876. $res = FDB::query($sql);
  877. while($data = FDB::fetch($res))
  878. {
  879. $data['imgs'] = array();
  880. if(!empty($data['cache_data']))
  881. {
  882. $cache_data = fStripslashes(unserialize($data['cache_data']));
  883. $data['imgs'] = $cache_data['imgs'];
  884. unset($data['cache_data']);
  885. }
  886. $data['url'] = FU('album/show',array('id'=>$data['id']));
  887. $album_list[] = $data;
  888. }
  889. }
  890. break;
  891. }
  892. include template('page/u/u_album');
  893. display();
  894. }
  895. }
  896. ?>