get.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. /*
  3. 获取句子译文
  4. */
  5. require_once "../config.php";
  6. require_once "../public/_pdo.php";
  7. require_once "../public/function.php";
  8. require_once "../channal/function.php";
  9. require_once "../redis/function.php";
  10. require_once "../ucenter/function.php";
  11. require_once "../share/function.php";
  12. $redis = redis_connect();
  13. #查询有阅读权限的channel
  14. $channal_list = array();
  15. if (isset($_COOKIE["userid"])) {
  16. PDO_Connect(_FILE_DB_CHANNAL_,_DB_USERNAME_,_DB_PASSWORD_);
  17. $query = "SELECT uid from "._TABLE_CHANNEL_." where owner_uid = ? limit 100";
  18. $Fetch_my = PDO_FetchAll($query, array($_COOKIE["user_uid"]));
  19. foreach ($Fetch_my as $key => $value) {
  20. # code...
  21. $channal_list[] = $value["uid"];
  22. }
  23. # 找协作的
  24. $coop_channal = share_res_list_get($_COOKIE["userid"],2);
  25. foreach ($coop_channal as $key => $value) {
  26. # code...
  27. $channal_list[] = $value["res_id"];
  28. }
  29. }
  30. if (count($channal_list) > 0) {
  31. $channel_place_holders = implode(',', array_fill(0, count($channal_list), '?'));
  32. $channel_query = " OR channel_uid IN ($channel_place_holders)";
  33. } else {
  34. $channel_query = "";
  35. }
  36. # 查询有阅读权限的channel 结束
  37. $dbh = new PDO(_FILE_DB_SENTENCE_, _DB_USERNAME_, _DB_PASSWORD_, array(PDO::ATTR_PERSISTENT => true));
  38. $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  39. /* 开始一个事务,关闭自动提交 */
  40. if (isset($_GET["sentences"])) {
  41. #查询句子编号列表
  42. $arrSent = explode(",", $_GET["sentences"]);
  43. /* 创建一个填充了和params相同数量占位符的字符串 */
  44. $place_holders = implode(',', array_fill(0, count($arrSent), '?'));
  45. $query = "SELECT * FROM "._TABLE_SENTENCE_." WHERE uid IN ($place_holders) and (status = 30 {$channel_query} )";
  46. $stmt = $dbh->prepare($query);
  47. $stmt->execute($arrSent);
  48. } else {
  49. $book = $_GET["book"];
  50. $para = $_GET["para"];
  51. $begin = $_GET["begin"];
  52. $end = $_GET["end"];
  53. $query = "SELECT uid as id,
  54. parent_uid as parent,
  55. block_uid as block_id,
  56. channel_uid as channal,
  57. book_id as book,
  58. paragraph,
  59. word_start as begin,
  60. word_end as end,
  61. author,
  62. editor_uid as editor,
  63. content as text,
  64. language,
  65. version as ver,
  66. status,
  67. strlen,
  68. modify_time
  69. FROM "._TABLE_SENTENCE_." WHERE (book_id = ? AND paragraph = ? AND word_start = ? AND word_end = ? and strlen >0 and (status = 30 {$channel_query} ) ) order by modify_time DESC ";
  70. $stmt = $dbh->prepare($query);
  71. $parm = array($book, $para, $begin, $end);
  72. $parm = array_merge_recursive($parm, $channal_list);
  73. $stmt->execute($parm);
  74. }
  75. $Fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
  76. $channel_info = new Channal($redis);
  77. $user_info = new UserInfo();
  78. foreach ($Fetch as $key => $value) {
  79. # code...
  80. $Fetch[$key]["para"]=$value["paragraph"];
  81. $channel = $channel_info->getChannal($value["channal"]);
  82. if ($channel) {
  83. $Fetch[$key]["mypower"] = $channel_info->getPower($value["channal"]);
  84. $Fetch[$key]["c_name"] = $channel["name"];
  85. $Fetch[$key]["c_owner"] = $user_info->getName($channel["owner_uid"]);
  86. $Fetch[$key]["channalinfo"] = $channel;
  87. }
  88. else{
  89. $Fetch[$key]["c_name"] = "unkow";
  90. $Fetch[$key]["c_owner"] = "unkow";
  91. }
  92. $Fetch[$key]["editor_name"]=$user_info->getName($value["editor"]);
  93. $Fetch[$key]["update_time"]=$value["modify_time"];
  94. }
  95. echo json_encode($Fetch, JSON_UNESCAPED_UNICODE);