Giới thiệu với bạn tiện ích mới nhất: "Bài Viết Liên Quan".
Hãy cắt dán vào một HTML widget trong trang thiết kế để coi nó có chạy hay không.
Tôi có làm thử một cái, dùng chính đoạn mã mà tôi viết dưới đây, vào trang Anh ngữ của tôi, thì nó chạy ngay http://hoctro.blogspot.com/2010/08/testing-of-new-related-articles-widget.html . Trang Hoctro Việt cũng có tiện ích này.
Nếu bạn đã lắp các "Bài Liên Quan" widget trước của tôi, bạn cứ tự nhiên lắp tiếp cái này, chứ đừng bỏ cái kia vội. Cái mới này chỉ cần một bước cài đặt thôi, mà sau khi cài đặt xong ta có thể chuyển nó sang chỗ mới dễ dàng, không như cái cũ.
Như bạn thấy, cái tiện ích này tạo ra một dòng mã gồm những từ khóa/nhãn của trang đang xem, sau đó nó gửi lên Google, và được kết quả trả về gần sát nhất những gì bạn muốn tìm. Các kết quả này do google tìm kiếm trong trang của bạn mà thôi. Ta thấy cách này hệt như khi ta muốn tìm một bài viết nào đó trên Google http://www.google.com/ .
Theo thiển ý, đây là widget sát ý nhất với ý nghĩa "bài liên quan", vì nó đăng lên những bài giống với những từ khóa mà ta tìm nhất. tiện ích trước tôi viết không làm được điều này, vì nó chỉ trả về những kết quả mới nhất của từng nhãn trong trang mà thôi, những bài hay nhất mà xưa thì sẽ không được hiện ra. Ta đã dùng giải thuật "page ranking" của Google lần này để tìm các bài liên quan nhất.
Tôi sẽ đăng tiếp một bài viết tiếp theo về những động lực để làm tiện ích, giải thích cấu trúc mã, và những chỉnh sửa khác. Có nhiều cách như dùng CSS để chỉnh màu sắc, font chữ, hiện thêm dòng ngắn giới thiệu (snippet) hay không, v.v.
Chúc bạn thành công,
Thân mến,
Hoctro
8/16/2010
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" type="text/javascript"></script>
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script language="Javascript" type="text/javascript">//<![CDATA[
//var website = "hoctro.blogspot.com";
var website = getBaseURL();
var hoctroRelated = "site:" + website + " ";
var labelArray = new Array();
function getParams() {
$('div.post-footer-line span.post-labels a').each(function(idx, el) {
var test = 0;
var textLabel = $(el).html();
for (var i = 0; i != labelArray.length; i++) {
if (labelArray[i] == textLabel.toString()) test = 1;
}
if (test == 0) {
labelArray.push(textLabel.toString());
hoctroRelated = hoctroRelated + '"' + textLabel.toString() + '" OR ';
}
}); // each
}
// Callback main function
$(document).ready(function() {
getParams() ;
}); // function
function OnLoadRelated() {
// create a search control
var searchControl = new google.search.SearchControl();
// create a draw options object so that we
// can position the search form root
var options = new google.search.DrawOptions();
options.setSearchFormRoot(document.getElementById("searchHoctroRelatedForm"));
// populate with searcher
var blogSearch = new google.search.WebSearch();
blogSearch.setUserDefinedLabel("Related Articles");
var options2 = new google.search.SearcherOptions();
options2.setExpandMode(google.search.SearchControl.EXPAND_MODE_OPEN);
searchControl.setResultSetSize(google.search.Search.LARGE_RESULTSET);
searchControl.addSearcher(blogSearch, options2);
searchControl.draw(document.getElementById("searchHoctroRelatedResults"), options);
getParams();
searchControl.execute(hoctroRelated);
}
// Copied from http://www.gotknowhow.com/articles/how-to-get-the-base-url-with-javascript
function getBaseURL() {
var url = location.href; // entire url including querystring - also: window.location.href;
var baseURL = url.substring(0, url.indexOf('/', 14));
if (baseURL.indexOf('http://localhost') != -1) {
// Base Url for localhost
var url = location.href; // window.location.href;
var pathname = location.pathname; // window.location.pathname;
var index1 = url.indexOf(pathname);
var index2 = url.indexOf("/", index1 + 1);
var baseLocalUrl = url.substr(0, index2);
return baseLocalUrl + "/";
}
else {
// Root Url for domain name
return baseURL + "/";
}
}
// Important, this has to be called here, otherwise main var is not yet created
google.load('search', '1.0');
google.setOnLoadCallback(OnLoadRelated, true);
//]]>
</script>
<style>
//#searchHoctroRelatedResults a.gs-title, a.gs-title * { color : brown; }
//#searchHoctroRelatedResults .gs-webResult .gs-snippet { display : none; }
//#searchHoctroRelatedResults .gs-webResult .gs-visibleUrl { display : none; }
//#searchHoctroRelatedForm { display : none; }
</style>
<div id="searchHoctroRelatedResults">Loading...</div>
<div id="searchHoctroRelatedForm">Loading...</div>
<h6>Related Articles Widget by <u><a href='http://hoctro.blogspot.com'>Hoctro</a></u></h6>



-ngày phía trước bài hát theo danh sách(top 100-1959) là reference của video phải không?Sao mình tìm không thấy tương đồng gì hết bên youtube nên xem đại.Thích 2 bài đầu tiên phim "Alvin &the chipmund",con trai thích bài này lắm,xem phim mà ba mẹ con cứ cười tí tởn khoái chí!
ReplyDelete"Smokes get in your eyes" quá hay mà hình như cũng là nhạc nền của phim nào đó hay sao mình ko nhớ.
Post tốc độ chóng mặt luôn,bài đầu tiên còn chưa nghe hết và nghe quá nhiều bài có trên 20 năm mới gặp lại cảm giác cứ như đoàn viên người thân bao năm xa cách.
Càng ngày càng bị dụ dỗ là sao?
Bạn chơi ác ghê!Đồ xấu tính!
Chơi quê gì vậy bạn? không hiểu gì hết. Tui đang từ từ load #1 hits các năm 1959 tới 2000, tới 1973 rồi. Nguồn lấy từ đây:
ReplyDeletehttp://en.wikipedia.org/wiki/List_of_Hot_100_number-one_singles_of_1960_%28U.S.%29
Chúc vui,
cốc cốc có ông chủ ở nhà ko?
ReplyDeleteHôm qua,viết entry bên word copy và paste qua blog sao nó ko chịu lưu và bắt phải xoá hiển thị html rồi mình làm theo thì paste được nhưng các tilte đổi qua màu tím và gạch chân nhìn từa lưa hết trơn.Đang ở trong nhà bạn(nhà âm nhạc) vừa nghe nhạc vừa doing housework.
Thân!
Hi Leaqua, viết mấy thứ này trên Word không có work. Thường thì tui viết & edit trên notepad rồi thêm link trong Blogger.
ReplyDeleteChúc vui,
Hi bạn, post nhạc có người thích nghe là tui zui rồi, chúc vui nhé, từ từ mình viết lại chord của Free As a Bird và các lời bình tại sao nó hay.
ReplyDeleteHave a great week Donald Duck!
you remove clip Lefevre đi-Johnny Halliday á!Không xem được báo user đã remove rồi!
ReplyDeleteDD
thanks! Đã sửa lại rồi Leaqua.
ReplyDeleteThank you vì có nhận xét hay! Mà bài đó ở đâu??? Mình tìm hoài không thấy!
ReplyDeletebài đó ở list 100 - 1959!
ReplyDeletehai bài đầu tiên.
Nhận xét nào của mình cũng từ hay trở lên hết?!
Cám ơn nhiều đã sửa rồi.
ReplyDeleteỦa, nhận xét hay cũng không được ha?
khen thì mắc cỡ, mà không khen thì hờn mát,già rồi tráí tính trái nết,rõ khổ,tui là dị đó!
ReplyDeleteBài liên quan là tiện ích để người xem liền mạch chủ đề đang quan tâm. Với thủ thuật mới này, Tít bài xuất hiện theo kiểu bài ngẫu nhiên, phần tóm tắt nó hiện bên dưới link liên quan rất lộn xộn. Mình vãn dùng widget cũ của Học trò, đặt nhãn không dấu. Ổn và nhanh, một lần nữa cảm ơn bạn nhiều!
ReplyDeleteHi anh Trần Hùng,
ReplyDeleteCái cũ cũng hay, mà cái mới vì đang thử nên cũng chưa biết độ tin cậy ra sao. Anh nói cũng đúng, việc "related" nay giao phó hoàn toàn cho Google, nên nhiều khi bài trật lất!
Để hoctro tìm cách mix giữa hai cái cũ mới xem sao.
Thân,