Bläddra i källkod

Merge pull request #897 from visuddhinanda/laravel

没有相关段落时显示错误
visuddhinanda 3 år sedan
förälder
incheckning
3fbe100eda
2 ändrade filer med 55 tillägg och 26 borttagningar
  1. 27 23
      public/app/term/related_para.js
  2. 28 3
      public/app/term/related_para.php

+ 27 - 23
public/app/term/related_para.js

@@ -34,33 +34,37 @@ function related_para_dlg_open(book, para) {
 
 function related_para_dlg_render(para) {
 	let output = "";
-	for (const iterator of para.book_list) {
-		output += "<div>";
-		if (para.curr_book_id == iterator.id) {
-			output += "<b>" + iterator.title + "</b>";
-		} else {
-			//找到与这个书匹配的段落
-			let paraList = new Array();
-			for (const ipara of para.data) {
-				if (ipara.bookid == iterator.id) {
-					paraList.push(ipara);
+	if(Array.isArray(para.book_list)){
+		for (const iterator of para.book_list) {
+			output += "<div>";
+			if (para.curr_book_id == iterator.id) {
+				output += "<b>" + iterator.title + "</b>";
+			} else {
+				//找到与这个书匹配的段落
+				let paraList = new Array();
+				for (const ipara of para.data) {
+					if (ipara.bookid == iterator.id) {
+						paraList.push(ipara);
+					}
+				}
+				if(paraList.length>0){
+					output +=
+						"<a href='../reader/?view=chapter&book=" +
+						paraList[0].book +
+						"&par=" +
+						paraList[0].para +
+						"' target='_blank'>" +
+						iterator.title +
+						"</a>";				
 				}
 			}
-			if(paraList.length>0){
-				output +=
-					"<a href='../reader/?view=chapter&book=" +
-					paraList[0].book +
-					"&par=" +
-					paraList[0].para +
-					"' target='_blank'>" +
-					iterator.title +
-					"</a>";				
-			}else{
-				output += "no relation paragraph";
-			}
-		}
+			output += "</div>";
+		}		
+	}else{
+		output += "no related paragraph";
 		output += "</div>";
 	}
 
+
 	return output;
 }

+ 28 - 3
public/app/term/related_para.php

@@ -1,7 +1,32 @@
 <?php
 /*
-查询相关联的书
-mula->attakhata->tika
+ *查询相关联的书
+ *mula->attakhata->tika
+ *算法:
+ *在原始的html 文件里 如 s0404m1.mul.htm 有 <a name="para2_an8"></a>
+ * 在 so404a.att.htm 里也有 </a><a name="para2_an8"></a>
+ * 这说明这两个段落是关联段落,para2是段落编号 an8是书名只要书名一样,段落编号一样。
+ * 两个就是关联段落
+ * 
+ * 表名:cs6_para
+ * 所以数据库结构是
+ * book 书号 1-217
+ * para 段落号
+ * bookid
+ * cspara 上述段落号
+ * book_name 上述书名
+ * 
+ * 输入 book para
+ * 查询书名和段落号
+ * 输入这个书名和段落号
+ * 查询有多少段落有一样的书名和段落号
+ * 有些book 里面有两本书。所以又加了一个bookid 
+ * 每个bookid代表一本真正的书。所以bookid 要比 book 多
+ * bookid 是为了输出书名用的。不是为了查询相关段落
+ * 
+ * 数据要求:
+ * 制作时包含全部段落。做好后把没有相关段落的段落删掉??
+ * 
  */
 require_once "../public/_pdo.php";
 require_once "../config.php";
@@ -25,7 +50,7 @@ if (isset($_GET["para"])) {
 }
 
 PDO_Connect(_FILE_DB_PAGE_INDEX_);
-$query = "SELECT bookid,cspara ,book_name FROM cs6_para where book = ? and para= ? ";
+$query = "SELECT bookid,cspara ,book_name FROM cs6_para where book = ? and para= ? and cspara > 0";
 $fetch = PDO_FetchAll($query, array($book, $para));
 if (count($fetch) > 0) {
     $aBookid = array();