Browse Source

获取巴利句子数据 和 译文句子数据

visuddhinanda 5 years ago
parent
commit
5b6579d53f

+ 56 - 0
app/pali_sent/pali_sent_list.js

@@ -0,0 +1,56 @@
+//输入段落列表,得到巴利句子列表
+var _PaliSentList = new PaliSentList();
+class PaliSentList {
+  constructor() {
+    this.paraList = Array;
+    this.buffer = new Array();
+    this.refresh_callback = null;
+  }
+
+  pushPara(book, para) {
+    for (const iterator of sentList) {
+      if (iterator.book == book && iterator.para == para) {
+        return;
+      }
+    }
+    this.paraList.push({ book: book, para: para });
+  }
+
+  refresh(callback) {
+    this.refresh_callback = callback;
+    $.post(
+      "../pali_sent/pali_sent_list.php",
+      {
+        para: JSON.stringify(this.paraList),
+      },
+      function (data, status) {
+        switch (status) {
+          case "successful":
+            try {
+              let arrSent = JSON.parse(data);
+              this.buffer = arrSent;
+              if (refresh_callback) {
+                refresh_callback(arrSent);
+              }
+            } catch (e) {}
+            break;
+          case "":
+            break;
+        }
+      }
+    );
+  }
+
+  getSentText(book, para, start, end) {
+    for (const iterator of buffer) {
+      if (
+        iterator.book == book &&
+        iterator.para == para &&
+        iterator.start == start &&
+        iterator.end == end
+      ) {
+        return iterator.text;
+      }
+    }
+  }
+}

+ 31 - 0
app/pali_sent/pali_sent_list.php

@@ -0,0 +1,31 @@
+<?php
+/*
+get user sentence from db
+*/
+require_once "../path.php";
+require_once "../public/_pdo.php";
+require_once "../public/function.php";
+
+$para = $_POST["para"];
+
+$paraList = json_decode($para);
+$output = array();
+
+$dns = "sqlite:"._FILE_DB_PALI_SENTENCE_;
+$dbh = new PDO($dns, "", "",array(PDO::ATTR_PERSISTENT=>true));
+$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);  
+
+$query="SELECT * FROM sentence WHERE (book = ?  AND paragraph = ?  ) ";
+$stmt = $dbh->prepare($query);
+foreach ($sentList as $key => $value) {
+    # code...
+    $stmt->execute(array($value->book,$value->para));
+    $Fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
+         $sent["info"]=array("book"=>$value->book,"para"=>$value->para);
+        $sent["data"]=$valueSent;
+        $output[] = $sent;  
+}
+
+    echo json_encode($output, JSON_UNESCAPED_UNICODE);
+
+?>

+ 2 - 0
app/studio/js/data.js

@@ -6,6 +6,8 @@ var gXmlOldVerData; //old ver xml file xml doc
 var g_filename = ""; //工程文件名
 var arrDocFileInfo = null;
 
+var _user_sent_buffer = new USentResult(); //数据库中的全部参考译文句子
+
 //全部的逐词译单词xml 节点数组
 var gXmlAllWordInWBW = new Array();
 

+ 0 - 0
app/usent/pali_sent.js


+ 34 - 0
app/usent/sent_query.php

@@ -0,0 +1,34 @@
+<?php
+/*
+get user sentence from db
+*/
+require_once "../path.php";
+require_once "../public/_pdo.php";
+require_once "../public/function.php";
+
+$sent = $_POST["sent"];
+$filter = $_POST["filter"];
+
+$sentList = json_decode($sent);
+$output = array();
+
+$dns = "sqlite:"._FILE_DB_SENTENCE_;
+$dbh = new PDO($dns, "", "",array(PDO::ATTR_PERSISTENT=>true));
+$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);  
+/* 开始一个事务,关闭自动提交 */
+
+$query="SELECT * FROM sentence WHERE (book = ?  AND paragraph = ? AND begin = ? AND end = ? text <> '' ) order by modify_time DESC limit 0,10";
+$stmt = $dbh->prepare($query);
+foreach ($sentList as $key => $value) {
+    # code...
+    $stmt->execute(array($value->book,$value->para,$value->start,$value->end));
+    $Fetch = $stmt->fetchAll(PDO::FETCH_ASSOC);
+    $sent["info"]=array($value);
+    $sent["data"]=$Fetch;
+    $sent["length"]=count($Fetch);//句子个数
+    $output[] = $sent;
+}
+
+    echo json_encode($output, JSON_UNESCAPED_UNICODE);
+
+?>

+ 69 - 0
app/usent/usent_ref.js

@@ -0,0 +1,69 @@
+class USentResult {
+  constructor(filter = {}) {
+    this.filter = filter;
+    this.sentList = Array;
+    this.buffer = new Array();
+  }
+
+  pushSent(book, para, start, end) {
+    for (const iterator of sentList) {
+      if (
+        iterator.book == book &&
+        iterator.para == para &&
+        iterator.start == start &&
+        iterator.end == end
+      ) {
+        return;
+      }
+    }
+    this.sentList.push({ book: book, para: para, start: start, end: end });
+  }
+  newSent(sent) {
+    this.buffer.push(sent);
+  }
+  refresh() {
+    $.post(
+      "../usent/sent_query.php",
+      {
+        sent: JSON.stringify(this.sentList),
+        filter: JSON.stringify(this.filter),
+      },
+      function (data, status) {
+        switch (status) {
+          case "successful":
+            try {
+              let arrSent = JSON.parse(data);
+              this.buffer = arrSent;
+            } catch (e) {}
+            break;
+          case "":
+            break;
+        }
+      }
+    );
+  }
+  getSentNum(book, para, start, end) {
+    for (const iterator of buffer) {
+      if (
+        iterator.info.book == book &&
+        iterator.info.para == para &&
+        iterator.info.start == start &&
+        iterator.info.end == end
+      ) {
+        return iterator.length;
+      }
+    }
+  }
+  getSentText(book, para, start, end, num = 1) {
+    for (const iterator of buffer) {
+      if (
+        iterator.book == book &&
+        iterator.para == para &&
+        iterator.start == start &&
+        iterator.end == end
+      ) {
+        return iterator.data;
+      }
+    }
+  }
+}