Hôm nay đang ngồi chỉnh sửa lại template, đột nhiên mình nhớ đến thủ thuật tạo số đếm cho các comment của blogspot. Trước kia, khi thủ thuật này xuất hiện, nó khá đơn giản, chỉ là 1 lệnh đếm. Vì thế mà nó có lỗi là khi sang trang khác (nếu số comment nhiều hơn 200) thì nó không đếm tiếp, mà bắt đầu lại bằng 0. Lúc đó cũng có người hỏi mình vấn đề này, và khi đó còn gà nên chưa khắc phục được. Hôm nay có 1 chút kiến thức sơ sơ nên mình sẽ khắc phục nó.
Như thường lệ khi làm các bài viết về comment của blogspot, mình luôn vào blog của bạn Ngân (blogtruyen.com) để xem, do blog của bạn Ngân theo hiện tại mình biết thì là blogspot ở Việt Nam có số lượng đọc giả nhiều nhất và comment nhiệt tình nhất. Chính vì thế mà việc tìm bài viết có số comment trên 200 là điều khá dễ dàng. Và khá bất ngờ là bạn Ngân đã khắc phục thủ thuật này rồi. Và mình có viewsource của blogtruyen để xem cách làm như thế nào. Rất may là khác với cách mình sắp giới thiệu cho mọi người, vì thế mà mình có thể an tâm giữ "bản quyền" code cho bạn Ngân.
Mình cũng ít lang thang các blog, nên không biết có ai post bài này chưa, nếu có thì cũng xem như là lưu trữ trên BlOg FD thôi. Còn chưa thì coi như có thêm 1 bài nữa cho các bạn tham khảo. Còn việc update và sử dụng thủ thuật này mình nghĩ cũng sẽ có ít bạn dùng, do số blog có comment trên 200cm/bài viết cũng không nhiều (ngay cả blog của mình, hình như cũng chỉ có 2 bài). Nhưng mà thôi, ta cứ update lên, biết đâu nhỡ có bài hơn 200 comment thì sao :D.
Để khắc phục, các bạn nên xem lại bài viết này : Tạo số đếm cho các comment của blogspot
Xem demo trực tiếp : DEMO
Hình ảnh minh họa:
A. Để update thủ thuật, đầu tiên các bạn chèn đoạn code javascript bên dưới vào trước thẻ đóng </head> trong code template.
<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>
- Thực ra đoạn code này có thể chèn trong vị trí ở comment, nhưng mình đưa nó vô phần head cũng có lý do. Code này là để lấy giá trị của 1 biến nào đó trong link liên kết, do có thể dùng chung nên mình để nó ở head, sau này có get giá trị nào đó từ link không cần phải chèn lại.//<![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>
- Ví dụ link :
http://www.fandung.com/?v=full&page=2
ở đây ta có 2 biến là v có giá trị full và page có giá trị là 2
B. Sau khi thực hiện xong bước A, ta save template lại và chọn "mở rộng mẫu tiện ích" để update thủ thuật.
- Trong bài trước (xem ở đây) ta sẽ update code ở bước 7.
- Ở bước 7 có 2 đoạn code javascript, và ta sẽ thay đổi đoạn code đầu tiên.
Code cũ :
<script type='text/javascript'>
var CommentsCounter=0;
</script>
var CommentsCounter=0;
</script>
Thay mớ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>
//<![CDATA[
var urlcm = location.href;
var pagecm = urlcm.GetValue("commentPage");
if (pagecm==undefined) { pagecm = 1; }
var CommentsCounter =(pagecm - 1)*200; ;
//]]>
</script>
C. Save template lại.
Chúc các bạn thành công.
0 nhận xét:
Đăng nhận xét