DEMO.
Để thực hiện thủ thuật này, bạn hãy làm theo các bước như sau:
Bước 1. Trước tiên khi đăng bài, ở cuối bài viết bạn hãy đặt các liên kết tài liệu tham khảo theo cấu trúc HTML như thế này:
Bước 2. Vào Design >> Edit HTML. Chọn Expand Widget Templates.
Kế đến chúng ta cần ẩn các liên kết tài liệu tham khảo ở cuối bài viết (vì mục đích chính là hiển thị các liên kết này trên Sidebar) bằng cách đặt dòng code sau đây vào trước dòng ]]></b:skin>.
- .linkonsidebar {display:none}
Sau đó, viết một kịch bản giúp các liên kết ẩn trong bài viết được hiển thị trên Sidebar. Vì mỗi bài viết có một ID riêng nên các liên kết này cũng được gán theo ID của bài viết. Đặt đoạn code bên dưới vào trước thẻ </head>.
- <script type="text/javascript">
- //<![CDATA[
- // Script to Display Reference Links on Sidebar by www.thuthuatblogger.info
- // giúp các liên kết ẩn trong bài viết được hiển thị
- var linkonsidebarHREF=new Array();
- var linkonsidebarTXT=new Array();
- // chức năng hiển thị link theo ID của bài viết
- function displayLinks(idPOST) {
- var thePOST = document.getElementById("post-" + idPOST);
- // tìm tất cả các link
- var thelist = thePOST.getElementsByTagName("a");
- if(thelist.length>0){
- // nếu có thì tìm tất cả các link có lớp linkonsidebar
- var offset;
- for(var i=0; i<thelist.length; ++i) {
- if(thelist[i].className=="linkonsidebar") {
- // nếu tìm ra thì thêm vào danh sách hiển thị
- offset = linkonsidebarHREF.length;
- linkonsidebarHREF[offset] = thelist[i].href;
- linkonsidebarTXT[offset] = thelist[i].innerHTML;
- }
- }
- }
- }
- //]]>
- </script>
Bước 3. Tiếp theo, chúng ta cần phải gắn ID cho bài viết. Tìm đến đoạn code như sau:
- <b:includable id='post' var='post'>
- <div class='post hentry'>
Thẻ <div class='post hentry'> (hoặc <div class='post'>) tạo lớp CSS chung cho toàn bộ bài viết, vậy để chuyên biệt hóa cho từng bài viết thì chúng ta cần gắn ID vào như sau:
- <div class='post' expr:id='"post-" + data:post.id'>
Sau đó tìm đến đoạn code tương tự như bên dưới và thêm vào phần được đánh dấu màu đỏ.
<div class='post-body entry-content'>
<data:post.body/>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div><script type='text/javascript'>displayLinks('<data:post.id/>');</script>
Lưu Template.
Bước 4. Vào Page Elements. Thêm một tiện ích HTML/Javascript và đặt vào nội dung tiện ích bằng đoạn code bên dưới. Có thể đặt tên cho tiện ích là Tham khảo cho bài đang đọc.
<style>
#reflinks { /* thêm thuộc tính CSS cho nội dung thẻ div */ }
#reflinks a {
/* thuộc tính cho link */
display: block;
list-style-type:decimal
}
#reflinks a:hover { /* hiệu ứng hover cho link */ }
</style>
<div id="reflinks">
<script type="text/javascript">
var strout = "";
// nếu có link hiển thị
if(linkonsidebarHREF.length>0){
// thì đọc danh sách
for(var i=0; i<linkonsidebarHREF.length; ++i) {
// và đặt cùng nhau trong mã HTML
strout += "<a href='" + linkonsidebarHREF[i] + "' target='_blank'>" + linkonsidebarTXT[i] + "</a>";
}
document.write(strout);
}
// nếu không có link hiển thị thì hiện thông báo chưa có tài liệu tham khảo
else {document.write('<b>Chưa có tài liệu nào</b>');
}
</script>
</div>
<div class='clear'></div>
Bước 5. Vào Edit HTML. Thao tác cuối cùng là chỉ hiển thị tiện ích HTML/Javascript vừa thêm ở các trang bài viết (item). Chọn Expand Widget Templates. Tìm đến ID của tiện ích HTML/Javascript nói trên (ví dụ ở đây có ID là HTML100) và thêm vào lệnh điều kiện (ở dòng 3 và dòng 11) như sau:
- <b:widget id='HTML100' locked='false' title='Tham khảo cho bài đang đọc' type='HTML'>
- <b:includable id='main'>
- <b:if cond='data:blog.pageType == "item"'>
- <!-- only display title if it's non-empty -->
- <b:if cond='data:title != ""'>
- <h2 class='title'><data:title/></h2>
- </b:if>
- <div class='widget-content'>
- <data:content/>
- </div>
- </b:if>
- </b:includable>
- </b:widget>
Lưu Template.
Gắn ID cho các thành phần bài viết
{ 0 comments... read them below or add one }
Post a Comment