Thứ năm, ngày 15 tháng ba năm 2012

Kích hoạt Comment phân cấp cho blogspot

Hôm nay, Blogger đã chính thức cho ra mắt hệ thống comment phân cấp đúng với sự kỳ vọng và chờ đợi của anh em blogger.

Comment phân cấp của Blogspot gần như là mang đầy đủ những tính năng của Wordpress như: Trả lời, thu gọn, comment của tác giả được làm nổi bật. Tuy nhiên, họ chỉ cho phép Level 2 comment điều này có nghĩa là bạn không thể trả lời một comment trả lời.

KÍCH HOẠT COMMENT PHÂN CẤP
1. Thiết kế > Cài đặt > Bài đăng và nhận xét
2. Ở phần vị trí nhận xét bạn chọn "Được nhúng" như hình.

3. Cài đặt > Khác
4. Tại phần nguồn cấp dữ liệu trang web bạn chọn "Đầy đủ"

Các bạn hãy để lại ý kiến của mình về phần comment phân cấp của blogger nhé.

theo vi-sharing – nguồn Buzz Google.

Báo chí nước ngoài sốc vì Ipad 3 ở Việt Nam

Việc chiếc iPad thế hệ mới bất ngờ xuất hiện tại Việt Nam trước giờ lên kệ không chỉ khiến giới công nghệ trong nước cảm thấy bất ngờ mà thậm chí các trang công nghệ nổi tiếng và uy tín thế giới cũng phải “rúng động” trước thông tin này.

iPad-2012-VN-14_a070b

Phải đến ngày 16/3, iPad thế hệ mới mới được bắt đầu bán ra trên thị trường một vài nước, còn với những người dùng đặt trước hàng trực tuyến thì phải chờ đến ít nhất ngày 19/3 mới được nhận hàng.
Tuy nhiên, chiếc iPad thế hệ mới đã bất ngờ xuất hiện tại Việt Nam vào ngày hôm qua khiến cho giới công nghệ trong và ngoài nước phải cảm thấy bất ngờ.

iPad mới xuất hiện tại Việt Nam khiến giới công nghệ trong và ngoài nước bất ngờ

Hàng loạt các trang web công nghệ lớn và nổi tiếng trên thế giới đã ngây lập tức đăng tải lại thông tin này và sử dụng lại đoạn video trải nghiệm iPad  thế hệ mới tại Việt Nam, bất chấp đoạn video được thực hiện bằng tiếng Việt.
Trang công nghệ Mashable khẳng định đây là chiếc iPad mới đầu tiên được xuất hiện trước  thời hạn mà Apple chính thức bày bán. Mashable cũng cho biết dựa vào các thông tin từ Việt Nam, nhiều chi tiết kỹ thuật về iPad mới đã được hé lộ thông qua phần so sánh giữa iPad mới và “người tiền nhiệm” iPad 2.
Thông tin trên cũng được xuất hiện trên các trang web công nghệ uy tín khác như Cnet, Engadget, MacRumors, SlashGear, Wired… như một sự kiện đặc biệt, khi mà iPad mới đang là sản phẩm công nghệ “hot” và đang được quan tâm nhất hiện nay.

Thông tin về iPad mới tại Việt Nam được đăng tải trên trang web công nghệ nổi tiếng Engadget

Mặc dù video trải nghiệm iPad mới được đăng tải lên Youtube hoàn toàn bằng tiếng Việt, nhưng đoạn video cũng đã nhanh chóng thu hút hàng trăm ngàn lượt xem và bàn luận trên khắp thế giới, chủ yếu bằng tiếng Anh.
Bên cạnh sự ngạc nhiên và thán phục, nhiều sự tranh cãi cũng đã nổ ra xung quanh nguồn gốc và độ xác thực về chiếc iPad mới này. Nhiều người cho rằng thực chất đây chỉ là chiếc iPad 2 “mạo danh” iPad thế hệ mới.
Để minh chứng cho điều này, độc giả Scrapple của trang mạng MacRumors đã đưa ra bằng chứng, cho thấy hộp đựng của iPad mới không có nhiều khác biệt so với iPad 2, trong khi đó hộp đựng của iPad 2 lại được làm mới hoàn toàn so với iPad thế hệ đầu tiên.

Hộp đựng iPad mới và iPad 2 có nhiều nét tương đồng

Tuy nhiên, dựa vào số serie của máy hiển thị trong đoạn clip trải nghiệm được đăng tải, sau khi kiểm tra thông tin từ trang chủ của Apple cho thấy đây chính xác là chiếc iPad thế hệ thứ 3 hỗ trợ cả Wifi lẫn 4G.

Thông tin về iPad mới được kiểm tra trên trang web của Apple

Đáng chú ý, đây không phải là lần đầu tiên một sản phẩm lộ diện tại Việt Nam trước giờ lên kệ.
Vào tháng 4 năm ngoái, một chiếc iPhone màu trắng đặc biệt, có ổ cứng lên đến 64GB bất ngờ xuất hiện tại Việt Nam, mà nguồn tin khẳng định đây chính là iPhone 5 (vào thời điểm đó, tên gọi của iPhone 4S vẫn được tin là iPhone 5), với thiết kế và kiểu dáng không  có nhiều khác biệt so với iPhone 4 (phiên bản iPhone mới nhất vào thời điểm bấy giờ).  
Và quả nhiên, đến tháng 10, Apple đã trình làng iPhone 4S với kiểu dáng tương tự như iPhone 4, cùng với phiên bản ổ cứng 64GB.

Chiếc iPhone “lạ” từng làm xôn xao giới công nghệ Việt Nam vào năm ngoái

Chưa hết, vào tháng 7 năm ngoái, 2 mẫu BlackBerry “độc” cũng đã bất ngờ xuất hiện tại Việt Nam trước cả khi RIM công bố về sự hiện diện của 2 mẫu sản phẩm này, và phải đến tận tháng 8, RIM mới chính thức trình làng 3 mẫu điện thoại mới, 2 trong số đó chính là các sản phẩm đã có mặt tại Việt Nam.

BlackBerry 9810 xuất hiện tại Việt Nam trước cả khi RIM công bố

Với những lần bất ngờ xuất hiện của sản phẩm “hot” như trước đây, lần này việc iPad thế hệ mới chỉ xuất hiện tại Việt Nam ít ngày trước khi được lên kệ là điều hoàn toàn có thể, và giới công nghệ Việt Nam một lần nữa có quyền tự hào về điều này.

the dan tri

Google thay thế Androi Market bằng Google Play

 
Hãng tìm kiếm Google vừa làm người dùng trên khắp thế giới vô cùng ngạc nhiên khi họ thông báo ra mắt một trung tâm giải trí cho mọi thiết bị mang tên
Google Play, nơi kết hợp các dịch vụ âm nhạc, phim ảnh, sách điện tử và các ứng dụng trên Android Market thành một dịch vụ duy nhất.

google-play-devices-630
Theo Google, dịch vụ mới này sẽ giúp bạn đồng bộ hóa giữa các thiết bị của bạn từ những chiếc điện thoại thông minh, máy tính bảng cho đến máy tính mà bạn đang dùng.

Dựa trên nền tảng điện toán đám mây, Google Play sẽ giúp bạn lưu trữ và chia sẻ dễ dàng những bài hát, bộ phim hay hoặc nhanh chóng truy cập vào các ứng dụng dành cho thiết bị Android mọi lúc mọi nơi và bạn không bao giờ phải lo lắng về việc mất hoặc di chuyển chúng một lần nữa.

Với Google Play. bạn có thể
- Lưu trữ đến 20.000 bài hát miễn phí và có thể mua hàng triệu ca khúc mới.
- Download hơn 450.000 ứng dụng và trò chơi cho Android.
- Khám phá kho sách điện tử lớn nhất thế giới.
- Thuê hàng trăm bộ phim yêu thích, bao gồm cả những phim HD mới nhất.

Bắt đầu từ ngay hôm nay, Android Market, Google Music và Google eBookstore chính thức trở thành một phần của Google Play tại địa chỉ trên phiên bản web là https://play.google.com. Còn ứng dụng Android Market trên các thiết bị chạy hệ điều hành Android sẽ được nâng cấp lên Google Play Store trong những ngày tới. Các ứng dụng ứng dụng âm nhạc, phim ảnh, sách được nâng cấp thành các phần tương ứng là Google Play Movies, Google Play Musics và Google Play Books tùy theo từng quốc gia mà các ứng dụng này có mặt.

Ở Mỹ, Google Play có đầy đủ các tinh năng thông qua các ứng dụng về âm nhạc, phim, sách và ứng dụng Android. Ở Canada và Anh chỉ có phim ảnh, sách và ứng dụng Android. Ở Australia có sách và ứng dụng Android và ở Nhật Bản chỉ có phim và ứng dụng. Còn ở các quốc gia còn lại, Google Play sẽ thay thế Android Market.

Để tìm hiểu thêm các thông tin về dịch vụ mới này, bạn có thể truy cập vào địa chỉplay.google.com/about hoặc theo dõi trên Google+.

Hiện tại, ở Việt Nam đã có thể sử dụng Google Play và khi bạn truy cập vào địa chỉmarket.android.com sẽ được chuyển sang địa chỉ mới tại play.google.com.

theo Google blog – nguồn: toiyeugoogle

Thứ sáu, ngày 09 tháng mười hai năm 2011

Thủ thuật vào trang blogspot.com với mạng VNPT

Hiện tại các bạn sử dụng mạng VNPT không thể truy cập được vào trang blogspot.com được. Các xử lý đơn giản như sau.

Vào phần cấu hình mạng đổi DNS thành
4.2.2.3
4.2.2.4


Nhân đây mình dành vài dòng đểgiới thiệu qua về blogspot - một trong những dịch vụ cho phép tạo blog miễn phí được cung cấp bởi Google:

Chúng tôi đã tạo Blogger nhằm cung cấp cho bạn một cách đơn giản để chia sẻ suy nghĩ của mình về các sự kiện hiện thời, những gì đang diễn ra trong cuộc sống của bạn, hoặc bất kỳ điều gì khác mà bạn muốn thảo luận — với mọi người. Chúng tôi đã phát triển rất nhiều tính năng để giúp cho việc viết blog càng đơn giản và hiệu quả càng tốt.

Trình thiết kế mẫu cho blogger cung cấp nhiều mẫu, giúp bạn dễ dàng tạo nên một blog có giao diện chuyên nghiệp. Ngoài ra, Trình thiết kế Mẫu cho phép bạn tùy chỉnh mẫu của mình. Chọn từ hàng trăm hình nền, hàng chục bố cục linh hoạt và sắp xếp lại các phần tử trang thông qua giao diện kéo và thả. Thêm các tiện ích như trình chiếu, thăm dò ý kiến người dùng hoặc thậm chí các quảng cáo AdSense. Cũng thật dễ dàng thay đổi màu sắc và phông chữ. Và nếu mức độ kiểm soát như vậy vẫn chưa đủ, bạn thậm chí còn có thể chỉnh sửa CSS và HTML của blog của mình.

http://www.blogger.com/features

Nguồn: Cách vào trang blogspot.com khi sử dụng mạng VNPT

Thứ năm, ngày 27 tháng mười năm 2011

Các giải quyết khi bị Google penalty weblog

Rất nhiều lý do website của bạn có thể bị Google penalty ngay cả khi bạn cảm thấy mình phát triển website hoàn toàn bình thường. Đa số nguyên nhân là do các webmaster quá “ham muốn” thứ hạng, đốt cháy giai đoạn để lên được top càng sớm càng tốt.

search

Cũng có trường hợp các công ty làm dịch vụ SEO vì muốn có được lợi nhuận từ khách hàng nên họ đã ký những hợp đồng SEO thực hiện trong thời gian ngắn với những từ khóa độ khó trung bình trở lên. Và để lên được top nhanh chóng buộc họ phải sử dụng các thủ thuật đen để đẩy rank website lên cao. Tuy nhiên thay vì mọi việc diễn ra tốt đẹp nếu họ tuân thủ các quy tắc của Google, thì ngược lại họ làm cho sự việc ngày càng rắc rối hơn, không những cho chính mình mà còn cho cả các khách hàng ham muốn thực hiện nâng hạng trên Google trong thời gian ngắn.

Dấu hiệu nào để biết website tôi đang bị penalty ?

- Pagerank của website hầu như biến mất. Không phụ thuộc vào trang của bạn có PR bao nhiêu, nhưng nếu bị penalty một vài trường hợp sẽ mất PR ngay cả trong thời gian Google chưa cập nhật PR.

- Một số từ khóa của website rớt hạng, có khi rơi tự do làm cho lượng truy cập từ search engine giảm đi đáng kể.

- Trường hợp nặng hơn là website bị xóa luôn khỏi dữ liệu tìm kiếm của Google. Có một số site bị ban một thời gian, nhưng có một số site không bao giờ còn được xuất hiện trên Google nữa.

Tại sao Google penalty trang web của tôi ?

Có cả tá nguyên do để Google penalty website của bạn. Các nguyên nhân đó được đặt trong điều khoản của Google. Nếu bạn không vi phạm các điều khoản của Google thì khả năng bị penalty rất thấp. Bạn có thể xem các điều khoản tại đây : http://www.google.com/accounts/TOS .

Và bạn cũng có thể tham khảo một số lời khuyên của Google tại đây :http://www.google.com/support/webmas...y?answer=35769 . Qua đây chúng tôi cũng xin liệt kê một số lỗi mà các bạn hay mắc phải khi thực hiện tối ưu hóa website.

Một – Sử dụng text ẩn và link ẩn. Một số webmaster sử dụng text và link cùng màu hoặc dùng Css để dấu đi một số từ khóa trên website. Một số dùng file hình cùng màu với text nhưng do Google thường đọc tên file để đoán màu, nên một số bạn có thể lợi dụng hạn chế này của Google để chèn từ khóa lên web.

Hai – Duplicate content . Lỗi này rất thường gặp với những webmaster không có thời gian phát triển website. Thường thì họ copy các bài từ nguồn khác về web của mình. Với trường hợp này Google cũng phạt tuy nhiên mức độ nhẹ.

Ba – Link farm : Đây là cách xây link không bình thường. Ví dụ như bạn trao đổi với website hoàn toàn không liên quan, trao đổi với rất rất nhiều website. Trao đổi liên kết với website bị penalty hoặc Google cảnh báo có thể gây hại cho máy tính cũng rất nguy hiểm.

Bốn – Mật độ từ khóa trong website của bạn quá nhiều. Điều này thật sự không những làm nản lòng Google mà còn làm nản lòng cả người xem.

Năm – Sử dụng các trang Doorway – Bạn có thể tìm hiểu kỹ hơn về Doorway tại đây : http://en.wikipedia.org/wiki/Doorway_page.
Ngoài ra còn rất nhiều các thủ thuật khác nữa để đánh lừa search engine. Tuy nhiên càng ngày Google càng thông minh do đó hầu như đa số các kỹ thuật đều bị Google bắt và phạt. Mặc dù vậy cũng có những cái Google chưa bắt được vì tính nhạy cảm của nó. Nhưng Google có phát triển một report để mọi người có thể báo cáo những site sử dụng thủ thuật đen tại :https://www.google.com/webmasters/to...amreport?hl=vi .

Cuối cùng làm sao tôi có thể thoát khỏi penalty của Google ?
- Cách đơn giản nhất là đừng vi phạm các điều luật của Google
- Thứ hai là làm theo các khuyến khích của Google.
- Bạn cũng có thể tham khảo bài viết tránh rớt hạng trên những công cụ tìm kiếm được viết bởi giaiphaplienket.com.
- Còn nếu như lỡ đã bị Penalty rồi thì bạn có thể sử dụng sơ đồ sau đây của SEOmoz để thoát ra.

Hi vọng qua bài viết này, những người làm SEO sẽ đặt quy luật tự nhiên lên trên tất cả các yếu tố SEO khác. Trong SEO hãy luôn nhớ câu : “Chậm mà chắc còn hơn nhanh mà dễ bị bắt.”
Chúc các bạn thành công.

nguồn: giaiphaplienket.com

Thứ hai, ngày 24 tháng mười năm 2011

Cải thiện tốc độ Load recent posts

Adv recent posts đơn giản chỉ là tiện ích recent posts thông thường, nhưng được mở rộng ra hơn 1 chút là có thể hiển được nhiều tiện ích recent posts với 1 lần load so với cách cũ là mỗi lần load chỉ hiển thị 1 tiện ích recent posts. Và 1 điểm nữa là chỉ sử dụng link feeed chính của blog, mà không cần dùng link feed theo từng nhãn.

Xem DEMO

Cập nhật thêm DEMO:

Tiện ích VnE TabNews với Adv Recent Posts : XEM

Ở bài viết trước mình đã giới thiệu sơ qua về thủ thuật này rồi, nên mình sẽ không nói lại. Và 1 lưu ý nữa là : ở thủ thuật này mình sẽ chỉ giới thiệu đoạn mã javascript và cách chỉnh sửa nó, còn việc thực hiện bố cục hiển thị cũng như thiết kế giao diện cho từng tiện ích thì mình sẽ không giới thiệu.

Hình ảnh minh họa

- Trước tiên thực hiện thủ thuật, các bạn phải xác định vị trí hiển thị cho các tiện ích recent posts. Ví dụ như mình có 4 tiện ích recent posts, và mình muốn chúng hiển thị ở phần main, và có bố cục như bên dưới (như trong demo) thì mình sẽ phải tạo 1 widget HTML/javascript (ví dụ HTML1) và nó có nội dung như bên dưới :
+ Hình minh họa:

+ Code mẫu của widget HTML:

<table>
<tbody>
<tr>
<td>
<div id="a11">
<h3>Blogger Tips</h3>
<div id="label1"></div>
</div>
<div id="a22">
<h3>Thong bao</h3>
<div id="label2"></div>
</div>
</td>
</tr>
<tr>
<td>
<div id="a33">
<h3>BlOg FD</h3>
<div id="label3"></div>
</div>
<div id="a44">
<h3>jQuery</h3>
<div id="label4"></div>
</div>
</td>
</tr>
</tbody>
</table>

- Ngoài ra các bạn cũng có thể đặt 1 cái RP ở Sidebar, và 4 cái ở phần main cũng được, nhưng quan trọng là bạn hãy nhớ các id : label1, label2, ... label5. Như vậy thì ở phần sidebar ta sẽ có 1 cái widget HTML/javascript có nội dụng như sau tương tự như sau:

<div id="a55">
<h3>Film</h3>
<div id="label5"></div>
</div>

- Các bạn sẽ thắc mắc tại sao nội dung nó chỉ là các thẻ div rỗng. Thẻ div rỗng nãy sẽ là địa chỉ mà mã javascript sẽ hiển thị bài viết vào, dựa vào các id đã được đặt sẵn. Như vậy quan trọng chỉ là thẻ các thẻ div : <div id="label1"></div> , <div id="label2"></div> , ... <div id="label5"></div> .

- Phần tạo bố cục và xác định vị trí cho các tiện ích hiển thị thì mình sẽ chỉ hướng dẫn được như vậy thôi, phần còn lại (viết code CSS và HTML) thì mình để lại cho các bạn. Bởi mình có hướng dẫn cụ thể 1 bố cục hoặc 1 giao diện nào đó thì cũng khó mà "tông/tông" với blog của mỗi người.

Và bây giờ là code của thủ thuật :
- Đầu tiên các bạn sẽ chèn đoạn mã script này vào trước thẻ </head>

//<![CDATA[
function stripHtmlTags(s,max){
s=s.replace(/<br.*?>/ig, ' ');
return s.replace(/<.*?>/ig, '').split(/\s+/).slice(0,max-1).join(' ')
}
function showadvrp(json) {
img = new Array();
var n1 = 0;
var n2 = 0;
var n3 = 0;
var n4 = 0;
for (var i = 0; i < numposts; i++) {
var entry = json.feed.entry[i];
var posttitle = entry.title.$t;
var pcm ;
var posturl;
if("media$thumbnail" in entry){
var thumburl = entry.media$thumbnail.url;
}
else{ var thumburl = "http://lh6.googleusercontent.com/-8fE2X7kBhWs/Tf96WzivFHI/AAAAAAAAB0s/fItUKGW08gY/no-image.png"};
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
posturl = entry.link[k].href;
break;
}
}
if ("thr$total" in entry) {pcm=entry.thr$total.$t;}
else {pcm="none";}
if (pcm==0) {var comment = 'No comment';}
else if (pcm=='none') {var comment = '<span style="color:#f00;">Do not comment here</span>';}
else {var comment = '<font style="color:#0082ff;">'+ pcm +'</font> Comments';}
var plabel = new Array();
var textlabel = 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> ';
textlabel [k]=entry.category[k].term;
}
var condlabel=textlabel.join(" ");
}
else {plabel = "No label";}
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]="http://1.bp.blogspot.com/_u4gySN2ZgqE/SosvnavWq0I/AAAAAAAAArk/yL95WlyTqr0/s400/noimage.png";}
var advrc = '<li class="adv-rc-list"><img src="'+thumburl+'" style="width:40px; float:left;padding:1px; border:1px solid #ccc;margin-right:5px;" /><a href="'+posturl+'">'+posttitle+'</a><br/><i style="color:#888;">('+comment+')</i></li>';
var advrc_0 = '<li class="adv-rc-list-0"><img src="'+img[i]+'" style="width:100px;height:90px; float:left;padding:1px; border:1px solid #ccc;margin-right:5px;" /><a href="'+posturl+'"><b>'+posttitle+'</b></a><br/><i style="color:#888;">('+comment+')</i><br/>'+stripHtmlTags(postcontent,32)+' ...<p style="border-bottom:1px dashed #f80;margin:7px 0;"></p></li>';
var advrc_01 = '<li class="adv-rc-list-01"><a href="'+posturl+'"><b>'+posttitle+'</b></a> - <i style="color:#888;">('+comment+')</i><br/><img src="'+img[i]+'" style="width:100px;height:90px; float:left;padding:1px; border:1px solid #ccc;margin-right:5px;" />'+stripHtmlTags(postcontent,32)+' ...</li><p style="border-bottom:1px dashed #f80;margin:7px 0;"></p>';
var advrc_1 = '<li class="adv-rc-list-1"><a href="'+posturl+'"><b>'+posttitle+'</b></a><br/><i style="color:#888;">('+comment+')</i><br/><img src="'+img[i]+'" style="width:270px;height:100px;padding:1px; border:1px solid #ccc;margin-right:5px;" /><br/>'+stripHtmlTags(postcontent,32)+' ...<p style="border-bottom:1px dashed #f80;margin:8px 0;"></p></li>';
var advrc_2 = '<li class="adv-rc-list-2"><img src="http://lh5.googleusercontent.com/-cDsHnRJxQCE/Tos_-f6ok6I/AAAAAAAAB5c/XH2RE0yjqVw/large_list_icon_black.png" /> <a href="'+posturl+'"><b>'+posttitle+'</b></a> - <i style="color:#888;">('+comment+')</i></li>';
var advrc_3 = '<li class="adv-rc-list-3"><span class="listcm">'+pcm+'</span> <a href="'+posturl+'"><b>'+posttitle+'</b></a></li>';
if ((condlabel.match("Thu Thuat Blog"))&&(n1<adv_num1)) {
n1=n1+1;
if (n1==1) {document.getElementById('label1').innerHTML += advrc_0;}
else {document.getElementById('label1').innerHTML += advrc;}
}
else if ((condlabel.match("Announcement"))&&(n2<adv_num2)) {
n2=n2+1;
document.getElementById('label2').innerHTML += advrc;
}
else if ((condlabel.match("BlOgFD"))&&(n3<adv_num3)) {
n3=n3+1;
if (n3==1) {document.getElementById('label3').innerHTML += advrc_1;}
else {document.getElementById('label3').innerHTML += advrc_2;}
}
else if ((condlabel.match("jQuery"))&&(n4<adv_num4)) {
n4=n4+1;
if (n4==1) {document.getElementById('label4').innerHTML += advrc_01;}
else {document.getElementById('label4').innerHTML += advrc_3;}
}
var n1234 = n1 + n2 + n3 + n4;
var ncond = adv_num1 + adv_num2 + adv_num3 + adv_num4;
if (n1234==ncond) {break;} else if (i == json.feed.entry.length) {break;}
}
}
//]]>

- Ở đoạn script trên có các biến : advrc, advrc_0, .., advrc_3. Đây là các biến để tạo giao diện riêng cho các tiện ích recent posts. Và các biến adv_num1, ...adv_num4 là số bài viết hiển thị ở mỗi tiện ích recent posts (tương ứng với các thẻ div có id lần lượt là : label1, ... label4).
- Để hiểu rõ hơn mình sẽ mô tả cách hoạt động chính của đoạn javascript trên. Đoạn code chính của thủ thuật chính là đoạn code bên dưới :

if ((condlabel.match("Thu Thuat Blog"))&&(n1<adv_num1)) {
n1=n1+1;
if (n1==1) {document.getElementById('label1').innerHTML += advrc_0;}
else {document.getElementById('label1').innerHTML += advrc;}
}
else if ((condlabel.match("Announcement"))&&(n2<adv_num2)) {
n2=n2+1;
document.getElementById('label2').innerHTML += advrc;
}
else if ((condlabel.match("BlOgFD"))&&(n3<adv_num3)) {
n3=n3+1;
if (n3==1) {document.getElementById('label3').innerHTML += advrc_1;}
else {document.getElementById('label3').innerHTML += advrc_2;}
}
else if ((condlabel.match("jQuery"))&&(n4<adv_num4)) {
n4=n4+1;
if (n4==1) {document.getElementById('label4').innerHTML += advrc_01;}
else {document.getElementById('label4').innerHTML += advrc_3;}
}
var n1234 = n1 + n2 + n3 + n4;
var ncond = adv_num1 + adv_num2 + adv_num3 + adv_num4;
if (n1234==ncond) {break;} else if (i == json.feed.entry.length) {break;}
}

- Bắt đầu vòng lặp, đoạn secript sẽ kiểm tra bài viết có nhãn Thu Thuat Blog hay ko (đây là giá trị bạn cần thay đổi), nếu bài viết có nhãn này, thì bài viết đó sẽ được hiện thị trong thẻ div có id="label1". Và nếu là bài viết đầu tiên thì sẽ với style biến advrc_0, ngoài ra thì sẽ hiển thị kiểu advrc. Cứ tiếp tục như thế, sang bài viết thứ 2 nếu bài viết ko có nhãn Thu Thuat Blog thì lập tức nó sẽ kiểm tra sang các nhãn khác như Announcement, BlOgFD, jQuery.
- Ở các kiểu hiển thị advrc, advrc_0, .., advrc_3, mình dùng các thẻ <li> để tạo giao diện cho các tiện ích. Các bạn có thể thay đổi giá trị của các biến này để tạo ra các giao diện khác nhau cho mỗi tiện ích.
- Ví dụ như :

advrc ='<li> ... Mã HTML để tạo giao diện cho mỗi bài viết ở mỗi tiện ích ... </li>

- Ở đoạn javascript trên chỉ có 1 label2 (Announcement) là các bài viết trong tiện ích có chung 1 kiểu hiển thị, ngoài ra 3 label còn lại thì được hiển thị theo kiểu nổi bật bài đầu tiên.
- Ở code mẫu trên là chỉ sử dụng cho việc hiển thị 4 tiện ích, nếu muốn hiển thị thêm nhiều tiện ích nữa thì các bạn thêm mã tương tự như đoạn code highlight như bên dưới :

if ((condlabel.match("Thu Thuat Blog"))&&(n1<adv_num1)) {
n1=n1+1;
if (n1==1) {document.getElementById('label1').innerHTML += advrc_0;}
else {document.getElementById('label1').innerHTML += advrc;}
}
else if ((condlabel.match("Announcement"))&&(n2<adv_num2)) {
n2=n2+1;
document.getElementById('label2').innerHTML += advrc;
}
else if ((condlabel.match("BlOgFD"))&&(n3<adv_num3)) {
n3=n3+1;
if (n3==1) {document.getElementById('label3').innerHTML += advrc_1;}
else {document.getElementById('label3').innerHTML += advrc_2;}
}
else if ((condlabel.match("jQuery"))&&(n4<adv_num4)) {
n4=n4+1;
if (n4==1) {document.getElementById('label4').innerHTML += advrc_01;}
else {document.getElementById('label4').innerHTML += advrc_3;}
}
else if ((condlabel.match("Nhãn thứ 5"))&&(n5<adv_num5)) {
n5=n5+1;
if (n5==1) {document.getElementById('label5').innerHTML += advrc_01;}
else {document.getElementById('label5').innerHTML += advrc_3;}
}
var n1234 = n1 + n2 + n3 + n4 + n5;
var ncond = adv_num1 + adv_num2 + adv_num3 + adv_num4 + adv_num5;

if (n1234==ncond) {break;} else if (i == json.feed.entry.length) {break;}
}

- Và tất nhiên phải điều chỉnh thêm ở phần đầu của code javascript như bên dưới:

function showadvrp(json) {
img = new Array();
var n1 = 0;
var n2 = 0;
var n3 = 0;
var n4 = 0;
var n5 = 0;

- Như vậy cơ bản đã hoàn thành, bây giờ là phần cuối cùng. Ở phần cuối cùng này sẽ là phần truy xuất link feed. Để thủ thuật chạy được, phần cuối cùng này phải đặt sau cùng. Tức là phải đặt sau các thẻ div có id : label1, label2,... label5. Tốt nhất là đặt nó ở dưới cùng trong phần nội dung của tiện íchHTML/javascript chứa thẻ div cuối cùng, ví dụ như thẻ div có id="label5" chẳng hạn. Và đây là đoan code sau cùng :

<script type="text/javascript">
numposts = 100;
adv_num1 = 4;
adv_num2 = 5;
adv_num3 = 4;
adv_num4 = 6;
adv_num5 = 6; // chèn thêm nếu có 5 tiện ích
</script>
<script src="http://Yourblogname.blogspot.com/feeds/posts/default?&max-results=100&orderby=published&alt=json-in-script&callback=showadvrp"></script>

- Giá trị max-results phải lớn hơn hoặc bằng giá trị numposts. Tùy theo số bài hiển thị mà bạn thay đổi 2 giá trị này cho hợp lý và cho bài viết được hiển thị đủ như mình muốn.
- Như ở bài giới thiệu trước, mình có nói tới việc nếu tỉ lệ xuất bản bài viết ở mỗi nhãn đều nhau thì tiện ích sẽ load nhanh hơn. Lấy ví dụ như, ở demo mình thực hiện trên blog của mình, do blog mình xuất bản chủ yếu là bài viết về thủ thuật blog, nên vì thế mà trong tiện ích yêu cầu hiển thị 19 bài viết, nhưng lặp đủ 100 lần mà vẫn chỉ được 18 bài, tức là vẫn còn thiếu 1 bài. Như hình minh họa bên dưới :

- Tuy nhiên nếu các bạn xuất bản đều đặn ở mỗi nhãn thì cho dù bạn set vòng lặp là 100 hay 200 thì khi đã lấy đủ bài viết thì vòng lặp sẽ dừng lại. Và đây là đoạn mã đó :

var n1234 = n1 + n2 + n3 + n4 + n5;
var ncond = adv_num1 + adv_num2 + adv_num3 + adv_num4 + adv_num5;
if (n1234==ncond) {break;} else if (i == json.feed.entry.length) {break;}

biến n1234 là số bài viết mà lấy được qua các lần lặp (thay đổi), còn biến ncond(cố dịnh) là tổng số bài mà bạn chọn hiển thị ở tất cả các tiện ích. Như đã set ở trên. Nếu đã lặp đủ, tức là giá trị của 2 biến n1234, ncond bằng nhau thì vòng lặp dừng lại.

Nguồn: Blog Fandung