PageRenderTime 46ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/source/function/function_collection.php

https://github.com/kuaileshike/upload
PHP | 153 lines | 129 code | 18 blank | 6 comment | 28 complexity | 694030ebf0c9ee25cfe3c8f14cc4bd3b MD5 | raw file
  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: function_collection.php 29236 2012-03-30 05:34:47Z chenmengshu $
  7. */
  8. if(!defined('IN_DISCUZ')) {
  9. exit('Access Denied');
  10. }
  11. function getmycollection($uid) {
  12. $collections = C::t('forum_collection')->fetch_all_by_uid($uid);
  13. $collectionteamworker = C::t('forum_collectionteamworker')->fetch_all_by_uid($uid);
  14. return $collections + $collectionteamworker;
  15. }
  16. function checkcollectionperm($collection, $uid, $allowteamworker = false) {
  17. global $_G;
  18. if($_G['group']['allowmanagecollection'] == 1) {
  19. return true;
  20. }
  21. if($collection['uid'] == $uid) {
  22. return true;
  23. }
  24. if($allowteamworker) {
  25. $collectionteamworker = C::t('forum_collectionteamworker')->fetch_all_by_ctid($collection['ctid']);
  26. $collectionteamworker = array_keys($collectionteamworker);
  27. if(in_array($uid, $collectionteamworker)) {
  28. return true;
  29. }
  30. }
  31. return false;
  32. }
  33. function processCollectionData($collection, $tf = array(), $orderby = '') {
  34. if(count($collection) <= 0) {
  35. return array();
  36. }
  37. require_once libfile('function/discuzcode');
  38. foreach($collection as $ctid=>&$curvalue) {
  39. $curvalue['updated'] = ($curvalue['lastupdate'] > $tf[$ctid]['lastvisit']) ? 1 : 0;
  40. $curvalue['tflastvisit'] = $tf[$ctid]['lastvisit'];
  41. $curvalue['lastupdate'] = dgmdate($curvalue['lastupdate']);
  42. $curvalue['dateline'] = dgmdate($curvalue['dateline']);
  43. $curvalue['lastposttime'] = dgmdate($curvalue['lastposttime']);
  44. $curvalue['avgrate'] = number_format($curvalue['rate'], 1);
  45. $curvalue['star'] = imgdisplayrate($curvalue['rate']);
  46. $curvalue['lastposterhtml'] = rawurlencode($curvalue['lastposter']);
  47. $curvalue['shortdesc'] = cutstr(strip_tags(discuzcode($curvalue['desc'])), 50);
  48. $curvalue['arraykeyword'] = parse_keyword($curvalue['keyword'], false, false);
  49. if($curvalue['arraykeyword']) {
  50. foreach ($curvalue['arraykeyword'] as $kid=>$s_keyword) {
  51. $curvalue['urlkeyword'][$kid] = rawurlencode($s_keyword);
  52. }
  53. }
  54. if($orderby == 'commentnum') {
  55. $curvalue['displaynum'] = $curvalue['commentnum'];
  56. } elseif($orderby == 'follownum') {
  57. $curvalue['displaynum'] = $curvalue['follownum'];
  58. } else {
  59. $curvalue['displaynum'] = $curvalue['threadnum'];
  60. }
  61. }
  62. return $collection;
  63. }
  64. function collectionThread(&$threadlist, $foruminfo = false, $lastvisit = null, &$collectiontids = null) {
  65. global $todaytime;
  66. if($foruminfo) {
  67. foreach ($threadlist as $thread) {
  68. $fids[$thread['fid']] = $thread['fid'];
  69. }
  70. $foruminfo = C::t('forum_forum')->fetch_all($fids);
  71. }
  72. foreach($threadlist as $curtid=>&$curvalue) {
  73. if($lastvisit) {
  74. $curvalue['reason'] = &$collectiontids[$curtid]['reason'];
  75. $curvalue['updatedthread'] = $lastvisit !== null && $lastvisit < $curvalue['dateline'] ? 1 : 0;
  76. }
  77. if($foruminfo) {
  78. $curvalue['forumname'] = $foruminfo[$curvalue['fid']]['name'];
  79. }
  80. $curvalue['istoday'] = $curvalue['dateline'] > $todaytime ? 1 : 0;
  81. $curvalue['dbdateline'] = $curvalue['dateline'];
  82. $curvalue['htmlsubject'] = dhtmlspecialchars($curvalue['subject']);
  83. $curvalue['cutsubject'] = $curvalue['subject'];
  84. $curvalue['dateline'] = dgmdate($curvalue['dateline'], 'u', '9999', getglobal('setting/dateformat'));
  85. $curvalue['dblastpost'] = $curvalue['lastpost'];
  86. $curvalue['lastpost'] = dgmdate($curvalue['lastpost'], 'u');
  87. $curvalue['lastposterenc'] = rawurlencode($curvalue['lastposter']);
  88. }
  89. if($collectiontids) {
  90. foreach($collectiontids as $curkey=>&$curthread) {
  91. if(!$threadlist[$curthread['tid']]) {
  92. unset($collectiontids[$curkey]);
  93. } else {
  94. $curthread = $threadlist[$curthread['tid']] + $curthread;
  95. }
  96. }
  97. }
  98. }
  99. function imgdisplayrate($rate) {
  100. $roundscore = floor($rate);
  101. return $roundscore;
  102. }
  103. function parse_keyword($keywords, $string = false, $filter = true) {
  104. if($keywords == '') {
  105. return $string === true ? '' : array();
  106. }
  107. $return = array();
  108. if($filter === true) {
  109. $keywords = str_replace(array(chr(0xa3).chr(0xac), chr(0xa1).chr(0x41), chr(0xef).chr(0xbc).chr(0x8c)), ',', censor($keywords));
  110. }
  111. if(strexists($keywords, ',')) {
  112. $tagarray = array_unique(explode(',', $keywords));
  113. } else {
  114. $langcore = lang('core');
  115. $keywords = str_replace($langcore['fullblankspace'], ' ', $keywords);
  116. $tagarray = array_unique(explode(' ', $keywords));
  117. }
  118. $tagcount = 0;
  119. foreach($tagarray as $tagname) {
  120. $tagname = trim($tagname);
  121. if(preg_match('/^([\x7f-\xff_-]|\w|\s){3,20}$/', $tagname)) {
  122. $tagcount++;
  123. $return[] = $tagname;
  124. if($tagcount > 4) {
  125. unset($tagarray);
  126. break;
  127. }
  128. }
  129. }
  130. if($string === true) {
  131. $return = implode(',', $return);
  132. }
  133. return $return;
  134. }
  135. ?>