collection_index.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  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: collection_index.php 33200 2013-05-06 12:27:49Z laoguozhang $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. $navtitle = lang('core', 'title_collection');
  12. $searchtitle = '';
  13. $oplist = array('all', 'my', 'search');
  14. if(!in_array($op, $oplist)) {
  15. $op = '';
  16. }
  17. $cpp = 20;
  18. $start = ($page-1)*$cpp;
  19. if($op == 'all' || $op == 'search') {
  20. if($op == 'search' && $_GET['kw']) {
  21. dheader('Location: search.php?mod=collection&searchsubmit=yes&srchtxt='.urlencode($_GET['kw']));
  22. exit;
  23. } else {
  24. $orderbyarr = array('follownum', 'threadnum', 'commentnum', 'dateline');
  25. $count = C::t('forum_collection')->count();
  26. }
  27. $orderby = (in_array($_GET['order'], $orderbyarr)) ? $_GET['order'] : 'dateline';
  28. $collectiondata = processCollectionData(C::t('forum_collection')->fetch_all('', $orderby, 'DESC', $start, $cpp, $searchtitle), array(), $orderby);
  29. $htmlsearchtitle = dhtmlspecialchars($searchtitle);
  30. $multipage = multi($count, $cpp, $page, 'forum.php?mod=collection&order='.$orderby.'&op='.$op.(($htmlsearchtitle) ? '&kw='.$htmlsearchtitle : ''));
  31. include template('forum/collection_all');
  32. } elseif ($op == 'my') {
  33. $mycollection = C::t('forum_collection')->fetch_all_by_uid($_G['uid']);
  34. $myctid = array_keys($mycollection);
  35. $teamworker = C::t('forum_collectionteamworker')->fetch_all_by_uid($_G['uid']);
  36. $twctid = array_keys($teamworker);
  37. $follow = C::t('forum_collectionfollow')->fetch_all_by_uid($_G['uid']);
  38. if(empty($follow)) {
  39. $follow = array();
  40. }
  41. $followctid = array_keys($follow);
  42. if(!$myctid) {
  43. $myctid = array();
  44. }
  45. if(!$twctid) {
  46. $twctid = array();
  47. }
  48. if(!$followctid) {
  49. $followctid = array();
  50. }
  51. $ctidlist = array_merge($myctid, $twctid, $followctid);
  52. if(count($ctidlist) > 0) {
  53. $tfcollection = $mycollection + $teamworker + $follow;
  54. $collectiondata = C::t('forum_collection')->fetch_all($ctidlist, 'dateline', 'DESC');
  55. $collectiondata = processCollectionData($collectiondata, $tfcollection);
  56. }
  57. include template('forum/collection_mycollection');
  58. } else {
  59. if(!$tid) {
  60. $collectiondata = array();
  61. loadcache('collection');
  62. if(TIMESTAMP - $_G['cache']['collection']['dateline'] > 300) {
  63. $collection = getHotCollection(500, false);
  64. $collectioncache = array('dateline' => TIMESTAMP, 'data' => $collection);
  65. savecache('collection', $collectioncache);
  66. } else {
  67. $collection = &$_G['cache']['collection']['data'];
  68. }
  69. $count = count($collection);
  70. for($i = $start; $i < $start+$cpp; $i++) {
  71. if(!$collection[$i]) {
  72. continue;
  73. }
  74. $collectiondata[] = $collection[$i];
  75. }
  76. unset($collection);
  77. $collectiondata = processCollectionData($collectiondata);
  78. } else {
  79. $tidrelate = C::t('forum_collectionrelated')->fetch($tid);
  80. $ctids = explode("\t", $tidrelate['collection'], -1);
  81. $count = count($ctids);
  82. $collectiondata = C::t('forum_collection')->fetch_all($ctids, 'follownum', 'DESC', $start, $cpp);
  83. $collectiondata = processCollectionData($collectiondata);
  84. }
  85. $multipage = multi($count, $cpp, $page, 'forum.php?mod=collection'.($tid ? '&tid='.$tid : ''));
  86. include template('forum/collection_index');
  87. }
  88. ?>