Răsfoiți Sursa

显示相似句

visuddhinanda 5 ani în urmă
părinte
comite
d45703bb5b

+ 33 - 0
app/pali_sent/get_sim.php

@@ -0,0 +1,33 @@
+<?php
+/*
+get user sentence from db
+*/
+require_once "../path.php";
+require_once "../public/_pdo.php";
+require_once "../public/function.php";
+
+$sim = $_POST["sim"];
+
+$simList = json_decode($sim);
+$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 pali_sent WHERE  id = ?   ";
+$stmt = $dbh->prepare($query);
+foreach ($simList as  $value) {
+    # code...
+    $stmt->execute(array($value));
+	$Fetch = $stmt->fetch(PDO::FETCH_ASSOC);
+	if($Fetch){
+		$sent = $Fetch;
+		$sent["path"]=_get_para_path($Fetch["book"],$Fetch["paragraph"]);
+		$output[] = $sent;  
+	}
+}
+
+echo json_encode($output, JSON_UNESCAPED_UNICODE);
+
+?>

+ 1 - 1
app/path.php

@@ -13,7 +13,7 @@ define("_FILE_DB_RESRES_INDEX_"  , __DIR__."/../tmp/appdata/palicanon/res.db3");
 define("_FILE_DB_PALITEXT_" , __DIR__."/../tmp/appdata/palicanon/pali_text.db3");
 define("_FILE_DB_STATISTICS_" , __DIR__."/../tmp/appdata/palicanon/word_statistics.db3");
 define("_FILE_DB_PALI_SENTENCE_" , __DIR__."/../tmp/appdata/palicanon/pali_sent.db3");
-define("_FILE_DB_PALI_SENTENCE_SIM_" , __DIR__."/../tmp/appdata/palicanon/pali_sent._simdb3");
+define("_FILE_DB_PALI_SENTENCE_SIM_" , __DIR__."/../tmp/appdata/palicanon/pali_sent_sim.db3");
 define("_FILE_DB_INDEX_"  , __DIR__."/../tmp/appdata/palicanon/index.db3");
 define("_FILE_DB_WORD_INDEX_"  , __DIR__."/../tmp/appdata/palicanon/wordindex.db3");
 define("_FILE_DB_PALI_INDEX_"  , __DIR__."/../tmp/appdata/palicanon/paliindex.db3");

+ 4 - 1
app/pcdl/html_head.php

@@ -61,9 +61,12 @@ else{
 	<link type="text/css" rel="stylesheet" href="../term/popup_note.css"/>
 
 	<script src="../term/term_edit_dlg.js"></script>
-	<link type="text/css" rel="stylesheet" href="../term/term_edit_dlg.css"/>	
+	<link type="text/css" rel="stylesheet" href="../term/term_edit_dlg.css"/>
 	<script src="../uwbw/wbw_channal_list.js"></script>
 	<script src="../usent/historay.js"></script>
+	<script src="../term/pali_sim_sent.js"></script>
+	<link type="text/css" rel="stylesheet" href="../term/pali_sim_dlg.css"/>
+
 
 	<script src="../widget/click_dropdown.js"></script>
 	<link type="text/css" rel="stylesheet" href="../widget/click_dropdown.css"/>

+ 9 - 15
app/public/book_tag/tag_list.json

@@ -6,18 +6,9 @@
 	"aṭṭhakathā": { "level": 0 },
 	"ṭīkā": { "level": 0 },
 	"añña": { "level": 0 },
-	"dīgha": { "level": 1 },
-	"majjhima": { "level": 1 },
-	"saṃyutta": { "level": 1 },
-	"aṅguttara": { "level": 1 },
-	"khuddaka": { "level": 1 },
-	"pārājikapāḷi": { "level": 1 },
-	"pācittiyapāḷi": { "level": 1 },
-	"mahāvagga": { "level": 1 },
-	"cūḷavagga": { "level": 1 },
+	"suttavibhaṅga": { "level": 1 },
+	"khandhaka": { "level": 1 },
 	"parivāra": { "level": 1 },
-	"mahāvibhaṅga": { "level": 2 },
-	"bhikkhunīvibhaṅga": { "level": 2 },
 	"vibhaṅga": { "level": 1 },
 	"dhammasaṅgaṇī": { "level": 1 },
 	"dhātukathā": { "level": 1 },
@@ -25,6 +16,8 @@
 	"kathāvatthu": { "level": 1 },
 	"yamaka": { "level": 1 },
 	"paṭṭhāna": { "level": 1 },
+	"mahāvibhaṅga": { "level": 2 },
+	"bhikkhunīvibhaṅga": { "level": 2 },
 	"yamaka": { "level": 2 },
 	"vinayavinicchaya": { "level": 2 },
 	"vinayasaṅgaha": { "level": 2 },
@@ -43,7 +36,7 @@
 	"sāratthappakāsinī": { "level": 3 },
 	"sāratthamañjūsā": { "level": 3 },
 	"sāratthadīpanī": { "level": 3 },
-	"saṃyuttanikāya": { "level": 2 },
+	"saṃyuttanikāya": { "level": 1 },
 	"sammohavinodanī": { "level": 3 },
 	"samantapāsādikā": { "level": 3 },
 	"sādhuvilāsinī": { "level": 3 },
@@ -60,7 +53,7 @@
 	"mūlasikkhā": { "level": 2 },
 	"milindapañha": { "level": 3 },
 	"manorathapūraṇī": { "level": 3 },
-	"majjhimanikāya": { "level": 2 },
+	"majjhimanikāya": { "level": 1 },
 	"mahāvibhaṅga": { "level": 2 },
 	"mahāniddesa": { "level": 3 },
 	"līnatthappakāsanā": { "level": 3 },
@@ -70,7 +63,8 @@
 	"kaṅkhāvitaraṇī": { "level": 2 },
 	"jātaka": { "level": 3 },
 	"itivuttaka": { "level": 3 },
-	"dīghanikāya": { "level": 2 },
+	"dīghanikāya": { "level": 1 },
+	"khuddaka": { "level": 1 },
 	"dhātukathā": { "level": 2 },
 	"dhammasaṅgaṇī": { "level": 2 },
 	"dhammapada": { "level": 3 },
@@ -80,7 +74,7 @@
 	"bhikkhunīvibhaṅga": { "level": 2 },
 	"aṭṭhasālinī": { "level": 3 },
 	"apadāna": { "level": 3 },
-	"aṅguttaranikāya": { "level": 2 },
+	"aṅguttaranikāya": { "level": 1 },
 	"abhidhammamātikā": { "level": 2 },
 	"abhidhammāvatāra": { "level": 2 },
 	"abhidhammatthasaṅgaha": { "level": 2 }

+ 3 - 3
app/reader/index.php

@@ -249,9 +249,9 @@ require_once "../pcdl/html_head.php";
 		<span>
 		<input type="checkbox" onchange="setVisibility('palitext',this)" checked>Pali Text Visible
 		<?php
-		echo "<button class='icon_btn'  title='{$_local->gui->add}{$_local->gui->subfield}'>";
-		echo "<a href='../article/frame.php?id=".$_GET["id"];
-		echo "'>{$_local->gui->add}{$_local->gui->subfield}</a></button>";
+		//echo "<button class='icon_btn'  title='{$_local->gui->add}{$_local->gui->subfield}'>";
+		//echo "<a href='../article/frame.php?id=".$_GET["id"];
+		//echo "'>{$_local->gui->add}{$_local->gui->subfield}</a></button>";
 		
 		if(isset($_GET["display"]) && $_GET["display"]=="para"){
 			echo "<button class='icon_btn active' title='{$_local->gui->show} {$_local->gui->each_paragraph}'>";

+ 18 - 2
app/term/note.js

@@ -36,6 +36,7 @@ function note_create() {
 	wbw_channal_list_init();
 	note_sent_edit_dlg_init();
 	term_edit_dlg_init();
+	pali_sim_dlg_init();
 }
 function note_sent_edit_dlg_init() {
 	$("body").append(
@@ -483,8 +484,13 @@ function note_json_html(in_json) {
 	output += "<span class='separate_line'></span>";
 	//相似句工具条
 	output += "<span class='other_bar' >";
-	output += "<span class='similar_sent_span' >" + gLocal.gui.similar_sentences + "</span>";
-	output += "<span class='similar_sent_num'></span>";
+	output +=
+		"<span class='similar_sent_span' onclick=\"note_show_pali_sim('" +
+		in_json.id +
+		"')\">" +
+		gLocal.gui.similar_sentences +
+		"</span>";
+	output += "<span class='similar_sent_num'>" + in_json.sim.length + "</span>";
 	output += "</span>";
 	output += "</div>";
 	output += "<div class='other_tran'>";
@@ -659,6 +665,8 @@ function new_sentence(book, para, begin, end, channel) {
 	}
 	note_edit_sentence(book, para, begin, end, channel);
 }
+
+//显示更多译文按钮动作
 function set_more_button_display() {
 	$(".other_tran_div").each(function () {
 		const sentid = $(this).attr("sent").split("-");
@@ -913,3 +921,11 @@ function setVisibility(key, value) {
 			break;
 	}
 }
+
+function note_show_pali_sim(SentId) {
+	for (const iterator of _arrData) {
+		if (iterator.id == SentId) {
+			pali_sim_dlg_open(SentId, iterator.sim);
+		}
+	}
+}

+ 26 - 5
app/term/note.php

@@ -40,6 +40,10 @@ $dns = "sqlite:"._FILE_DB_PALI_SENTENCE_;
 $db_pali_sent = new PDO($dns, "", "",array(PDO::ATTR_PERSISTENT=>true));
 $db_pali_sent->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);  
 
+$dns = "sqlite:"._FILE_DB_PALI_SENTENCE_SIM_;
+$db_pali_sent_sim = new PDO($dns, "", "",array(PDO::ATTR_PERSISTENT=>true));
+$db_pali_sent_sim->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);  
+
 $dns = "sqlite:"._FILE_DB_SENTENCE_;
 $db_trans_sent = new PDO($dns, "", "",array(PDO::ATTR_PERSISTENT=>true));
 $db_trans_sent->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);  
@@ -70,15 +74,28 @@ foreach ($_data as $key => $value) {
 		$end=0;
 	}
 
-	$query="SELECT html FROM 'pali_sent' WHERE book = ? AND paragraph = ? AND begin = ? AND end = ? ";
+	$query="SELECT id,html FROM 'pali_sent' WHERE book = ? AND paragraph = ? AND begin = ? AND end = ? ";
 	$sth = $db_pali_sent->prepare($query);
 	$sth->execute(array($bookId,$para,$begin,$end));
-	$row = $sth->fetch(PDO::FETCH_NUM);
+	$row = $sth->fetch(PDO::FETCH_ASSOC);
 	if ($row) {
-		$palitext= $row[0];
+		$palitext= $row['html'];
+		$pali_text_id = $row['id'];
 	} else {
 		$palitext="";
+		$pali_text_id = 0;
+	}
+	$query="SELECT sim_sents FROM 'pali_sent_sim' WHERE id = ?  ";
+	$sth = $db_pali_sent_sim->prepare($query);
+	$sth->execute(array($pali_text_id));
+	$row = $sth->fetch(PDO::FETCH_ASSOC);
+	if($row){
+		$pali_sim= explode(",",$row["sim_sents"]) ;
+	}
+	else{
+		$pali_sim=array();
 	}
+		//查询相似句
 
 	//find out translation 查询译文
 	$tran="";
@@ -154,9 +171,12 @@ foreach ($_data as $key => $value) {
 		$translation[$key]["channalinfo"]=$tran_channal[$value["channal"]];
 	}
 
-	
+	//查询路径
 	$para_path=_get_para_path($bookId,$para);
 
+
+
+
 	$output[]=array("id"=>$id,
 							   "palitext"=>$palitext,
 							   "tran"=>$tran,
@@ -166,7 +186,8 @@ foreach ($_data as $key => $value) {
 							   "book"=>$bookId,
 							   "para"=>$para,
 							   "begin"=>$begin,
-							   "end"=>$end
+							   "end"=>$end,
+							   "sim"=>$pali_sim
 							);
 
 }

+ 7 - 0
app/term/pali_sim_dlg.css

@@ -0,0 +1,7 @@
+.pali_sent_div {
+	padding: 3px;
+	margin-bottom: 5px;
+}
+.pali_sent_div > .path {
+	font-size: 75%;
+}

+ 45 - 0
app/term/pali_sim_sent.js

@@ -0,0 +1,45 @@
+function pali_sim_dlg_init(title = "Sim") {
+	$("body").append('<div id="pali_sim_dlg" title="' + title + '"><div id="pali_sim_dlg_content"></div></div>');
+
+	$("#pali_sim_dlg").dialog({
+		autoOpen: false,
+		width: 550,
+		buttons: [
+			{
+				text: "Close",
+				click: function () {
+					$(this).dialog("close");
+				},
+			},
+		],
+	});
+}
+function pali_sim_dlg_open(id, sim_id) {
+	{
+		$.post(
+			"../pali_sent/get_sim.php",
+			{
+				id: id,
+				sim: JSON.stringify(sim_id),
+			},
+			function (data) {
+				let sents = JSON.parse(data);
+				let html = pali_sim_dlg_render(sents);
+				$("#pali_sim_dlg_content").html(html);
+				$("#pali_sim_dlg").dialog("open");
+			}
+		);
+	}
+}
+
+function pali_sim_dlg_render(sent_list) {
+	let output = "";
+	for (const iterator of sent_list) {
+		output += "<div class='pali_sent_div'>";
+		output += "<div class='pali_sent'>" + iterator.text + "</div>";
+		output += "<div class='path'>" + iterator.path + "</div>";
+		output += "</div>";
+	}
+
+	return output;
+}