term_get.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. <?php
  2. /*
  3. 查询term字典
  4. 输入单词列表
  5. 输出查到的结果
  6. */
  7. require_once "../config.php";
  8. require_once "../public/_pdo.php";
  9. require_once '../public/function.php';
  10. require_once '../ucenter/function.php';
  11. require_once '../channal/function.php';
  12. if(isset($_POST["readonly"])){
  13. $readonly = $_POST["readonly"];
  14. }else{
  15. $readonly = true;
  16. }
  17. PDO_Connect(_FILE_DB_TERM_);
  18. $output = array();
  19. if (isset($_POST["words"])) {
  20. $wordlist = json_decode($_POST["words"]);
  21. if ($readonly == "false" && !empty($_POST["channal"])) {
  22. $channal = explode(",", $_POST["channal"]);
  23. $channal_info = new Channal();
  24. $channal_owner = array();
  25. foreach ($channal as $key => $value) {
  26. # code...
  27. $info = $channal_info->getChannal($value);
  28. if ($info) {
  29. $channal_owner[$info["owner_uid"]] = 1;
  30. }
  31. }
  32. /* 创建一个填充了和params相同数量占位符的字符串 */
  33. $place_holders = implode(',', array_fill(0, count($channal), '?'));
  34. $owner_holders = implode(',', array_fill(0, count($channal_owner), '?'));
  35. $query = "SELECT guid,word,meaning,other_meaning,owner,channal,language,tag ,note FROM "._TABLE_TERM_." WHERE channal IN ($place_holders) OR owner IN ($owner_holders)";
  36. foreach ($channal_owner as $key => $value) {
  37. # code...
  38. $channal[] = $key;
  39. }
  40. $fetch = PDO_FetchAll($query, $channal);
  41. $userinfo = new UserInfo();
  42. $user = array();
  43. foreach ($channal_owner as $key => $value) {
  44. # code...
  45. $user[$key] = $userinfo->getName($key);
  46. }
  47. foreach ($fetch as $key => $value) {
  48. # code...
  49. if (isset($user[$fetch[$key]["owner"]])) {
  50. $fetch[$key]["user"] = $user[$fetch[$key]["owner"]];
  51. } else {
  52. $fetch[$key]["user"] = array("nickname" => "", "username" => "");
  53. }
  54. $output[] = $fetch[$key];
  55. }
  56. } else {
  57. foreach ($wordlist as $key => $value) {
  58. # code...
  59. $pali = $value->pali;
  60. $parm = array();
  61. $parm[] = $pali;
  62. $otherCase = "";
  63. if ($value->channal != "") {
  64. $otherCase .= " channal = ? ";
  65. $parm[] = $value->channal;
  66. }
  67. if ($value->editor != "") {
  68. if ($otherCase != "") {
  69. $otherCase .= " OR ";
  70. }
  71. $otherCase .= " owner = ? ";
  72. $parm[] = $value->editor;
  73. }
  74. if ($value->lang != "") {
  75. if ($otherCase != "") {
  76. $otherCase .= " OR ";
  77. }
  78. $otherCase .= " language = ? ";
  79. $parm[] = $value->lang;
  80. }
  81. if ($otherCase == "") {
  82. $query = "SELECT guid,word,meaning,other_meaning,owner,channal,language,tag ,note FROM "._TABLE_TERM_." WHERE word = ? ";
  83. } else {
  84. $query = "SELECT guid,word,meaning,other_meaning,owner,channal,language,tag ,note FROM "._TABLE_TERM_." WHERE word = ? AND ( $otherCase )";
  85. }
  86. $fetch = PDO_FetchAll($query, $parm);
  87. $userinfo = new UserInfo();
  88. foreach ($fetch as $key => $value) {
  89. # code...
  90. if(isset($_COOKIE["userid"])){
  91. $currUserUid = $_COOKIE["userid"];
  92. }else{
  93. $currUserUid = "";
  94. }
  95. if($value["owner"]==$currUserUid){
  96. $fetch[$key]["readonly"]=false;
  97. }
  98. else{
  99. $fetch[$key]["readonly"]=true;
  100. }
  101. $fetch[$key]["user"] = $userinfo->getName($value["owner"]);
  102. $output[] = $fetch[$key];
  103. }
  104. }
  105. }
  106. }
  107. echo json_encode($output, JSON_UNESCAPED_UNICODE);