2
0

function.php 4.3 KB

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