Browse Source

文集首页增加目录

visuddhinanda 4 years ago
parent
commit
f143f22160
2 changed files with 42 additions and 10 deletions
  1. 21 3
      app/article/article.js
  2. 21 7
      app/article/index.php

+ 21 - 3
app/article/article.js

@@ -1,3 +1,5 @@
+//import {Like,LikeRefresh} from '../widget/like.js';
+var _view = "";
 var _articel_id = "";
 var _channal = "";
 var _lang = "";
@@ -65,10 +67,17 @@ function collect_load(id) {
 							$("#article_subtitle").html(result.subtitle);
 						}
 						$("#article_author").html(result.username.nickname + "@" + result.username.username);
-						$("#contents").html(marked(result.summary));
+						$("#like_div").html("<like restype='collection' resid='"+id+"'></like>");
+						$("#summary").html(result.summary);
+						$("#contents").html("<div id='content_text'></div><h3>目录</h3><div id='content_toc'></div>");
 
 						let article_list = JSON.parse(result.article_list);
 						render_article_list(article_list);
+						render_article_list_in_content(article_list);
+						$("#content_toc").fancytree("getRootNode").visit(function(node){
+							node.setExpanded(true);
+						  });
+						Like();
 					}
 				} catch (e) {
 					console.error(e);
@@ -94,7 +103,6 @@ function articel_load_article_list(articleId,collectionId) {
 					if (result) {
 						let article_list = JSON.parse(result.article_list);
 						render_article_list(article_list,collectionId,articleId);
-
 						let strTitle = "<a href='../article/?collection=" + result.id + "'>" + result.title + "</a> / ";
 						for (const iterator of tocActivePath) {
 							strTitle += "<a href='../article/?id="+iterator.key+"&collection=" + result.id + "'>" + iterator.title + "</a> / ";
@@ -122,7 +130,17 @@ function render_article_list(article_list,collectId="",articleId="") {
 		}
 	});
 }
-
+//在 正文中的目录
+function render_article_list_in_content(article_list,collectId="",articleId="") {
+	$("#content_toc").fancytree({
+		autoScroll: true,
+		source: tocGetTreeData(article_list,articleId),
+		activate: function(e, data) {
+			gotoArticle(data.node.key,collectId);
+			return false;
+		}
+	});
+}
 function set_channal(channalid) {
 	let url = "../article/index.php?id=" + _articel_id;
 	if (_collection_id != "") {

+ 21 - 7
app/article/index.php

@@ -6,8 +6,9 @@ require_once "../pcdl/html_head.php";
 <body style="margin: 0;padding: 0;" class="reader_body" >
 
 
-	<script src="./article.js"></script>
+	<script  src="./article.js"></script>
 
+	<script src="../widget/like.js"></script>
 	<script src="../widget/click_dropdown.js"></script>
 	<link type="text/css" rel="stylesheet" href="../widget/click_dropdown.css"/>
 
@@ -110,7 +111,7 @@ require_once "../pcdl/html_head.php";
 <script src="../article/my_collect.js" type="text/javascript"></script>
 
 <style>
-#toc_content ul.fancytree-container{
+ul.fancytree-container{
 	border:unset;
 }
 .fancytree-container .active {
@@ -129,6 +130,14 @@ span.fancytree-node{
 	max-height: 25vw;
     width: max-content;
 }
+like{
+    min-width: 40px;
+    border: 1px solid var(--border-line-color);
+    display: inline-block;
+    border-radius: 5px;
+    margin: 5px;
+    cursor: pointer;
+}
 </style>
 
 <?php
@@ -165,15 +174,20 @@ span.fancytree-node{
 </div>
 <div id="main_view" class="main_view">
 <div id="article_head" style="border-bottom: 1px solid gray;">
-	<div id="article_title" class="term_word_head_pali"><?php echo $_local->gui->title; ?></div>
-	<div id="article_subtitle"><?php echo $_local->gui->sub_title; ?></div>
-	<div id="article_author"><?php echo $_local->gui->author; ?></div>
+	<div id="article_title" class="term_word_head_pali"></div>
+	<div id="article_subtitle"></div>
+	<div id="article_author"></div>
+	<div id="like_div">
+		<like restype='article' resid='124'></like>
+		<watch restype='article' resid='124'></watch>
+	</div>
 </div>
+
 <div id="contents_view">
 	<div id="contents_div">
-	
+		<div id="summary"></div>
 		<div id="contents" class="<?php echo $contentClass;?>">
-		<?php echo $_local->gui->loading; ?>...
+			<?php echo $_local->gui->loading; ?>...
 		</div>
 		<div id="contents_foot">
 			<div id="contents_nav" style="display:flex;justify-content: space-between;">