Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down  Thông điệp [Trang 1 trong tổng số 1 trang]


Cấp bậc !
•Bang Chủ•
avatar
•Bang Chủ•

[KiNg]_[PiN]-BB

Tạo số đếm nhận xét
từ lâu đã trở thành một thủ thuật khá phổ biến đối với blogspot. Thủ
thuật đơn giản này chỉ có tác dụng đối với bài viết có số nhận xét không
quá 200. Tức là do mặc định của Blogspot, khi số nhận xét quá 200 thì
sẽ tự động phân trang (mỗi trang gồm 200 nhận xét), script đếm nhận xét
cơ bản chỉ dành cho trang đầu tiên, sang trang thứ 2 (nhận xét số 201
đến số 400) sẽ bắt đầu đếm lại từ số 1, tương tự đến trang thứ 3, 4, 5…
cũng lặp lại như vậy.



Thật may là có nhiều cách khắc phục vấn đề này. Mình sẽ giới thiệu một vài cách để bạn có thể tham khảo:



Trước tiên mình giới thiệu lại 2 script cũ đã áp dụng cho thủ thuật tạo số đếm nhận xét:



(1)




<script type='text/javascript'>var CommentsCounter=0;</script>
Script
này đặt trước dòng <b:loop values='data:post.comments'
var='comment'> trong Template ở chế độ chỉnh sửa mở rộng mẫu tiện
ích.



(2)


<span class='comment-number'>

<a expr:href='"#comment-" + data:comment.id' title='Comment Link'>

<script type='text/javascript'>

CommentsCounter=CommentsCounter+1;

document.write(CommentsCounter)

</script>

</a>

</span>
Đoạn code trên đặt tại vị trí cần hiển thị số đếm, có thể đặt sau dòng <data:commentPostedByMsg/>.



Sau đây là một số phương pháp tính số đếm nhận xét cho bài viết có số nhận xét trên 200.



1. Phương pháp từ trang Blogtruyen.com:



Thay script (1) bằng script bên dưới:


<script type='text/javascript'>

//<![CDATA[

var cmPage = (location.href.match("commentPage=")) ? location.href.split("commentPage=")[1].split("#")[0] : 1;

var cm_show_num = (cmPage - 1)*200;

function showcomnumber(){ cm_show_num++; document.write(cm_show_num); }

//]]>

</script>
Thay đoạn code (2) bằng đoạn code bên dưới:


<span class='comment-number'>

<a expr:href='"#comment-" + data:comment.id' title='Comment Link'>

<script type='text/javascript'>showcomnumber()</script>

</a>

</span>
2. Phương pháp của Fandung.com:



Đặt đoạn code sau vào trước thẻ </head>:


<script type='text/javascript'>

//<![CDATA[

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;

}

//]]>

</script>
Thay script (1) bằng script bên dưới:


<script type='text/javascript'>

//<![CDATA[

var urlcm = location.href;

var pagecm = urlcm.GetValue("commentPage");

if (pagecm==undefined) { pagecm = 1; }

var CommentsCounter =(pagecm - 1)*200; ;

//]]>

</script>
3. Phương pháp của các blogspot tiếng Anh trên thế giới:



Thay script (1) bằng script bên dưới:


<script type='text/javascript'>

//<![CDATA[

var regexpatt = new RegExp('commentPage=([0-9]*)');

var results = regexpatt.exec( window.location.href );

if(results == null)

{

var CommentsCounter = 0;

}

else

{

var CommentsCounter = (results[1] - 1) * 200;

}

//]]>

</script>
4. Phương pháp của Thủ thuật Blogger:



Phương pháp 1: Thay script (1) bằng script bên dưới:


<script type='text/javascript'>

//<![CDATA[

urlPagi = unescape(location.href);

isPage = urlPagi.indexOf('?commentPage');

if(isPage > -1) {

searchP = isPage + 13;

numPag = urlPagi.substr(searchP);

} else {

CommentsCounter = 0;

}

//]]>

</script>
Phương pháp 2: Thay script (1) bằng đoạn code bên dưới:


<b:if cond='data:post.olderLinkUrl == data:post.url + &quot;?commentPage=1&quot;'>

<script type='text/javascript'>var CommentsCounter=200;</script>

<b:else/>


<script type='text/javascript'>var CommentsCounter=0;</script>

</b:if>

<b:if cond='data:post.olderLinkUrl == data:post.url + &quot;?commentPage=2&quot;'>

<script type='text/javascript'>var CommentsCounter=400;</script>

</b:if>

<b:if cond='data:post.olderLinkUrl == data:post.url + &quot;?commentPage=3&quot;'>

<script type='text/javascript'>var CommentsCounter=600;</script>

</b:if>

<b:if cond='data:post.olderLinkUrl == data:post.url + &quot;?commentPage=4&quot;'>

<script type='text/javascript'>var CommentsCounter=800;</script>

</b:if>

<b:if cond='data:post.olderLinkUrl == data:post.url + &quot;?commentPage=5&quot;'>

<script type='text/javascript'>var CommentsCounter=1000;</script>

</b:if>

<b:if cond='data:post.olderLinkUrl == data:post.url + &quot;?commentPage=6&quot;'>

<script type='text/javascript'>var CommentsCounter=1200;</script>

</b:if>

<b:if cond='data:post.olderLinkUrl == data:post.url + &quot;?commentPage=7&quot;'>

<script type='text/javascript'>var CommentsCounter=1400;</script>

</b:if>
Ở phương pháp 2 trên đây, mình dùng lệnh điều
kiện trong cấu trúc XML của Template với ý nghĩa là: nếu trang nhận xét
vượt 200 bắt đầu phân trang (commentPage=1) thì sẽ đếm số nhận xét từ số
200, không thì sẽ đếm số nhận xét từ số 0 (khi số nhận xét dưới 200),
nếu trang nhận xét phân trang thứ 2 (commentPage=2) tức khi số nhận xét
vượt 400 thì bắt đầu đếm số nhận xét từ số 400… cứ như thế có thể gán
cho các trường hợp tiếp theo khi số nhận xét vượt các ngưỡng 600 – 800 –
1000 – 1200 – 1400…



Bạn có thể tùy ý áp dụng cách nào nêu trên cũng được vì đều cho kết quả
như nhau. Riêng mình thì thích áp dụng cách cuối cùng vì nó liên quan
đến cấu trúc XML, cho mình thêm một vấn đề để nghiên cứu và chia sẻ về
XML trong Template của Blogspot.

Xem lý lịch thành viên http://a1k44.thptbatbat.com
Loading

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Permissions in this forum:
Bạn không có quyền trả lời bài viết

 
  • Free forum | © PunBB | Free forum support | Liên hệ | Report an abuse | Have a free blog with Sosblogs
© 2012 A1K44BB
FM PunBB - Edit by HOàng Hải