reader.php 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176
  1. <?php
  2. require_once "../public/_pdo.php";
  3. require_once "../path.php";
  4. require_once '../public/load_lang.php';
  5. ?>
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  7. <html>
  8. <head>
  9. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
  10. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  11. <link type="text/css" rel="stylesheet" href="css/reader.css"/>
  12. <link type="text/css" rel="stylesheet" href="css/reader_mob.css" media="screen and (max-width:767px)">
  13. <title id="page_title">PCD Reader</title>
  14. <script src="js/jquery-3.3.1.min.js"></script>
  15. <script src="js/fixedsticky.js"></script>
  16. <script src="js/reader.js"></script>
  17. <script src="../term/term.js"></script>
  18. <script src="../term/note.js"></script>
  19. <script>
  20. var curr_tool="";
  21. var dighest_count=0;//书摘段落数量
  22. var res_list=new Array();
  23. var new_comments_album=-1;
  24. var new_comments_book=-1;
  25. var new_comments_paragraph=-1;
  26. function add_new_res(album,book,paragraph,text){
  27. var new_res=new Object();
  28. new_res.album=album;
  29. new_res.book=book;
  30. new_res.paragraph=paragraph;
  31. new_res.dighest=false;
  32. new_res.text=text;
  33. new_res.textchanged=false;
  34. res_list.push(new_res);
  35. }
  36. function tool_changed(tool_name){
  37. if(tool_name==curr_tool){
  38. return;
  39. }
  40. $("#main_tool_bar").fadeOut();
  41. curr_tool=tool_name;
  42. switch(tool_name){
  43. case "comments":
  44. $("#tool_bar_dighest").fadeOut();
  45. $("#tool_bar_comments").fadeIn();
  46. break;
  47. case "dighest":
  48. $("#tool_bar_comments").fadeOut();
  49. $("#tool_bar_dighest").fadeIn();
  50. break;
  51. case "fix":
  52. $("#tool_bar_comments").fadeOut();
  53. $("#tool_bar_fix").fadeIn();
  54. render_all_tran();
  55. break;
  56. }
  57. }
  58. function paragraph_click(album,book,paragraph){
  59. switch(curr_tool){
  60. case "comments":
  61. new_comments(album,book,paragraph);
  62. break;
  63. case "dighest":
  64. dighest_par_click(album,book,paragraph);
  65. break;
  66. }
  67. }
  68. function new_comments(album,book,paragraph){
  69. new_comments_album=album;
  70. new_comments_book=book;
  71. new_comments_paragraph=paragraph;
  72. document.getElementById("new-comm-a"+album+"-b"+book+"-"+paragraph).appendChild(document.getElementById("new_comm_div"));
  73. }
  74. function new_comm_cancel(){
  75. $("#tool_bar_comments").fadeOut();
  76. $("#main_tool_bar").fadeIn();
  77. document.getElementById("new_comm_text").value="";
  78. document.getElementById("new_comm_shell").appendChild(document.getElementById("new_comm_div"));
  79. curr_tool="";
  80. }
  81. function new_comm_submit(){
  82. $("#tool_bar_comments").fadeOut();
  83. $("#main_tool_bar").fadeIn();
  84. curr_tool="";
  85. var comm_text=document.getElementById("new_comm_text").value;
  86. $.post("comments.php",
  87. {
  88. album:new_comments_album,
  89. book:new_comments_book,
  90. paragraph:new_comments_paragraph,
  91. text:comm_text
  92. },
  93. function(data,status){
  94. alert("Data: " + data + "\nStatus: " + status);
  95. });
  96. }
  97. //书摘处理
  98. function dighest_par_click(album,book,paragraph){
  99. for (var x in res_list){
  100. if(
  101. res_list[x].album==album &&
  102. res_list[x].book==book &&
  103. res_list[x].paragraph==paragraph){
  104. if(res_list[x].dighest==false){
  105. res_list[x].dighest=true;
  106. res_list[x].text=document.getElementById("text-a"+album+"-b"+book+"-"+paragraph).innerHTML;
  107. $("#text-a"+album+"-b"+book+"-"+paragraph).css("background-color","yellow");
  108. dighest_count++;
  109. }
  110. else{
  111. res_list[x].dighest=false;
  112. $("#text-a"+album+"-b"+book+"-"+paragraph).css("background-color","white");
  113. dighest_count--;
  114. }
  115. }
  116. }
  117. $("#dighest_message").text="已经选择"+dighest_count+"段";
  118. }
  119. //将段落列表重置
  120. function dighest_reset_res_list(){
  121. for (var x in res_list){
  122. var album=res_list[x].album;
  123. var book=res_list[x].book;
  124. var paragraph=res_list[x].paragraph;
  125. if(res_list[x].dighest==false){
  126. dighest_count=0;
  127. }
  128. else{
  129. res_list[x].dighest=false;
  130. $("#text-a"+album+"-b"+book+"-"+paragraph).css("background-color","white");
  131. dighest_count=0;
  132. }
  133. }
  134. }
  135. function dighest_cancle(){
  136. $("#tool_bar_dighest").fadeOut();
  137. $("#main_tool_bar").fadeIn();
  138. curr_tool="";
  139. //将段落列表重置
  140. dighest_reset_res_list();
  141. }
  142. function dighest_ok(){
  143. var output="";
  144. for (var x in res_list){
  145. if(res_list[x].dighest==true){
  146. output+="<p>"+res_list[x].text+"</p>";
  147. }
  148. }
  149. //书摘文字预览
  150. document.getElementById("dighest_text_preview").innerHTML=output;
  151. $("#tool_bar_dighest").fadeOut();
  152. $("#dighest_edit_div").fadeIn();
  153. }
  154. function dighest_edit_cancle(){
  155. $("#dighest_edit_div").fadeOut();
  156. $("#main_tool_bar").fadeIn();
  157. curr_tool="";
  158. //将段落列表重置
  159. dighest_reset_res_list();
  160. }
  161. function dighest_edit_submit(){
  162. $("#dighest_edit_div").fadeOut();
  163. $("#main_tool_bar").fadeIn();
  164. curr_tool="";
  165. //计算书摘数量 生成书摘字符串
  166. if(res_list.length==0){
  167. return;
  168. }
  169. var output=new Array();
  170. for (var x in res_list){
  171. if(res_list[x].dighest==true){
  172. output.push(res_list[x].album+"-"+res_list[x].book+"-"+res_list[x].paragraph);
  173. }
  174. }
  175. var dighest_text=output.join();
  176. var dighest_title=document.getElementById("dighest_edit_title").value;
  177. var dighest_summary=document.getElementById("dighest_edit_summary").value;
  178. var dighest_tag=document.getElementById("dighest_edit_taget").value;
  179. if(dighest_title==""){alert("标题不能为空");return;}
  180. if(dighest_summary==""){alert("简介不能为空");return;}
  181. if(dighest_tag==""){alert("标签不能为空");return;}
  182. $.post("dighest.php",
  183. {
  184. title:dighest_title,
  185. summary:dighest_summary,
  186. tag:dighest_tag,
  187. data:dighest_text
  188. },
  189. function(data,status){
  190. alert("Data: " + data + "\nStatus: " + status);
  191. });
  192. //将段落列表重置
  193. dighest_reset_res_list();
  194. }
  195. function setNaviVisibility(){
  196. var objNave = document.getElementById('leftmenuinner');
  197. var objblack = document.getElementById('BV');
  198. if ( objNave.className=='viewswitch_off'){
  199. objblack.style.display = "block";
  200. objNave.className = "viewswitch_on";
  201. }
  202. else{
  203. objblack.style.display = "none";
  204. objNave.className = "viewswitch_off";
  205. }
  206. }
  207. function render_all_tran(mode="fix"){
  208. for (var x in res_list){
  209. var album=res_list[x].album;
  210. var book=res_list[x].book;
  211. var paragraph=res_list[x].paragraph;
  212. var text=res_list[x].text;
  213. if(mode=="fix"){
  214. var new_text=getSuperTranslateModifyString(x);
  215. }
  216. else{
  217. var new_text=text;
  218. }
  219. var obj=document.getElementById("text-a"+album+"-b"+book+"-"+paragraph);
  220. if(obj){
  221. obj.innerHTML=new_text;
  222. }
  223. }
  224. }
  225. function getSuperTranslateModifyString(index){
  226. var newString = res_list[index].text.replace(/。/g,"。#");
  227. newString = newString.replace(/,/g,",#");
  228. newString = newString.replace(/!/g,"!#");
  229. newString = newString.replace(/?/g,"?#");
  230. newString = newString.replace(/”/g,"”#");
  231. newString = newString.replace(/“/g,"“#");
  232. newString = newString.replace(/’/g,"’#");
  233. arrString = newString.split("#");
  234. var output="";
  235. var str_pos=0;
  236. for (x in arrString){
  237. var str_len=arrString[x].length;
  238. str_pos+=str_len;
  239. output +=arrString[x]+"<span class=\"tooltip\">※<span class=\"tooltiptext tooltip-bottom\"><button onclick='text_move("+index+"," + str_pos + ",0)'>▲</button> <button onclick='text_move("+index+"," + str_pos + ",1)'>▼</button> </span> </span> ";
  240. }
  241. return output;
  242. }
  243. function text_move(index,str_pos,updown){
  244. if(updown==0 && index==0){
  245. return;
  246. }
  247. if(updown==1 && index==res_list.length-1){
  248. return;
  249. }
  250. if(updown==0){
  251. res_list[index-1].text+=res_list[index].text.substring(0,str_pos);
  252. res_list[index-1].textchanged=true;
  253. res_list[index].text=res_list[index].text.substring(str_pos);
  254. res_list[index].textchanged=true;
  255. }
  256. else{
  257. res_list[index+1].text=res_list[index].text.substring(str_pos)+res_list[index+1].text;
  258. res_list[index+1].textchanged=true;
  259. res_list[index].text=res_list[index].text.substring(0,str_pos);
  260. res_list[index].textchanged=true;
  261. }
  262. render_all_tran();
  263. }
  264. function fix_cancle(){
  265. $("#tool_bar_fix").fadeOut();
  266. $("#main_tool_bar").fadeIn();
  267. curr_tool="";
  268. render_all_tran("");
  269. }
  270. function fix_ok(){
  271. $("#tool_bar_fix").fadeOut();
  272. $("#main_tool_bar").fadeIn();
  273. curr_tool="";
  274. render_all_tran("");
  275. //计算书摘数量 生成书摘字符串
  276. if(res_list.length==0){
  277. return;
  278. }
  279. var output=new Array();
  280. for (var x in res_list){
  281. if(res_list[x].textchanged==true){
  282. output.push(res_list[x].album+"@"+res_list[x].book+"@"+res_list[x].paragraph+"@"+res_list[x].text);
  283. res_list[x].textchanged=false;
  284. }
  285. }
  286. var fix_text=output.join("#");
  287. var fix_album=res_list[0].album;
  288. $.post("tran_text.php",
  289. {
  290. album:fix_album,
  291. data:fix_text
  292. },
  293. function(data,status){
  294. alert("Data: " + data + "\nStatus: " + status);
  295. });
  296. }
  297. function lookup(){
  298. var xPali=document.getElementsByClassName("pali");
  299. for (var x in xPali){
  300. var pali = xPali[x].innerHTML;
  301. var xMean=xPali[x].nextSibling;
  302. if(bh[pali]){
  303. var arrMean=bh[pali].split("$");
  304. if(arrMean.length>0){
  305. xMean.innerHTML=arrMean[0];
  306. }
  307. }
  308. else if(sys_r[pali]){
  309. var word_parent=sys_r[pali];
  310. if(bh[word_parent]){
  311. var arrMean=bh[word_parent].split("$");
  312. if(arrMean.length>0){
  313. xMean.innerHTML=arrMean[0];
  314. }
  315. }
  316. }
  317. }
  318. }
  319. </script>
  320. <body class="reader_body" >
  321. <style>
  322. #para_nav {
  323. display: flex;
  324. justify-content: space-between;
  325. padding: 5px 1em;
  326. border-top: 1px solid gray;
  327. }
  328. .word{
  329. display:inline-block;
  330. padding: 1px 3px;
  331. }
  332. .mean{
  333. font-size: 65%;
  334. }
  335. /* 下拉内容 (默认隐藏) */
  336. #mean_menu {
  337. margin: 0.3em;
  338. position: absolute;
  339. background-color: white;
  340. min-width: 8em;
  341. max-width: 30em;
  342. margin: -1px 0px;
  343. box-shadow: 0px 3px 13px 0px black;
  344. color: var(--main-color);
  345. z-index: 200;
  346. }
  347. /* 下拉菜单的链接 */
  348. #mean_menu a {
  349. /*padding: 0.3em 0.4em;*/
  350. line-height: 160%;
  351. text-decoration: none;
  352. display: block;
  353. cursor: pointer;
  354. text-align: left;
  355. font-size:80%;
  356. }
  357. /* 鼠标移上去后修改下拉菜单链接颜色 */
  358. .mean_menu a:hover {
  359. background-color: blue;
  360. color: white;
  361. }
  362. .par_pali_div{
  363. margin-top:1em;
  364. }
  365. .par_pali_div{
  366. font-weight:700;
  367. }
  368. sent{
  369. font-weight:500;
  370. font-size:110%;
  371. line-height: 150%;
  372. }
  373. sent:hover{
  374. background-color:#fefec1;
  375. }
  376. para {
  377. color: white;
  378. background-color: #F1CA23;
  379. min-width: 2em;
  380. display: inline-block;
  381. text-align: center;
  382. padding: 2px 10px;
  383. border-radius: 99px;
  384. margin-right: 5px;
  385. cursor:pointer;
  386. }
  387. para:hover{
  388. }
  389. .sent_count{
  390. font-size:80%;
  391. color: white;
  392. background-color: #1cb70985;
  393. min-width: 2em;
  394. display: inline-block;
  395. text-align: center;
  396. padding: 2px 0;
  397. border-radius: 99px;
  398. margin-left: 5px;
  399. cursor:pointer;
  400. }
  401. </style>
  402. <!-- tool bar begin-->
  403. <div id="main_tool_bar" class='reader_toolbar'>
  404. <div id="index_nav">
  405. <button onclick="setNaviVisibility()">
  406. <svg t='1598084571450' class='icon' viewBox='0 0 1029 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='6428' width='20px' height='20px'><path d='M159.744 69.632 53.248 69.632C28.672 69.632 4.096 90.112 4.096 118.784l0 94.208c0 28.672 24.576 49.152 53.248 49.152l102.4 0C184.32 266.24 208.896 241.664 208.896 212.992L208.896 118.784C208.896 90.112 184.32 69.632 159.744 69.632zM970.752 69.632 368.64 69.632c-28.672 0-57.344 24.576-57.344 49.152l0 94.208c0 28.672 32.768 49.152 57.344 49.152l598.016 0c28.672 0 57.344-24.576 57.344-49.152L1024 118.784C1028.096 94.208 999.424 69.632 970.752 69.632zM159.744 413.696 53.248 413.696c-28.672 0-53.248 24.576-53.248 49.152l0 94.208c0 28.672 24.576 49.152 53.248 49.152l102.4 0c28.672 0 53.248-24.576 53.248-49.152l0-94.208C208.896 438.272 184.32 413.696 159.744 413.696zM970.752 413.696 368.64 413.696c-28.672 0-57.344 24.576-57.344 49.152l0 94.208c0 28.672 32.768 49.152 57.344 49.152l598.016 0c28.672 0 57.344-24.576 57.344-49.152l0-94.208C1028.096 438.272 999.424 413.696 970.752 413.696zM159.744 757.76 53.248 757.76c-28.672 0-53.248 24.576-53.248 49.152l0 94.208c0 28.672 24.576 49.152 53.248 49.152l102.4 0c28.672 0 53.248-24.576 53.248-49.152l0-94.208C208.896 782.336 184.32 757.76 159.744 757.76zM970.752 761.856 368.64 761.856c-28.672 0-57.344 24.576-57.344 49.152l0 94.208c0 28.672 32.768 49.152 57.344 49.152l598.016 0c28.672 0 57.344-24.576 57.344-49.152l0-94.208C1028.096 782.336 999.424 761.856 970.752 761.856z' fill='#757AF7' p-id='6429'></path></svg>
  407. </button>
  408. </div>
  409. <div>
  410. <span id="tool_bar_title"><?php echo $_local->gui->title; ?></span>
  411. </div>
  412. <div>
  413. <div class="case_dropdown">
  414. <p class="case_dropbtn"><button>
  415. <svg t='1598086376923' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='8426' width='20px' height='20px'><path d='M609.745455 453.818182v130.327273h69.818181V535.272727H744.727273v377.018182h95.418182V535.272727H907.636364v48.872728h69.818181V453.818182z' p-id='8427' fill='#757AF7'></path><path d='M677.236364 300.218182V111.709091H46.545455V300.218182h69.818181v-51.2h162.909091v663.272727h165.236364V249.018182h162.909091v51.2z' p-id='8428' fill='#757AF7'></path></svg>
  416. </button></p>
  417. <div class="case_dropdown-content" style="right: 0;width:10em;">
  418. <div ><button>A+</button><button>A-</button></div>
  419. <div ><button><?php echo $_local->gui->white;?></button><button><?php echo $_local->gui->dawn;//棕?></button><button><?php echo $_local->gui->night;//夜?></button></div>
  420. </div>
  421. </div>
  422. <div class="case_dropdown">
  423. <p class="case_dropbtn"><button>
  424. <svg t='1598086493824' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='9217' width='20px' height='20px'><path d='M912.695652 512m-111.304348 0a5 5 0 1 0 222.608696 0 5 5 0 1 0-222.608696 0Z' p-id='9218' fill='#757AF7'></path><path d='M512 512m-111.304348 0a5 5 0 1 0 222.608696 0 5 5 0 1 0-222.608696 0Z' p-id='9219' fill='#757AF7'></path><path d='M111.304348 512m-111.304348 0a5 5 0 1 0 222.608696 0 5 5 0 1 0-222.608696 0Z' p-id='9220' fill='#757AF7'></path></svg>
  425. </button></p>
  426. <div class="case_dropdown-content" style="right: 2em;min-width:6em;">
  427. <a onclick="tool_changed('dighest')">书摘</a>
  428. <a onclick="tool_changed('comments')">批注</a>
  429. <a onclick="tool_changed('target')">标签</a>
  430. <a onclick="tool_changed('layout')">布局</a>
  431. <a onclick="tool_changed('porpername')">术语</a>
  432. <a onclick="tool_changed('share')">分享</a>
  433. <a onclick="tool_changed('fix')">修改</a>
  434. </div>
  435. </div>
  436. </div>
  437. </div>
  438. <div id="tool_bar_comments">
  439. <div class='reader_toolbar' style="height:auto;">
  440. <div>
  441. </div>
  442. <div>
  443. <span>单击段落文字添加批注</span>
  444. </div>
  445. <div>
  446. </div>
  447. </div>
  448. </div>
  449. <div id="tool_bar_dighest">
  450. <div class='reader_toolbar' style="height:auto;">
  451. <div>
  452. <button onclick="dighest_cancle()">取消</button>
  453. </div>
  454. <div>
  455. <span id="dighest_message">单击文字选择段落</span>
  456. </div>
  457. <div>
  458. <button onclick="dighest_ok()">完成</button>
  459. </div>
  460. </div>
  461. </div>
  462. <div id="tool_bar_fix">
  463. <div class='reader_toolbar' style="height:auto;">
  464. <div>
  465. <button onclick="fix_cancle()">取消</button>
  466. </div>
  467. <div>
  468. <span id="fix_message">单击按钮调整段落</span>
  469. </div>
  470. <div>
  471. <button onclick="fix_ok()">完成</button>
  472. </div>
  473. </div>
  474. </div>
  475. <!--tool bar end -->
  476. <div id="main_text_view" style="padding-bottom: 10em;">
  477. <?php
  478. $tocHtml="";
  479. if(isset($_GET["album"])){
  480. $album=$_GET["album"];
  481. }
  482. if(isset($_GET["book"])){
  483. $book=$_GET["book"];
  484. }
  485. else{
  486. echo "no book id";
  487. }
  488. if(substr($book,0,1)=='p'){
  489. $book=substr($book,1);
  490. }
  491. if(isset($_GET["paragraph"])){
  492. $paragraph = $_GET["paragraph"];
  493. }
  494. else if(isset($_GET["para"])){
  495. $paragraph = $_GET["para"];
  496. }
  497. else{
  498. $paragraph = -1;
  499. }
  500. if(isset($_GET["view"])){
  501. $_view = $_GET["view"];
  502. }
  503. else{
  504. echo "Error : 未定义必要的参数view";
  505. exit;
  506. }
  507. if(isset($_GET["display"])){
  508. $_display = $_GET["display"];
  509. }
  510. else{
  511. if($_view=="para" || $_view=="sent"){
  512. $_display = "sent";//默认值
  513. }
  514. else{
  515. $_display = "para";
  516. }
  517. }
  518. if($_view=="chapter" || $_view=="para" || $_view=="sent" ){
  519. PDO_Connect("sqlite:"._FILE_DB_PALITEXT_);
  520. //获取段落信息 如 父段落 下一个段落等
  521. $query = "select * from 'pali_text' where book='$book' and paragraph='$paragraph'";
  522. $FetchParInfo = PDO_FetchAll($query);
  523. if(count($FetchParInfo)==0){
  524. echo "Error:no paragraph info";
  525. echo $query;
  526. }
  527. $par_begin=$paragraph+1-1;
  528. if($_view=="para"){
  529. $par_end = $par_begin;
  530. }
  531. else{
  532. $par_end=$par_begin+$FetchParInfo[0]["chapter_len"]-1;
  533. }
  534. $par_next=$FetchParInfo[0]["next_chapter"];
  535. $par_prev=$FetchParInfo[0]["prev_chapter"];
  536. $par_parent=$FetchParInfo[0]["parent"];
  537. if($par_parent >= 0){
  538. $query = "select toc from 'pali_text' where book='$book' and paragraph='$par_parent'";
  539. $FetchToc = PDO_FetchAll($query);
  540. if(count($FetchToc)>0){
  541. $_parent_title = $FetchToc[0]["toc"];
  542. }
  543. }
  544. $query = "select paragraph,toc from 'pali_text' where book='$book' and parent='$paragraph' and level < '8'";
  545. $FetchParent = PDO_FetchAll($query);
  546. foreach ($FetchParent as $key => $value) {
  547. $tocHtml .= "<div><a href='reader.php?view=chapter&book={$book}&para={$value["paragraph"]}'>{$value["toc"]}</a></div>";
  548. }
  549. //查询标题
  550. if($_view=="chapter"){
  551. $par_title = $FetchParInfo[0]["toc"];
  552. }
  553. else{
  554. $par_title = $_parent_title;
  555. }
  556. //导航按钮
  557. if($_view=="sent"){
  558. $next_para_link = "";
  559. $prev_para_link = "";
  560. }
  561. else{
  562. if($par_next != -1){
  563. $query = "select paragraph , toc from 'pali_text' where book='$book' and paragraph='$par_next' ";
  564. $FetchPara = PDO_FetchAll($query);
  565. if(count($FetchPara)>0){
  566. $next_para_link = "<a href='reader.php?view={$_view}&book={$book}&para={$par_next}'><span id='para_nav_next'>{$FetchPara[0]["toc"]}</span><span id='para_nav_next_a'>";
  567. $next_para_link .= "<svg t='1598093121925' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='4451' width='32px' height='32px'><path d='M540.5696 102.4c-225.83296 0-409.6 183.74656-409.6 409.6s183.76704 409.6 409.6 409.6c225.85344 0 409.6-183.74656 409.6-409.6s-183.74656-409.6-409.6-409.6z m180.14208 439.84896l-109.19936 128.59392a46.65344 46.65344 0 0 1-65.86368 5.36576 46.71488 46.71488 0 0 1-5.38624-65.8432l43.86816-51.63008h-188.12928a46.6944 46.6944 0 1 1 0-93.42976h188.12928l-43.86816-51.63008a46.75584 46.75584 0 0 1 71.24992-60.47744l109.19936 128.59392c14.82752 17.408 14.82752 43.008 0 60.45696z' p-id='4452' fill='#757AF7'></path></svg>";
  568. $next_para_link .= "</span></a>";
  569. }
  570. else{
  571. $next_para_link = "没有查询到标题";
  572. }
  573. }
  574. else{
  575. $next_para_link = "没了";
  576. }
  577. if($par_prev != -1){
  578. $query = "select paragraph , toc from 'pali_text' where book='$book' and paragraph='$par_prev' ";
  579. $FetchPara = PDO_FetchAll($query);
  580. if(count($FetchPara)>0){
  581. $prev_para_link = "<a href='reader.php?view={$_view}&book={$book}&para={$par_prev}'><span id='para_nav_prev_a'>";
  582. $prev_para_link .= "<svg t='1598093521111' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='4644' width='32' height='32'><path d='M540.5696 102.4c-225.83296 0-409.6 183.74656-409.6 409.6s183.76704 409.6 409.6 409.6c225.85344 0 409.6-183.74656 409.6-409.6s-183.74656-409.6-409.6-409.6z m144.54784 456.31488h-188.12928l43.84768 51.63008a46.6944 46.6944 0 0 1-35.59424 76.96384 46.55104 46.55104 0 0 1-35.61472-16.4864l-109.24032-128.59392a46.71488 46.71488 0 0 1 0-60.47744l109.24032-128.59392a46.6944 46.6944 0 1 1 71.20896 60.47744l-43.84768 51.63008h188.12928a46.6944 46.6944 0 1 1 0 93.45024z' p-id='4645' fill='#757AF7'></path></svg>";
  583. $prev_para_link .= "</span><span id='para_nav_prev'>{$FetchPara[0]["toc"]}</span></a>";
  584. }
  585. else{
  586. $prev_para_link = "没有查询到标题";
  587. }
  588. }
  589. else{
  590. $prev_para_link = "没了";
  591. }
  592. }
  593. }
  594. //设置标题栏的经文名称
  595. echo "<script>";
  596. echo "document.getElementById('tool_bar_title').innerHTML='".$par_title."'";
  597. echo "</script>";
  598. //上一级
  599. echo "<div>";
  600. switch($_view){
  601. case 1 :
  602. break;
  603. case 2:
  604. break;
  605. case 3:
  606. break;
  607. case 4:
  608. break;
  609. case 5:
  610. break;
  611. case 5:
  612. break;
  613. case 6:
  614. break;
  615. case "chapter":
  616. if($par_parent >= 0){
  617. echo "<a href='reader.php?view={$_view}&book={$book}&paragraph={$par_parent}'>";
  618. echo "<svg t='1598083209786' class='icon' style='fill:#666666;' height='30px' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='4926'><path d='M446.464 118.784l-254.976 256c-13.312 13.312-4.096 35.84 15.36 35.84H716.8c18.432 0 28.672-22.528 15.36-35.84l-254.976-256c-9.216-8.192-22.528-8.192-30.72 0zM563.2 796.672V533.504c0-11.264-9.216-21.504-21.504-21.504H379.904c-11.264 0-21.504 9.216-21.504 21.504v366.592c0 11.264 9.216 21.504 21.504 21.504h467.968c11.264 0 21.504-9.216 21.504-21.504V839.68c0-11.264-9.216-21.504-21.504-21.504H584.704c-12.288 0-21.504-9.216-21.504-21.504z m0 21.504' p-id='4927'></path></svg>";
  619. echo "{$_parent_title}</a>";
  620. }
  621. break;
  622. case "para":
  623. if($par_parent >= 0){
  624. echo "<a href='reader.php?view=chapter&book={$book}&paragraph={$par_parent}'>";
  625. echo "<svg t='1598083209786' class='icon' style='fill:#666666;' height='30px' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='4926'><path d='M446.464 118.784l-254.976 256c-13.312 13.312-4.096 35.84 15.36 35.84H716.8c18.432 0 28.672-22.528 15.36-35.84l-254.976-256c-9.216-8.192-22.528-8.192-30.72 0zM563.2 796.672V533.504c0-11.264-9.216-21.504-21.504-21.504H379.904c-11.264 0-21.504 9.216-21.504 21.504v366.592c0 11.264 9.216 21.504 21.504 21.504h467.968c11.264 0 21.504-9.216 21.504-21.504V839.68c0-11.264-9.216-21.504-21.504-21.504H584.704c-12.288 0-21.504-9.216-21.504-21.504z m0 21.504' p-id='4927'></path></svg>";
  626. echo "{$_parent_title}</a>";
  627. }
  628. break;
  629. case "sent":
  630. echo "<a href='reader.php?view=para&book={$book}&paragraph={$paragraph}'>";
  631. echo "<svg t='1598083209786' class='icon' style='fill:#666666;' height='30px' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='4926'><path d='M446.464 118.784l-254.976 256c-13.312 13.312-4.096 35.84 15.36 35.84H716.8c18.432 0 28.672-22.528 15.36-35.84l-254.976-256c-9.216-8.192-22.528-8.192-30.72 0zM563.2 796.672V533.504c0-11.264-9.216-21.504-21.504-21.504H379.904c-11.264 0-21.504 9.216-21.504 21.504v366.592c0 11.264 9.216 21.504 21.504 21.504h467.968c11.264 0 21.504-9.216 21.504-21.504V839.68c0-11.264-9.216-21.504-21.504-21.504H584.704c-12.288 0-21.504-9.216-21.504-21.504z m0 21.504' p-id='4927'></path></svg>";
  632. echo "{$paragraph}</a>";
  633. break;
  634. case 10:
  635. break;
  636. }
  637. echo "</div>";
  638. //生成一个段落空壳 等会儿查询数据,按照不同数据类型填充进去
  639. PDO_Connect("sqlite:"._FILE_DB_PALI_SENTENCE_);
  640. if($_display=="sent"){
  641. //逐句显示
  642. for($iPar=$par_begin;$iPar<=$par_end;$iPar++){
  643. if($_view=="sent"){
  644. $query = "select text, begin, end from 'pali_sent' where book='$book' and paragraph='$paragraph' and begin='{$_GET["begin"]}' and end ='{$_GET["end"]}'";
  645. }
  646. else{
  647. $query = "select text, begin, end from 'pali_sent' where book='$book' and paragraph='$iPar'";
  648. }
  649. $FetchSent = PDO_FetchAll($query);
  650. echo "<div id='par-b$book-$iPar' class='par_div'>";
  651. echo "<para book='$book' para='$iPar'>$iPar</para>";
  652. foreach ($FetchSent as $key => $value) {
  653. echo "<div id='sent-pali-b$book-$iPar-{$value["begin"]}' class='par_pali_div'>";
  654. $pali_sent = str_replace("{","<b>",$value["text"]);
  655. $pali_sent = str_replace("}","</b>",$pali_sent);
  656. echo "<sent book='{$book}' para='{$iPar}' begin='{$value["begin"]}' end='{$value["end"]}' >".$pali_sent."</sent>";
  657. echo "</div>";
  658. echo "<div id='sent-wbwdiv-b$book-$iPar-{$value["begin"]}' class='par_translate_div'>";
  659. echo "</div>";
  660. echo "<div id='sent-translate-b$book-$iPar-{$value["begin"]}' class='par_translate_div'>";
  661. echo "</div>";
  662. }
  663. echo "</div>";
  664. }
  665. }
  666. else{
  667. //段落显示
  668. for($iPar=$par_begin;$iPar<=$par_end;$iPar++){
  669. $query = "select text , begin, end from 'pali_sent' where book='$book' and paragraph='$iPar'";
  670. $FetchSent = PDO_FetchAll($query);
  671. echo "<div id='par-b$book-$iPar' class='par_div'>";
  672. echo "<div id='par-pali-b$book-$iPar' class='par_pali_div'>";
  673. echo "<para book='$book' para='$iPar'>$iPar</para>";
  674. foreach ($FetchSent as $key => $value) {
  675. $sent_text = str_replace("{","<b>",$value["text"]) ;
  676. $sent_text = str_replace("}","</b>",$sent_text) ;
  677. echo "<sent book='{$book}' para='{$iPar}' begin='{$value["begin"]}' end='{$value["end"]}' >{$sent_text}</sent>";
  678. }
  679. echo "</div>";
  680. echo "<div id='par-wbwdiv-b$book-$iPar' class='par_translate_div'>";
  681. echo "</div>";
  682. echo "<div id='par-translate-b$book-$iPar' class='par_translate_div'>";
  683. echo "</div>";
  684. echo "<div id='par-note-b$book-$iPar' class='par_translate_div'>";
  685. echo "</div>";
  686. echo "</div>";
  687. }
  688. }
  689. if(isset($_GET["sent_mode"])){
  690. }
  691. PDO_Connect("sqlite:"._FILE_DB_SENTENCE_);
  692. $dbh = new PDO("sqlite:"._FILE_DB_PALI_SENTENCE_, "", "");
  693. $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
  694. for($iPar=$par_begin;$iPar<=$par_end;$iPar++){
  695. if($_view=="sent"){
  696. $FetchPaliSent = array(array("begin" => $_GET["begin"] , "end" => $_GET["end"]));
  697. }
  698. else{
  699. $query = "select begin, end from 'pali_sent' where book='$book' and paragraph='$iPar'";
  700. $stmt = $dbh->query($query);
  701. $FetchPaliSent = $stmt->fetchAll(PDO::FETCH_ASSOC);
  702. }
  703. foreach ($FetchPaliSent as $key => $value) {
  704. $begin = $value["begin"];
  705. $end = $value["end"];
  706. if($_view=="sent"){
  707. $query="SELECT * FROM \"sentence\" WHERE (book = '{$book}' AND \"paragraph\" = ".$PDO->quote($iPar)." AND begin = '$begin' AND end = '$end' AND length(text)>0 ) order by modify_time DESC";
  708. }
  709. else{
  710. $query = "SELECT * FROM \"sentence\" WHERE book = '{$book}' AND \"paragraph\" = ".$PDO->quote($iPar)." AND begin = '$begin' AND end = '$end' AND length(text)>0 order by modify_time DESC limit 0, 1";
  711. }
  712. $query_count = "SELECT count(book) FROM \"sentence\" WHERE book = '{$book}' AND \"paragraph\" = ".$PDO->quote($iPar)." AND begin = '$begin' AND end = '$end' AND length(text)>0 ";
  713. $sent_count = PDO_FetchOne($query_count);
  714. if($sent_count>9){
  715. $sent_count = "9+";
  716. }
  717. $FetchText = PDO_FetchAll($query);
  718. $iFetchText=count($FetchText);
  719. if($iFetchText>0){
  720. for($i=0;$i<$iFetchText;$i++){
  721. $currParNo=$iPar;
  722. if($_display=="sent"){
  723. $sent_style = "display:block";
  724. }
  725. else{
  726. $sent_style = "";
  727. }
  728. $tran_text = str_replace("[[","<term status='0'>",$FetchText[$i]["text"]);
  729. $tran_text = str_replace("]]","</term>",$tran_text);
  730. echo "<sent_trans style='{$sent_style}' id='sent-tran-b{$book}-{$currParNo}-{$FetchText[$i]["begin"]}-{$i}' class='sent_trans ' book='$book' para='$currParNo' begin='{$FetchText[$i]["begin"]}'>".$tran_text;
  731. if($_view!="sent" && $_display=="sent"){
  732. echo "<span class='sent_count'>$sent_count</span>";
  733. }
  734. echo "</sent_trans>";
  735. echo "<script>";
  736. if($_display=="sent"){
  737. echo "document.getElementById('sent-translate-b{$book}-{$currParNo}-{$FetchText[$i]["begin"]}').appendChild(document.getElementById('sent-tran-b{$book}-{$currParNo}-{$FetchText[$i]["begin"]}-{$i}'));";
  738. }
  739. else{
  740. echo "document.getElementById('par-translate-b{$book}-{$currParNo}').appendChild(document.getElementById('sent-tran-b{$book}-{$currParNo}-{$FetchText[$i]["begin"]}-{$i}'));";
  741. }
  742. echo "</script>";
  743. }
  744. }
  745. }
  746. }
  747. //查询句子译文内容
  748. //查询句子译文内容结束
  749. echo "<div id='para_nav'>";
  750. echo "<div style='display:inline-flex;'>";
  751. echo "<svg t='1598094361320' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='4933' width='32' height='32'><path d='M698.75712 684.4416a81.92 81.92 0 0 1-124.88704 106.06592l-191.488-225.4848a81.89952 81.89952 0 0 1 0-106.06592l191.488-225.4848a81.92 81.92 0 0 1 124.88704 106.06592l-146.45248 172.46208 146.45248 172.4416z' p-id='4934' fill='#757AF7'></path></svg>";
  752. echo "$prev_para_link</div>";
  753. echo "<div style='display:inline-flex;'>$next_para_link";
  754. echo "<svg t='1598094021808' class='icon' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='4451' width='32' height='32'><path d='M698.75712 565.02272l-191.488 225.4848a81.73568 81.73568 0 0 1-62.48448 28.89728 81.89952 81.89952 0 0 1-62.40256-134.94272l146.432-172.4416-146.432-172.4416a81.92 81.92 0 0 1 124.88704-106.06592l191.488 225.4848a81.87904 81.87904 0 0 1 0 106.02496z' p-id='4452' fill='#757AF7'></path></svg>";
  755. echo "</div>";
  756. echo "</div>";
  757. if(isset($album)){
  758. /*
  759. //自动逐词译
  760. $db_file = "../appdata/palicanon/templet/p".$book."_tpl.db3";
  761. PDO_Connect("sqlite:$db_file");
  762. for($iPar=$par_begin;$iPar<=$par_end;$iPar++){
  763. $query="SELECT * FROM \"main\" WHERE (\"paragraph\" = ".$PDO->quote($iPar)." ) ";
  764. $Fetch = PDO_FetchAll($query);
  765. $iFetch=count($Fetch);
  766. if($iFetch>0){
  767. echo "<div id='par-wbw-b$book-$iPar' class='wbw_par'>";
  768. for($i=0;$i<$iFetch;$i++){
  769. $type=$Fetch[$i]["type"];
  770. if($type!=".ctl."){
  771. echo "<div class='word'>";
  772. echo "<div class='pali'>".$Fetch[$i]["word"]."</div>";
  773. echo "<div class='mean'>".$Fetch[$i]["mean"]."</div>";
  774. echo "</div>";
  775. }
  776. }
  777. echo "</div>";
  778. echo "<script>";
  779. echo "document.getElementById('par-wbwdiv-b$book-$iPar').appendChild(document.getElementById('par-wbw-b$book-$iPar'));";
  780. echo "</script>";
  781. }
  782. }
  783. ////自动逐词译结束
  784. */
  785. PDO_Connect("sqlite:"._FILE_DB_RESRES_INDEX_);
  786. $query = "select * from 'album' where id='$album'";
  787. $Fetch = PDO_FetchAll($query);
  788. $iFetch=count($Fetch);
  789. if($iFetch>0){
  790. switch($Fetch[0]["type"]){
  791. case 1://巴利原文
  792. break;
  793. case 2://逐词译
  794. $db_file =_DIR_PALICANON_WBW_."/p{$book}_wbw.db3";
  795. PDO_Connect("sqlite:$db_file");
  796. for($iPar=$par_begin;$iPar<=$par_end;$iPar++){
  797. $table="p{$book}_wbw_data";
  798. $query="SELECT * FROM \"{$table}\" WHERE (\"paragraph\" = ".$PDO->quote($iPar)." ) and album_id={$album} ";
  799. $Fetch = PDO_FetchAll($query);
  800. $iFetch=count($Fetch);
  801. if($iFetch>0){
  802. echo "<div id='par-wbw-b$book-$iPar' class='wbw_par'>";
  803. for($i=0;$i<$iFetch;$i++){
  804. $wordtype=$Fetch[$i]["type"];
  805. if($wordtype!=".ctl."){
  806. echo "<div class='word'>";
  807. echo "<div class='pali'>{$Fetch[$i]["word"]}</div>";
  808. echo "<div class='mean'>{$Fetch[$i]["mean"]}</div>";
  809. echo "<div class='case'>{$wordtype}#{$Fetch[$i]["gramma"]}</div>";
  810. echo "</div>";
  811. }
  812. }
  813. echo "</div>";
  814. echo "<script>";
  815. echo "document.getElementById('par-wbwdiv-b$book-$iPar').appendChild(document.getElementById('par-wbw-b$book-$iPar'));";
  816. echo "</script>";
  817. }
  818. }
  819. break;
  820. case 3:
  821. //译文
  822. $tocHtml="";
  823. //打开翻译数据文件
  824. $db_file =_DIR_PALICANON_TRAN_."/p{$book}_translate.db3";
  825. PDO_Connect("sqlite:{$db_file}");
  826. $this_album_id=$album;
  827. $table="p{$book}_translate_info";
  828. if($par_begin==-1){
  829. //全文
  830. $query="SELECT * FROM '{$table}' WHERE album_id=$this_album_id ";
  831. }
  832. else{
  833. //部分段落
  834. $query="SELECT * FROM '{$table}' WHERE (\"paragraph\" BETWEEN ".$PDO->quote($par_begin)." AND ".$PDO->quote($par_end).") and album_id=$this_album_id ";
  835. }
  836. //查询翻译经文内容
  837. $FetchText = PDO_FetchAll($query);
  838. $iFetchText=count($FetchText);
  839. if($iFetchText>0){
  840. for($i=0;$i<$iFetchText;$i++){
  841. $currParNo=$FetchText[$i]["paragraph"];
  842. //查另一个表,获取段落文本。一句一条记录。有些是一段一条记录
  843. $table_data="p{$book}_translate_data";
  844. $query="SELECT * FROM '{$table_data}' WHERE info_id={$FetchText[$i]["id"]}";
  845. $aParaText = PDO_FetchAll($query);
  846. $par_text="";
  847. foreach($aParaText as $sent){
  848. $par_text.=$sent["text"];
  849. }
  850. //获取段落文本结束。
  851. $par_text=str_replace("<pb></pb>","<br/><pb></pb>",$par_text);
  852. echo "<div id='par-translate-a$album-b$book-$currParNo' class='translate_text'>";
  853. echo "<a name='par_$currParNo'></a>";
  854. echo "<div id='text-a$album-b$book-$currParNo' class='text_level_".$par_level["$currParNo"]."' onclick='paragraph_click($album,$book,$currParNo)'>".$par_text."</div>";
  855. echo "<div id='comm-a$album-b$book-$currParNo' class='comments'>";
  856. echo "<div id='new-comm-a$album-b$book-$currParNo' class='new_comments'></div>";
  857. echo "</div>";
  858. echo "</div>";
  859. echo "<script>";
  860. echo "add_new_res($album,$book,$currParNo,'$par_text');";
  861. echo "document.getElementById('par-translate-b$book-$currParNo').appendChild(document.getElementById('par-translate-a$album-b$book-$currParNo'));";
  862. echo "</script>";
  863. //目录字符串
  864. $tocLevel=$par_level["$currParNo"]+1-1;
  865. if($tocLevel>0 && $tocLevel<8){
  866. $tocHtml.="<div class='toc_item level_$tocLevel'><a href='#par_$currParNo'>{$par_text}</a></div>";
  867. }
  868. }
  869. //设置标题栏的经文名称
  870. echo "<script>";
  871. echo "document.getElementById('tool_bar_title').innerHTML='".$FetchText[0]["title"]."'";
  872. echo "</script>";
  873. }
  874. break;
  875. case 4:
  876. break;
  877. case 5:
  878. break;
  879. case 6:
  880. break;
  881. case 7:
  882. break;
  883. }
  884. }
  885. //添加注解
  886. PDO_Connect("sqlite:"._FILE_DB_COMMENTS_);
  887. if($par_begin==-1){
  888. $query="SELECT * FROM \"comments\" WHERE album='$album' order by id DESC";
  889. }
  890. else{
  891. $query="SELECT * FROM \"comments\" WHERE album='$album' AND (\"paragraph\" BETWEEN ".$PDO->quote($par_begin)." AND ".$PDO->quote($par_end).") order by id DESC ";
  892. }
  893. //查询注解内容
  894. $FetchText = PDO_FetchAll($query);
  895. $iFetchText=count($FetchText);
  896. if($iFetchText>0){
  897. for($i=0;$i<$iFetchText;$i++){
  898. $currParNo=$FetchText[$i]["paragraph"];
  899. $comm_id=$FetchText[$i]["id"];
  900. echo "<div id='comm-id-".$comm_id."' class='comments_text_div'><div class='comments_text'>".$FetchText[$i]["text"]."</div><div><button>赞</button>".$FetchText[$i]["reputable"]."</div></div>";
  901. echo "<script>";
  902. echo "document.getElementById('comm-a$album-b$book-$currParNo').appendChild(document.getElementById('comm-id-".$comm_id."'));";
  903. echo "</script>";
  904. }
  905. }
  906. if($par_next!=-1){
  907. echo "<a href='reader.php?book=$book&album=$album&paragraph=$par_next'>Next</a>";
  908. }
  909. }
  910. ?>
  911. </div><!--main_text_view end-->
  912. <div id="new_comm_shell" style="display:none;">
  913. <div id="new_comm_div">
  914. <textarea id="new_comm_text"></textarea>
  915. <button onclick="new_comm_submit()">提交</button><button onclick="new_comm_cancel()">取消</button>
  916. </div>
  917. </div>
  918. <div id="dighest_edit_div" class="full_screen_window">
  919. <div class="win_caption">
  920. <div><button onclick="dighest_edit_cancle()">取消</button></div>
  921. <div><button onclick="dighest_edit_submit()">提交</button></div>
  922. </div>
  923. <div id="dighest_edit_body" class="win_body">
  924. <div>
  925. 标题:<input id="dighest_edit_title" />
  926. </div>
  927. <div>
  928. 简介:<textarea id="dighest_edit_summary"></textarea>
  929. </div>
  930. <div>
  931. 标签:<input id="dighest_edit_taget" />
  932. </div>
  933. <div id="dighest_text_preview">
  934. </div>
  935. </div>
  936. </div>
  937. <!-- 全屏 黑色背景 -->
  938. <div id="BV" class="blackscreen" onclick="setNaviVisibility()"></div>
  939. <!-- nav begin-->
  940. <div id="leftmenuinner" class="viewswitch_off">
  941. <div class="win_caption">
  942. <div><button id="left_menu_hide" onclick="setNaviVisibility()">返回</button></div>
  943. <div id="menubartoolbar_New">
  944. <ul class="common-tab">
  945. <li id="content_menu_li" class="common-tab_li_act" onclick="menuSelected_2(menu_toc,'content_menu_li')">目录</li>
  946. <li id="palicanon_menu_li" class="common-tab_li" onclick="menuSelected_2(menu_pali_cannon,'palicanon_menu_li')">批注</li>
  947. <li id="bookmark_menu_li" class="common-tab_li" onclick="menuSelected_2(menu_bookmark,'bookmark_menu_li')">书签</li>
  948. </ul>
  949. </div>
  950. </div>
  951. <div class='toc' id='leftmenuinnerinner'>
  952. <!-- toc begin -->
  953. <div class="menu" id="menu_toc">
  954. <a name="_Content" ></a>
  955. <select name="menu" onchange="show_toc_level(this)" style="display:none;">
  956. <option value="1">1</option>
  957. <option value="2">2</option>
  958. <option value="3">3</option>
  959. <option value="4">4</option>
  960. <option value="5">5</option>
  961. <option value="6">6</option>
  962. <option value="7">7</option>
  963. </select>
  964. <div id="toc_content"><?php echo $tocHtml; ?></div>
  965. </div>
  966. <!-- toc end -->
  967. <!-- comments begin -->
  968. <div class="menu" id="menu_comments">
  969. <div id="navi_comments_inner"></div>
  970. </div>
  971. <!-- comments end -->
  972. <!-- book mark begin -->
  973. <div class="menu" id="menu_bookmark" style="display:none;">
  974. <div>
  975. <input id="B_Bookmark_All" onclick="setBookmarkVisibility('all')" type="checkbox" style="width: 20px; height: 20px" />
  976. <input id="B_Bookmark_A" onclick="setBookmarkVisibility('bma','B_Bookmark_A')" type="checkbox" style="width: 20px; height: 20px" /><span class="bookmarkcolora , bookmarkcolorblock" >a</span>
  977. <input id="B_Bookmark_X" onclick="setBookmarkVisibility('bmx','B_Bookmark_X')" type="checkbox" style="width: 20px; height: 20px" checked /><span class="bookmarkcolorx , bookmarkcolorblock" >?</span>
  978. <input id="B_Bookmark_1" onclick="setBookmarkVisibility('bm1','B_Bookmark_1')" type="checkbox" style="width: 20px; height: 20px" checked /><span class="bookmarkcolor1 , bookmarkcolorblock" >1</span>
  979. <input id="B_Bookmark_2" onclick="setBookmarkVisibility('bm2','B_Bookmark_2')" type="checkbox" style="width: 20px; height: 20px" checked /><span class="bookmarkcolor2 , bookmarkcolorblock" >2</span>
  980. <input id="B_Bookmark_3" onclick="setBookmarkVisibility('bm3','B_Bookmark_3')" type="checkbox" style="width: 20px; height: 20px" checked /><span class="bookmarkcolor3 , bookmarkcolorblock" >3</span>
  981. <input id="B_Bookmark_4" onclick="setBookmarkVisibility('bm4','B_Bookmark_4')" type="checkbox" style="width: 20px; height: 20px" checked /><span class="bookmarkcolor4 , bookmarkcolorblock" >4</span>
  982. <input id="B_Bookmark_5" onclick="setBookmarkVisibility('bm5','B_Bookmark_5')" type="checkbox" style="width: 20px; height: 20px" checked /><span class="bookmarkcolor5 , bookmarkcolorblock" >5</span>
  983. <input id="B_Bookmark_0" onclick="setBookmarkVisibility('bm0','B_Bookmark_0')" type="checkbox" style="width: 20px; height: 20px" checked /><span class="bookmarkcolor0 , bookmarkcolorblock" >0</span>
  984. </div>
  985. <div id="navi_bookmark_inner"></div>
  986. </div>
  987. <!-- book mark end -->
  988. </div>
  989. </div>
  990. <!-- nav end -->
  991. <div id="mean_menu" ></div>
  992. <script>
  993. //lookup();
  994. $(".pali").mouseover(function(e){
  995. var targ
  996. if (!e) var e = window.event;
  997. if (e.target) targ = e.target;
  998. else if (e.srcElement) targ = e.srcElement;
  999. if (targ.nodeType == 3) // defeat Safari bug
  1000. targ = targ.parentNode;
  1001. var pali_word;
  1002. pali_word=targ.innerHTML;
  1003. objCurrMouseOverPaliMean=targ.nextSibling;
  1004. $("#tool_bar_title").html(pali_word);
  1005. $("#mean_menu").html(getWordMeanMenu(pali_word));
  1006. targ.parentNode.appendChild(document.getElementById("mean_menu"));
  1007. });
  1008. $("sent").click(function(e){
  1009. let book = $(this).attr("book");
  1010. let para = $(this).attr("para");
  1011. let begin = $(this).attr("begin");
  1012. let end = $(this).attr("end");
  1013. window.location.assign("reader.php?view=sent&book="+book+"&para="+para+"&begin="+begin+"&end="+end);
  1014. });
  1015. $("sent").mouseenter(function(e){
  1016. let book = $(this).attr("book");
  1017. let para = $(this).attr("para");
  1018. let begin = $(this).attr("begin");
  1019. $(this).css("background-color","#fefec1");
  1020. $("sent_trans[book='"+book+"'][para='"+para+"'][begin='"+begin+"']").css("background-color","#fefec1");
  1021. });
  1022. $("sent").mouseleave(function(e){
  1023. let book = $(this).attr("book");
  1024. let para = $(this).attr("para");
  1025. let begin = $(this).attr("begin");
  1026. $(this).css("background-color","unset");
  1027. $("sent_trans[book='"+book+"'][para='"+para+"'][begin='"+begin+"']").css("background-color","unset");
  1028. });
  1029. $("para").mouseenter(function(e){
  1030. let book = $(this).attr("book");
  1031. let para = $(this).attr("para");
  1032. $("sent[book='"+book+"'][para='"+para+"']").css("background-color","#fefec1");
  1033. });
  1034. $("para").mouseleave(function(e){
  1035. let book = $(this).attr("book");
  1036. let para = $(this).attr("para");
  1037. $("sent[book='"+book+"'][para='"+para+"']").css("background-color","unset");
  1038. });
  1039. $("sent_trans").mouseenter(function(e){
  1040. let book = $(this).attr("book");
  1041. let para = $(this).attr("para");
  1042. let begin = $(this).attr("begin");
  1043. $(this).css("background-color","#fefec1");
  1044. $("sent[book='"+book+"'][para='"+para+"'][begin='"+begin+"']").css("background-color","#fefec1");
  1045. });
  1046. $("sent_trans").mouseleave(function(e){
  1047. let book = $(this).attr("book");
  1048. let para = $(this).attr("para");
  1049. let begin = $(this).attr("begin");
  1050. $(this).css("background-color","unset");
  1051. $("sent[book='"+book+"'][para='"+para+"'][begin='"+begin+"']").css("background-color","unset");
  1052. });
  1053. $("para").click(function(e){
  1054. let book = $(this).attr("book");
  1055. let para = $(this).attr("para");
  1056. window.location.assign("reader.php?view=para&book="+book+"&para="+para);
  1057. });
  1058. term_updata_translation();
  1059. var wordlist = new Array();
  1060. $("term").each(function(index,element){
  1061. wordlist.push($(this).attr("pali"));
  1062. }
  1063. );
  1064. function haha(){
  1065. var wordquery ="('" + wordlist.join("','")+"')";
  1066. $.post("../term/term.php",
  1067. {
  1068. op:"extract",
  1069. words:wordquery
  1070. },
  1071. function(data,status){
  1072. if(data.length>0){
  1073. try{
  1074. arrMyTerm = JSON.parse(data);
  1075. term_updata_translation();
  1076. }
  1077. catch(e){
  1078. console.error(e.error+" data:"+data);
  1079. }
  1080. }
  1081. });
  1082. }
  1083. </script>
  1084. </body>
  1085. </html>