Преглед изворни кода

搜索界面改善,立即编辑改在阅读器中。

visuddhinanda пре 5 година
родитељ
комит
10c691cd8d

+ 1 - 1
app/dict/index.php

@@ -6,7 +6,7 @@ require_once "../pcdl/html_head.php";
 <?php
 	require_once("../pcdl/head_bar.php");
 ?>
-<script src="../public/js/marked.js"></script>
+
 <style>
 		body{
 			margin: unset;

+ 58 - 38
app/guide/guide.js

@@ -1,47 +1,67 @@
 function guide_init() {
-    $("guide").each(function () {
-        if ($(this).attr("init") != "1") {
-            if ($(this).text().length > 0) {
-                $(this).css("background", "unset");
-            }
-            if ($(this).offset().left < $(document.body).width() / 2) {
-                $(this).append('<div  class="guide_contence" style="left: -5px;"></div>');
-                $(".guide_contence:after").css("left", "0");
-            }
-            else {
-                $(this).append('<div  class="guide_contence" style="right: -5px;"></div>');
-                $(".guide_contence:after").css("right", "0");
-            }
-            $(this).attr("init", "1");
-        }
-    });
+  $("guide").each(function () {
+    if ($(this).attr("init") != "1") {
+      if ($(this).text().length > 0) {
+        $(this).css("background", "unset");
+      }
+      if ($(this).offset().left < $(document.body).width() / 2) {
+        $(this).append(
+          '<div  class="guide_contence" style="left: -5px;"></div>'
+        );
+        $(".guide_contence:after").css("left", "0");
+      } else {
+        $(this).append(
+          '<div  class="guide_contence" style="right: -5px;"></div>'
+        );
+        $(".guide_contence:after").css("right", "0");
+      }
+      $(this).attr("init", "1");
+    }
+  });
 
-    $("guide").mouseenter(function () {
-        if ($(this).children(".guide_contence").first().html().length > 0) {
-            return;
+  $("guide").mouseenter(function () {
+    if ($(this).children(".guide_contence").first().html().length > 0) {
+      return;
+    }
+    let gid = $(this).attr("gid");
+    $.get(
+      "../guide/get.php",
+      {
+        id: gid,
+      },
+      function (data, status) {
+        try {
+          let jsonGuide = JSON.parse(data);
+          $("guide[gid='" + jsonGuide.id + "']")
+            .find(".guide_contence")
+            .html(marked(jsonGuide.data));
+        } catch (e) {
+          console.error(e);
         }
-        let gid = $(this).attr("gid");
-        let guideObj = $(this);
-        $.get("../guide/get.php",
-            {
-                id: gid
-            },
-            function (data, status) {
-                try {
-                    let jsonGuide = JSON.parse(data);
-                    $("guide[gid='" + jsonGuide.id + "']").find(".guide_contence").html(marked(jsonGuide.data));
-                }
-                catch (e) {
-                    console.error(e);
-                }
-            });
-        /*        if ($(this).offset().left < $(document.body).width() / 2) {
+      }
+    );
+    /*        if ($(this).offset().left < $(document.body).width() / 2) {
                     $(".guide_contence:after").css("left", "0");
                 }
                 else {
                     $(".guide_contence:after").css("right", "0");
                 }*/
+  });
+}
 
-    });
-
-}
+function guide_get(guide_id) {
+  $.get(
+    "../guide/get.php",
+    {
+      id: guide_id,
+    },
+    function (data, status) {
+      try {
+        let jsonGuide = JSON.parse(data);
+        $("#guide_" + jsonGuide.id).html(marked(jsonGuide.data));
+      } catch (e) {
+        console.error(e);
+      }
+    }
+  );
+}

+ 1 - 1
app/pcdl/head_bar.php

@@ -231,7 +231,7 @@
 			<div class="toolgroup1">
 			<!--<input id="search_input" type="input" placeholder="搜索"  style="margin-left: 0.5em;padding:4px;width: 40em;max-width: 80%" >-->
 			<span>
-				<a href="../search">
+				<a href="../search/title.php">
 					<svg  style="height: 4em; fill: var(--btn-color);">
 						<use xlink:href="../pcdl/img/search_bar.svg#search_bar"></use>
 					</svg>

+ 3 - 0
app/pcdl/html_head.php

@@ -37,6 +37,9 @@ else{
 	<script src="../studio/js/fixedsticky.js"></script>
 	<script src="../guide/guide.js"></script>
 	<link type="text/css" rel="stylesheet" href="../guide/guide.css"/>
+
+	<script src="../public/js/marked.js"></script>
+
 	
 	<script >
 	<?php require_once '../public/load_lang_js.php';?>

+ 74 - 31
app/pcdl/js/reader.js

@@ -1,31 +1,74 @@
-var objCurrMouseOverPaliMean=null;
-
-		function getWordMeanMenu(pali){
-			var mean_menu="";
-				if(bh[pali]){
-					var arrMean=bh[pali].split("$");
-					if(arrMean.length>0){
-						for(var i in arrMean){
-							mean_menu+="<a>"+arrMean[i]+"</a>";
-						}
-					}
-				}
-				else if(sys_r[pali]){
-					var word_parent=sys_r[pali];
-					if(bh[word_parent]){
-						var arrMean=bh[word_parent].split("$");
-						if(arrMean.length>0){
-						for(var i in arrMean){
-							mean_menu+="<a onclick=set_mean('"+arrMean[i]+"')>"+arrMean[i]+"</a>";
-						}
-						}
-					}
-				}
-			return(mean_menu);
-		}
-		
-		function set_mean(str){
-			if(objCurrMouseOverPaliMean){
-				objCurrMouseOverPaliMean.innerHTML=str;
-			}
-		}
+var objCurrMouseOverPaliMean = null;
+
+function getWordMeanMenu(pali) {
+  var mean_menu = "";
+  if (bh[pali]) {
+    var arrMean = bh[pali].split("$");
+    if (arrMean.length > 0) {
+      for (var i in arrMean) {
+        mean_menu += "<a>" + arrMean[i] + "</a>";
+      }
+    }
+  } else if (sys_r[pali]) {
+    var word_parent = sys_r[pali];
+    if (bh[word_parent]) {
+      var arrMean = bh[word_parent].split("$");
+      if (arrMean.length > 0) {
+        for (var i in arrMean) {
+          mean_menu +=
+            "<a onclick=set_mean('" + arrMean[i] + "')>" + arrMean[i] + "</a>";
+        }
+      }
+    }
+  }
+  return mean_menu;
+}
+
+function set_mean(str) {
+  if (objCurrMouseOverPaliMean) {
+    objCurrMouseOverPaliMean.innerHTML = str;
+  }
+}
+
+function pali_canon_edit_now(thisform) {
+  let username = getCookie("username");
+  if (!username || username == "") {
+    alert("请登陆后执行此操作");
+    return false;
+  }
+  let download_res_data = new Array();
+
+  var resDownloadItem = new Object();
+  resDownloadItem.album_id = "uuid";
+  resDownloadItem.type = 6;
+  resDownloadItem.book = thisform.book.value;
+  resDownloadItem.parNum = thisform.para.value;
+  resDownloadItem.author = username;
+  resDownloadItem.editor = username;
+  resDownloadItem.language = "pali";
+  resDownloadItem.edition = "1";
+  resDownloadItem.version = "1";
+  resDownloadItem.title = thisform.chapter_title.value;
+
+  let strParList = "";
+  //查找被选择的段落
+  let firstIndex = thisform.para.value;
+  let endIndex = thisform.para_end.value;
+  for (let iPar = firstIndex; iPar <= endIndex; iPar++) {
+    strParList += iPar;
+    if (iPar < endIndex) {
+      strParList += ",";
+    }
+  }
+
+  resDownloadItem.parlist = strParList;
+
+  download_res_data.push(resDownloadItem);
+
+  if (download_res_data.length > 0) {
+    $("#project_new_res_data").val(JSON.stringify(download_res_data));
+    return true;
+  } else {
+    return false;
+  }
+}

+ 23 - 6
app/pcdl/reader.php

@@ -10,6 +10,7 @@
 	<script src="js/jquery-3.3.1.min.js"></script>
 	<script src="js/fixedsticky.js"></script>
 	<script src="js/reader.js"></script>
+	<script src="../public/js/comm.js"></script>
 	<script src="../term/term.js"></script>
 	<script src="../term/note.js"></script>
 	
@@ -408,10 +409,11 @@ para{
     min-width: 2em;
     display: inline-block;
     text-align: center;
-    padding: 2px 10px;
+    padding: 3px 6px;
     border-radius: 99px;
 	margin-right: 5px;
 	cursor:pointer;
+	font-size:80%;
 }
 para:hover{
 
@@ -439,6 +441,18 @@ para:hover{
 				<span id="tool_bar_title">Title</span>
 			</div>
 			<div>
+			<form action="../studio/project.php" method="post" onsubmit="return pali_canon_edit_now(this)" target="_blank">
+				<div style="display:none;">
+					<input type="input" name="op" value="create">
+					<input type="hidden" name="view" value="<?php echo $_GET["view"]?>" />
+					<input type="hidden" name="book" value="<?php echo $_GET["book"]?>" />
+					<input type="hidden" id = "para" name="para" value="" />
+					<input type="hidden" id = "para_end" name="para_end" value="" />
+					<input type="hidden" id = "chapter_title" name="chapter_title" value="" />
+						<textarea id="project_new_res_data" rows="3" cols="18" name="data"></textarea>
+				</div>
+				<input type="submit" value="编辑">
+			</form>
 				<div class="case_dropdown">
 					<p class="case_dropbtn"><button>A</button></p>
 					<div class="case_dropdown-content" style="right: 0;width:10em;">
@@ -624,12 +638,15 @@ else{
 			}			
 		}
 
-
-	}
 		//设置标题栏的经文名称
 		echo "<script>";
-		echo "document.getElementById('tool_bar_title').innerHTML='".$par_title."'";
-		echo "</script>";
+		echo "document.getElementById('tool_bar_title').innerHTML='".$par_title."';\n";
+		echo "$('#chapter_title').val('".$par_title."');\n";
+		echo "$('#para_end').val('".$par_end."');\n";
+		echo "$('#para').val('".$par_begin."');\n";
+		echo "</script>";		
+	}
+
 
 	//上一级
 	echo "<div>";
@@ -997,7 +1014,7 @@ else{
 						<li id="palicanon_menu_li" class="common-tab_li" onclick="menuSelected_2(menu_pali_cannon,'palicanon_menu_li')">批注</li>
 						<li id="bookmark_menu_li" class="common-tab_li" onclick="menuSelected_2(menu_bookmark,'bookmark_menu_li')">书签</li>
 					</ul>
-				</div>			
+				</div>
 			</div>
 			
 			

+ 14 - 4
app/search/bold.js

@@ -127,6 +127,7 @@ function dict_search_serverResponse() {
       dict_result = document.getElementById("dict_ref_search_result");
       if (dict_result) {
         dict_result.innerHTML = serverText;
+        $("#index_list").hide();
         $("#dict_ref_dict_link").html($("#dictlist").html());
         $("#dictlist").html("");
       }
@@ -205,19 +206,28 @@ function search_show_history() {
   if (arrHistory.length > 0) {
     strHistory += '<a onclick="cls_word_search_history()">清空历史记录</a>';
   }
-  for (var i = 0; i < arrHistory.length; i++) {
+
+  const max_history_len = 20;
+  let history_len = 0;
+  if (arrHistory.length > max_history_len) {
+    history_len = max_history_len;
+  } else {
+    history_len = arrHistory.length;
+  }
+
+  for (var i = 0; i < history_len; i++) {
     var word = arrHistory[i];
     strHistory += "<div class='dict_word_list'>";
     strHistory +=
       "<a onclick='dict_pre_word_click(\"" + word + "\")'>" + word + "</a>";
     strHistory += "</div>";
   }
-  $("#dict_ref_search_result").html(strHistory);
+  $("#search_histray").html(strHistory);
 }
 
 function search_input_onfocus() {
   if ($("#dict_ref_search_input").val() == "") {
-    search_show_history();
+    //search_show_history();
   }
 }
 function search_input_keyup(e, obj) {
@@ -226,7 +236,7 @@ function search_input_keyup(e, obj) {
   var numcheck;
 
   if ($("#dict_ref_search_input").val() == "") {
-    search_show_history();
+    //search_show_history();
     $("#pre_search_result").hide();
     return;
   }

+ 31 - 2
app/search/bold.php

@@ -21,13 +21,42 @@ include "../pcdl/html_head.php";
         .kid_scroll{
             overflow: scroll;
         }
-
+        #index_list{
+			display:flex;
+		}
     </style>
+    <style  media="screen and (max-width:767px)">
+		#index_list{
+			display:block;
+		}
+	</style>
 	<script language="javascript" src="bold.js"></script>
 
 	<div id="dict_ref_search_result" style="background-color:white;color:black;">
 	</div>
-	
+    <div id="index_list">
+			<div style="flex:3;margin:12px;">
+				<div class="card" style="padding:10px;">
+					<div>最近搜索</div>
+                    <div id="search_histray"></div>
+				</div>
+			</div>
+			<div style="flex:3;margin:12px;">
+				<div class="card" style="padding:10px;">
+					<div>热搜</div>
+                    <div id="title_hot"></div>
+				</div>
+			</div>
+			<div style="flex:3;margin:12px;">
+				<div class="card" style="padding:10px;">
+                    <div id="guide_bold_search_index"></div>
+				</div>
+			</div>
+	</div>
+    <script>
+    search_show_history();
+    guide_get("bold_search_index");
+    </script>	
     <?php
     if(!empty($_GET["key"])){
         echo "<script>";

+ 2 - 2
app/search/bold_search.php

@@ -252,7 +252,7 @@ switch($op){
 							}
 						}
 					}
-					echo  "<div class='search_para_tools'><button onclick=\"search_edit_now('{$book}','{$paragraph}','{$sFirstParentTitle}')\">{$_local->gui->edit_now}</button></div>";		
+					echo  "<div class='search_para_tools'></div>";		
 					echo  "</div>";
 				}
 			}
@@ -373,7 +373,7 @@ switch($op){
 								}
 							}
 						}
-						echo  "<div class='search_para_tools'><button onclick=\"dict_edit_now('{$book}','{$paragraph}','{$sFirstParentTitle}')\">Edit</button></div>";
+						echo  "<div class='search_para_tools'></div>";
 						echo  "</div>";
 					}
 				}		

+ 12 - 4
app/search/paliword.js

@@ -128,6 +128,7 @@ function dict_search_serverResponse() {
       dict_result = document.getElementById("dict_ref_search_result");
       if (dict_result) {
         dict_result.innerHTML = serverText;
+        $("#index_list").hide();
         $("#dict_ref_dict_link").html($("#dictlist").html());
         $("#dictlist").html("");
       }
@@ -208,19 +209,26 @@ function search_show_history() {
   if (arrHistory.length > 0) {
     strHistory += '<a onclick="cls_word_search_history()">清空历史记录</a>';
   }
-  for (var i = 0; i < arrHistory.length; i++) {
+  const max_history_len = 20;
+  let history_len = 0;
+  if (arrHistory.length > max_history_len) {
+    history_len = max_history_len;
+  } else {
+    history_len = arrHistory.length;
+  }
+  for (var i = 0; i < history_len; i++) {
     var word = arrHistory[i];
     strHistory += "<div class='dict_word_list'>";
     strHistory +=
       "<a onclick='dict_pre_word_click(\"" + word + "\")'>" + word + "</a>";
     strHistory += "</div>";
   }
-  $("#dict_ref_search_result").html(strHistory);
+  $("#search_histray").html(strHistory);
 }
 
 function search_input_onfocus() {
   if ($("#dict_ref_search_input").val() == "") {
-    search_show_history();
+    //search_show_history();
   }
 }
 function search_input_keyup(e, obj) {
@@ -229,7 +237,7 @@ function search_input_keyup(e, obj) {
   var numcheck;
 
   if ($("#dict_ref_search_input").val() == "") {
-    search_show_history();
+    //search_show_history();
     $("#pre_search_result").hide();
     $("#pre_search_result_1").hide();
     return;

+ 31 - 1
app/search/paliword.php

@@ -11,12 +11,42 @@ include "../pcdl/html_head.php";
         #dt_pali , #dt_pali_1{
             border-bottom: 2px solid var(--link-hover-color);
         }
+        #index_list{
+			display:flex;
+		}
     </style>
+    <style  media="screen and (max-width:767px)">
+		#index_list{
+			display:block;
+		}
+	</style>
 	<script language="javascript" src="paliword.js"></script>
 
 	<div id="dict_ref_search_result" style="background-color:white;color:black;">
 	</div>
-	
+    <div id="index_list">
+			<div style="flex:3;margin:12px;">
+				<div class="card" style="padding:10px;">
+					<div>最近搜索</div>
+                    <div id="search_histray"></div>
+				</div>
+			</div>
+			<div style="flex:3;margin:12px;">
+				<div class="card" style="padding:10px;">
+					<div>热搜</div>
+                    <div id="title_hot"></div>
+				</div>
+			</div>
+			<div style="flex:3;margin:12px;">
+				<div class="card" style="padding:10px;">
+                    <div id="guide_pali_search_index"></div>
+				</div>
+			</div>
+	</div>
+    <script>
+    search_show_history();
+    guide_get("pali_search_index");
+    </script>
     <?php
     if(!empty($_GET["key"])){
         echo "<script>";

+ 5 - 8
app/search/paliword_search.php

@@ -184,7 +184,7 @@ switch($op){
 				$c3=$bookInfo->c3;
 
 				echo "<div class='dict_word' style='margin: 10px 0;padding: 5px;border-bottom: 1px solid var(--border-line-color);'>";
-				echo  "<div style='font-size: 130%;font-weight: 700;'>$paliword</div><br/>";
+				echo  "<div style='font-size: 130%;font-weight: 700;'>$paliword</div>";
 				//echo "<div class='dict_word'>";
 				$path_1 = $c1.">";
 				if($c2 !== ""){
@@ -217,8 +217,7 @@ switch($op){
 						}
 					}
 					$path=$path_1.$path."para. ".$paragraph;
-					//$FetchPaliText[0]["parent"]
-					echo  "<div class='mean'><a href='../pcdl/reader.php?view=para&book={$book}&paragraph={$paragraph}' target='_blank'>$path</a></div>";
+					echo  "<div class='mean' style='font-size:120%'><a href='../pcdl/reader.php?view=para&book={$book}&paragraph={$paragraph}' target='_blank'>$path</a></div>";
 					
 					for($iPali=0;$iPali<$countPaliText;$iPali++){
 						if(substr($paliword,-1)=="n"){
@@ -229,7 +228,7 @@ switch($op){
 						echo  "<div class='wizard_par_div'>{$light_text}</div>";
 					}
 					//echo  "<div class='wizard_par_div'>{$light_text}</div>";
-					echo  "<div class='search_para_tools'><button onclick=\"search_edit_now('{$book}','{$paragraph}','{$sFirstParentTitle}')\">Edit</button></div>";
+					echo  "<div class='search_para_tools'></div>";
 					
 				}
 
@@ -330,16 +329,14 @@ switch($op){
 									}
 								}
 								$path=$path."No. ".$paragraph;
-								echo  "<div class='mean' style='font-size:130%;'><a href='../pcdl/reader.php?view=para&book={$book}&paragraph={$paragraph}' target='_blank' >$path</a></div>";
-					
-								//echo  "<div class='mean'>$paliword</div>";
+								echo  "<div class='mean' style='font-size:120%;'><a href='../pcdl/reader.php?view=para&book={$book}&paragraph={$paragraph}' target='_blank' >$path</a></div>";
 																
 								if(substr($paliword,-1)=="n"){
 									$paliword=substr($paliword,0,-1);
 								}
 								$light_text=str_replace($paliword,"<hl>{$paliword}</hl>",$FetchPaliText[$iPali]["html"]);
 								echo  "<div class='wizard_par_div'>{$light_text}</div>";
-								echo  "<div class='search_para_tools'><button onclick=\"search_edit_now('{$book}','{$paragraph}','{$sFirstParentTitle}')\">Edit</button></div>";
+								echo  "<div class='search_para_tools'></div>";
 
 							}
 						}

+ 260 - 259
app/search/title.js

@@ -1,292 +1,293 @@
-var dict_pre_searching=false;
-var dict_pre_search_curr_word="";
-var dict_search_xml_http=null;
-var title_search_curr_key="";
+var dict_pre_searching = false;
+var dict_pre_search_curr_word = "";
+var dict_search_xml_http = null;
+var title_search_curr_key = "";
 
-function search_book_filter(objid,type){
-	if(document.getElementById(objid).checked==true){
-		$("."+type).show();
-	}
-	else{
-		$("."+type).hide();
-	}
+function search_book_filter(objid, type) {
+  if (document.getElementById(objid).checked == true) {
+    $("." + type).show();
+  } else {
+    $("." + type).hide();
+  }
 }
-function dict_bold_word_all_select(){
-	var wordcount=$("#bold_word_count").val();	
-	for(var i=0;i<wordcount;i++){
-		document.getElementById("bold_word_"+i).checked=document.getElementById("bold_all_word").checked;
-	}
+function dict_bold_word_all_select() {
+  var wordcount = $("#bold_word_count").val();
+  for (var i = 0; i < wordcount; i++) {
+    document.getElementById("bold_word_" + i).checked = document.getElementById(
+      "bold_all_word"
+    ).checked;
+  }
 
-	dict_update_bold(0);
-	
+  dict_update_bold(0);
 }
 
-function dict_bold_word_select(id){
-	var wordcount=$("#bold_word_count").val();	
-	for(var i=0;i<wordcount;i++){
-			document.getElementById("bold_word_"+i).checked=false;
-	}
-	document.getElementById("bold_word_"+id).checked=true;
+function dict_bold_word_select(id) {
+  var wordcount = $("#bold_word_count").val();
+  for (var i = 0; i < wordcount; i++) {
+    document.getElementById("bold_word_" + i).checked = false;
+  }
+  document.getElementById("bold_word_" + id).checked = true;
 
-	dict_update_bold(0);
-	
+  dict_update_bold(0);
 }
-function dict_bold_book_select(id){
-	var bookcount=$("#bold_book_count").val();	
-	for(var i=0;i<bookcount;i++){
-		document.getElementById("bold_book_"+i).checked=false;
-	}
-	document.getElementById("bold_book_"+id).checked=true;
+function dict_bold_book_select(id) {
+  var bookcount = $("#bold_book_count").val();
+  for (var i = 0; i < bookcount; i++) {
+    document.getElementById("bold_book_" + i).checked = false;
+  }
+  document.getElementById("bold_book_" + id).checked = true;
 
-	dict_update_bold(0);
-	
+  dict_update_bold(0);
 }
-function dict_update_bold(currpage){
+function dict_update_bold(currpage) {
+  var booklist = "(";
+  var bookcount = $("#bold_book_count").val();
+  for (var i = 0; i < bookcount; i++) {
+    if (document.getElementById("bold_book_" + i).checked) {
+      booklist += "'" + $("#bold_book_" + i).val() + "',";
+    }
+  }
+  booklist = booklist.slice(0, -1);
+  booklist += ")";
 
-	var booklist="(";
-	var bookcount=$("#bold_book_count").val();
-	for(var i=0;i<bookcount;i++){
-		if(document.getElementById("bold_book_"+i).checked){
-			booklist+="'"+$("#bold_book_"+i).val()+"',";
-		}	
-	}	
-	booklist=booklist.slice(0,-1);
-	booklist+=")";
-	
-	$.get("title_search.php",
-	  {
-		op:"search",
-		word:title_search_curr_key,
-		booklist:booklist,
-		currpage:currpage
-	  },
-	  function(data,status){
-		$("#dict_bold_right").html(data);
-		$("#bold_book_list").html($("#bold_book_list_new").html());
-		$("#bold_book_list_new").html("");
-	  });
-		
+  $.get(
+    "title_search.php",
+    {
+      op: "search",
+      word: title_search_curr_key,
+      booklist: booklist,
+      currpage: currpage,
+    },
+    function (data, status) {
+      $("#dict_bold_right").html(data);
+      $("#bold_book_list").html($("#bold_book_list_new").html());
+      $("#bold_book_list_new").html("");
+    }
+  );
 }
-function search_search(word){
-	$("#pre_search_result").hide();
-	$("#pre_search_result_1").hide();
-	title_search_curr_key = word;
+function search_search(word) {
+  $("#pre_search_result").hide();
+  $("#pre_search_result_1").hide();
+  title_search_curr_key = word;
 
-	if(!localStorage.searchword){
-		localStorage.searchword="";
-	}
-	let oldHistory=localStorage.searchword;
-	let arrOldHistory=oldHistory.split(",");
-	let isExist=false;
-	for(let i=0;i<arrOldHistory.length;i++){
-		if(arrOldHistory[i]==word){
-			isExist=true;
-		}
-	}
-	if(!isExist){
-		localStorage.searchword=word+","+oldHistory;
-	}
-	
-	if(window.XMLHttpRequest)
-	{// code for IE7, Firefox, Opera, etc.
-		dict_search_xml_http=new XMLHttpRequest();
-	}
-	else if(window.ActiveXObject)
-	{// code for IE6, IE5
-		dict_search_xml_http=new ActiveXObject("Microsoft.XMLHTTP");
-	}
-	  
-	if (dict_search_xml_http!=null)
-	{
-		dict_search_xml_http.onreadystatechange=dict_search_serverResponse;
-		word=word.replace(/\+/g,"%2b");
-		dict_search_xml_http.open("GET", "title_search.php?op=search&word="+word, true);
-		dict_search_xml_http.send();
-	}
-	else
-	{
-		alert("Your browser does not support XMLHTTP.");
-	}
-}
+  if (!localStorage.title_searc_history) {
+    localStorage.title_searc_history = "";
+  }
+  let oldHistory = localStorage.title_searc_history;
+  let arrOldHistory = oldHistory.split(",");
+  let isExist = false;
+  for (let i = 0; i < arrOldHistory.length; i++) {
+    if (arrOldHistory[i] == word) {
+      isExist = true;
+    }
+  }
+  if (!isExist) {
+    localStorage.title_searc_history = word + "," + oldHistory;
+  }
 
-function dict_search_serverResponse(){
-	if (dict_search_xml_http.readyState==4)// 4 = "loaded"
-	{
-		if (dict_search_xml_http.status==200)
-		{// 200 = "OK"
-			var serverText = dict_search_xml_http.responseText;
-			dict_result=document.getElementById("dict_ref_search_result");
-			if(dict_result){
-				dict_result.innerHTML=serverText;
-				$("#dict_ref_dict_link").html($("#dictlist").html());
-				$("#dictlist").html("");
-			}
-			//$("#dict_type").html($("#real_dict_tab").html());
-		}
-		else
-		{
-			alert(dict_pre_search_xml_http.statusText,0);
-		}
-	}
-}
+  if (window.XMLHttpRequest) {
+    // code for IE7, Firefox, Opera, etc.
+    dict_search_xml_http = new XMLHttpRequest();
+  } else if (window.ActiveXObject) {
+    // code for IE6, IE5
+    dict_search_xml_http = new ActiveXObject("Microsoft.XMLHTTP");
+  }
 
+  if (dict_search_xml_http != null) {
+    dict_search_xml_http.onreadystatechange = dict_search_serverResponse;
+    word = word.replace(/\+/g, "%2b");
+    dict_search_xml_http.open(
+      "GET",
+      "title_search.php?op=search&word=" + word,
+      true
+    );
+    dict_search_xml_http.send();
+  } else {
+    alert("Your browser does not support XMLHTTP.");
+  }
+}
 
-var dict_pre_search_xml_http=null;
-function search_pre_search(word){
-	if(dict_pre_searching==true){return;}
-	dict_pre_searching=true;
-	dict_pre_search_curr_word=word;
-	if(window.XMLHttpRequest)
-	{// code for IE7, Firefox, Opera, etc.
-		dict_pre_search_xml_http=new XMLHttpRequest();
-	}
-	else if(window.ActiveXObject)
-	{// code for IE6, IE5
-		dict_pre_search_xml_http=new ActiveXObject("Microsoft.XMLHTTP");
-	}
-	  
-	if (dict_pre_search_xml_http!=null)
-	{
-		dict_pre_search_xml_http.onreadystatechange=dict_pre_search_serverResponse;
-		dict_pre_search_xml_http.open("GET", "title_search.php?op=pre&word="+word, true);
-		dict_pre_search_xml_http.send();
-	}
-	else
-	{
-		alert("Your browser does not support XMLHTTP.");
-	}
-	
+function dict_search_serverResponse() {
+  if (dict_search_xml_http.readyState == 4) {
+    // 4 = "loaded"
+    if (dict_search_xml_http.status == 200) {
+      // 200 = "OK"
+      var serverText = dict_search_xml_http.responseText;
+      dict_result = document.getElementById("dict_ref_search_result");
+      if (dict_result) {
+        dict_result.innerHTML = serverText;
+        $("#index_list").hide();
+        $("#dict_ref_dict_link").html($("#dictlist").html());
+        $("#dictlist").html("");
+      }
+      //$("#dict_type").html($("#real_dict_tab").html());
+    } else {
+      alert(dict_pre_search_xml_http.statusText, 0);
+    }
+  }
 }
 
-function dict_pre_search_serverResponse(){
-	if (dict_pre_search_xml_http.readyState==4)// 4 = "loaded"
-	{
-		if (dict_pre_search_xml_http.status==200)
-		{// 200 = "OK"
-			var serverText = dict_pre_search_xml_http.responseText;
-			$("#pre_search_word_content").html(serverText);
-			$("#pre_search_word_content_1").html(serverText);
+var dict_pre_search_xml_http = null;
+function search_pre_search(word) {
+  if (dict_pre_searching == true) {
+    return;
+  }
+  dict_pre_searching = true;
+  dict_pre_search_curr_word = word;
+  if (window.XMLHttpRequest) {
+    // code for IE7, Firefox, Opera, etc.
+    dict_pre_search_xml_http = new XMLHttpRequest();
+  } else if (window.ActiveXObject) {
+    // code for IE6, IE5
+    dict_pre_search_xml_http = new ActiveXObject("Microsoft.XMLHTTP");
+  }
 
-		}
-		else
-		{
-			alert(dict_pre_search_xml_http.statusText,0);
-		}
-		dict_pre_searching=false;
-		var newword = document.getElementById("dict_ref_search_input").value;
-		if(newword!=dict_pre_search_curr_word){
-			search_pre_search(newword);
-		}
-	}
+  if (dict_pre_search_xml_http != null) {
+    dict_pre_search_xml_http.onreadystatechange = dict_pre_search_serverResponse;
+    dict_pre_search_xml_http.open(
+      "GET",
+      "title_search.php?op=pre&word=" + word,
+      true
+    );
+    dict_pre_search_xml_http.send();
+  } else {
+    alert("Your browser does not support XMLHTTP.");
+  }
+}
 
+function dict_pre_search_serverResponse() {
+  if (dict_pre_search_xml_http.readyState == 4) {
+    // 4 = "loaded"
+    if (dict_pre_search_xml_http.status == 200) {
+      // 200 = "OK"
+      var serverText = dict_pre_search_xml_http.responseText;
+      $("#pre_search_word_content").html(serverText);
+      $("#pre_search_word_content_1").html(serverText);
+    } else {
+      alert(dict_pre_search_xml_http.statusText, 0);
+    }
+    dict_pre_searching = false;
+    var newword = document.getElementById("dict_ref_search_input").value;
+    if (newword != dict_pre_search_curr_word) {
+      search_pre_search(newword);
+    }
+  }
 }
-function dict_pre_word_click(word){
-	$("#pre_search_result").hide();
-	$("#pre_search_result_1").hide();
-	let inputSearch = $("#dict_ref_search_input").val();
-	let arrSearch = inputSearch.split(" ");
-	arrSearch[arrSearch.length-1]=word;
-	let strSearchWord = arrSearch.join(" ");
-	$("#dict_ref_search_input").val(strSearchWord);
-	$("#dict_ref_search_input_1").val(strSearchWord);
-	search_search(word);
+function dict_pre_word_click(word) {
+  $("#pre_search_result").hide();
+  $("#pre_search_result_1").hide();
+  let inputSearch = $("#dict_ref_search_input").val();
+  let arrSearch = inputSearch.split(" ");
+  arrSearch[arrSearch.length - 1] = word;
+  let strSearchWord = arrSearch.join(" ");
+  $("#dict_ref_search_input").val(strSearchWord);
+  $("#dict_ref_search_input_1").val(strSearchWord);
+  search_search(word);
 }
 
-function dict_input_change(obj){
-	search_pre_search(obj.value);
+function dict_input_change(obj) {
+  search_pre_search(obj.value);
 }
 
-function search_show_history(){
-	if(!localStorage.searchword){
-		localStorage.searchword="";
-	}
-	var arrHistory=localStorage.searchword.split(",");
-	var strHistory="";
-	if(arrHistory.length>0){
-		strHistory+="<a onclick=\"cls_word_search_history()\">清空历史记录</a>";
-	}
-	for(var i=0;i<arrHistory.length;i++){
-		var word=arrHistory[i];
-		strHistory+="<div class='dict_word_list'>";
-		strHistory+="<a onclick='dict_pre_word_click(\""+word+"\")'>"+word+"</a>";
-		strHistory+="</div>";
-	}
-	$("#dict_ref_search_result").html(strHistory);	
-}
+function search_show_history() {
+  if (!localStorage.title_searc_history) {
+    localStorage.title_searc_history = "";
+  }
+  var arrHistory = localStorage.title_searc_history.split(",");
+  var strHistory = "";
+  if (arrHistory.length > 1) {
+    strHistory += '<a onclick="cls_word_search_history()">清空历史记录</a>';
+  }
 
-function search_input_onfocus(){
-	if($("#dict_ref_search_input").val()==""){
-		search_show_history();
-	}
+  for (var i = 0; i < arrHistory.length; i++) {
+    var word = arrHistory[i];
+    strHistory += "<div class='dict_word_list'>";
+    strHistory +=
+      "<a onclick='dict_pre_word_click(\"" + word + "\")'>" + word + "</a>";
+    strHistory += "</div>";
+  }
+  $("#title_histray").html(strHistory);
 }
-function search_input_keyup(e,obj){
-	var keynum
-	var keychar
-	var numcheck
 
-	if($("#dict_ref_search_input").val()==""){
-		search_show_history();
-		$("#pre_search_result").hide();
-		$("#pre_search_result_1").hide();
-		return;
-	}
-	
-	if(window.event) // IE
-	{
-	keynum = e.keyCode
-	}
-	else if(e.which) // Netscape/Firefox/Opera
-	{
-	keynum = e.which
-	}
-	var keychar = String.fromCharCode(keynum)
-	if(keynum==13){
-		//search_search(obj.value);
-		window.location.assign("../search/title.php?key="+obj.value);
-	}
-	else{
-		if(obj.value.indexOf(" ")>=0){
-			//search_pre_sent(obj.value);
-		}
-		else{
-			$("#pre_search_sent").hide();
-		}
-		$("#pre_search_result").show();
-		$("#pre_search_result_1").show();
-		search_pre_search(obj.value);
-		
-	}
+function search_input_onfocus() {
+  if ($("#dict_ref_search_input").val() == "") {
+    //search_show_history();
+  }
 }
+function search_input_keyup(e, obj) {
+  var keynum;
+  var keychar;
+  var numcheck;
 
-function search_pre_sent(word){
-	pali_sent_get_word(word,function(result){
-		let html="";
-		try{
-			let arrResult= JSON.parse(result);
-			for(x in arrResult){
-				html+=arrResult[x].text+"<br>";
-			}
-			$("#pre_search_sent_title_right").html("总共"+arrResult.lenght);
-			$("#pre_search_sent_content").html(html);
-			$("#pre_search_sent").show();
-		}
-		catch(e){
-			console.error(e.message);
-		}
-	});
-}
-function cls_word_search_history(){
-	localStorage.searchword="";
-	$("#dict_ref_search_result").html("");
+  if ($("#dict_ref_search_input").val() == "") {
+    //search_show_history();
+    $("#pre_search_result").hide();
+    $("#pre_search_result_1").hide();
+    return;
+  }
 
+  if (window.event) {
+    // IE
+    keynum = e.keyCode;
+  } else if (e.which) {
+    // Netscape/Firefox/Opera
+    keynum = e.which;
+  }
+  var keychar = String.fromCharCode(keynum);
+  if (keynum == 13) {
+    //search_search(obj.value);
+    window.location.assign("../search/title.php?key=" + obj.value);
+  } else {
+    if (obj.value.indexOf(" ") >= 0) {
+      //search_pre_sent(obj.value);
+    } else {
+      $("#pre_search_sent").hide();
+    }
+    $("#pre_search_result").show();
+    $("#pre_search_result_1").show();
+    search_pre_search(obj.value);
+  }
 }
 
-function search_edit_now(book,para,title){
-	var res_list = new Array();
-	res_list.push({"type":"1","album_id":"-1","book":book,"parNum":para,"parlist":para,"title":title+"-"+para});
-	res_list.push({"type":"6","album_id":"-1","book":book,"parNum":para,"parlist":para,"title":title+"-"+para});
-	var res_data = JSON.stringify(res_list);
-	window.open("../studio/project.php?op=create&data="+res_data,"_blank");
-
+function search_pre_sent(word) {
+  pali_sent_get_word(word, function (result) {
+    let html = "";
+    try {
+      let arrResult = JSON.parse(result);
+      for (x in arrResult) {
+        html += arrResult[x].text + "<br>";
+      }
+      $("#pre_search_sent_title_right").html("总共" + arrResult.lenght);
+      $("#pre_search_sent_content").html(html);
+      $("#pre_search_sent").show();
+    } catch (e) {
+      console.error(e.message);
+    }
+  });
+}
+function cls_word_search_history() {
+  localStorage.title_searc_history = "";
+  $("#dict_ref_search_result").html("");
+}
 
-}
+function search_edit_now(book, para, title) {
+  var res_list = new Array();
+  res_list.push({
+    type: "1",
+    album_id: "-1",
+    book: book,
+    parNum: para,
+    parlist: para,
+    title: title + "-" + para,
+  });
+  res_list.push({
+    type: "6",
+    album_id: "-1",
+    book: book,
+    parNum: para,
+    parlist: para,
+    title: title + "-" + para,
+  });
+  var res_data = JSON.stringify(res_list);
+  window.open("../studio/project.php?op=create&data=" + res_data, "_blank");
+}

+ 37 - 4
app/search/title.php

@@ -1,22 +1,54 @@
 <?PHP
-include "../pcdl/html_head.php";
+require_once "../pcdl/html_head.php";
 ?>
 <body>
 
 <?php
-	require_once("../pcdl/head_bar.php");
-	require_once("../search/toobar.php");
+	require_once "../pcdl/head_bar.php";
+	require_once "../search/toobar.php";
 ?>
     <style>
         #dt_title , #dt_title_1{
             border-bottom: 2px solid var(--link-hover-color);
         }
+        #index_list{
+			display:flex;
+		}
     </style>
+    <style  media="screen and (max-width:767px)">
+		#index_list{
+			display:block;
+		}
+	</style>
 	<script language="javascript" src="title.js"></script>
 
 	<div id="dict_ref_search_result" style="background-color:white;color:black;">
+
+	</div>
+    <div id="index_list">
+			<div style="flex:3;margin:12px;">
+				<div class="card" style="padding:10px;">
+					<div>最近搜索</div>
+                    <div id="title_histray"></div>
+				</div>
+			</div>
+			<div style="flex:3;margin:12px;">
+				<div class="card" style="padding:10px;">
+					<div>热搜</div>
+                    <div id="title_hot"></div>
+				</div>
+			</div>
+			<div style="flex:3;margin:12px;">
+				<div class="card" style="padding:10px;">
+                    <div id="guide_title_search_index"></div>
+				</div>
+			</div>
 	</div>
-	
+    <script>
+    search_show_history();
+    guide_get("title_search_index");
+    </script>
+    
     <?php
     if(!empty($_GET["key"])){
         echo "<script>";
@@ -24,6 +56,7 @@ include "../pcdl/html_head.php";
         echo "</script>";
     }
     ?>
+
 <?php
 include "../pcdl/html_foot.php";
 ?>

+ 3 - 3
app/search/title_search.php

@@ -201,7 +201,7 @@ switch($op){
 				$book=$Fetch[$i]["book"];		
 				$paragraph=$Fetch[$i]["paragraph"];							
 				echo "<div style='margin: 10px 0;padding: 5px;border-bottom: 1px solid var(--border-line-color);'>";
-				echo  "<div style='font-size: 130%;font-weight: 700;'><a href='../pcdl/reader.php?view=chapter&book={$book}&paragraph={$paragraph}' target='_blank'>$title</a></div><br/>";		
+				echo  "<div style='font-size: 130%;font-weight: 700;'><a href='../pcdl/reader.php?view=chapter&book={$book}&paragraph={$paragraph}' target='_blank'>$title</a></div>";		
 
 				$bookInfo = _get_book_info($book);
 				$bookname=$bookInfo->title;
@@ -234,7 +234,7 @@ switch($op){
 				$paliContent = mb_substr($paliContent,0,200,"UTF-8");
 				echo "<div>{$paliContent}</div>";
 
-				echo  "<div class='search_para_tools'><button onclick=\"search_edit_now('{$book}','{$paragraph}','{$title}')\">Edit</button></div>";
+				echo  "<div class='search_para_tools'></div>";
 
 				echo  "</div>";
 			}
@@ -342,7 +342,7 @@ switch($op){
 								}
 								$light_text=str_replace($paliword,"<hl>{$paliword}</hl>",$FetchPaliText[$iPali]["html"]);
 								echo  "<div class='wizard_par_div'>{$light_text}</div>";
-								echo  "<div class='search_para_tools'><button onclick=\"search_edit_now('{$book}','{$paragraph}','{$sFirstParentTitle}')\">Edit</button></div>";
+								echo  "<div class='search_para_tools'></div>";
 
 							}
 						}

+ 4 - 4
app/search/toobar.php

@@ -72,11 +72,11 @@
 					$key = "";
 				}
 				?>
-					<li id="dt_all" ><a href="../search/index.php<?php echo $key;?>"><span ><?php echo $_local->gui->all;//全部?></span><span id="search_all_num"></span></a></li>
+					<li id="dt_all"  style="display:none;"><a href="../search/index.php<?php echo $key;?>"><span ><?php echo $_local->gui->all;//全部?></span><span id="search_all_num"></span></a></li>
 					<li id="dt_title" ><a href="../search/title.php<?php echo $key;?>"><span ><?php echo $_local->gui->title;//标题?></span><span id="search_title_num"></span></a></li>
 					<li id="dt_pali" ><a href="../search/paliword.php<?php echo $key;?>"><span ><?php echo $_local->gui->full_text;//巴利原文?></span><span id="search_palitext_num"></span></a></li>
 					<li id="dt_bold" ><a href="../search/bold.php<?php echo $key;?>"><span ><?php echo $_local->gui->vannana;?></span><span id="search_bold_num"></span></a></li>
-					<li id="dt_trans" ><a href="../search/trans.php<?php echo $key;?>"><span ><?php echo $_local->gui->translate;?></span><span id="search_trans_num"></span></a></li>
+					<li id="dt_trans" style="display:none;"><a href="../search/trans.php<?php echo $key;?>"><span ><?php echo $_local->gui->translate;?></span><span id="search_trans_num"></span></a></li>
 				</ul>
 			</div>
 	</div>	
@@ -105,11 +105,11 @@
 					$key = "";
 				}
 				?>
-					<li id="dt_all_1" ><a href="../search/index.php<?php echo $key;?>"><span >全部</span><span id="search_all_num_1"></span></a></li>
+					<li id="dt_all_1"   style="display:none;"><a href="../search/index.php<?php echo $key;?>"><span >全部</span><span id="search_all_num_1"></span></a></li>
 					<li id="dt_title_1" ><a href="../search/title.php<?php echo $key;?>"><span >标题</span><span id="search_title_num_1"></span></a></li>
 					<li id="dt_pali_1" ><a href="../search/paliword.php<?php echo $key;?>"><span >巴利原文</span><span id="search_palitext_num_1"></span></a></li>
 					<li id="dt_bold_1" ><a href="../search/bold.php<?php echo $key;?>"><span ><?php echo $_local->gui->vannana;?></span><span id="search_bold_num_1"></span></a></li>
-					<li id="dt_trans_1" ><a href="../search/trans.php<?php echo $key;?>"><span ><?php echo $_local->gui->translate;?></span><span id="search_trans_num_1"></span></a></li>
+					<li id="dt_trans_1"   style="display:none;"><a href="../search/trans.php<?php echo $key;?>"><span ><?php echo $_local->gui->translate;?></span><span id="search_trans_num_1"></span></a></li>
 				</ul>
 			</div>
 	</div>	

+ 1 - 0
documents/users_guide/en/title_search_index.md

@@ -0,0 +1 @@
+# Pali Canon Title Searching