* Một số tính năng mới :
- Hiển thị phân trang cho toàn bộ blog (trừ trang Archive).
- Hiển thị trang báo lỗi 404 khi trang tìm kiếm không tồn tại.
- Hiện thị 2 dạng list và dạng thumbnail.
* Nhược điểm :
- Không hiện thị được với trang Archive. Vì thế ai dùng thủ thuật này sẽ phải chấp nhận đóng các trang Archive lại.
- Thanh Navigation hiện thị trên đầu khi truy cập blog từ IE6 và Opera.
- Bên dưới là hình minh họa trang báo lỗi (ví dụ 1 nhãn chỉ có 50 trang, mà bạn tự truy cập vào trang có giá trị page là 51 thì tiện ích sẽ báo lỗi)
Để thực hiện thủ thuật này, các bạn vào bài viết "Phân trang cho trang chủ" để tham khảo cách thực hiện.
Cách thực hiện tương tự như bài trước, vào chỉ việc thay thế các code ở các bước như bên dưới:
- Sửa lại code ở bước 1 như bên dưới :
...
...
<b:if cond='data:blog.url != "item"'>
#Blog1 {display:none;}
</b:if>
</style>
<div class='post-body entry-content'>
...
xuống bên dưới vài dòng ta sẽ thấy đọan code như bên dưới
...
<data:post.body/>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>
- và chèn thêm code như bên dưới :
<div class='post-body entry-content'>
<b:if cond='data:blog.url == "item"'>
...
xuống bên dưới vài dòng ta sẽ thấy đọan code như bên dưới
...
<data:post.body/>
<div style='clear: both;'/> <!-- clear for photos floats -->
</b:if>
</div>
- Thay thế code ở bước 2 thành code như bên dưới :
.clear {clear: both;}
.home-navi {width:500px;color:#000}
.home-navi h2 {border-bottom:1px solid #f70;padding-bottom:3px;margin-bottom:5px;}
.home-navi h2 a {text-decoration:none;color:#c65b00;}
.home-navi h2 a:hover {color:#eb8e41;}
.home-navi p {color:#000;}
.home-navi p span {color:#000}
.cat_tags {background:#FFF url(http://data.fandung.com/img/fd_category1.png) no-repeat;width:500px;}
.cat_tags_close {background:#FFF url(http://data.fandung.com/img/fd_category1.png) 0 -81px no-repeat;width:500px;}
.cat_tags{margin-top:10px;padding:8px 0 5px 10px;}
.cat_tags_close{max-height:3px;height:3px;margin-bottom:20px;}
.cat_tags .continue{float:right;padding-right:10px;width:90px;text-align:center;}
.cat_tags .category{float:left;color:#f70;width:360px;}
.cat_tags .category a {color:#}
.cat_tags a {color:#999;}
.cat_tags .continue a {color:#fff;text-decoration:none;}
.cat_tags .continue a:hover {text-decoration:underline;font-weight:bold;}
#page-rc-tooltip {font-weight:bold; padding-top:15px;margin-bottom:15px;text-align:center;}
#page-rc-tooltip a {text-decoration:none; border:1px solid #fcb353; padding:2px 5px;background:#fae9c8;}
#page-rc-tooltip a:hover {color:#f00;background:#fcc697;}
#page-rc-tooltip span {border:1px solid #ccc; padding:2px 5px;background:#fff;}
#page-rc-tooltip span.currentpage {background:#fcaa62;}
a.label-link {color:#555;text-decoration:none;}
a.label-link:hover {color:#000;text-decoration:underline;}
td.listtitle {padding-left:5px;width:405px;}
td.listtitle span {color:#888;font-size:85%;}
td.listtitle span a{color:#e70!important;}
td.listtitle span i{color:#000!important;}
td.listinfo {width:90px;text-align:right;font-size:85%;color:#888;}
td.listinfo span {color:#000;font-style:italic;}
</style>
<div style="margin-bottom:10px;padding:5px;font-weight:bold;border:1px solid #fcb353;-khtml-border-radius: 5px;-moz-border-radius: 5px;-webkit-border-radius: 5px;background:#fae9c8;">
Dạng xem (<a href="?v=full">Full</a> | <a href="?v=list">List</a>)<img src="http://www.nepalguidetreks.com/images/new_animated.gif" /> - <i style="color:#f00;">Đang thử nghiệm</i></div>
<script type='text/javascript'>
//<![CDATA[
//page, view value
String.prototype.GetValue= function(para) {
var reg = new RegExp("(^|&)"+ para +"=([^&]*)(&|$)");
var r = this.substr(this.indexOf("\?")+1).match(reg);
if (r!=null) return unescape(r[2]); return null;
}
var str = location.href;
var page = str.GetValue("page");
var view = str.GetValue("v"); //lấy giá trị dạng xem
var homepageurl = "http://www.fandung.com/";
var urllength = homepageurl.length;
if (page==undefined) { page = "1"; }
if (view==undefined) { view = "full"; } //mặc định giá trị view là full
if (str.indexOf("search/label")!=-1) {
if (str.indexOf("?")!=-1){
var str1 = str.split("?")[0];
var label = str1.substring(urllength+13,str1.length);
}
else {
var label = str.substring(urllength+13,str.length);
}
var textlabel = "/-/"+label;
var textpage = "search/label/"+label;
}
else {var textlabel ="";var textpage = ""; }
// remove tags
function stripHtmlTags(s,max){
s=s.replace(/<br.*?>/ig, ' ');
return s.replace(/<.*?>/ig, '').split(/\s+/).slice(0,max-1).join(' ')
}
//get RSS FEED
function showrecentposts(json) {
img = new Array();
for (var i = 0; i < numposts; i++) {
var entry = json.feed.entry[i];
var posttitle = entry.title.$t;
var pcm ;
var posturl;
if (i == json.feed.entry.length) break;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
posturl = entry.link[k].href;
break;
}
}
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'replies' && entry.link[k].type == 'text/html') {
pcm = entry.link[k].title.split(" ")[0];
break;
}
}
var plabel = new Array();
var cate = entry.category;
if(cate) {
for (var k = 0; k < entry.category.length; k++) {
plabel[k] = ' <a class="label-link" href="http://www.fandung.com/search/label/'+entry.category[k].term+'">'+entry.category[k].term+'</a> ';
}
}
else {plabel = "No label";}
var authpost = entry.author[0].name.$t;
var postdate = entry.published.$t;
var month = [1,2,3,4,5,6,7,8,9,10,11,12];
var month2 = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];
var day = postdate.split("-")[2].substring(0,2);
var m = postdate.split("-")[1];
var y = postdate.split("-")[0];
postDay = day+ "/" + m + "/" + y ;
if ("content" in entry) {
var postcontent = entry.content.$t;}
else
if ("summary" in entry) {
var postcontent = entry.summary.$t;}
else postcontent = "";
s = postcontent; a = s.indexOf("<img"); b = s.indexOf("src=\"",a); c = s.indexOf("\"",b+5); d = s.substr(b+5,c-b-5);
if((a!=-1)&&(b!=-1)&&(c!=-1)&&(d!="")) {img[i] = d;} else {img[i]="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ03ojfVK2KgRBcg4NPiC4ODyOT0FcfIzn5E9NOeKq4DeOVQ9PN9gVrI1CWAjxBq4qnOBFZmqemu6ZBu1mkTmP9E0k5fLc_7mPAudxnrZKqjFvVunPeB6HFVw_tjccLIIItP6zpj4jG5I/s400/noimage.png";}
if (pcm==0) {var comment = " Chưa có nhận xét";}
//else if (pcm==1) {var comment = " "+ pcm + " Comment ";}
else {var comment = '<font style="color:#f80;">'+ pcm +'</font> Nhận xét';}
var td1 = '<div class="home-navi"><h2><a href="'+posturl+'">'+posttitle+'</a></h2><p style="font-size:85%;color:#888;"><span>by</span> '+authpost+' | <span>on</span> '+postDay+' | '+comment+'</p><p style="padding:10px 0px;"><img style="width:120px;padding:2px;border:1px solid #ccc;margin-right:5px;margin-bottom:5px;float:left;" src="'+img[i]+'" />'+stripHtmlTags(postcontent,90)+' ...</p> <div class="cat_tags clear"><span class="category">Nhãn : '+plabel+'</span><span class="continue"><a href="'+posturl+'">Xem thêm...</a></span><div class="clear"></div></div><div class="cat_tags_close"></div></div>';
var td2 = '<div style="border-bottom:1px dashed #f80;"><table><tr><td valign="top" class="listinfo">'+comment+'<br/><span>by</span> '+authpost+'<br/><span>on</span> '+postDay+'</td><td valign="top" class="listtitle"><a href="'+posturl+'"><b>'+posttitle+'</b></a><br/><span><i>Tags</i> : '+plabel+'</span></td></tr></table></div>';
if (view=="full") {document.write(td1);}
else {document.write(td2);}
}
}
// get total number of posts
function numberOfPosts(json) {
document.write('<script style=\"text/javascript\">var totalPosts= '+json.feed.openSearch$totalResults.$t+' ;<\/script>');
}
document.write('<script src=\"http://www.fandung.com/feeds/posts/default'+textlabel+'?alt=json-in-script&callback=numberOfPosts\"><\/script>');
//]]>
</script>
<script type='text/javascript'>
if (str.indexOf("archive.html")!=-1) {
document.write("<div style=\"text-align:center;padding:10px;background-color:#fae9c8;border:1px #fcb353 solid;\"><img src=\"http://data.fandung.com/img/404page-bg.png\" \/><br><br>Trang mà bạn đang tìm không tồn tại trên blog.<br> Click <a href=\"http://www.fandung.com\">vào đây<\/a> để trở về trang chủ.<\/div>"); }
else {
var rcpage = new Array();
if (view=="full") {
var numposts = 5; // số bài viết hiển thị trên 1 trang dạng thumbnail
}
else {var numposts = 20;} // số bài viết hiển thị trên 1 trang dạng list
var numpage=totalPosts/numposts;
var lastnum = totalPosts%numposts;
if (lastnum==0) {numpage=numpage+1;}
for (var m=1;m<numpage;m++) {
var start=numposts*(m-1)+1;
rcpage[m] ="<script src=\"http://www.fandung.com/feeds/posts/default"+textlabel+"?start-index="+start+"&max-results="+numposts+"&orderby=published&alt=json-in-script&callback=showrecentposts\"><\/script>";
}
if ((page>numpage)&&(page<numpage+1)&&(lastnum>0)) {
var numposts=lastnum;
start = totalPosts-lastnum+1;
document.write("<script src=\"http://www.fandung.com/feeds/posts/default"+textlabel+"?start-index="+start+"&max-results="+numposts+"&orderby=published&alt=json-in-script&callback=showrecentposts\"><\/script>");
}
else if ((page>numpage)||((page>numpage-1)&&(lastnum==0))){document.write("<div style=\"text-align:center;padding:20px 10px;background-color:#fae9c8;border:1px #fcb353 solid;\"><img src=\"http://data.fandung.com/img/404page-bg.png\" \/><br><br>Trang mà bạn đang tìm không tồn tại trên blog.<br>Click <a href=\"http://www.fandung.com\">vào đây<\/a> để trở về trang chủ.<\/div>"); }
else {document.write(rcpage[page]); }
// Create page navigation
if (lastnum==0) {var pagelist=totalPosts/numposts;} else {var pagelist=numpage+1;}
var pagelist1 = parseInt(pagelist);
var npage = parseFloat(page);
if (page<=parseInt(pagelist)) {
if ((pagelist>=2)&&(pagelist1<6)) {
document.write("<div id=\"page-rc-tooltip\">Page ("+page+"/"+parseInt(pagelist)+") : ");
for (var n=1;n<pagelist1+1;n++) {
if (n==npage) {var navpage=" <span class=\"currentpage\" >"+n+"<\/span>";} else {var navpage=" <a href=\"http://www.fandung.com/"+textpage+"?v="+view+"&page="+n+"\">"+n+"<\/a>";}
document.write(navpage);
}
document.write("<\/div>");
}
if ((pagelist>=6)&&(page<4)) {
document.write("<div id=\"page-rc-tooltip\">Page ("+page+"/"+parseInt(pagelist)+") : ");
for (var n=1;n<6;n++) {
if (n==npage) {var navpage=" <span class=\"currentpage\" >"+n+"<\/span>";} else {var navpage=" <a href=\"http://www.fandung.com/"+textpage+"?v="+view+"&page="+n+"\">"+n+"<\/a>";}
document.write(navpage);
}
if (parseInt(pagelist)>5) { document.write(" ... <a href=\"http://www.fandung.com/"+textpage+"?v="+view+"&page="+parseInt(pagelist)+"\">Last<\/a><\/div>"); } else {document.write("<\/div>");}
}
else if ((pagelist>=6)&&(page>3)&&(page<parseInt(pagelist)-2)) {
var first = page-2;
var last = first+5;
document.write("<div id=\"page-rc-tooltip\">Page ("+page+"/"+parseInt(pagelist)+") : <a href=\"http://www.fandung.com/"+textpage+"?v="+view+"&page=1\">First<\/a> ...");
for (var n=first;n<last;n++) {
if (n==npage) {var navpage=" <span class=\"currentpage\" >"+n+"<\/span>";} else {var navpage=" <a href=\"http://www.fandung.com/"+textpage+"?v="+view+"&page="+n+"\">"+n+"<\/a>";}
document.write(navpage);
}
document.write(" ... <a href=\"http://www.fandung.com/"+textpage+"?v="+view+"&page="+parseInt(pagelist)+"\">Last<\/a><\/div>");
}
else if ((pagelist>=6)&&(page>3)&&(page>parseInt(pagelist)-3)) {
var first = parseInt(pagelist)-4;
var last = parseInt(pagelist)+1;
document.write("<div id=\"page-rc-tooltip\">Page ("+page+"/"+parseInt(pagelist)+") : <a href=\"http://www.fandung.com/"+textpage+"?v="+view+"&page=1\">First<\/a> ...");
for (var n=first;n<last;n++) {
if (n==npage) {var navpage=" <span class=\"currentpage\" >"+n+"<\/span>";} else {var navpage=" <a href=\"http://www.fandung.com/"+textpage+"?v="+view+"&page="+n+"\">"+n+"<\/a>";}
document.write(navpage);
}
document.write("<\/div>");
}
}
} //kết thúc lệnh không cho phép hiện thị tiện ích trên trang archive
</script>
- Thay www.fandung.com thành tên blog của bạn.
- Chú ý : code ở bước 2 là code mình chia sẻ, vì thế muốn cho tiện ích phù hợp với blog của các bạn thì các bạn nên tùy chỉnh lại code CSS. Thứ 2 nữa là giao diện hiển thị, các bạn có thể tùy chỉnh giao diện hiển thị bằng cách thay đổi code của biến td1 và td2 (với td1 là giao diện của dạng thumbnail, td2 là giao diện của dạng list.)
- Đến bước thứ 3: ta có đoạn code như thế này :
...
...
...
</b:if>
...
...
...
</b:if>
Như vậy mình đã giới thiệu xong. Chúc các bạn thành công.
Ôi dài quá Dũng ơi, chắc ít người xài cái này vì nặng. Nói chung script công phu. Thank your 4 your efforts.
Mình sẽ viết 1 cái script có chức năng giống như zầy nhưng sẽ gọn hơn chút. Sắp công bố. Pls wait.
thực ra thủ thuật chỉ nặng ở phần lấy feed thôi, còn các phần khác chỉ đơn thuần là write HTML mà thôi.
Phân trang này nặng quá bác ạ, lấy toàn bộ feed. Báo lỗi thì em thấy k cần thiết vì mấy ai nhập page trên thanh địa chỉ, view full hay list cũng có thể làm được từ CSS. Feed blog bác phải hơn 1MB rồi ấy nhỉ?
ko cần b:if Ngân ah, mình set ngay trong code Javascript luôn.
Ngân thấy đoạn này ko :
if (str.indexOf("archive.html")!=-1)
thay bằng :
if ((str.indexOf("/search?")!=-1)||(str.indexOf("archive.html")!=-1))
Như vậy sẽ loại bỏ các trang archive và các trang có cấu trúc link là /search?
ủa, chứ Ngân muốn nó hiện cái gì ở trang này???
Là cho blog nó trắng luôn đó hả, phần main ko có gì luôn hả?
add nick Le Thuan rồi mà chờ hoài không thấy pm nên tạm gửi thắc mắc ở đây vậy! Không hiểu sao mình tạo menu kiểu thethao.zing.vn xong rồi mà khi click vào mấy cái menu chính lẫn phụ thì thấy chẳng chuyển hướng gì cả, cứ đứng ở trang chủ hoài! còn cách đăng bài lên menu phụ nữa chứ! anh Dũng đâu rồi chỉ giùm với!hichic
help me!
please!
@Đức Hoài:Bạn thay các dấu # trong phần a href="#" thành link phù hợp của Blog bạn nhé ;)
Sao bên mình css của page navi nó không được đưa lên nhỉ? Nó chỉ load ra navi thôi chứ không có css =.=
À thôi mình làm được rồi! Cảm ơn nhiều ^^
@Ngân: à, cái đó lệnh đó là mình dùng để ko cho xuất feed trên trang archive, còn cái lệnh b:if index mình quên mất. :D, tại mình dùng lệnh b:if item nên phải dùng cách đó.
www.honglinhsoft.com
Cảm ơn các bài viết hữu ích của Fandung.com, mình đã áp dụng rất nhiều thủ thuật của Fandung vào blog của mình. Thế Giới Sim 9x - www.sim9x.co.cc
có cách nào gọn nhẹ hơn tí không, mỗi thứ mỗi ít làm web chạy nặng lắm
Khi mình post bài quá dài thì ngoài trang chủ chỉ hiện ra bài mới post. Những bài cũ bị ẩn hết đi :(
Hay lắm! THanks fandung :D
Mình đã thử nhưng khi click vào bài viết thì nội dung không hiện ra được.
E cũng giống SingleBoy nó hiển thị được các bài viết nhưng khi ấn vào xem bài viết thì nó lại ko xem được mà nó load luôn nguyên trang :(
Đúng như bạn Signle boy nói. Là em cũng tích hợp thành công hiển thị list ở trag chủ và nhãn. Nhưng khi mở trang chi tiết thì trắng box (không show data) hix.. Anh Phan Dũng có biết tai sao ko. Chỉnh chổ nào>> HD cho em với hhhuhuu
Cái cho buoc 1 (the head), thay doan !="item" bằng =="index" la show bai viet duoc...cai nay load nhanh ma..
Sao hiển thi Navagation trên đầu khi truy cập IE (IE phien ban 7 cung bi)...Co dai ca nao biet khac phuc. Chi dùm voi...Lam vay chứ de nhu vay ko freindly cho lắm...Cám ơn nhiều ạ
Thanks FD đã chia sẽ thủ thuật này, mình đã áp dụng và chạy tốt trên trang của mình:
www.noitoambatdau.com
@Singleboy và HiTravel: trong quá trình làm thì mình cũng bị trường hợp tương tự. Sau khi sửa:
cond='data:blog.url != "item" lại thành cond='data:blog.pageType != "item" thì OK.
Bạn thử xem
Muốn hiện 1 label thôi thì làm sao a
Anh đâu rồi
mấy bữa nay vô ko đc blogger.com, bực cả mình, vô status.blogger.com nó có thông báo tình trạng ko vô đc. Sao 1 số người vẫn vô đc vậy nhỉ ???
Trả lời câu hỏi cho em sớm nhé a
Phan Dũng giống tình trạng của mình rồi .Mấy hôm nay ở công ty không đăng được bài cũng bực . Ở công ty mình không tài nào vào được . Nhưng ở nhà thì vô tư .
Kết luận là do nhà mạng nó bị lỗi hoặc nó chặn .
Your idea coincides with mine.and I think it's better.
______________________________________________________________
Rc Hobby Stores|Rc Helicopter|Mini Rc Helicopter
Nếu làm như code củ FD thì thỉ chỉ hiện cái thanh: ĐAng thử nghiệm và nội dung thì không thấy đâu. Còn nếu sửa câu lệnh #blog1{display:none thành #blog1{display:yes thì nó hiện nội dung lên nhưng vẫn không thấy hiện mấy cái nút phân trang 1, 2, 3, 4...
Thanks
Cảm ơn bạn Phan Dũng đã viết nên đoạn coge này khá kỳ công. Đây đúng là widget mình đang cần rồi.
Mình có một số vấn đề này mong bạn và các pro giúp đỡ nhé.
1. Mình chỉ muốn nó phân trang cho duy nhất một label cụ thể để nhúng vào từng trang riêng thì phải sửa thế nào?
2. Mình muốn xóa bỏ dòng: "by ... | on ... | ... Nhận xét".
3. Vì chỉ hiển thị bài viết của một label nên mình muốn xóa luôn dòng: "Nhãn: ...".
Trình độ của mình còn gà lắm nên các bạn thông cảm.
Cảm ơn các bạn nha!
» Nội dung phải liên quan tới chủ đề bài viết.
» Có thể sử dụng thẻ trích dẫn [quote], cấu trúc thẻ như bên dưới :
[quote=AUTHOR name=fdquote]NỘI DUNG[/quote]
» Có thể sử dụng các thẻ <b>,<i>,<a>.
BlOg FD chính thức đóng comment của khách ẩn danh.
BlOg FD.