function.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <?php
  2. require_once "../path.php";
  3. require_once "../public/_pdo.php";
  4. require_once '../public/function.php';
  5. require_once '../ucenter/function.php';
  6. require_once '../channal/function.php';
  7. require_once '../article/function.php';
  8. require_once '../redis/function.php';
  9. require_once '../doc/function.php';
  10. /*
  11. 获取某用户的可见的协作资源
  12. $res_type 见readme.md#资源类型 -1全部类型资源
  13. */
  14. function share_res_list_get($userid,$res_type=-1){
  15. $redis = redis_connect();
  16. # 找我加入的群
  17. $dbhGroup = new PDO(_FILE_DB_GROUP_, "", "");
  18. $dbhGroup->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  19. $query = "SELECT group_id from group_member where user_id = ? limit 0,200";
  20. $stmtGroup = $dbhGroup->prepare($query);
  21. $stmtGroup->execute(array($userid));
  22. $my_group = $stmtGroup->fetchAll(PDO::FETCH_ASSOC);
  23. $userList = array();
  24. $userList[] = $userid;
  25. foreach ($my_group as $key => $value) {
  26. # code...
  27. $userList[]=$value["group_id"];
  28. }
  29. $place_holders = implode(',', array_fill(0, count($userList), '?'));
  30. $Fetch=array();
  31. $PDO = new PDO(_FILE_DB_USER_SHARE_, "", "");
  32. $PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  33. if($res_type==-1){
  34. #所有类型资源
  35. $query = "SELECT res_id,res_type,power FROM share_cooperator WHERE is_deleted=0 AND cooperator_id IN ($place_holders) ";
  36. $stmt = $PDO->prepare($query);
  37. $stmt->execute($userList);
  38. $Fetch =$stmt->fetchAll(PDO::FETCH_ASSOC);
  39. }
  40. else{
  41. #指定类型资源
  42. $userList[]=$res_type;
  43. $query = "SELECT res_id,res_type,power FROM share_cooperator WHERE is_deleted=0 AND cooperator_id IN ($place_holders) AND res_type = ?";
  44. $stmt = $PDO->prepare($query);
  45. $stmt->execute($userList);
  46. $Fetch =$stmt->fetchAll(PDO::FETCH_ASSOC);
  47. }
  48. $resOutput = array();
  49. foreach ($Fetch as $key => $value) {
  50. # 查重
  51. if(isset($resOutput[$value["res_id"]])){
  52. if($value["power"]>$resOutput[$value["res_id"]]["power"]){
  53. $resOutput[$value["res_id"]]["power"] = $value["power"];
  54. }
  55. }
  56. else{
  57. $resOutput[$value["res_id"]]= array("power"=> $value["power"],"type" => $value["res_type"]);
  58. }
  59. }
  60. $resList=array();
  61. foreach ($resOutput as $key => $value) {
  62. # code...
  63. $resList[]=array("res_id"=>$key,"res_type"=>(int)$value["type"],"power"=>(int)$value["power"]);
  64. }
  65. $channel = new Channal();
  66. $article = new Article($redis);
  67. foreach ($resList as $key => $res) {
  68. # 获取资源标题 和所有者
  69. switch ($res["res_type"]) {
  70. case 1:
  71. # pcs 文档
  72. $resList[$key]["res_title"]=pcs_get_title($res["res_id"]);
  73. break;
  74. case 2:
  75. # channel
  76. $channelInfo = $channel->getChannal($res["res_id"]);
  77. if($channelInfo){
  78. $resList[$key]["res_title"]=$channelInfo["name"];
  79. $resList[$key]["res_owner_id"]=$channelInfo["owner"];
  80. $resList[$key]["status"]=$channelInfo["status"];
  81. $resList[$key]["lang"]=$channelInfo["lang"];
  82. }
  83. else{
  84. $resList[$key]["res_title"]="_unkown_";
  85. $resList[$key]["res_owner_id"]="_unkown_";
  86. $resList[$key]["status"]="0";
  87. $resList[$key]["lang"]="unkow";
  88. }
  89. break;
  90. case 3:
  91. # 3 Article 文章
  92. $aInfo = $article->getInfo($res["res_id"]);
  93. if($aInfo){
  94. $resList[$key]["res_title"]=$aInfo["title"];
  95. $resList[$key]["res_owner_id"]=$aInfo["owner"];
  96. $resList[$key]["status"]=$aInfo["status"];
  97. $resList[$key]["lang"]='';
  98. }
  99. else{
  100. $resList[$key]["res_title"]="_unkown_";
  101. $resList[$key]["res_owner_id"]="_unkown_";
  102. $resList[$key]["status"]="0";
  103. $resList[$key]["lang"]="unkow";
  104. }
  105. break;
  106. case 4:
  107. # 4 Collection 文集
  108. break;
  109. case 5:
  110. # code...
  111. break;
  112. default:
  113. # code...
  114. break;
  115. }
  116. }
  117. return $resList;
  118. }
  119. //获取对某个共享资源的权限
  120. function share_get_res_power($userid,$res_id){
  121. # 找我加入的群
  122. $dbhGroup = new PDO(_FILE_DB_GROUP_, "", "");
  123. $dbhGroup->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  124. $query = "SELECT group_id from group_member where user_id = ? limit 0,100";
  125. $stmtGroup = $dbhGroup->prepare($query);
  126. $stmtGroup->execute(array($userid));
  127. $my_group = $stmtGroup->fetchAll(PDO::FETCH_ASSOC);
  128. $userList = array();
  129. $userList[] = $userid;
  130. foreach ($my_group as $key => $value) {
  131. # code...
  132. $userList[]=$value["group_id"];
  133. }
  134. $place_holders = implode(',', array_fill(0, count($userList), '?'));
  135. $Fetch=array();
  136. $PDO = new PDO(_FILE_DB_USER_SHARE_, "", "");
  137. $PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  138. $userList[]=$res_id;
  139. $query = "SELECT power FROM share_cooperator WHERE is_deleted=0 AND cooperator_id IN ($place_holders) AND res_id = ? ";
  140. $stmt = $PDO->prepare($query);
  141. $stmt->execute($userList);
  142. $Fetch =$stmt->fetchAll(PDO::FETCH_ASSOC);
  143. $power=0;
  144. foreach ($Fetch as $key => $value) {
  145. # code...
  146. if((int)$value["power"]>$power){
  147. $power = $value["power"];
  148. }
  149. }
  150. return $power;
  151. }
  152. ?>