term_channel_get.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. /*
  3. 查询term字典
  4. 输入单词列表 channel 根据查找顺序设置返回最匹配的术语
  5. 输出查到的结果
  6. */
  7. require_once "../path.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. PDO_Connect("" . _FILE_DB_TERM_);
  13. $output = array();
  14. if (isset($_POST["words"])) {
  15. $wordlist = json_decode($_POST["words"]);
  16. if ($_POST["readonly"] == "false" && !empty($_POST["channal"])) {
  17. #编辑模式,返回全部单词
  18. $channal = explode(",", $_POST["channal"]);
  19. $channal_info = new Channal();
  20. $channal_owner = array();
  21. foreach ($channal as $key => $value) {
  22. # code...
  23. $info = $channal_info->getChannal($value);
  24. if ($info) {
  25. $channal_owner[$info["owner"]] = 1;
  26. }
  27. }
  28. /* 创建一个填充了和params相同数量占位符的字符串 */
  29. $place_holders = implode(',', array_fill(0, count($channal), '?'));
  30. $owner_holders = implode(',', array_fill(0, count($channal_owner), '?'));
  31. $query = "SELECT guid,word,meaning,other_meaning,owner,channal,language,tag ,note FROM term WHERE channal IN ($place_holders) OR owner IN ($owner_holders)";
  32. foreach ($channal_owner as $key => $value) {
  33. # code...
  34. $channal[] = $key;
  35. }
  36. $fetch = PDO_FetchAll($query, $channal);
  37. $userinfo = new UserInfo();
  38. $user = array();
  39. foreach ($channal_owner as $key => $value) {
  40. # code...
  41. $user[$key] = $userinfo->getName($key);
  42. }
  43. foreach ($fetch as $key => $value) {
  44. # code...
  45. if (isset($user[$fetch[$key]["owner"]])) {
  46. $fetch[$key]["user"] = $user[$fetch[$key]["owner"]];
  47. } else {
  48. $fetch[$key]["user"] = array("nickname" => "", "username" => "");
  49. }
  50. $output[] = $fetch[$key];
  51. }
  52. } else {
  53. #只读模式,只返回需要的单词
  54. foreach ($wordlist as $key => $value) {
  55. # code...
  56. $pali = $value->pali;
  57. $parm = array();
  58. $parm[] = $pali;
  59. $otherCase = "";
  60. if ($value->channal != "") {
  61. $otherCase .= " channal = ? ";
  62. $parm[] = $value->channal;
  63. }
  64. if ($value->editor != "") {
  65. if ($otherCase != "") {
  66. $otherCase .= " OR ";
  67. }
  68. $otherCase .= " owner = ? ";
  69. $parm[] = $value->editor;
  70. }
  71. if ($value->lang != "") {
  72. if ($otherCase != "") {
  73. $otherCase .= " OR ";
  74. }
  75. $otherCase .= " language = ? ";
  76. $parm[] = $value->lang;
  77. }
  78. if ($otherCase == "") {
  79. $query = "SELECT guid,word,meaning,other_meaning,owner,channal,language,tag ,note FROM term WHERE word = ? ";
  80. } else {
  81. $query = "SELECT guid,word,meaning,other_meaning,owner,channal,language,tag ,note FROM term WHERE word = ? AND ( $otherCase )";
  82. }
  83. $fetch = PDO_FetchAll($query, $parm);
  84. $userinfo = new UserInfo();
  85. foreach ($fetch as $key => $value) {
  86. # code...
  87. if($value["owner"]==$_COOKIE["user_uid"]){
  88. $fetch[$key]["readonly"]=false;
  89. }
  90. else{
  91. $fetch[$key]["readonly"]=true;
  92. }
  93. $fetch[$key]["user"] = $userinfo->getName($value["owner"]);
  94. $output[] = $fetch[$key];
  95. }
  96. }
  97. }
  98. }
  99. echo json_encode($output, JSON_UNESCAPED_UNICODE);