Thứ Tư, 28 tháng 9, 2011

Bạn sống tại thành phố Hồ Chí Minh, bạn sử dụng nền tảng Blogger để tạo blog và bạn muốn biết có bao nhiêu người dùng Blogger đến từ thành phố Hồ Chí Minh, tức là có bao nhiêu người đồng hương của bạn cùng sử dụng nền tảng Blogger. Làm thế nào để truy tìm hồ sơ của những người đồng hương của bạn, chí ít là bạn có ý định tìm kiếm người quen hoặc có thể là vì một mục đích nào đó mà bạn muốn tìm hồ sơ Blogger của một hoặc một nhóm người nào đó, vậy bạn phải làm thế nào?

Giải pháp thật là đơn giản, bạn chỉ cần truy cập địa chỉ sau đây:

http://www.blogger.com/profile-find.g?t=l&loc0=VN&loc1&loc2=H%E1%BB%93+Ch%C3%AD+Minh

Tại trang này bạn sẽ tìm thấy danh sách hồ sơ của tất cả các blogger đến từ thành phố Hồ Chí Minh, tương tự nếu là thành phố Hà Nội thì truy cập địa chỉ sau đây:

http://www.blogger.com/profile-find.g?t=l&loc0=VN&loc1&loc2=H%C3%A0+N%E1%BB%99i

Đà Nẵng: http://www.blogger.com/profile-find.g?t=l&loc0=VN&loc1&loc2=%C4%90%C3%A0+N%E1%BA%B5ng

Ở các địa phương khác bạn áp dụng tương tự, theo format như sau:

http://www.blogger.com/profile-find.g?t=l&loc0=VN&loc1&loc2=A+B

ví dụ A là Vũng, B là Tàu sẽ tìm đến danh sách các blogger đến từ Vũng Tàu vậy.

Như vậy để tìm hồ sơ của tất cả các blogger của Việt Nam thì truy cập địa chỉ:

http://www.blogger.com/profile-find.g?t=l&loc0=VN

Nếu là Mỹ thì dùng http://www.blogger.com/profile-find.g?t=l&loc0=US

Anh: http://www.blogger.com/profile-find.g?t=l&loc0=UK

Trung Quốc: http://www.blogger.com/profile-find.g?t=l&loc0=CN

Hàn Quốc: http://www.blogger.com/profile-find.g?t=l&loc0=KR (cái này chị em tha hồ mà tìm hồ sơ của mấy anh minh tinh Hàn Quốc nha, quá đã).

Tiếp tục bạn có thể tìm hồ sơ theo sở thích, ví dụ tìm các blogger có cùng sở thích Games Online thì truy cập địa chỉ:

http://www.blogger.com/profile-find.g?t=i&q=Games%20Online

Cùng sở thích Học tiếng Anh thì tìm:

http://www.blogger.com/profile-find.g?t=i&q=H%E1%BB%8Dc%20ti%E1%BA%BFng%20Anh

Tựu trung lại nếu muốn tìm những người cùng sở thích thì tìm theo format như sau:

http://www.blogger.com/profile-find.g?t=i&q=tên sở thích

Những điều này tưởng chừng như đơn giản song có thể bạn không để ý đến, mà nếu tận dụng triệt để thì bạn sẽ tìm thấy những thứ thật thú vị và hữu ích.

Thứ Hai, 26 tháng 9, 2011

Đếm lượt xem bài viết là một thủ thuật khá cần thiết cho blogspot. Thông thường việc đếm lượt xem bài viết được thực hiện bằng ngôn ngữ php tuy nhiên nó yêu cầu sử dụng host, do đó dẫn đến việc đứt gánh giữa đường khi host không còn hoạt động. Ở đây mình hướng dẫn bạn cách đếm lượt xem bài viết sử dụng cookie. Bạn có thể xem DEMO bên dưới.


Thông thường bộ đếm lượt truy cập bài viết được đặt ở cuối bài viết, do đó bạn có thể tìm trong Template ở chế độ mở rộng mẫu tiện ích đến một trong những dòng code sau:

<div class='post-footer'>

<div class='post-footer-line post-footer-line-1'>

<div class='post-footer-line post-footer-line-2'>

<div class='post-footer-line post-footer-line-3'>

Rồi đặt trước hoặc sau nó bằng đoạn code bên dưới:

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<script type='text/javascript'>
//<![CDATA[
function setC(visitors, value){
var expireDate=new Date (2099, 12, 31);
document.cookie = visitors + "=" + escape(value) + ((expireDate == null) ? "" : ("; expires=" +
expireDate.toGMTString())) }
function readC(visitors){
var search = visitors + "=";
var i, j;
if (document.cookie.length > 0) {
i = document.cookie.indexOf(search);
if (i != -1) {
i += search.length;
j = document.cookie.indexOf(";", i);
if (j == -1) j = document.cookie.length;
return unescape(document.cookie.substring(i,j));
} } }
var num;
num=readC("visitors");
if (!num) num=0;
num++;
setC("visitors", num);
document.write("<div class='visitors'>");
document.write("<b>Bạn đã xem bài này "+num+" lần.<\/b>");
document.write("<\/div>");
//]]>
</script>
</b:if>

Nếu muốn tùy biến CSS cho dòng thông báo thì bạn đặt CSS như thế này (trước dòng ]]></b:skin> trong Template):

.visitors{
… đặt các thuộc tính CSS ở đây nha ..
}

Hy vọng đoạn script này sẽ giúp ích cho blogspot của bạn, tránh đến việc sử dụng host để dành cho cả một thủ thuật nhỏ như thế này quả thật là bất tiện và phung phí.

Chủ Nhật, 25 tháng 9, 2011

Nhằm góp phần phát triển cộng đồng Blogspot Việt Nam, Thủ thuật Blogger mở rộng dịch vụ thiết kế Template theo đơn đặt của khách hàng.

1. Thiết kế Template (Khung giá 10 - 20 USD)

Đã có 1 người đăng ký (Pending)

Bạn muốn tạo một Template độc đáo cho Blogspot của bạn? Hãy cho chúng tôi biết ý tưởng của bạn. Chúng tôi sẽ tạo một Template thượng hạng và làm thỏa mãn yêu cầu của bạn.

2. Chuyển thể WordPress sang Blogger (Khung giá 15 – 30 USD)

Bạn muốn chuyển thể một Wordpress Theme sang Blogger Template để sử dụng cho Blogspot của bạn? Hãy gửi mẫu Wordpress Theme cho chúng tôi và chúng tôi sẽ giúp bạn tạo phiên bản Blogger.

3. Tùy biến Blogspot (Khung giá 5 – 10 USD)

Đã có 2 người đăng ký (Finished)

Nếu bạn muốn thay đổi những đặc điểm của Blogspot của bạn như thêm Sidebar, thêm Lowerbar, chia cột Header, thêm Slider, thêm các tiện ích, cải thiện SEO, cải thiện tốc độ load trang …, chúng tôi sẽ giúp bạn thực hiện tất cả những yêu cầu theo cách tối ưu nhất.

Thanh toán được thực hiện qua Paypal, ATM, Card điện thoại di động. Hãy liên hệ với chúng tôi qua email: webmaster@thuthuatblogger.info để biết thêm chi tiết.

Thứ Bảy, 24 tháng 9, 2011

Nếu bạn muốn chơi Affiliate, Adsense hoặc MMO nói chung hoặc thậm chí muốn đặt quảng cáo trên blogspot thì bạn nên chọn một Template thật đặc trưng. Nếu muốn chơi MMO thật hiệu quả thì bạn nên viết blogspot bằng tiếng Anh. E-Study là một Template mới ra của Thủ thuật Blogger có thể đáp ứng đủ yêu cầu của một người chơi MMO đích thực.





DEMO


E-Study Template được tích hợp đầy đủ các tiện ích cần thiết cho một blogspot. Nổi bật nhất là phần Auto Readmore có thương hiệu riêng của Thủ thuật Blogger. Phần nhận xét tự động điều chỉnh bề rộng theo số ký tự của nhận xét. Đã gắn tiện ích Next Post/Previous Post. Menu dạng cây thư mục tiết kiệm không gian web. Tốc độ load siêu nhanh, bạn có thể kiểm tra bằng công cụ dưới đây:

Kiểm tra dung lượng và tốc độ tải trang:

Tên domain/website:
(Ví dụ: www.thuthuatblogger.info)
Có thể phân tích chi tiết tại Pingdom.


E-Study đã được SEO theo hướng tốt nhất, dễ cài đặt và tùy biến.

Quan niệm của Thủ thuật Blogger về phương diện Template thương mại: “Hàng rẻ là hàng dỏm” vì thế E-Study sẽ không có giá dưới 10 USD. Giá bán ban đầu là 10USD/Template, sau 5 lần sale sẽ tăng thêm 1 USD đến giá fix cuối cùng là 15 USD (giá trị thực của E-Study). 10 USD đầu tư cho một sự nghiệp MMO là sự lựa chọn quá ư là đơn giản.

Đã có 01 người mua Template này.


E-Study Price Options

Chủ Nhật, 18 tháng 9, 2011

Được biết, hiện nay với sự phố biến của hệ thống nhận xét phân cấp qua đó người nhận xét khi trả lời một ý kiến của một người nào đó thì thường nhấn vào nút Trả lời/Reply để viết nhận xét qua cửa sổ popup, lúc này việc chèn biểu tượng cảm xúc vào nhận xét sẽ gặp khó khăn. Giải pháp cho vấn đề này là tạo bộ biểu tượng cảm xúc trực tiếp trong hệ thống nhận xét popup.

Hẳn bạn cũng từng biết về addon Greasemonkey giúp thêm bộ chèn biểu tượng cảm xúc trực tiếp vào công cụ đăng bài viết (Post Editor) của Blogspot. Kịch bản này chỉ hoạt động trên trình duyệt FireFox. Thật may là sau một quá trình nguyên cứu, mình đã áp dụng thành công phương pháp này đối với hệ thống nhận xét popup. Cách thức thực hiện là viết một kịch bản tạo chức năng chèn các thẻ <b></b> (in đậm), <i></i> (in nghiêng), <a></a> (liên kết) và một bộ biểu tượng cảm xúc (ở đây mình tạo bộ 25 Zing Emoticons) sau đó upload kịch bản lên trang tài nguyên userscript.org. Để cài đặt tiện ích này, người dùng cần sử dụng trình duyệt FireFox tải addon Greasemonkey rồi cài đặt. Trước tiên đến trang Greasemonkey, nhấn nút Add to Firefox để tải về cài đặt tiện ích này.


Sau đó khởi động lại (restart) trình duyệt, tiếp tục tải Emoticons Script về, nhấn Install để script tự động cài đặt vào FireFox.


Sau đó mở hệ thống nhận xét popup bạn sẽ thấy bộ biểu tượng cảm xúc sẽ xuất hiện trong phần Comments Form. Mỗi khi cần chèn biểu tượng hoặc các thẻ HTML, bạn chỉ việc click vào nó là xong.

Tuy nhiên để các biểu tượng cảm xúc hiển thị trên phần nhận xét (không phải dạng Popup) thì bạn phải cài đặt chức năng biểu tượng cảm xúc, bằng cách đặt đoạn code sau đây vào trước thẻ </body>.

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<script type='text/javascript'>
//<![CDATA[
//Emoticons for Blogger Comments || Author: Huynh Nhat Ha || http://huynh-nhat-ha.blogspot.com || © Copyright 2010
function emoticonBloggerHuynhNhatHa() {

if(!document.getElementById) {return;} // no support

bodyText = document.getElementById('comments-block');

theText = bodyText.innerHTML;
theText = theText.replace(/:1/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH2GcZRWJ-mB_A9cmApfk4TJQzOI6TePBkc3cfTAZmHxxi_32ItNucScnRvPfuW9TB_i5-kIAo-XvVrF-fY2IelBclCwV5vH6P2Jh25C0_N-JVbxTmS96_Jg_kc2qFrZ4-oSCUAa-15lxv/s1600/49.gif" />');
theText = theText.replace(/:2/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgESaISRrg8mzJrsbbf92zvdfkI1VqQgCpbHE06GL-m10jRnAsUc5UQT3cCYVddsH5LIwCIuSexy9uDEVcNmU6EBTEGwLJUe3YrTRoGrA3Cr28SOg4WiEQaHeu04_f4iXsNHNNh9oSD4ncg/s1600/102.gif" />');
theText = theText.replace(/:3/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP3GxuYaY8Og48gJX1Ljgba9y189eKp3Htu14o8saDeRWmeTwmMzWQp8r63sK96-5MRMA9Ln8itmOtll_AO_moAnQfxhnQogSLXCk_NDcQTfUzmnnl5ICh5jgQeC2EyEQkb1ELq46Wgfl4/s1600/113.gif" />');
theText = theText.replace(/:4/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIQkb8Wq-nWyyJb_5_Ht2PKDEO7vnDzwxfniG0XyQ8jOhS2u3vOPDlcHHcNbSn0Aak6VRIqgLIT5wq6CWwAT3RPLW13eaFpOZNvqOhy4EGEtMkdr6DXVxMS_HBN2amBDSSY53Rly6QAkL3/s1600/93.gif" />');
theText = theText.replace(/:5/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLG_zsOyWiqt2WYLfjSSspY9cOF5AnoB4jje6lhnJ2tV8pVehMm_aijMY6908LCjhnv2Z2Azru2FAwPobKGXlYNvQsmJJwdzo6vfScPZ6UquQeGzS4FmpOj6xkAIkDXIIri-fq8O3EUkX7/s1600/61.gif" />');
theText = theText.replace(/:6/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifdjf4CaUnnqZ-vY7rVNbbmOraQSAk-3NO1QBqBd8gSy5c65Zc0jahIl6zsTkJ94KVX2vGLSbbcFHNT1K2k2WW3IbaXdK2XiaKdHBlbBh5Ux4k5iF8_Rdbt3RTxnZYT7rH8AmigsAK10z0/s1600/134.gif" />');
theText = theText.replace(/:7/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR3wjPS_2ceiD1BZ3Dq3FO8_adrPGqTAa2FOJk9ygK9JUTuQw1Nv3-CW9SjcXMR9u-WG4lEplRqroqNASqOsz40dQm3WAEYq7B2xG_Vcokz3i8evmOT5zUfLW8TLK3Fpc8-TSSI1K7H1oE/s1600/39.gif" />');
theText = theText.replace(/:8/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1WLCtPaJ0EYLjnSaiMlklD5YfwmHKn85R12JqHN6Y_91ZehChQSyvF78uikm4y5_wzJvMy0Doy7AzIcIxrm0BPk5PCBqzcP-bSj6VY8gY0TsrOcU_5is7JdWFBlsqXIjfvgCksc9FCwGN/s1600/106.gif" />');
theText = theText.replace(/:9/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-gW6NNd_gt89k0DE3mDVT4VKGZyO1LcybA9dE3ntSsfgwElDs6d292rSuXvdLI2fGRPFIVbazsAD6yxzWrPo6ZgtqtRoRztdYDkXH8t2w-zr8PQkqrBhgokvo2u1p0aFXSAbGtx4Z5i7c/s1600/43.gif" />');
theText = theText.replace(/:A/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieUhhDNotQy2RaBst3jnrXH9ySLVxmJ-OtZJ8VIho_VD2sjbfhXg7US4W63HDYIAFxv88RflX-OFkvI48kjEhrVsNvpDIJNVmkSVQjC7FGDU5bJNAvZ5lzHxo_i1Vc63OMn0MPMcpcZLk8/s1600/111.gif" />');
theText = theText.replace(/:B/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinfgJ_lVCgHJUlbTWHrdOXwuuedK3Opzy7vBBYe6hzD3J9d_so6XI8T7L0JFLB-Si0xcWSeN3PbTt6VvuG5zgQRH0qOoV_tF2IuobALqPcbBJvQCi4nn-rSn7ud_Ec3CgF50Mxbo6hGU3p/s1600/48.gif" />');
theText = theText.replace(/:C/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8WtvNyYaNdPQLkY57KCOMQPIVeetQXgTUGgjeBxDoT2PHyQxkSOHaIyx7FQpRkaeT71D0yEoHOhzjAgIiSYn8_Z_3zdORwnYYkuB1WMcnw2XkshiwiO31fKmuqq0XCo5L3WPH2ZTTkw73/s1600/54.gif" />');
theText = theText.replace(/:D/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_L_hb-SmYZF513svMgzOwh2ZA_591M3VWuwdluodD6JFyYczRui2WyfqUcsQ44onxHhdg4DM0Qzn-mcO3Z8xQMTZ-4wZ-apbpqyzNPi1TImwfJ_n1BSoDDN1NeMCoS8oJE0PnSVpEekVJ/s1600/63.gif" />');
theText = theText.replace(/:E/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwbvae-91I_uRzIDi2qKqY2w0lKCNVZtiGHUIOhBmG-nln07tLUBYnZ9UzTQO1N3rED0Hcpb5_9EvgdMkVC9xfc3linDEkUlnqVT9VN1HvLfroHIuARzgNWItvCHhGJ_hShSe6fFLb9iEb/s1600/100.gif" />');
theText = theText.replace(/:F/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiET8ub6ImW6lIHzU5VOWDLdWh9XYDFdR4ot0Gt6ZTR9gSyuWKXy_PY6Tn7fGqy6s-bPGOxKJXYeQ7jryEpyzr4TQ1PBKZU-Aso5wsBH8LUwZNcs4dzLUnE-Recq1xIUHoWLnsLf_SLMxPs/s1600/45.gif" />');
theText = theText.replace(/:G/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih2A15ym_T-l6ixSIh88NABjD9fV1AUV3RvPIa803VaqObboSlaj7wUgqCOQ1NAuhhnCE69KgwQwbEgQphRNL_qtACnkvkw8SPIJ1g73Bx0xmeS446LtinnyaxkDf7OoBWRUWaboMGVubL/s1600/77.gif" />');
theText = theText.replace(/:H/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXYgoLEEaQOHKgrhgTXwPbfGX3VZgXQxDAL3pP8nm5dGK_ubJ5mGthbKmbv8bnXpt56MtKltSgM8G0eUmkZt5CVfk9boIh23aHiveVnXjuTQ4yBoGHBD7dw5q_zpusXLLmjm2kzO91BgYN/s1600/86.gif" />');
theText = theText.replace(/:I/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8B002eqVZ1rxLs5J9nmY83Y6JosNTqXKzgyYD6ETdnEgDU5WCaEQDRYesT8z5ckZVafdRcX2NUxIQAwKBaDKzVol8c0zU1yGCeL0gsfwx8jKnaw62ufyvxDaOLpCUAo8o9c4MJPlBdw5s/s1600/94.gif" />');
theText = theText.replace(/:J/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUvLqZC_5bD48R95LqrdfNqs60w6IoBMzzlGeaBCJW_mbvPzvIgUa0xe46p5sXqrzPqlAwdcgzncKLV_HzJuo7rjtHqmrWTWXRmyoWN5lUl5ZFQPMsNFBEhQbCvS8D8-XLtaMQUpExQ4hU/s1600/83.gif" />');
theText = theText.replace(/:K/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggrQbBnhwzuB3JEU4pDUKHUJJPG7i89x9bm3KMzqYjpDw972_mDqgWSK9oHO0UG9GLgoOwPZ_cAQUxlBKe_F-UZvKgjiW2ZjQ3ZoTT29Z3c6zHKR7TEDRJFJHeASN77fLhDfgNKSo2KZ-j/s1600/59.gif" />');
theText = theText.replace(/:L/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqFt9nTxTp8oqTSEgjw2bApS63AxJ7pxnh0h6F7WX2bVb3XvBaCvjtmTXfKjSGqyXzhaRdnTHBbRU4SQ-u4FrD1TUBG1F3ZqItqeuFu0AsrHcPNmTF957Z3UJbTMwwhZe6DYeAq44lcxr9/s1600/soldierbaby.gif" />');
theText = theText.replace(/:M/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMxbgjZJdu6uW1qjggXbbsg8TlocRzrSYxNxSah5KBrEWaKp-1f1H7VIbpvhL_Du90hswfrHprLJ2bde-EggXxmtTc024vTzzlO6pnlXPgPLMOnuvb4LizJsvlN8u3Wvd3qSKhM6BlfHg7/s1600/alo.gif" />');
theText = theText.replace(/:N/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV7wSELdnlUa6kmKuWE99Kau87VF8MQm5wXZw7OESRY54MmW2BNgGC-HHj2f68GiXDGGGK-O1A6yXk35HR8E1xstQFMb-gZGdPCcjQi_deEy4l5DZ0kTQ7XGXrWOxHG9Gqv1lYB4-ws2Or/s1600/shutup.gif" />');
theText = theText.replace(/:O/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_tmoM-S2e6_FdFcj4MKoIiZBvTK97HuyUtgiI-c3GlYOBNsGpiK_6qNCQUJqCY8KWrTJWX1I2Q6lF9XwtO_Oq2xND1yu4lXxK_gWwH66NAgusJ-0Nz6AXMm_RaejmWhwQQGE5NAZiZWA1/s1600/yeulam.gif" />');
theText = theText.replace(/:P/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2_esugHtNSHEJkwvBlKFMYI8vjwiaykSHDJv6VngeTU8rf2uvV67FclPE8xgdBHpq36gGSTYgp9PIOOeDaaK1WWQRWLhwLTVRVNvDYd4P4I2pTJGyQeXNRGq1XOVSjMBq4Y7RuiqrYx5D/s1600/datbomb.gif" />');

bodyText.innerHTML = theText;}
//]]>
</script>
<script type='text/javascript'>
emoticonBloggerHuynhNhatHa();
</script>
</b:if>


  1. Chú ý


    • 1 Để chức năng biểu tượng cảm xúc hoạt động trong phần nhận xét thì bạn phải thay đổi ID comments-block cho phù hợp. ID này nằm trong một thẻ chỉ định thành phần chứa các dữ liệu của nhận xét, thẻ này thường nằm ngay trước dòng <b:loop values='data:post.comments' var='comment'>. Tùy theo cách đặt tên của người thiết kế Template mà id này có thể có tên khác nhau ví dụ: comments-block, comments-block3, comments_block, cm_block, commentsblock …

    • 2 Sau khi cài đặt thủ thuật này, bạn cần cập nhật lại thủ thuật Chèn biểu tượng cảm xúc vào nhận xét dạng input để tạo sự thống nhất.

Thứ Bảy, 17 tháng 9, 2011

Chắc hẳn bạn cũng biết rằng hệ thống nhận xét của Blogspot có phần khung viết nhận xét (Comments Form and Editor) dưới dạng nhúng từ bên ngoài qua thẻ iframe do đó chúng ta không thể chèn biểu tượng cảm xúc (Emoticons) vào nhận xét bằng phương pháp input như Wordpress. Để giải quyết vấn đề này, chỉ có một cách là tạo khung nhận xét riêng theo kiểu Wordpress cho Blogspot. Tuy nhiên tạm thời mình chưa tìm ra giải pháp vì thế có thể áp dụng một thủ thuật trung gian, tức là tạo tính năng chèn biểu tượng cảm xúc trực tiếp vào một vùng text (textarea) kết hợp nút chọn để người dùng copy mã nhập rồi dán vào khung viết nhận xét, ngoài ra còn có chức năng chèn các thẻ như <b>, <i>, <em>, <a>. Hy vọng đây sẽ là bàn đạp để chúng ta tiến thêm một bước trong công cuộc hiện đại hóa hệ thống nhận xét của Blogspot.

Bạn có thể xem Demo ở phần viết bình luận của Thủ thuật Blogger.


Thủ thuật này đã kết hợp thủ thuật tạo bộ biểu tượng cảm xúc cho nhận xét vì thế nếu áp dụng thủ thuật này thì bạn cần tháo thủ thuật cũ liên quan (nếu đã cài đặt rồi) và thực hiện theo các bước sau đây:

Bước 1. Đăng nhập Blogger, vào Design >> Edit HTML, chọn Expand Widget Templates. Đặt đoạn code sau đây vào trước thẻ </body>. Đây là script chức năng cho bộ biểu tượng cảm xúc hoạt động.

<b:if cond='data:blog.pageType == "item"'>
<script type='text/javascript'>
//<![CDATA[
//Emoticons for Blogger Comments || Author: Huynh Nhat Ha || http://www.thuthuatblogger.info || © Copyright 2010
function emoticonBloggerHuynhNhatHa() {

if(!document.getElementById) {return;} // no support

bodyText = document.getElementById('comments-block');

theText = bodyText.innerHTML;
theText = theText.replace(/:1\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH2GcZRWJ-mB_A9cmApfk4TJQzOI6TePBkc3cfTAZmHxxi_32ItNucScnRvPfuW9TB_i5-kIAo-XvVrF-fY2IelBclCwV5vH6P2Jh25C0_N-JVbxTmS96_Jg_kc2qFrZ4-oSCUAa-15lxv/s1600/49.gif" />');
theText = theText.replace(/:2\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgESaISRrg8mzJrsbbf92zvdfkI1VqQgCpbHE06GL-m10jRnAsUc5UQT3cCYVddsH5LIwCIuSexy9uDEVcNmU6EBTEGwLJUe3YrTRoGrA3Cr28SOg4WiEQaHeu04_f4iXsNHNNh9oSD4ncg/s1600/102.gif" />');
theText = theText.replace(/:3\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP3GxuYaY8Og48gJX1Ljgba9y189eKp3Htu14o8saDeRWmeTwmMzWQp8r63sK96-5MRMA9Ln8itmOtll_AO_moAnQfxhnQogSLXCk_NDcQTfUzmnnl5ICh5jgQeC2EyEQkb1ELq46Wgfl4/s1600/113.gif" />');
theText = theText.replace(/:4\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIQkb8Wq-nWyyJb_5_Ht2PKDEO7vnDzwxfniG0XyQ8jOhS2u3vOPDlcHHcNbSn0Aak6VRIqgLIT5wq6CWwAT3RPLW13eaFpOZNvqOhy4EGEtMkdr6DXVxMS_HBN2amBDSSY53Rly6QAkL3/s1600/93.gif" />');
theText = theText.replace(/:5\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLG_zsOyWiqt2WYLfjSSspY9cOF5AnoB4jje6lhnJ2tV8pVehMm_aijMY6908LCjhnv2Z2Azru2FAwPobKGXlYNvQsmJJwdzo6vfScPZ6UquQeGzS4FmpOj6xkAIkDXIIri-fq8O3EUkX7/s1600/61.gif" />');
theText = theText.replace(/:6\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifdjf4CaUnnqZ-vY7rVNbbmOraQSAk-3NO1QBqBd8gSy5c65Zc0jahIl6zsTkJ94KVX2vGLSbbcFHNT1K2k2WW3IbaXdK2XiaKdHBlbBh5Ux4k5iF8_Rdbt3RTxnZYT7rH8AmigsAK10z0/s1600/134.gif" />');
theText = theText.replace(/:7\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR3wjPS_2ceiD1BZ3Dq3FO8_adrPGqTAa2FOJk9ygK9JUTuQw1Nv3-CW9SjcXMR9u-WG4lEplRqroqNASqOsz40dQm3WAEYq7B2xG_Vcokz3i8evmOT5zUfLW8TLK3Fpc8-TSSI1K7H1oE/s1600/39.gif" />');
theText = theText.replace(/:8\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1WLCtPaJ0EYLjnSaiMlklD5YfwmHKn85R12JqHN6Y_91ZehChQSyvF78uikm4y5_wzJvMy0Doy7AzIcIxrm0BPk5PCBqzcP-bSj6VY8gY0TsrOcU_5is7JdWFBlsqXIjfvgCksc9FCwGN/s1600/106.gif" />');
theText = theText.replace(/:9\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-gW6NNd_gt89k0DE3mDVT4VKGZyO1LcybA9dE3ntSsfgwElDs6d292rSuXvdLI2fGRPFIVbazsAD6yxzWrPo6ZgtqtRoRztdYDkXH8t2w-zr8PQkqrBhgokvo2u1p0aFXSAbGtx4Z5i7c/s1600/43.gif" />');
theText = theText.replace(/:A\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieUhhDNotQy2RaBst3jnrXH9ySLVxmJ-OtZJ8VIho_VD2sjbfhXg7US4W63HDYIAFxv88RflX-OFkvI48kjEhrVsNvpDIJNVmkSVQjC7FGDU5bJNAvZ5lzHxo_i1Vc63OMn0MPMcpcZLk8/s1600/111.gif" />');
theText = theText.replace(/:B\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinfgJ_lVCgHJUlbTWHrdOXwuuedK3Opzy7vBBYe6hzD3J9d_so6XI8T7L0JFLB-Si0xcWSeN3PbTt6VvuG5zgQRH0qOoV_tF2IuobALqPcbBJvQCi4nn-rSn7ud_Ec3CgF50Mxbo6hGU3p/s1600/48.gif" />');
theText = theText.replace(/:C\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8WtvNyYaNdPQLkY57KCOMQPIVeetQXgTUGgjeBxDoT2PHyQxkSOHaIyx7FQpRkaeT71D0yEoHOhzjAgIiSYn8_Z_3zdORwnYYkuB1WMcnw2XkshiwiO31fKmuqq0XCo5L3WPH2ZTTkw73/s1600/54.gif" />');
theText = theText.replace(/:D\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_L_hb-SmYZF513svMgzOwh2ZA_591M3VWuwdluodD6JFyYczRui2WyfqUcsQ44onxHhdg4DM0Qzn-mcO3Z8xQMTZ-4wZ-apbpqyzNPi1TImwfJ_n1BSoDDN1NeMCoS8oJE0PnSVpEekVJ/s1600/63.gif" />');
theText = theText.replace(/:E\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwbvae-91I_uRzIDi2qKqY2w0lKCNVZtiGHUIOhBmG-nln07tLUBYnZ9UzTQO1N3rED0Hcpb5_9EvgdMkVC9xfc3linDEkUlnqVT9VN1HvLfroHIuARzgNWItvCHhGJ_hShSe6fFLb9iEb/s1600/100.gif" />');
theText = theText.replace(/:F\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiET8ub6ImW6lIHzU5VOWDLdWh9XYDFdR4ot0Gt6ZTR9gSyuWKXy_PY6Tn7fGqy6s-bPGOxKJXYeQ7jryEpyzr4TQ1PBKZU-Aso5wsBH8LUwZNcs4dzLUnE-Recq1xIUHoWLnsLf_SLMxPs/s1600/45.gif" />');
theText = theText.replace(/:G\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih2A15ym_T-l6ixSIh88NABjD9fV1AUV3RvPIa803VaqObboSlaj7wUgqCOQ1NAuhhnCE69KgwQwbEgQphRNL_qtACnkvkw8SPIJ1g73Bx0xmeS446LtinnyaxkDf7OoBWRUWaboMGVubL/s1600/77.gif" />');
theText = theText.replace(/:H\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXYgoLEEaQOHKgrhgTXwPbfGX3VZgXQxDAL3pP8nm5dGK_ubJ5mGthbKmbv8bnXpt56MtKltSgM8G0eUmkZt5CVfk9boIh23aHiveVnXjuTQ4yBoGHBD7dw5q_zpusXLLmjm2kzO91BgYN/s1600/86.gif" />');
theText = theText.replace(/:I\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8B002eqVZ1rxLs5J9nmY83Y6JosNTqXKzgyYD6ETdnEgDU5WCaEQDRYesT8z5ckZVafdRcX2NUxIQAwKBaDKzVol8c0zU1yGCeL0gsfwx8jKnaw62ufyvxDaOLpCUAo8o9c4MJPlBdw5s/s1600/94.gif" />');
theText = theText.replace(/:J\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUvLqZC_5bD48R95LqrdfNqs60w6IoBMzzlGeaBCJW_mbvPzvIgUa0xe46p5sXqrzPqlAwdcgzncKLV_HzJuo7rjtHqmrWTWXRmyoWN5lUl5ZFQPMsNFBEhQbCvS8D8-XLtaMQUpExQ4hU/s1600/83.gif" />');
theText = theText.replace(/:K\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggrQbBnhwzuB3JEU4pDUKHUJJPG7i89x9bm3KMzqYjpDw972_mDqgWSK9oHO0UG9GLgoOwPZ_cAQUxlBKe_F-UZvKgjiW2ZjQ3ZoTT29Z3c6zHKR7TEDRJFJHeASN77fLhDfgNKSo2KZ-j/s1600/59.gif" />');
theText = theText.replace(/:L\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqFt9nTxTp8oqTSEgjw2bApS63AxJ7pxnh0h6F7WX2bVb3XvBaCvjtmTXfKjSGqyXzhaRdnTHBbRU4SQ-u4FrD1TUBG1F3ZqItqeuFu0AsrHcPNmTF957Z3UJbTMwwhZe6DYeAq44lcxr9/s1600/soldierbaby.gif" />');
theText = theText.replace(/:M\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMxbgjZJdu6uW1qjggXbbsg8TlocRzrSYxNxSah5KBrEWaKp-1f1H7VIbpvhL_Du90hswfrHprLJ2bde-EggXxmtTc024vTzzlO6pnlXPgPLMOnuvb4LizJsvlN8u3Wvd3qSKhM6BlfHg7/s1600/alo.gif" />');
theText = theText.replace(/:N\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV7wSELdnlUa6kmKuWE99Kau87VF8MQm5wXZw7OESRY54MmW2BNgGC-HHj2f68GiXDGGGK-O1A6yXk35HR8E1xstQFMb-gZGdPCcjQi_deEy4l5DZ0kTQ7XGXrWOxHG9Gqv1lYB4-ws2Or/s1600/shutup.gif" />');
theText = theText.replace(/:O\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_tmoM-S2e6_FdFcj4MKoIiZBvTK97HuyUtgiI-c3GlYOBNsGpiK_6qNCQUJqCY8KWrTJWX1I2Q6lF9XwtO_Oq2xND1yu4lXxK_gWwH66NAgusJ-0Nz6AXMm_RaejmWhwQQGE5NAZiZWA1/s1600/yeulam.gif" />');
theText = theText.replace(/:P\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2_esugHtNSHEJkwvBlKFMYI8vjwiaykSHDJv6VngeTU8rf2uvV67FclPE8xgdBHpq36gGSTYgp9PIOOeDaaK1WWQRWLhwLTVRVNvDYd4P4I2pTJGyQeXNRGq1XOVSjMBq4Y7RuiqrYx5D/s1600/datbomb.gif" />');

bodyText.innerHTML = theText;}
//]]>
</script>
<script type='text/javascript'>
emoticonBloggerHuynhNhatHa();
</script>
</b:if>

Cần chú ý để chức năng biểu tượng cảm xúc hoạt động trong phần nhận xét thì bạn phải thay đổi ID comments-block cho phù hợp. ID này nằm trong một thẻ chỉ định thành phần chứa các dữ liệu của nhận xét, thẻ này thường nằm ngay trước dòng <b:loop values='data:post.comments' var='comment'>. Tùy theo cách đặt tên của người thiết kế Template mà id này có thể có tên khác nhau ví dụ: comments-block, comments-block3, comments_block, cm_block, commentsblock …

Bước 2. Tìm đến đoạn code như bên dưới. Đoạn code này biểu thị phần khung viết nhận xét.

<data:blogTeamBlogMessage/>
<a expr:href='data:post.commentFormIframeSrc' id='comment-editor-src'/>
<iframe allowtransparency='true' class='blogger-iframe-colorize blogger-comment-from-post' frameborder='0' height='410' id='comment-editor' name='comment-editor' src='' width='100%'/>

Đặt trước đoạn code trên bằng đoạn code bên dưới:

<script type='text/javascript'>
//<![CDATA[
// Script to insert Emoticons and Links on Blogspot Comments V1 by www.thuthuatblogger.info
function comments_URL() {
var r = prompt("Nhập địa chỉ trang", "http://");
var p = prompt("Nhập link text hiển thị", "Text");
if(r != "") ; if(p != ""){
document.getElementById('comments_input').value += "<a href='" + r + "' rel='nofollow'>" + p + "<\/a>";
} else {
alert("Bạn đã nhập xong dữ liệu");
}
}
function comments_HTML() {
document.getElementById('comments_input').value += '<a href=\'http://URL dẫn đến link \'>Trang<\/a>';
}
function comments_B() {
document.getElementById('comments_input').value += '<b><\/b>';
}
function comments_I() {
document.getElementById('comments_input').value += '<i><\/i>';
}
function comments_EM() {
document.getElementById('comments_input').value += '<em><\/em>';
}
function moreSmilies() {
document.getElementById('smiley-more').style.display = 'inline';
document.getElementById('smiley-toggle').innerHTML = '<a href="javascript:lessSmilies()">&laquo;&nbsp;Less</a></span>';
}
function lessSmilies() {
document.getElementById('smiley-more').style.display = 'none';
document.getElementById('smiley-toggle').innerHTML = '<a href="javascript:moreSmilies()">More&nbsp;&raquo;</a>';
}
//]]>
</script>
<style>
#comments_insert {padding:0;margin:0;width:600px;float:left;text-align: center}
#comments_insert img {padding:0;border:none;margin:2px}
.text_style_wrap {margin-top:10px;}
.text_style {border:1px solid #069;padding:3px;background: #d8eaee}
#comments_insert a {text-decoration:none}
#comments_HTML {display: none}
#comments_input {margin-top:10px}
.tooltip{outline:none;cursor:help;text-decoration:none;position:relative}
.tooltip span{margin-left:-999em;position:absolute}
.tooltip:hover span{border-radius:5px 5px;-moz-border-radius:5px;-webkit-border-radius:5px;box-shadow:5px 5px 5px rgba(0,0,0,0.1);-webkit-box-shadow:5px 5px rgba(0,0,0,0.1);-moz-box-shadow:5px 5px rgba(0,0,0,0.1);font-family:Calibri,Tahoma,Geneva,sans-serif;position:absolute;left:1em;top:2em;z-index:99;margin-left:0;width:300px}
.tooltip:hover img{border:0;margin:-10px 0 0 -55px;float:left;position:absolute}
.tooltip:hover em{font-family:Candara,Tahoma,Geneva,sans-serif;font-size:1.2em;font-weight:bold;display:block;padding:0.2em 0 0.6em 0}
.help{padding: 0.8em 1em; background: #FFCCAA; border: 1px solid #FF3334;text-align:justify;color:#000}
</style>
<!--[if IE]> <style> #comments_URL {display: none} #comments_HTML {display:inline} </style> <![endif]-->

<div id='comments_insert'>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:1) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH2GcZRWJ-mB_A9cmApfk4TJQzOI6TePBkc3cfTAZmHxxi_32ItNucScnRvPfuW9TB_i5-kIAo-XvVrF-fY2IelBclCwV5vH6P2Jh25C0_N-JVbxTmS96_Jg_kc2qFrZ4-oSCUAa-15lxv/s1600/49.gif' style='border: 0; padding:0' title='hê hê hê'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:2) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgESaISRrg8mzJrsbbf92zvdfkI1VqQgCpbHE06GL-m10jRnAsUc5UQT3cCYVddsH5LIwCIuSexy9uDEVcNmU6EBTEGwLJUe3YrTRoGrA3Cr28SOg4WiEQaHeu04_f4iXsNHNNh9oSD4ncg/s1600/102.gif' style='border: 0; padding:0' title='hôn hôn'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:3) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP3GxuYaY8Og48gJX1Ljgba9y189eKp3Htu14o8saDeRWmeTwmMzWQp8r63sK96-5MRMA9Ln8itmOtll_AO_moAnQfxhnQogSLXCk_NDcQTfUzmnnl5ICh5jgQeC2EyEQkb1ELq46Wgfl4/s1600/113.gif' style='border: 0; padding:0' title='ua ua ua'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:4) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIQkb8Wq-nWyyJb_5_Ht2PKDEO7vnDzwxfniG0XyQ8jOhS2u3vOPDlcHHcNbSn0Aak6VRIqgLIT5wq6CWwAT3RPLW13eaFpOZNvqOhy4EGEtMkdr6DXVxMS_HBN2amBDSSY53Rly6QAkL3/s1600/93.gif' style='border: 0; padding:0' title='nhìn nè'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:5) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLG_zsOyWiqt2WYLfjSSspY9cOF5AnoB4jje6lhnJ2tV8pVehMm_aijMY6908LCjhnv2Z2Azru2FAwPobKGXlYNvQsmJJwdzo6vfScPZ6UquQeGzS4FmpOj6xkAIkDXIIri-fq8O3EUkX7/s1600/61.gif' style='border: 0; padding:0' title='vỗ tay'/></a>
<span id='smiley-more' style='display: none;'>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:6) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifdjf4CaUnnqZ-vY7rVNbbmOraQSAk-3NO1QBqBd8gSy5c65Zc0jahIl6zsTkJ94KVX2vGLSbbcFHNT1K2k2WW3IbaXdK2XiaKdHBlbBh5Ux4k5iF8_Rdbt3RTxnZYT7rH8AmigsAK10z0/s1600/134.gif' style='border: 0; padding:0' title='tát bớp'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:7) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR3wjPS_2ceiD1BZ3Dq3FO8_adrPGqTAa2FOJk9ygK9JUTuQw1Nv3-CW9SjcXMR9u-WG4lEplRqroqNASqOsz40dQm3WAEYq7B2xG_Vcokz3i8evmOT5zUfLW8TLK3Fpc8-TSSI1K7H1oE/s1600/39.gif' style='border: 0; padding:0' title='rơi lệ'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:8) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1WLCtPaJ0EYLjnSaiMlklD5YfwmHKn85R12JqHN6Y_91ZehChQSyvF78uikm4y5_wzJvMy0Doy7AzIcIxrm0BPk5PCBqzcP-bSj6VY8gY0TsrOcU_5is7JdWFBlsqXIjfvgCksc9FCwGN/s1600/106.gif' style='border: 0; padding:0' title='money money'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:9) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-gW6NNd_gt89k0DE3mDVT4VKGZyO1LcybA9dE3ntSsfgwElDs6d292rSuXvdLI2fGRPFIVbazsAD6yxzWrPo6ZgtqtRoRztdYDkXH8t2w-zr8PQkqrBhgokvo2u1p0aFXSAbGtx4Z5i7c/s1600/43.gif' style='border: 0; padding:0' title='lêu lêu'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:A) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieUhhDNotQy2RaBst3jnrXH9ySLVxmJ-OtZJ8VIho_VD2sjbfhXg7US4W63HDYIAFxv88RflX-OFkvI48kjEhrVsNvpDIJNVmkSVQjC7FGDU5bJNAvZ5lzHxo_i1Vc63OMn0MPMcpcZLk8/s1600/111.gif' style='border: 0; padding:0' title='lắc đầu'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:B) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinfgJ_lVCgHJUlbTWHrdOXwuuedK3Opzy7vBBYe6hzD3J9d_so6XI8T7L0JFLB-Si0xcWSeN3PbTt6VvuG5zgQRH0qOoV_tF2IuobALqPcbBJvQCi4nn-rSn7ud_Ec3CgF50Mxbo6hGU3p/s1600/48.gif' style='border: 0; padding:0' title='khóc ròng'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:C) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8WtvNyYaNdPQLkY57KCOMQPIVeetQXgTUGgjeBxDoT2PHyQxkSOHaIyx7FQpRkaeT71D0yEoHOhzjAgIiSYn8_Z_3zdORwnYYkuB1WMcnw2XkshiwiO31fKmuqq0XCo5L3WPH2ZTTkw73/s1600/54.gif' style='border: 0; padding:0' title='I don’t know'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:D) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_L_hb-SmYZF513svMgzOwh2ZA_591M3VWuwdluodD6JFyYczRui2WyfqUcsQ44onxHhdg4DM0Qzn-mcO3Z8xQMTZ-4wZ-apbpqyzNPi1TImwfJ_n1BSoDDN1NeMCoS8oJE0PnSVpEekVJ/s1600/63.gif' style='border: 0; padding:0' title='hi hi hi'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:E) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwbvae-91I_uRzIDi2qKqY2w0lKCNVZtiGHUIOhBmG-nln07tLUBYnZ9UzTQO1N3rED0Hcpb5_9EvgdMkVC9xfc3linDEkUlnqVT9VN1HvLfroHIuARzgNWItvCHhGJ_hShSe6fFLb9iEb/s1600/100.gif' style='border: 0; padding:0' title='đá một phát'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:F) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiET8ub6ImW6lIHzU5VOWDLdWh9XYDFdR4ot0Gt6ZTR9gSyuWKXy_PY6Tn7fGqy6s-bPGOxKJXYeQ7jryEpyzr4TQ1PBKZU-Aso5wsBH8LUwZNcs4dzLUnE-Recq1xIUHoWLnsLf_SLMxPs/s1600/45.gif' style='border: 0; padding:0' title='cười lớn giơ răng'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:G) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih2A15ym_T-l6ixSIh88NABjD9fV1AUV3RvPIa803VaqObboSlaj7wUgqCOQ1NAuhhnCE69KgwQwbEgQphRNL_qtACnkvkw8SPIJ1g73Bx0xmeS446LtinnyaxkDf7OoBWRUWaboMGVubL/s1600/77.gif' style='border: 0; padding:0' title='cụng ly'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:H) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXYgoLEEaQOHKgrhgTXwPbfGX3VZgXQxDAL3pP8nm5dGK_ubJ5mGthbKmbv8bnXpt56MtKltSgM8G0eUmkZt5CVfk9boIh23aHiveVnXjuTQ4yBoGHBD7dw5q_zpusXLLmjm2kzO91BgYN/s1600/86.gif' style='border: 0; padding:0' title='chém gió'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:I) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8B002eqVZ1rxLs5J9nmY83Y6JosNTqXKzgyYD6ETdnEgDU5WCaEQDRYesT8z5ckZVafdRcX2NUxIQAwKBaDKzVol8c0zU1yGCeL0gsfwx8jKnaw62ufyvxDaOLpCUAo8o9c4MJPlBdw5s/s1600/94.gif' style='border: 0; padding:0' title='bắt tay'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:J) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUvLqZC_5bD48R95LqrdfNqs60w6IoBMzzlGeaBCJW_mbvPzvIgUa0xe46p5sXqrzPqlAwdcgzncKLV_HzJuo7rjtHqmrWTWXRmyoWN5lUl5ZFQPMsNFBEhQbCvS8D8-XLtaMQUpExQ4hU/s1600/83.gif' style='border: 0; padding:0' title='ăn ăn ăn'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:K) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggrQbBnhwzuB3JEU4pDUKHUJJPG7i89x9bm3KMzqYjpDw972_mDqgWSK9oHO0UG9GLgoOwPZ_cAQUxlBKe_F-UZvKgjiW2ZjQ3ZoTT29Z3c6zHKR7TEDRJFJHeASN77fLhDfgNKSo2KZ-j/s1600/59.gif' style='border: 0; padding:0' title='byyeee'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:L) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqFt9nTxTp8oqTSEgjw2bApS63AxJ7pxnh0h6F7WX2bVb3XvBaCvjtmTXfKjSGqyXzhaRdnTHBbRU4SQ-u4FrD1TUBG1F3ZqItqeuFu0AsrHcPNmTF957Z3UJbTMwwhZe6DYeAq44lcxr9/s1600/soldierbaby.gif' style='border: 0; padding:0' title='nhóc lính'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:M) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMxbgjZJdu6uW1qjggXbbsg8TlocRzrSYxNxSah5KBrEWaKp-1f1H7VIbpvhL_Du90hswfrHprLJ2bde-EggXxmtTc024vTzzlO6pnlXPgPLMOnuvb4LizJsvlN8u3Wvd3qSKhM6BlfHg7/s1600/alo.gif' style='border: 0; padding:0' title='Alo'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:N) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV7wSELdnlUa6kmKuWE99Kau87VF8MQm5wXZw7OESRY54MmW2BNgGC-HHj2f68GiXDGGGK-O1A6yXk35HR8E1xstQFMb-gZGdPCcjQi_deEy4l5DZ0kTQ7XGXrWOxHG9Gqv1lYB4-ws2Or/s1600/shutup.gif' style='border: 0; padding:0' title='Shup up'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:O) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_tmoM-S2e6_FdFcj4MKoIiZBvTK97HuyUtgiI-c3GlYOBNsGpiK_6qNCQUJqCY8KWrTJWX1I2Q6lF9XwtO_Oq2xND1yu4lXxK_gWwH66NAgusJ-0Nz6AXMm_RaejmWhwQQGE5NAZiZWA1/s1600/yeulam.gif' style='border: 0; padding:0' title='Yêu lắm đó'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:P) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2_esugHtNSHEJkwvBlKFMYI8vjwiaykSHDJv6VngeTU8rf2uvV67FclPE8xgdBHpq36gGSTYgp9PIOOeDaaK1WWQRWLhwLTVRVNvDYd4P4I2pTJGyQeXNRGq1XOVSjMBq4Y7RuiqrYx5D/s1600/datbomb.gif' style='border: 0; padding:0' title='Đặt bom'/></a>
</span>
<span id='smiley-toggle'><a href='javascript:moreSmilies()'>
More &#8594;</a></span>

<div class='text_style_wrap'>
<a href='javascript: void(0);' onClick='comments_B()'><span class='text_style'><b>Chữ đậm</b></span></a>
<a href='javascript: void(0);' onClick='comments_I()'><span class='text_style'><i>Chữ nghiêng</i></span></a>
<a href='javascript: void(0);' onClick='comments_EM()'><span class='text_style'><em>Chữ nghiêng 2</em></span></a>
<a href='javascript: void(0);' id='comments_HTML' onClick='comments_HTML()'><span class='text_style'>Chèn Link</span></a>
<a href='javascript: void(0);' id='comments_URL' onClick='comments_URL()'><span class='text_style'>Chèn Link</span></a>
<script type='text/javascript'>
function openup_parseHTML() { window.open(&quot;http://ha-escapexml.blogspot.com&quot;, &quot;followblog&quot;, &quot;height=540, width=450, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no&quot; ); }
</script>
<a href='javascript:openup_parseHTML()' rel='nofollow' title='Mã hóa code trước khi đưa vào bình luận'><span class='text_style'>Mã hóa code</span></a>
<a class='tooltip' href='javascript: void(0);'><b style='color:#F00'>Help ?</b><span class='help'>Nhấn vào biểu tượng hoặc kiểu chữ hoặc chèn link sau đó nhấn nút Chọn rồi copy (Ctrl + C) để paste (Ctrl + V) vào khung viết bình luận. Mã hóa code nếu bạn muốn đưa code vào bình luận.</span></a>
</div>
<form name='comments_form'>
<textarea cols='70' id='comments_input' rows='1' style='background: #F8F8FF;margin-bottom:7px'/>
<br/>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).select();'><span class='text_style'>Chọn</span></a>
<a href='javascript: void(0);' onClick='document.comments_form.reset();'><span class='text_style'>Xóa</span></a>
</form>
</div>

Lưu Template. Trên đây mình gắn sẳn 25 biểu tượng cảm xúc, nếu các bạn muốn thêm thì có thể tự nghiên cứu để gắn thêm vào, đảm bảo sự đồng nhất biểu tượng theo thứ tự ở Bước 1 và Bước 2. Những phần được đánh dấu màu đỏ là những phần bạn có thể tùy biến theo ý thích của mình.

Thứ Năm, 15 tháng 9, 2011

Trước đây mình đã từng giới thiệu cách chèn tự động video trên Youtube vào blogspot. Cách này áp dụng cho code embed kiểu cũ. Mà code embed kiểu cũ của Youtube thường có dạng như thế này:

<object width="420" height="315"><param name="movie" value="http://www.youtube.com/v/2WnaQgQwGa4?version=3&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/2WnaQgQwGa4?version=3&amp;hl=en_US" type="application/x-shockwave-flash" width="420" height="315" allowscriptaccess="always" allowfullscreen="true"></embed></object>

Trong đoạn code trên thì 2WnaQgQwGa4 chính là ID của video. Hiện nay Youtube đã áp dụng code chèn kiểu mới, có dạng như sau:

<iframe width="420" height="315" src="http://www.youtube.com/embed/2WnaQgQwGa4" frameborder="0" allowfullscreen></iframe>

Đối với các blogspot chuyên đăng video clip lấy từ Youtube thì công việc chèn video cần được tự động hóa, giúp người quản trị đỡ phần mệt nhọc. Ngoài cách chèn tự động trước đây mình đã giới thiệu, hôm nay mình giới thiệu tiếp một cách khác. Trước tiên bạn cần đặt một đoạn script tạo chức năng chèn video tự động trước thẻ </head> trong Template.

<script type='text/javascript'>
//<![CDATA[
// Script to insert Youtube video automatically on Blogspot by www.thuthuatblogger.info
function insert_YouTube(IDyoutube) {
var width = 430; // có thể chỉnh chiều rộng khung video
var height = 315; // có thể chỉnh chiều cao khung video
var output = "<div style=\"text-align:center;\">";
output = '<iframe width="'+width+'" height="'+height+'" src="http://www.youtube.com/embed/'+IDyoutube+'?rel=0" frameborder="0" allowfullscreen>'; // rel=0 giúp vô hiệu hóa chức năng video liên quan
output += "</iframe>";
output += "</div>";
document.write (output);
}
//]]>
</script>

Đến đây, mỗi khi đăng bài viết, ở chế độ Edit HTML trong công cụ đăng bài, bạn chỉ việc đặt code như sau:

<script>insert_YouTube("XXXXXXXXXXX");</script>

Trong đó XXXXXXXXXXX chính là ID của video trên Youtube.
Ưu điểm của cách này so với cách cũ là khi đang play video, click vào màn hình video thì sẽ không xuất hiện tab dẫn đến trang video Youtube (trong khi cách cũ vẫn bị tình trạng này).

Thứ Tư, 14 tháng 9, 2011

Khi nói đến lập chỉ mục trang web, chúng ta đang đề cập đến việc thêm một trang web vào danh sách các kết quả của một công cụ tìm kiếm. Về lý thuyết, người sử dụng Blogger không cần phải làm bất cứ điều gì phức tạp để blogspot được đánh chỉ mục, công việc này được thực hiện tự động khi bạn khai báo trong mục cài đặt Settings >> Basic:


Việc đưa một blogspot để được đánh chỉ mục trên công cụ tìm kiếm của Google có thể được thực hiện thủ công tại trang Add URL của Google. Tại đây, bạn chỉ cần điền vào URL trang blogspot của bạn là được.

Tuy nhiên, đối với blogspot, việc tự động lập chỉ mục trên công cụ tìm kiếm có những tiêu cực nhất định, nếu bạn để tất cả các trang trên blogspot của bạn đều được lập chỉ mục thì đó là một sai lầm. Nhìn chung, một blogspot nên chỉ lập chỉ mục trang chính, các trang bài viết (item page) và các trang tĩnh (static page), còn mọi kiểu trang khác (gồm các trang nhãn, các trang phân trang và các trang lưu trữ) nên bỏ qua và cần được chặn không cho lập chỉ mục để tránh việc lặp nội dung.

Những kiểu trang cần phải chặn như:

http://huynh-nhat-ha.blogspot.com/search/label/Blogger
http://huynh-nhat-ha.blogspot.com/search?updated-max=2011-08-31T00%3A00%3A00-03%3A00
http://huynh-nhat-ha.blogspot.com/2011_09_01_archive.html

Những kiểu trang như thế cần được chặn không cho lập chỉ mục vì chúng chứa những thông tin trùng lặp với trang chủ. Về lý thuyết file robot.txt chặn các URL trang nhãn, song đôi khi bạn vẫn tìm thấy các trang nhãn xuất hiện trên kết quả công cụ tìm kiếm do nhiều lý do khác nhau và điều này không có lợi cho blogspot của bạn.

Để chặn việc lập chỉ mục các trang lưu trữ, chúng ta sử dụng lệnh điều kiện như thế này:

<b:if cond='data:blog.pageType == &quot;archive&quot;'>
<meta content='noindex,nofollow' name='robots'/>
</b:if>

Tiếp tục muốn chặn không cho lập chỉ mục các trang khác ngoài trang chủ thuộc kiểu trang chính (index) thì ta sử dụng như sau:

<b:if cond='data:blog.pageType == &quot;index&quot;'>
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<meta content='noindex,nofollow' name='robots'/>
</b:if>
</b:if>

Tựu trung lại, chúng ta sẽ có một đoạn code hoàn chỉnh để giúp chúng ta tối ưu hóa việc lập chỉ mục cho blogspot của bạn như sau:

<b:if cond='data:blog.pageType == &quot;archive&quot;'>
<!-- nếu là các trang lưu trữ thì không cho lập chỉ mục -->
<meta content='noindex,nofollow' name='robots'/>
<b:else/>
<b:if cond='data:blog.pageType == &quot;index&quot;'>
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<!-- nếu là các trang nhãn và trang phân trang thì không cho lập chỉ mục -->
<meta content='noindex,nofollow' name='robots'/>
<b:else/>
<!-- còn lại trang chủ cho phép lập chỉ mục -->
<meta content='all,index,follow' name='robots'/>
</b:if>
<b:else/>
<!-- còn lại các trang bài viết và trang tĩnh cũng cho phép lập chỉ mục -->
<meta content='all,index,follow' name='robots'/>
</b:if>
</b:if>

Đoạn code trên cần được đặt sau dòng <b:include data='blog' name='all-head-content'/> trong Template của bạn.

Nếu kết hợp tối ưu hóa thẻ tiêu đề và thẻ meta mô tả cho blogspot thì bạn sẽ dùng code như sau:

<b:include data='blog' name='all-head-content'/>
<!-- Meta Tags and Indexing SEO Full Pack by http://www.thuthuatblogger.info for Bloggers -->
<b:if cond='data:blog.pageType == &quot;archive&quot;'>
<!-- nếu là các trang lưu trữ thì không cho lập chỉ mục -->
<meta content='noindex,nofollow' name='robots'/>
<b:else/>
<b:if cond='data:blog.pageType == &quot;index&quot;'>
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<!-- nếu là các trang nhãn và trang phân trang thì không cho lập chỉ mục -->
<meta content='noindex,nofollow' name='robots'/>
<b:else/>
<!-- còn lại trang chủ cho phép lập chỉ mục và tối ưu thẻ meta -->
<meta content='Đây là đoạn text mô tả ngắn gọn cho chủ đề blogspot của bạn.' name='description'/>
<meta content='Từ khóa 1, từ khóa 2, từ khóa 3, từ khóa 4, từ khóa 5' name='keywords'/>
<meta content='all,index,follow' name='robots'/>
</b:if>
<b:else/>
<!-- còn lại các trang bài viết và trang tĩnh cũng cho phép lập chỉ mục -->
<meta expr:content='data:blog.pageName' name='Description'/>
<meta content='all,index,follow' name='robots'/>
</b:if>
</b:if>
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<title><data:blog.title/></title>
<b:else/>
<title><data:blog.pageName/> | <data:blog.title/></title>
</b:if>
<b:skin><![CDATA[/*

Thứ Ba, 13 tháng 9, 2011

Giới thiệu chung
Mình làm cái phần mềm Gia Phả từ ngày mới bắt đầu viết code php, năm 2003. Từ những ý tưởng chính như bài viết sau:  GIA PHẢ, TRUYỀN THỐNG VÀ HIỆN ĐẠI (bài này viết từ năm 2003, cũ rích)

Ban đầu, website rất cùi (bây giờ cũng cùi??), chỉ đơn giản là HTML, TEXT. Lý do chính là thời đó, mình nghĩ là người dùng toàn là những ông cụ lớn hơn 60 tuổi, xài Dialup là chính. Làm gì có ADSL như bây giờ. Phiên bản đầu, việc cập nhật thông tin gia phả cực kỳ khó khăn. Chỉ dùng web form. Chậm rì, lỗi nhiều như bug.

Sau này, Bản nâng cấp phần soạn thảo được viết lại hoàn toàn bằng JAVA SWT Vietnamgiapha Offline Editor, chạy lẹ hơn. Và quan trọng là có thể đồng bộ hóa dữ liệu giữa Software Offline và website.

Trên tinh thần phi lợi nhuận và vì cộng đồng là chính, mình sẽ viết lại toàn bộ kỹ thuật từ đầu tới cuối, để bạn hiểu cách làm một hệ thống Gia Phả.

Mục lục nội dung
1. Website Việt Nam Gia Phả
2. Phần mềm soạn thảo Offline Việt Nam Gia Phả
  • Chọn ngôn ngữ viết, vì sao dùng Java SWT
  • Mô tả các functions chính
  • Cách lưu trữ dữ liệu
  • Load dữ liệu từ file và xuất dữ liệu ra file.
  • Khó khăn chưa giải quyết được.
3. Hướng nâng cấp hỗ trợ cho smartphone 
4. Dự tính xa vời khác
Sẽ đăng từng bài một, xin đón đọc và chờ góp ý!

Thứ Hai, 12 tháng 9, 2011

Thủ thuật Blogger luôn mở rộng cửa chào đón những tác giả có nhiệt huyết cống hiến cho cộng đồng Blogspot Việt Nam để chia sẻ những kinh nghiệm cá nhân về kỹ thuật thế kế blog trên nền tảng Blogger. Thực hiện chủ trương này, Thủ thuật Blogger xây dựng một trang Author thật đặc biệt thể hiện cái nhìn tổng quan về các tác giả, tại đây người đọc không chỉ có thể tiếp cận các bài viết của từng tác giả, mà còn có thể kết nối với các tác giả qua các trang mạng xã hội, tạo sự tương tác hài hòa giữa người đọc và tác giả.


Kể từ ngày 12/9/2011, trang Author của Thủ thuật Blogger được lập ra chính thức. Tuy nhiên, để có những tính năng thật nổi bật đồng thời đem lại hiệu quả tốt nhất cho việc khai thác kiến thức của người đọc, Ban Quản trị Thủ thuật Blogger kính đề nghị bạn đọc gần xa góp ý về giao diện trang Author này; có thể cho ý kiến thêm, bớt tiện ích cho phù hợp với loại hình trang.

Trân trọng cảm ơn và chân thành kính báo!

Chủ Nhật, 11 tháng 9, 2011

Để tạo ra những thủ thuật vừa mới vừa độc thì mình luôn luôn khuyến khích các bạn đóng góp ý tưởng, bởi một lẽ hiển nhiên là “một cây làm chẳng nên non – ba cây chụm lại nên hòn núi cao” và trí óc mình dù có sáng tạo mãi thì nó cũng cạn đấy bạn ạ. Thế nên sự đóng góp của các bạn rất hữu ích cho cộng đồng.

Mới đây bạn Minh Triết có hỏi rằng, có cách nào tạo hẳn một trang giao diện riêng cho một nhãn gồm cả phần main blog hay không, và nếu cái này mà làm được nữa thì vô đối. Lấy ví dụ blog của mình có 3 chủ đề chính: là A, B, C gồm các bài viết theo các nhãn A, B và C. Mình muốn trang homepage riêng và mỗi khi vào trang có dạng http://abc.blogspot.com/search/label/A thì sẽ tạo ra một trang homepage riêng cho nhãn A (tương tự với B và C).

Quả thật thì ý tưởng này rất hay và rất độc đáo. Trước tiên xin cảm ơn bạn Minh Triết đã đóng góp ý tưởng này. Và sau đây là trang Demo để các bạn xem trước.

Nào chúng ta cùng tìm hiểu vấn đề nhé bạn. Hẳn bạn cũng biết, mỗi trang chủ của blogspot được định dạng trong phần main (gồm tiện ích Blog Posts và các tiện ích khác có thể được thêm vào). Code của phần main này ở chế độ Edit HTML của Template không mở rộng mẫu tiện ích có dạng chuẩn như sau:

<!-- Main content -->
<div id='main-wrapper'>
<b:section class='main' id='main' showaddelement='yes'>
<b:widget id='Blog1' locked='true' title='Bài đăng trên Blog' type='Blog'/>
</b:section>
</div>
<!-- /Main content -->

Như vậy muốn tạo kiểu trang chủ riêng cho một nhãn thì chúng ta tạo thêm một phần main khác (có ID khác phần main chính của blogspot) và dùng lệnh điều kiện để chỉ hiển thị phần main mới tạo ở trang nhãn đó. Khi đó bạn sử dụng code như sau (thay đoạn code nói trên bằng đoạn code bên dưới:

<!-- Main content -->
<b:if cond='data:blog.url == &quot;URL_đến nhãn nào đó&quot;'>
<style>
#main2-wrapper {
… đặt code CSS ở đây …
}
</style>
<div id='main2-wrapper'>
<b:section class='main' id='main2' showaddelement='yes'>
<b:widget id='Blog2' locked='true' title='Bài đăng trên Blog' type='Blog'/>
</b:section>
</div>
<b:else/>
<div id='main-wrapper'>
<b:section class='main' id='main' showaddelement='yes'>
<b:widget id='Blog1' locked='true' title='Bài đăng trên Blog' type='Blog'/>
</b:section>
</div>
</b:if>
<!-- /Main content -->

Lưu ý phần code CSS ở trên bạn có thể tạo giống như CSS của phần main ở trang chủ hoặc có thể tạo khác nếu bạn muốn nó khác biệt.

Bạn cần phải nhớ rằng phần main mới tạo chỉ hiển thị ở trang nhãn chỉ định nên khi vào phần Page Elements để thêm tiện ích thì bạn sẽ không thấy được phần main này. Do đó nếu muốn tùy biến cho phần main này thì bạn phải chỉnh sửa ở chế độ mở rộng mẫu tiện ích hoặc thêm tiện ích ở trang chủ và hoàn thiện nó rồi sau đó vào Edit HTML để di dời nó đến phần main mới tạo. Lấy ví dụ mình tạo một tiện ích có ID là HTML100 ở trang chủ, sau đó mình vào Edit HTML và di dời nó đến phần main mới tạo như sau:

<b:section class='main' id='main2' showaddelement='yes'>
<b:widget id='HTML100' locked='false' title='' type='HTML'/>
<b:widget id='Blog2' locked='true' title='Bài đăng trên Blog' type='Blog'/>
</b:section>

Hoặc

<b:section class='main' id='main2' showaddelement='yes'>
<b:widget id='Blog2' locked='true' title='Bài đăng trên Blog' type='Blog'/>
<b:widget id='HTML100' locked='false' title='' type='HTML'/>
</b:section>

Như vậy nếu bạn muốn một trang nhãn nào đó có định dạng rất phức tạp với nhiều tiện ích thì trước tiên bạn thêm chúng ở trang chủ, xong rồi bạn di dời chúng đến phần main mới tạo theo cách như trên.

Tương tự nếu bạn muốn tạo kiểu trang chủ cho nhiều nhãn, ví dụ các nhãn A, B, C thì bạn dùng code như sau:

<!-- Main content -->
<b:if cond='data:blog.url == &quot;URL_đến nhãn A&quot;'>
<style>
#main2-wrapper {
… đặt code CSS ở đây …
}
</style>
<div id='main2-wrapper'>
<b:section class='main' id='main2' showaddelement='yes'>
<b:widget id='Blog2' locked='true' title='Bài đăng trên Blog' type='Blog'/>
</b:section>
</div>
</b:if>

<b:if cond='data:blog.url == &quot;URL_đến nhãn B&quot;'>
<style>
#main3-wrapper {
… đặt code CSS ở đây …
}
</style>
<div id='main3-wrapper'>
<b:section class='main' id='main3' showaddelement='yes'>
<b:widget id='Blog3' locked='true' title='Bài đăng trên Blog' type='Blog'/>
</b:section>
</div>
</b:if>

<b:if cond='data:blog.url == &quot;URL_đến nhãn C&quot;'>
<style>
#main4-wrapper {
… đặt code CSS ở đây …
}
</style>
<div id='main4-wrapper'>
<b:section class='main' id='main4' showaddelement='yes'>
<b:widget id='Blog4' locked='true' title='Bài đăng trên Blog' type='Blog'/>
</b:section>
</div>
</b:if>

<div id='main-wrapper'>
<b:section class='main' id='main' showaddelement='yes'>
<b:widget id='Blog1' locked='true' title='Bài đăng trên Blog' type='Blog'/>
</b:section>
</div>
<!-- /Main content -->

Xin lưu ý một điều rằng, thủ thuật này chỉ dành cho các bạn đã có chút kiến thức về blogspot và có máu phiêu lưu với Template của mình, đồng thời đầu óc phải sáng suốt khi Edit HTML nếu không bạn sẽ phá tanh bành lên đó. Hãy nhớ Download Full Template để sao lưu dữ liệu trước khi thực hiện thủ thuật.

Thứ Bảy, 10 tháng 9, 2011

Tiện ích Popular posts là 1 tiện ích được cung cấp bởi Blogger, nó hiển thị các bài viết được xem nhiều nhất trong blog với các khoảng thời gian như : 1 tuần, 1 tháng, hay mọi lúc. Và nó cũng có 3 chế độ hiển thị : chỉ hiển thị tiêu đề, hiện thị tiêu đề và ảnh thumbnail, và thứ 3 là kiểu hiện thị đầy đủ (gồm : tiêu đề, ảnh thumbnail và trích dẫn).
Lâu rồi mới lại "nổi hứng", nên bữa nay rảnh ngồi chế lại cái tiện ích Popular posts cho nó đẹp chút. Như các bạn đã biết, tiện ích này có 3 chế độ hiển thị khác nhau. Và trong 3 chế độ này đa phần mọi người thường dùng cách hiển thị ảnh thumnnail và tiêu đề vì cách này nhìn tương đối nhất. Với cách hiển thị đầy đủ (gồm : tiêu đề, ảnh thumbnail và trích dẫn), thì cách này thường chiếm nhiều không gian của blog, do đó mà ít người dùng. Hôm nay mình sẽ áp dụng hiệu ứng tooltips cho tiện ích này, để có thể hiển thị đầy đủ nhất nôi dung của tiện ích này mà không tốn nhiều không gian của blog.


Với áp dụng này, phần trích dẫn của tiện ích sẽ hiển thị khi ta rê chuột vào tiêu đề của bài viết. Việc làm này cũng ko ảnh hưởng nhiều đến việc load tiện ích, do tooltips cũng khá nhẹ, vì thế các bạn có thể an tâm về tốc độ load.

Ở đây mình sẽ hướng dẫn 2 cách hiển thị với tooltips.

Cách 1 : Hiển thị tiêu đề và ảnh thumnail, phần trích dẫn sẽ hiển thị khi rê chuột vào tiêu đề.
Cách 2 : Chỉ hiển thị tiêu đề, khi rê chuột sẽ hiển thị ảnh thumbnail và trích dẫn.

Ảnh minh họa :
Cách 1

Cách 2

Sau đây là hướng dẫn:
1. Đầu tiên để thực hiện được thủ thuật này, blog bạn phải có tiện ích popular posts.
- Các bạn thực hiện các bước chuẩn bị như hình bên dưới.

2. Chèn code javascript và CSS cho tooltips:
- Các bạn vào phần chỉnh sửa HTML và chèn đoạn code này vào trước thẻ </head>
<style type='text/css'>
/* CSS ToolTip */
#dhtmltooltip{
border-right: #555 1px solid;
padding-right: 4px;
border-top: #555 1px solid;
padding-left: 4px;
font-size: 10pt;
z-index: 100;
filter: alpha(opacity=90);
-moz-opacity: .90;
-khtml-opacity: .90;
opacity: .90;
left: -300px;
visibility: hidden;
padding-bottom: 4px;
border-left: #555 1px solid;
padding-top: 4px;
border-bottom: #555 1px solid;
font-family: Arial;
position: absolute;
background: #ffffe0;
width: 250px;
}
#dhtmlpointer{
z-index: 101;
left: -300px;
visibility: hidden;
position: absolute;
}
/* END CSS ToolTip */
</style>
<script language='javascript' src='http://data.fandung.com/js/tooltip.js'/>

3. Như vậy đã chuẩn bị xong. bây giờ sẽ là hướng dẫn thực hiện thủ thuật.

A. Cách 1 : hiển thị ảnh thumnail và tiêu để, phần trích dẫn sẽ hiển thị khi rê chuột.

- Vào bố cục, vào chỉnh sửa code HTML, nhấp chọn mở rộng mẫu tiện ích.
- Chèn đoạn code CSS của thủ thuật vào trước dòng ]]></b:skin>
/* CSS Most View with ToolTip */
.popular-posts {display:none;}
#fdmostview {
margin:0px;
padding: 0px 5px 5px 5px;
}
#fdmostview ul {margin:0!important;}
#fdmostview li.lipopu {min-height:54px;border-bottom:1px dashed #F7AA4F;padding:5px 0 5px 0;}
#fdmostview li.lipopu img {float:left;border:1px solid #ccc;padding:1px;margin-right:4px;width:50px;}
#fdmostview ul li {list-style:none;}
/* END Most View with ToolTip */

- Tiếp tục tìm đến code của tiện ích Popular Posts. code của nó sẽ trông như bên dưới :
<b:widget id='PopularPosts1' locked='false' title='Most View' type='PopularPosts'>
<b:includable id='main'>
<b:if cond='data:title'><data:title/></b:if>
<div class='widget-content popular-posts'>
<ul>
<b:loop values='data:posts' var='post'>
<li>
...
...
...
</li>
</b:loop>
</ul>
<b:include name='quickedit'/>
</div>

</b:includable>
</b:widget>
- và các bạn thêm code của thủ thuật vào đoạn code vừa tìm được như đoạn code highlight bên dưới :
<b:widget id='PopularPosts1' locked='false' title='Most View' type='PopularPosts'>
<b:includable id='main'>
<b:if cond='data:title'><data:title/></b:if>
<div class='widget-content popular-posts'>

<script type='text/javascript'>
var p=0;
var sumpopu = new Array();
var titlepopu = new Array();
var urlpopu = new Array();
var thumbpopu = new Array();
</script>

<ul>
<b:loop values='data:posts' var='post'>

<b:if cond='data:post.thumbnail'>
<script type='text/javascript'>
p++;
sumpopu[p]='<data:post.snippet/>';
titlepopu[p]='<data:post.title/>';
urlpopu[p]='<data:post.href/>';
thumbpopu[p]='<data:post.thumbnail/>';
</script>
<b:else/>
<script type='text/javascript'>
p++;
sumpopu[p]='<data:post.snippet/>';
titlepopu[p]='<data:post.title/>';
urlpopu[p]='<data:post.href/>';
thumbpopu[p]='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYIEgVs9vSOpzUgdEaTB9r_U9YS8pnz2-nk9ra3lomVnNGT_Y0kwTlSIYCrNAtSAfs8rgMXGxQmyjCcQE-q_GTwHp5Z-pydVfQLBaShbQO4VacFmBk1aU1IE4nEHy4rKCGS8x9e6j0b4jr/';
</script>
</b:if>

<li>
...
...
...
</li>
</b:loop>
</ul>
<b:include name='quickedit'/>
</div>


<div id='fdmostview'>
<ul>
<script type='text/javascript'>
//<![CDATA[
for (k=1;k<p+1;k++) {
document.write("<li class='lipopu'><img src='"+thumbpopu[k]+"' /><a href='"+urlpopu[k]+"' onmouseout='hidetip();' onmouseover='showtip('"+sumpopu[k]+"')'>"+titlepopu[k]+"</a></li>");
}
//]]>
</script>
</ul>
</div>

</b:includable>
</b:widget>

- Cuối cùng save template lại.

B. Cách 2 : chỉ hiện thị tiêu đề bài viết, ảnh thumbnail và trích dẫn sẽ hiện thị khi rê chuột vào tiêu đề.

- Vào bố cục, vào chỉnh sửa code HTML, nhấp chọn mở rộng mẫu tiện ích.
- Chèn đoạn code CSS của thủ thuật vào trước dòng ]]></b:skin>
/* CSS Most View with ToolTip */
.popular-posts {display:none;}
#fdmostview {
margin:0px;
padding: 0px 5px 5px 5px;
}
#fdmostview ul {margin:0!important;}
#fdmostview li.lipopu2 {border-bottom:1px dashed #F7AA4F;padding:5px 0 5px 0;}
#fdmostview ul li {list-style:none;}
img.imgpopu2 {float:left;border:1px solid #ccc;padding:1px;margin-right:4px;width:60px;}
/* END Most View with ToolTip */

- tương tự như cách 1, thêm đoạn code highlight bên dưới :
<b:widget id='PopularPosts1' locked='false' title='Most View' type='PopularPosts'>
<b:includable id='main'>
<b:if cond='data:title'><data:title/></b:if>
<div class='widget-content popular-posts'>

<script type='text/javascript'>
var p=0;
var sumpopu2 = new Array();
var titlepopu = new Array();
var urlpopu = new Array();
</script>

<ul>
<b:loop values='data:posts' var='post'>

<b:if cond='data:post.thumbnail'>
<script type='text/javascript'>
p++;
sumpopu2[p]='&lt;img class="imgpopu2" src="<data:post.thumbnail/>" /&gt;<data:post.snippet/>';
titlepopu[p]='<data:post.title/>';
urlpopu[p]='<data:post.href/>';
</script>
<b:else/>
<script type='text/javascript'>
p++;
sumpopu2[p]='&lt;img class="imgpopu2" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYIEgVs9vSOpzUgdEaTB9r_U9YS8pnz2-nk9ra3lomVnNGT_Y0kwTlSIYCrNAtSAfs8rgMXGxQmyjCcQE-q_GTwHp5Z-pydVfQLBaShbQO4VacFmBk1aU1IE4nEHy4rKCGS8x9e6j0b4jr/" /&gt;<data:post.snippet/>';
titlepopu[p]='<data:post.title/>';
urlpopu[p]='<data:post.href/>';
</script>
</b:if>

<li>
...
...
...
</li>
</b:loop>
</ul>
<b:include name='quickedit'/>
</div>


<div id='fdmostview'>
<ul>
<script type='text/javascript'>
//<![CDATA[
for (k=1;k<p+1;k++) {
document.write("<li class='lipopu2'><img src='http://data.fandung.com/img/icon_popular.png' /><a href='"+urlpopu[k]+"' onmouseout='hidetip();' onmouseover='showtip('"+sumpopu2[k]+"')'>"+titlepopu[k]+"</a></li>");
}
//]]>
</script>
</ul>
</div>

</b:includable>
</b:widget>

- Save template lại.
Thỉnh thoảng có những nội dung trên widget (tiện ích) mà bạn chỉ muốn một vài người xem và bạn muốn đặt mặt khẩu cho widget đó. Có cách nào để hiện thực hóa vấn đề này không? Câu trả lời là có. Xem DEMO. Password: password

Các bạn chỉ cần làm theo hướng dẫn nho nhỏ dưới đây:

1. Đầu tiên các bạn vào trang này.



2. Nhập mật mã vào khung Key.

3. Chép nội dung bạn muốn ẩn vào khung Plain Text.

4. Bấm vào nút Encrypt và copy code trong khung HTML Code được tạo ra.

5. Bây giờ bạn chỉ cần vào Blogger thêm một tiện ích và paste code bạn đã copy.

6. Bạn tìm thẻ </head> và đặt trước nó đoạn code sau:

<script type="text/javascript" src="http://www.vincentcheung.ca/jsencryption/jsencryption.js"></script>

Như vậy là bạn đã hoàn thành thủ thuật này.

Vậy thủ thuật này có thể áp dụng cho bài đăng trên blog hay không? Câu trả lời là có. Bạn chỉ cần copy nội dung của bài đăng rồi làm theo các bước hướng dẫn tương tự như trong widget.

Hy vọng thủ thuật này sẽ giúp các bạn được phần nào trong quá trình viết blog.

Thứ Sáu, 9 tháng 9, 2011

Xin chào tất cả các bạn!

Lời đầu tiên mình xin gửi tới các bạn lời chúc sức khỏe và lời chào trân trọng nhất.

Sau đây mình xin kể với các bạn câu chuyện thực tế cũng là chia sẻ kinh nghiệm kinh doanh của mình với cộng đồng.

Họ tên đầy đủ của mình là Hoàng Khánh Linh, một cái tên mà ai nghe được cũng bảo là giống con gái nhưng mình là con trai thứ thiệt đấy nha. Mình sinh ra và lớn lên tại Nghệ An, một vùng đất còn nhiều khó khăn đầy nắng đầy gió. Hiện tại mình đang sinh sống và học tập tại Tp. Hồ Chí Minh, 1 thân 1 mình xa quê đến nơi đất khách lại không có anh em họ hàng ở gần nên mình gặp khá nhiều khó khăn. Mình cũng đã từng đi kiếm việc làm thêm nhằm trang trải cuộc sống nhưng để kiếm được việc ở một thành phố đông đúc như Sài Gòn và phù hợp với lịch học quả là một việc không dễ chút nào.

Và trong một lần rất tình cờ, mình đã biết đến VSIM, một công ty kinh doanh theo mạng với sản phẩm là sim đa năng. Mình cùng với bạn gái, lập nên Blog Linh Dung VnMart, chúng mình đã cùng hòa mình vào ngành kinh doanh mới này, đây quả là một đại dương bao la thỏa sức cho chúng mình vùng vẫy.



Chắc các bạn cũng như mình, mục tiêu của mình cũng chẳng khác gì mọi chàng trai khác, hẳn ai cũng đặt ra mục tiêu kiếm thật nhiều tiền, có thật nhiều bạn, cưới một cô vợ thật đẹp, mua 1 ngôi nhà thật tiện nghi, 1 chiếc xế hộp để đưa vợ con đi thăm cha mẹ hay đi du lịch đó đây, mọi người sống hạnh phúc bên nhau, khắp nơi chỉ có tiếng cười và niềm hạnh phúc… một cuộc sống thật hoàn mỹ phải không các bạn?

Nhưng để đạt được “cảnh giới tối cao” đó, chúng ta phải băng qua nghìn trùng gian nan, muôn vàn thử thách để kiếm 1 thứ: đó chính là TIỀN - ai cũng bảo tiền không phải là tất cả - nhưng đâu có ai dám nói là: tôi không cần tiền nhưng tôi vẫn có tất cả!

Ngay cả Bill Gates cũng chưa từng nói như vậy.

Henry Ford – người sáng lập hãng xe hơi nổi tiếng trên toàn thế giới từng phát biểu rằng: “Tôi không dùng 100% sức lực và trí tuệ của chính mình để thành công mà tôi chỉ dùng 1% sức lực và trí tuệ của 100 người để đi tới thành công”.

Nắm bắt thời cơ là vô cùng quan trọng!

Với những gì mình đã trải qua và nắm bắt được, mình muốn chia sẻ đến các bạn, muốn mang đến cho các bạn cơ hội này. Ai trong chúng ta cũng ấp ủ trong mình một hay nhiều ước mơ, nhưng những ước mơ đó có thành hiện thực hay không là do chính bản thân chúng ta quyết định. Tiền không phải là tất cả, nhưng có tiền bạn sẽ dễ dàng tìm lại những ước mơ của mình hơn…

Bạn thích làm thuê hay làm chủ? Chắc chắn bạn sẽ nói: làm chủ. Có ai nói thích làm thuê cho người khác không bạn? 99 người nói KHÔNG! Còn 1 người nói có chẳng qua vì họ bị “thần kinh có vấn đề”!

Bạn muốn suốt đời mình bị hút trong vòng xoay của chữ “nghèo” hay không? Chắc chắn là KHÔNG!

Ước mơ của bạn là gì? Phải chăng bạn không hề có ước mơ? Hoặc nếu có thì chắc nó cũng đã bị cho vào quên lãng, bạn làm gì để hồi sinh nó đây thưa bạn?

Dù bạn là ai, dù bạn làm nghề gì thì chiếc điện thoai cũng là vật bất li thân của bạn trong tất cả các mối quan hệ, và để duy trì liên lạc thường xuyên thì bạn phải trả tiền cho các nhà mạng, vô tình đã làm giàu cho các nhà cung cấp mạng và tất nhiên họ sẽ cung cấp dịch vụ cho bạn, dịch vụ đó chính là sản phẩm, là hàng hóa mà bạn sử dụng hàng ngày, bạn có nghĩ là có khi nào chính bạn cũng là người phân phối những sản phẩm đó không?



Để có thể sở hữu cho mình 1 chiếc sim đa năng thì rất đơn giản, bạn chỉ cần soạn tin nhắn theo cú pháp mà công ty cung cấp, chi phí chỉ là 1,000 đồng. Chức năng của sim đa năng mang lại cho bạn như sau:

- Cho phép bạn có thể thực hiện nạp tiền/ mua mã thẻ trả trước cho tất cả các 7 mạng di động hiện nay là: Mobifone, Vinaphone, Viettel, Beeline, Sfone, Vietnamobile, EVN Telecom.

- Thanh toán trả sau 2 mạng là Viettel và Mobifone.

- Mua các loại tài khoản/ thẻ game...

- Mua bảo hiểm Ô tô - xe máy với mức chiết khấu cao, thao tác nạp tiền nhanh chóng, thuận tiện.

Trong thời gian tới, công ty sẽ nâng cấp thêm nhiều tiện ích mới nữa cho đúng với cái tên: “SIM ĐA NĂNG

Cơ hội có thể đến rất nhiều lần, nhưng thời cơ thuận lợi nhất chỉ có 1 lần thôi bạn ạ! Nếu bạn không tận dụng thì bạn sẽ nhường nó vào tay người khác. Hãy liên hệ với mình nếu các bạn muốn thử sức trong lĩnh vực này nhé!

Trân trọng cảm ơn!

Thứ Năm, 8 tháng 9, 2011

Ý tưởng khi xem một bài viết trong nhãn bất kỳ thì tiện ích Bài viết mới nhất xuất hiện gồm những bài mới đăng trong nhãn đó, là một ý tưởng khá thú vị. Thực ra ý tưởng này mình đã nghĩ đến khá lâu và đã từng bước tạo code và thử nghiệm. Gần đây quá trình thử nghiệm đã tới giai đoạn cuối cùng với những dấu hiệu thành công như ý muốn, cũng đúng vào lúc tác giả Lee Peace đã nhắc đến ý tưởng này và yêu cầu mình hiện thực hóa xem có được không. Tiện ích này mình gọi tên là tiện ích Bài viết liên quan mới nhất cho nhãn trên Sidebar (Recent and Related Posts for Label on Sidebar). Trên tiện ích này, mình tạo thêm phân trang có bản (Prev, Next) để có thể xem tất cả các bài viết trong nhãn một cách dễ dàng.

Trước khi nghiên cứu và cài đặt, bạn có thể xem qua Demo.

Bước 1. Đăng nhập Blogger, vào Design >> Edit HTML, chọn Page Elements. Thêm một tiện ích HTML/Javascript, đặt tên tiện ích là Bài viết liên quan mới nhất rồi dán vào phần nội dung tiện ích bằng đoạn code sau đây (Lưu ý mình đã chú ý script để các bạn có thể hiểu tường tận hơn, có thể tùy biến CSS theo ý thích của bạn).

<script type="text/javascript">
// Recent and Related Posts for Label on Sidebar widget by www.thuthuatblogger.info
var post_per_page = 5; // thiết lập số bài viết hiển thị mỗi trang
var post_snippet = 70; // thiết lập số ký tự tóm tắt bài viết
var homepage = "http://huynh-nhat-ha.blogspot.com"; // đặt địa chỉ trang chủ của bạn
var img_default = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSTBOADLaQxKP6C1kR057CprGMaKodKnMQv-C3oypgKgg0xfsP1UUCchnNiRfeEzuPBwDzHO6b1__33UhSJJ8BYkde1CRHxVHiWcf-7rOAzGHYg1zOaHF85RnEnojhnqtphr9OhfpdYxw/s1600/recentpostnothumb.png"; // thiết lập URL hình mặc định

var pr_flagfirst = 0;
var url_prev, url_next;

// chức năng tạo tóm tắt bài viết
function removeHtmlTag(strx,chop){
var summary = strx.split("<");
for(var i=0;i<summary.length;i++){
if(summary[i].indexOf(">")!=-1){
summary[i] = summary[i].substring(summary[i].indexOf(">")+1,summary[i].length);
}
}
summary = summary.join("");
summary = summary.substring(0,chop-1);
return summary;
}

// chức năng tạo biến
function showpagelabel(json) {
var entry, posttitle, posturl, postimg, postcontent;
var str_out = "";

// tìm URL phân trang
for (var k = 0; k < json.feed.link.length; k++) {
if (json.feed.link[k].rel == 'previous') {
// đây là trang trước
url_prev = json.feed.link[k].href;
}
if (json.feed.link[k].rel == 'next') {
// đây là trang sau
url_next = json.feed.link[k].href;
}
}

// đọc và xác định bài viết
for (var i = 0; i < post_per_page; i++) {

// nếu không có thì kết thúc lệnh
if (i == json.feed.entry.length) { break; }

entry = json.feed.entry[i];

// đây là tiêu đề bài viết
posttitle = entry.title.$t;

// tìm URL bài viết
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
// lưu trữ nó
posturl = entry.link[k].href;
break;
}
}

// tìm nội dung bài viết và lưu trữ nó
if ("content" in entry) {
postcontent = entry.content.$t;
} else if ("summary" in entry) {
postcontent = entry.summary.$t;
} else {
postcontent = "";
}

// tìm ảnh đại diện hoặc sử dụng ảnh mặc định
if ("media$thumbnail" in entry) {
postimg = entry.media$thumbnail.url;
} else {
postimg = img_default;
}

// kết thúc đọc, tạo code HTML
str_out += "<div class='pagi_label'>";
str_out += "<a href='" + posturl + "' target='_blank'><img src='" + postimg + "' /></a>";
str_out += "<h6><a href='" + posturl + "' target='_blank'>" + posttitle + "</a></h6>";
str_out += "<p>" + removeHtmlTag(postcontent,post_snippet) + " ...</p>";
str_out += "</div>";
}

// kết thúc lệnh và viết kết quả
document.getElementById("Sidebar_Label").innerHTML = str_out;

// tạo phần phân trang
str_out = "";

// nếu có trang trước, tạo link nhưng chỉ có text
if(url_prev) {
str_out += "<a href='javascript:navi_pagi_label(-1);' class='previous'>Prev</a>";
} else {
str_out += "<span class='disabled previous'>Prev</span>";
}

// nếu có trang sau, tạo link nhưng chỉ có text
if(url_next) {
str_out += "<a href='javascript:navi_pagi_label(1);' class='next'>Next</a>";
} else {
str_out += "<span class='disabled next'>Next</span>";
}

// tạo link cho trang đầu
str_out += "<a href='javascript:navi_pagi_label(0);' class='first'>First</a>";

// viết code
document.getElementById("PR_Label_Sidebar").innerHTML = str_out;
}

// chức năng tạo địa chỉ feed sẽ đọc
function navi_pagi_label(direction){
var p, parameters;
if(direction==-1) {
// trang trước
p = url_prev.indexOf("?");
parameters = url_prev.substring(p);
} else if (direction==1) {
// trang sau
p = url_next.indexOf("?");
parameters = url_next.substring(p);
} else {
// trang đầu
parameters = "?start-index=1&max-results=" + post_per_page + "&orderby=published&alt=json-in-script"
}
parameters += "&callback=showpagelabel";

include_script(parameters);
}

// đây là chức năng load script động
function include_script(parameters) {
// nếu không phải lần đầu tiên thì loại script trên
if(pr_flagfirst==1) {remover_script();}
// xóa mọi thứ và đặt một dòng text hoặc ảnh load
document.getElementById("Sidebar_Label").innerHTML = "<div id='loading_script'></div>";
document.getElementById("PR_Label_Sidebar").innerHTML = "";
// đây là lưu trữ feed
var archive_feeds = homepage + "/feeds/posts/default/-/" + label_Related + parameters;
// load và cho chạy
var nouvo = document.createElement('script');
nouvo.setAttribute('type', 'text/javascript');
nouvo.setAttribute('src', archive_feeds);
nouvo.setAttribute('id', 'LABELTEMPORAL');
document.getElementsByTagName('head')[0].appendChild(nouvo);
pr_flagfirst = 1;
}

// đây là chức năng loại bỏ script đã được load trước
function remover_script() {
var that = document.getElementById("LABELTEMPORAL");
var father = that.parentNode;
father.removeChild(that);
}

// khi load trang thì bắt đầu chức năng
onload=function() { navi_pagi_label(0); }
</script>
<style type="text/css">
#Sidebar_Label {margin: 0 auto;width:100%}
.pagi_label {background-color: #ffffff;border-bottom: 1px dashed #101921;height: 72px;margin: 5px 0;padding: 5px;width: 300px;}
.pagi_label img {float: left;height: 70px;padding:1px;margin: 0 5px 3px;width: 70px;}
.pagi_label h6, .pagi_label h6 a {margin:0;font-size:12px !important;font-weight:normal !important;color:#069}
.pagi_label:hover {-moz-box-shadow: 0px 0px 60px #505961 inset;}
.pagi_label p {font-size:12px;padding:0 3px 3px}
#loading_script {color:#888;font-family:Century Gothic;font-size:100px;letter-spacing:-10px;text-align:center;text-shadow:-5px 0 1px #444; background: #ffffff url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqxvqjv2RKeY20YZ388gcAGpZosIJOF_dKV5OBcObEQRAVzZB98sHpOocn-D0Qci22425Z2v6hF7Qpd-qleIW-j8dTORHN6sKkT9QSDnW5F7CBKU85zBmnjRwjVAQwc8pGUC4JtACftiw/) no-repeat 50% 50%; height:489px; width:100%}
#PR_Label_Sidebar {background-color: #ffffff;color: #BBB;font-family: Tahoma;font-size: 18px;text-align: center;margin:0 auto;width:100%}
#PR_Label_Sidebar a {color: #BBB !important;font-family: Tahoma !important;font-size: 18px !important;font-weight: normal !important;padding: 5px 10px;display:block;}
#PR_Label_Sidebar a:hover {color: #069 !important;}
#PR_Label_Sidebar span {padding: 5px 10px;}
#PR_Label_Sidebar span.disabled {color: #666 !important;}
#PR_Label_Sidebar .next {float:right;}
#PR_Label_Sidebar .previous {float:left;}
#PR_Label_Sidebar .first {text-align:center;}
</style>
<div id="Sidebar_Label"></div>
<div id="PR_Label_Sidebar"></div>

Bước 2. Vào Edit HTML, chọn Expand Wiget Templates. Dùng từ khóa Bài viết liên quan mới nhất tìm đến đoạn code XML của tiện ích rồi thay nó thành như sau (phần đánh dấu màu đỏ là phần thêm vào):

<b:widget id='HTML1' locked='false' title='Bài viết liên quan mới nhất' type='HTML'>
<b:includable id='main'>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<!-- only display title if it's non-empty -->
<b:if cond='data:title != &quot;&quot;'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>
<b:else/>
<style>#HTML1 {display: none;}</style>
</b:if>
</b:includable>
</b:widget>

Bước 3. Dùng các từ khóa như: <div class='post-footer'>, <div class='post-footer-line post-footer-line-1'> hoặc <div class='post-footer-line post-footer-line-2'> tìm đến đoạn code XML liên quan đến nhãn rồi thay nó bằng đoạn code bên dưới (phần đánh dấu màu đỏ là phần được thêm vào):

<span class='post-labels'>
<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<script>var label_Related=&quot;<data:label.name/>&quot;;</script>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != &quot;true&quot;'>,</b:if>
</b:loop>
</b:if>
</span>

Lưu Template là hoàn thành bạn nhé.

Truy tìm dấu vết hồ sơ Blogger đồng hương

Bạn sống tại thành phố Hồ Chí Minh, bạn sử dụng nền tảng Blogger để tạo blog và bạn muốn biết có bao nhiêu người dùng Blogger đến từ thành phố Hồ Chí Minh, tức là có bao nhiêu người đồng hương của bạn cùng sử dụng nền tảng Blogger. Làm thế nào để truy tìm hồ sơ của những người đồng hương của bạn, chí ít là bạn có ý định tìm kiếm người quen hoặc có thể là vì một mục đích nào đó mà bạn muốn tìm hồ sơ Blogger của một hoặc một nhóm người nào đó, vậy bạn phải làm thế nào?

Giải pháp thật là đơn giản, bạn chỉ cần truy cập địa chỉ sau đây:

http://www.blogger.com/profile-find.g?t=l&loc0=VN&loc1&loc2=H%E1%BB%93+Ch%C3%AD+Minh

Tại trang này bạn sẽ tìm thấy danh sách hồ sơ của tất cả các blogger đến từ thành phố Hồ Chí Minh, tương tự nếu là thành phố Hà Nội thì truy cập địa chỉ sau đây:

http://www.blogger.com/profile-find.g?t=l&loc0=VN&loc1&loc2=H%C3%A0+N%E1%BB%99i

Đà Nẵng: http://www.blogger.com/profile-find.g?t=l&loc0=VN&loc1&loc2=%C4%90%C3%A0+N%E1%BA%B5ng

Ở các địa phương khác bạn áp dụng tương tự, theo format như sau:

http://www.blogger.com/profile-find.g?t=l&loc0=VN&loc1&loc2=A+B

ví dụ A là Vũng, B là Tàu sẽ tìm đến danh sách các blogger đến từ Vũng Tàu vậy.

Như vậy để tìm hồ sơ của tất cả các blogger của Việt Nam thì truy cập địa chỉ:

http://www.blogger.com/profile-find.g?t=l&loc0=VN

Nếu là Mỹ thì dùng http://www.blogger.com/profile-find.g?t=l&loc0=US

Anh: http://www.blogger.com/profile-find.g?t=l&loc0=UK

Trung Quốc: http://www.blogger.com/profile-find.g?t=l&loc0=CN

Hàn Quốc: http://www.blogger.com/profile-find.g?t=l&loc0=KR (cái này chị em tha hồ mà tìm hồ sơ của mấy anh minh tinh Hàn Quốc nha, quá đã).

Tiếp tục bạn có thể tìm hồ sơ theo sở thích, ví dụ tìm các blogger có cùng sở thích Games Online thì truy cập địa chỉ:

http://www.blogger.com/profile-find.g?t=i&q=Games%20Online

Cùng sở thích Học tiếng Anh thì tìm:

http://www.blogger.com/profile-find.g?t=i&q=H%E1%BB%8Dc%20ti%E1%BA%BFng%20Anh

Tựu trung lại nếu muốn tìm những người cùng sở thích thì tìm theo format như sau:

http://www.blogger.com/profile-find.g?t=i&q=tên sở thích

Những điều này tưởng chừng như đơn giản song có thể bạn không để ý đến, mà nếu tận dụng triệt để thì bạn sẽ tìm thấy những thứ thật thú vị và hữu ích.

Đếm lượt xem bài viết bằng cookie

Đếm lượt xem bài viết là một thủ thuật khá cần thiết cho blogspot. Thông thường việc đếm lượt xem bài viết được thực hiện bằng ngôn ngữ php tuy nhiên nó yêu cầu sử dụng host, do đó dẫn đến việc đứt gánh giữa đường khi host không còn hoạt động. Ở đây mình hướng dẫn bạn cách đếm lượt xem bài viết sử dụng cookie. Bạn có thể xem DEMO bên dưới.


Thông thường bộ đếm lượt truy cập bài viết được đặt ở cuối bài viết, do đó bạn có thể tìm trong Template ở chế độ mở rộng mẫu tiện ích đến một trong những dòng code sau:

<div class='post-footer'>

<div class='post-footer-line post-footer-line-1'>

<div class='post-footer-line post-footer-line-2'>

<div class='post-footer-line post-footer-line-3'>

Rồi đặt trước hoặc sau nó bằng đoạn code bên dưới:

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<script type='text/javascript'>
//<![CDATA[
function setC(visitors, value){
var expireDate=new Date (2099, 12, 31);
document.cookie = visitors + "=" + escape(value) + ((expireDate == null) ? "" : ("; expires=" +
expireDate.toGMTString())) }
function readC(visitors){
var search = visitors + "=";
var i, j;
if (document.cookie.length > 0) {
i = document.cookie.indexOf(search);
if (i != -1) {
i += search.length;
j = document.cookie.indexOf(";", i);
if (j == -1) j = document.cookie.length;
return unescape(document.cookie.substring(i,j));
} } }
var num;
num=readC("visitors");
if (!num) num=0;
num++;
setC("visitors", num);
document.write("<div class='visitors'>");
document.write("<b>Bạn đã xem bài này "+num+" lần.<\/b>");
document.write("<\/div>");
//]]>
</script>
</b:if>

Nếu muốn tùy biến CSS cho dòng thông báo thì bạn đặt CSS như thế này (trước dòng ]]></b:skin> trong Template):

.visitors{
… đặt các thuộc tính CSS ở đây nha ..
}

Hy vọng đoạn script này sẽ giúp ích cho blogspot của bạn, tránh đến việc sử dụng host để dành cho cả một thủ thuật nhỏ như thế này quả thật là bất tiện và phung phí.

Dịch vụ thiết kế Blogger Template

Nhằm góp phần phát triển cộng đồng Blogspot Việt Nam, Thủ thuật Blogger mở rộng dịch vụ thiết kế Template theo đơn đặt của khách hàng.

1. Thiết kế Template (Khung giá 10 - 20 USD)

Đã có 1 người đăng ký (Pending)

Bạn muốn tạo một Template độc đáo cho Blogspot của bạn? Hãy cho chúng tôi biết ý tưởng của bạn. Chúng tôi sẽ tạo một Template thượng hạng và làm thỏa mãn yêu cầu của bạn.

2. Chuyển thể WordPress sang Blogger (Khung giá 15 – 30 USD)

Bạn muốn chuyển thể một Wordpress Theme sang Blogger Template để sử dụng cho Blogspot của bạn? Hãy gửi mẫu Wordpress Theme cho chúng tôi và chúng tôi sẽ giúp bạn tạo phiên bản Blogger.

3. Tùy biến Blogspot (Khung giá 5 – 10 USD)

Đã có 2 người đăng ký (Finished)

Nếu bạn muốn thay đổi những đặc điểm của Blogspot của bạn như thêm Sidebar, thêm Lowerbar, chia cột Header, thêm Slider, thêm các tiện ích, cải thiện SEO, cải thiện tốc độ load trang …, chúng tôi sẽ giúp bạn thực hiện tất cả những yêu cầu theo cách tối ưu nhất.

Thanh toán được thực hiện qua Paypal, ATM, Card điện thoại di động. Hãy liên hệ với chúng tôi qua email: webmaster@thuthuatblogger.info để biết thêm chi tiết.

Đầu tư MMO bằng E-Study Template

Nếu bạn muốn chơi Affiliate, Adsense hoặc MMO nói chung hoặc thậm chí muốn đặt quảng cáo trên blogspot thì bạn nên chọn một Template thật đặc trưng. Nếu muốn chơi MMO thật hiệu quả thì bạn nên viết blogspot bằng tiếng Anh. E-Study là một Template mới ra của Thủ thuật Blogger có thể đáp ứng đủ yêu cầu của một người chơi MMO đích thực.





DEMO


E-Study Template được tích hợp đầy đủ các tiện ích cần thiết cho một blogspot. Nổi bật nhất là phần Auto Readmore có thương hiệu riêng của Thủ thuật Blogger. Phần nhận xét tự động điều chỉnh bề rộng theo số ký tự của nhận xét. Đã gắn tiện ích Next Post/Previous Post. Menu dạng cây thư mục tiết kiệm không gian web. Tốc độ load siêu nhanh, bạn có thể kiểm tra bằng công cụ dưới đây:

Kiểm tra dung lượng và tốc độ tải trang:

Tên domain/website:
(Ví dụ: www.thuthuatblogger.info)
Có thể phân tích chi tiết tại Pingdom.


E-Study đã được SEO theo hướng tốt nhất, dễ cài đặt và tùy biến.

Quan niệm của Thủ thuật Blogger về phương diện Template thương mại: “Hàng rẻ là hàng dỏm” vì thế E-Study sẽ không có giá dưới 10 USD. Giá bán ban đầu là 10USD/Template, sau 5 lần sale sẽ tăng thêm 1 USD đến giá fix cuối cùng là 15 USD (giá trị thực của E-Study). 10 USD đầu tư cho một sự nghiệp MMO là sự lựa chọn quá ư là đơn giản.

Đã có 01 người mua Template này.


E-Study Price Options

Cài đặt bộ chèn Emoticons cho hệ thống nhận xét phân cấp

Được biết, hiện nay với sự phố biến của hệ thống nhận xét phân cấp qua đó người nhận xét khi trả lời một ý kiến của một người nào đó thì thường nhấn vào nút Trả lời/Reply để viết nhận xét qua cửa sổ popup, lúc này việc chèn biểu tượng cảm xúc vào nhận xét sẽ gặp khó khăn. Giải pháp cho vấn đề này là tạo bộ biểu tượng cảm xúc trực tiếp trong hệ thống nhận xét popup.

Hẳn bạn cũng từng biết về addon Greasemonkey giúp thêm bộ chèn biểu tượng cảm xúc trực tiếp vào công cụ đăng bài viết (Post Editor) của Blogspot. Kịch bản này chỉ hoạt động trên trình duyệt FireFox. Thật may là sau một quá trình nguyên cứu, mình đã áp dụng thành công phương pháp này đối với hệ thống nhận xét popup. Cách thức thực hiện là viết một kịch bản tạo chức năng chèn các thẻ <b></b> (in đậm), <i></i> (in nghiêng), <a></a> (liên kết) và một bộ biểu tượng cảm xúc (ở đây mình tạo bộ 25 Zing Emoticons) sau đó upload kịch bản lên trang tài nguyên userscript.org. Để cài đặt tiện ích này, người dùng cần sử dụng trình duyệt FireFox tải addon Greasemonkey rồi cài đặt. Trước tiên đến trang Greasemonkey, nhấn nút Add to Firefox để tải về cài đặt tiện ích này.


Sau đó khởi động lại (restart) trình duyệt, tiếp tục tải Emoticons Script về, nhấn Install để script tự động cài đặt vào FireFox.


Sau đó mở hệ thống nhận xét popup bạn sẽ thấy bộ biểu tượng cảm xúc sẽ xuất hiện trong phần Comments Form. Mỗi khi cần chèn biểu tượng hoặc các thẻ HTML, bạn chỉ việc click vào nó là xong.

Tuy nhiên để các biểu tượng cảm xúc hiển thị trên phần nhận xét (không phải dạng Popup) thì bạn phải cài đặt chức năng biểu tượng cảm xúc, bằng cách đặt đoạn code sau đây vào trước thẻ </body>.

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<script type='text/javascript'>
//<![CDATA[
//Emoticons for Blogger Comments || Author: Huynh Nhat Ha || http://huynh-nhat-ha.blogspot.com || © Copyright 2010
function emoticonBloggerHuynhNhatHa() {

if(!document.getElementById) {return;} // no support

bodyText = document.getElementById('comments-block');

theText = bodyText.innerHTML;
theText = theText.replace(/:1/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH2GcZRWJ-mB_A9cmApfk4TJQzOI6TePBkc3cfTAZmHxxi_32ItNucScnRvPfuW9TB_i5-kIAo-XvVrF-fY2IelBclCwV5vH6P2Jh25C0_N-JVbxTmS96_Jg_kc2qFrZ4-oSCUAa-15lxv/s1600/49.gif" />');
theText = theText.replace(/:2/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgESaISRrg8mzJrsbbf92zvdfkI1VqQgCpbHE06GL-m10jRnAsUc5UQT3cCYVddsH5LIwCIuSexy9uDEVcNmU6EBTEGwLJUe3YrTRoGrA3Cr28SOg4WiEQaHeu04_f4iXsNHNNh9oSD4ncg/s1600/102.gif" />');
theText = theText.replace(/:3/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP3GxuYaY8Og48gJX1Ljgba9y189eKp3Htu14o8saDeRWmeTwmMzWQp8r63sK96-5MRMA9Ln8itmOtll_AO_moAnQfxhnQogSLXCk_NDcQTfUzmnnl5ICh5jgQeC2EyEQkb1ELq46Wgfl4/s1600/113.gif" />');
theText = theText.replace(/:4/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIQkb8Wq-nWyyJb_5_Ht2PKDEO7vnDzwxfniG0XyQ8jOhS2u3vOPDlcHHcNbSn0Aak6VRIqgLIT5wq6CWwAT3RPLW13eaFpOZNvqOhy4EGEtMkdr6DXVxMS_HBN2amBDSSY53Rly6QAkL3/s1600/93.gif" />');
theText = theText.replace(/:5/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLG_zsOyWiqt2WYLfjSSspY9cOF5AnoB4jje6lhnJ2tV8pVehMm_aijMY6908LCjhnv2Z2Azru2FAwPobKGXlYNvQsmJJwdzo6vfScPZ6UquQeGzS4FmpOj6xkAIkDXIIri-fq8O3EUkX7/s1600/61.gif" />');
theText = theText.replace(/:6/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifdjf4CaUnnqZ-vY7rVNbbmOraQSAk-3NO1QBqBd8gSy5c65Zc0jahIl6zsTkJ94KVX2vGLSbbcFHNT1K2k2WW3IbaXdK2XiaKdHBlbBh5Ux4k5iF8_Rdbt3RTxnZYT7rH8AmigsAK10z0/s1600/134.gif" />');
theText = theText.replace(/:7/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR3wjPS_2ceiD1BZ3Dq3FO8_adrPGqTAa2FOJk9ygK9JUTuQw1Nv3-CW9SjcXMR9u-WG4lEplRqroqNASqOsz40dQm3WAEYq7B2xG_Vcokz3i8evmOT5zUfLW8TLK3Fpc8-TSSI1K7H1oE/s1600/39.gif" />');
theText = theText.replace(/:8/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1WLCtPaJ0EYLjnSaiMlklD5YfwmHKn85R12JqHN6Y_91ZehChQSyvF78uikm4y5_wzJvMy0Doy7AzIcIxrm0BPk5PCBqzcP-bSj6VY8gY0TsrOcU_5is7JdWFBlsqXIjfvgCksc9FCwGN/s1600/106.gif" />');
theText = theText.replace(/:9/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-gW6NNd_gt89k0DE3mDVT4VKGZyO1LcybA9dE3ntSsfgwElDs6d292rSuXvdLI2fGRPFIVbazsAD6yxzWrPo6ZgtqtRoRztdYDkXH8t2w-zr8PQkqrBhgokvo2u1p0aFXSAbGtx4Z5i7c/s1600/43.gif" />');
theText = theText.replace(/:A/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieUhhDNotQy2RaBst3jnrXH9ySLVxmJ-OtZJ8VIho_VD2sjbfhXg7US4W63HDYIAFxv88RflX-OFkvI48kjEhrVsNvpDIJNVmkSVQjC7FGDU5bJNAvZ5lzHxo_i1Vc63OMn0MPMcpcZLk8/s1600/111.gif" />');
theText = theText.replace(/:B/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinfgJ_lVCgHJUlbTWHrdOXwuuedK3Opzy7vBBYe6hzD3J9d_so6XI8T7L0JFLB-Si0xcWSeN3PbTt6VvuG5zgQRH0qOoV_tF2IuobALqPcbBJvQCi4nn-rSn7ud_Ec3CgF50Mxbo6hGU3p/s1600/48.gif" />');
theText = theText.replace(/:C/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8WtvNyYaNdPQLkY57KCOMQPIVeetQXgTUGgjeBxDoT2PHyQxkSOHaIyx7FQpRkaeT71D0yEoHOhzjAgIiSYn8_Z_3zdORwnYYkuB1WMcnw2XkshiwiO31fKmuqq0XCo5L3WPH2ZTTkw73/s1600/54.gif" />');
theText = theText.replace(/:D/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_L_hb-SmYZF513svMgzOwh2ZA_591M3VWuwdluodD6JFyYczRui2WyfqUcsQ44onxHhdg4DM0Qzn-mcO3Z8xQMTZ-4wZ-apbpqyzNPi1TImwfJ_n1BSoDDN1NeMCoS8oJE0PnSVpEekVJ/s1600/63.gif" />');
theText = theText.replace(/:E/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwbvae-91I_uRzIDi2qKqY2w0lKCNVZtiGHUIOhBmG-nln07tLUBYnZ9UzTQO1N3rED0Hcpb5_9EvgdMkVC9xfc3linDEkUlnqVT9VN1HvLfroHIuARzgNWItvCHhGJ_hShSe6fFLb9iEb/s1600/100.gif" />');
theText = theText.replace(/:F/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiET8ub6ImW6lIHzU5VOWDLdWh9XYDFdR4ot0Gt6ZTR9gSyuWKXy_PY6Tn7fGqy6s-bPGOxKJXYeQ7jryEpyzr4TQ1PBKZU-Aso5wsBH8LUwZNcs4dzLUnE-Recq1xIUHoWLnsLf_SLMxPs/s1600/45.gif" />');
theText = theText.replace(/:G/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih2A15ym_T-l6ixSIh88NABjD9fV1AUV3RvPIa803VaqObboSlaj7wUgqCOQ1NAuhhnCE69KgwQwbEgQphRNL_qtACnkvkw8SPIJ1g73Bx0xmeS446LtinnyaxkDf7OoBWRUWaboMGVubL/s1600/77.gif" />');
theText = theText.replace(/:H/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXYgoLEEaQOHKgrhgTXwPbfGX3VZgXQxDAL3pP8nm5dGK_ubJ5mGthbKmbv8bnXpt56MtKltSgM8G0eUmkZt5CVfk9boIh23aHiveVnXjuTQ4yBoGHBD7dw5q_zpusXLLmjm2kzO91BgYN/s1600/86.gif" />');
theText = theText.replace(/:I/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8B002eqVZ1rxLs5J9nmY83Y6JosNTqXKzgyYD6ETdnEgDU5WCaEQDRYesT8z5ckZVafdRcX2NUxIQAwKBaDKzVol8c0zU1yGCeL0gsfwx8jKnaw62ufyvxDaOLpCUAo8o9c4MJPlBdw5s/s1600/94.gif" />');
theText = theText.replace(/:J/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUvLqZC_5bD48R95LqrdfNqs60w6IoBMzzlGeaBCJW_mbvPzvIgUa0xe46p5sXqrzPqlAwdcgzncKLV_HzJuo7rjtHqmrWTWXRmyoWN5lUl5ZFQPMsNFBEhQbCvS8D8-XLtaMQUpExQ4hU/s1600/83.gif" />');
theText = theText.replace(/:K/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggrQbBnhwzuB3JEU4pDUKHUJJPG7i89x9bm3KMzqYjpDw972_mDqgWSK9oHO0UG9GLgoOwPZ_cAQUxlBKe_F-UZvKgjiW2ZjQ3ZoTT29Z3c6zHKR7TEDRJFJHeASN77fLhDfgNKSo2KZ-j/s1600/59.gif" />');
theText = theText.replace(/:L/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqFt9nTxTp8oqTSEgjw2bApS63AxJ7pxnh0h6F7WX2bVb3XvBaCvjtmTXfKjSGqyXzhaRdnTHBbRU4SQ-u4FrD1TUBG1F3ZqItqeuFu0AsrHcPNmTF957Z3UJbTMwwhZe6DYeAq44lcxr9/s1600/soldierbaby.gif" />');
theText = theText.replace(/:M/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMxbgjZJdu6uW1qjggXbbsg8TlocRzrSYxNxSah5KBrEWaKp-1f1H7VIbpvhL_Du90hswfrHprLJ2bde-EggXxmtTc024vTzzlO6pnlXPgPLMOnuvb4LizJsvlN8u3Wvd3qSKhM6BlfHg7/s1600/alo.gif" />');
theText = theText.replace(/:N/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV7wSELdnlUa6kmKuWE99Kau87VF8MQm5wXZw7OESRY54MmW2BNgGC-HHj2f68GiXDGGGK-O1A6yXk35HR8E1xstQFMb-gZGdPCcjQi_deEy4l5DZ0kTQ7XGXrWOxHG9Gqv1lYB4-ws2Or/s1600/shutup.gif" />');
theText = theText.replace(/:O/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_tmoM-S2e6_FdFcj4MKoIiZBvTK97HuyUtgiI-c3GlYOBNsGpiK_6qNCQUJqCY8KWrTJWX1I2Q6lF9XwtO_Oq2xND1yu4lXxK_gWwH66NAgusJ-0Nz6AXMm_RaejmWhwQQGE5NAZiZWA1/s1600/yeulam.gif" />');
theText = theText.replace(/:P/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2_esugHtNSHEJkwvBlKFMYI8vjwiaykSHDJv6VngeTU8rf2uvV67FclPE8xgdBHpq36gGSTYgp9PIOOeDaaK1WWQRWLhwLTVRVNvDYd4P4I2pTJGyQeXNRGq1XOVSjMBq4Y7RuiqrYx5D/s1600/datbomb.gif" />');

bodyText.innerHTML = theText;}
//]]>
</script>
<script type='text/javascript'>
emoticonBloggerHuynhNhatHa();
</script>
</b:if>


  1. Chú ý


    • 1 Để chức năng biểu tượng cảm xúc hoạt động trong phần nhận xét thì bạn phải thay đổi ID comments-block cho phù hợp. ID này nằm trong một thẻ chỉ định thành phần chứa các dữ liệu của nhận xét, thẻ này thường nằm ngay trước dòng <b:loop values='data:post.comments' var='comment'>. Tùy theo cách đặt tên của người thiết kế Template mà id này có thể có tên khác nhau ví dụ: comments-block, comments-block3, comments_block, cm_block, commentsblock …

    • 2 Sau khi cài đặt thủ thuật này, bạn cần cập nhật lại thủ thuật Chèn biểu tượng cảm xúc vào nhận xét dạng input để tạo sự thống nhất.

Chèn biểu tượng cảm xúc vào nhận xét dạng input

Chắc hẳn bạn cũng biết rằng hệ thống nhận xét của Blogspot có phần khung viết nhận xét (Comments Form and Editor) dưới dạng nhúng từ bên ngoài qua thẻ iframe do đó chúng ta không thể chèn biểu tượng cảm xúc (Emoticons) vào nhận xét bằng phương pháp input như Wordpress. Để giải quyết vấn đề này, chỉ có một cách là tạo khung nhận xét riêng theo kiểu Wordpress cho Blogspot. Tuy nhiên tạm thời mình chưa tìm ra giải pháp vì thế có thể áp dụng một thủ thuật trung gian, tức là tạo tính năng chèn biểu tượng cảm xúc trực tiếp vào một vùng text (textarea) kết hợp nút chọn để người dùng copy mã nhập rồi dán vào khung viết nhận xét, ngoài ra còn có chức năng chèn các thẻ như <b>, <i>, <em>, <a>. Hy vọng đây sẽ là bàn đạp để chúng ta tiến thêm một bước trong công cuộc hiện đại hóa hệ thống nhận xét của Blogspot.

Bạn có thể xem Demo ở phần viết bình luận của Thủ thuật Blogger.


Thủ thuật này đã kết hợp thủ thuật tạo bộ biểu tượng cảm xúc cho nhận xét vì thế nếu áp dụng thủ thuật này thì bạn cần tháo thủ thuật cũ liên quan (nếu đã cài đặt rồi) và thực hiện theo các bước sau đây:

Bước 1. Đăng nhập Blogger, vào Design >> Edit HTML, chọn Expand Widget Templates. Đặt đoạn code sau đây vào trước thẻ </body>. Đây là script chức năng cho bộ biểu tượng cảm xúc hoạt động.

<b:if cond='data:blog.pageType == "item"'>
<script type='text/javascript'>
//<![CDATA[
//Emoticons for Blogger Comments || Author: Huynh Nhat Ha || http://www.thuthuatblogger.info || © Copyright 2010
function emoticonBloggerHuynhNhatHa() {

if(!document.getElementById) {return;} // no support

bodyText = document.getElementById('comments-block');

theText = bodyText.innerHTML;
theText = theText.replace(/:1\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH2GcZRWJ-mB_A9cmApfk4TJQzOI6TePBkc3cfTAZmHxxi_32ItNucScnRvPfuW9TB_i5-kIAo-XvVrF-fY2IelBclCwV5vH6P2Jh25C0_N-JVbxTmS96_Jg_kc2qFrZ4-oSCUAa-15lxv/s1600/49.gif" />');
theText = theText.replace(/:2\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgESaISRrg8mzJrsbbf92zvdfkI1VqQgCpbHE06GL-m10jRnAsUc5UQT3cCYVddsH5LIwCIuSexy9uDEVcNmU6EBTEGwLJUe3YrTRoGrA3Cr28SOg4WiEQaHeu04_f4iXsNHNNh9oSD4ncg/s1600/102.gif" />');
theText = theText.replace(/:3\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP3GxuYaY8Og48gJX1Ljgba9y189eKp3Htu14o8saDeRWmeTwmMzWQp8r63sK96-5MRMA9Ln8itmOtll_AO_moAnQfxhnQogSLXCk_NDcQTfUzmnnl5ICh5jgQeC2EyEQkb1ELq46Wgfl4/s1600/113.gif" />');
theText = theText.replace(/:4\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIQkb8Wq-nWyyJb_5_Ht2PKDEO7vnDzwxfniG0XyQ8jOhS2u3vOPDlcHHcNbSn0Aak6VRIqgLIT5wq6CWwAT3RPLW13eaFpOZNvqOhy4EGEtMkdr6DXVxMS_HBN2amBDSSY53Rly6QAkL3/s1600/93.gif" />');
theText = theText.replace(/:5\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLG_zsOyWiqt2WYLfjSSspY9cOF5AnoB4jje6lhnJ2tV8pVehMm_aijMY6908LCjhnv2Z2Azru2FAwPobKGXlYNvQsmJJwdzo6vfScPZ6UquQeGzS4FmpOj6xkAIkDXIIri-fq8O3EUkX7/s1600/61.gif" />');
theText = theText.replace(/:6\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifdjf4CaUnnqZ-vY7rVNbbmOraQSAk-3NO1QBqBd8gSy5c65Zc0jahIl6zsTkJ94KVX2vGLSbbcFHNT1K2k2WW3IbaXdK2XiaKdHBlbBh5Ux4k5iF8_Rdbt3RTxnZYT7rH8AmigsAK10z0/s1600/134.gif" />');
theText = theText.replace(/:7\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR3wjPS_2ceiD1BZ3Dq3FO8_adrPGqTAa2FOJk9ygK9JUTuQw1Nv3-CW9SjcXMR9u-WG4lEplRqroqNASqOsz40dQm3WAEYq7B2xG_Vcokz3i8evmOT5zUfLW8TLK3Fpc8-TSSI1K7H1oE/s1600/39.gif" />');
theText = theText.replace(/:8\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1WLCtPaJ0EYLjnSaiMlklD5YfwmHKn85R12JqHN6Y_91ZehChQSyvF78uikm4y5_wzJvMy0Doy7AzIcIxrm0BPk5PCBqzcP-bSj6VY8gY0TsrOcU_5is7JdWFBlsqXIjfvgCksc9FCwGN/s1600/106.gif" />');
theText = theText.replace(/:9\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-gW6NNd_gt89k0DE3mDVT4VKGZyO1LcybA9dE3ntSsfgwElDs6d292rSuXvdLI2fGRPFIVbazsAD6yxzWrPo6ZgtqtRoRztdYDkXH8t2w-zr8PQkqrBhgokvo2u1p0aFXSAbGtx4Z5i7c/s1600/43.gif" />');
theText = theText.replace(/:A\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieUhhDNotQy2RaBst3jnrXH9ySLVxmJ-OtZJ8VIho_VD2sjbfhXg7US4W63HDYIAFxv88RflX-OFkvI48kjEhrVsNvpDIJNVmkSVQjC7FGDU5bJNAvZ5lzHxo_i1Vc63OMn0MPMcpcZLk8/s1600/111.gif" />');
theText = theText.replace(/:B\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinfgJ_lVCgHJUlbTWHrdOXwuuedK3Opzy7vBBYe6hzD3J9d_so6XI8T7L0JFLB-Si0xcWSeN3PbTt6VvuG5zgQRH0qOoV_tF2IuobALqPcbBJvQCi4nn-rSn7ud_Ec3CgF50Mxbo6hGU3p/s1600/48.gif" />');
theText = theText.replace(/:C\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8WtvNyYaNdPQLkY57KCOMQPIVeetQXgTUGgjeBxDoT2PHyQxkSOHaIyx7FQpRkaeT71D0yEoHOhzjAgIiSYn8_Z_3zdORwnYYkuB1WMcnw2XkshiwiO31fKmuqq0XCo5L3WPH2ZTTkw73/s1600/54.gif" />');
theText = theText.replace(/:D\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_L_hb-SmYZF513svMgzOwh2ZA_591M3VWuwdluodD6JFyYczRui2WyfqUcsQ44onxHhdg4DM0Qzn-mcO3Z8xQMTZ-4wZ-apbpqyzNPi1TImwfJ_n1BSoDDN1NeMCoS8oJE0PnSVpEekVJ/s1600/63.gif" />');
theText = theText.replace(/:E\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwbvae-91I_uRzIDi2qKqY2w0lKCNVZtiGHUIOhBmG-nln07tLUBYnZ9UzTQO1N3rED0Hcpb5_9EvgdMkVC9xfc3linDEkUlnqVT9VN1HvLfroHIuARzgNWItvCHhGJ_hShSe6fFLb9iEb/s1600/100.gif" />');
theText = theText.replace(/:F\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiET8ub6ImW6lIHzU5VOWDLdWh9XYDFdR4ot0Gt6ZTR9gSyuWKXy_PY6Tn7fGqy6s-bPGOxKJXYeQ7jryEpyzr4TQ1PBKZU-Aso5wsBH8LUwZNcs4dzLUnE-Recq1xIUHoWLnsLf_SLMxPs/s1600/45.gif" />');
theText = theText.replace(/:G\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih2A15ym_T-l6ixSIh88NABjD9fV1AUV3RvPIa803VaqObboSlaj7wUgqCOQ1NAuhhnCE69KgwQwbEgQphRNL_qtACnkvkw8SPIJ1g73Bx0xmeS446LtinnyaxkDf7OoBWRUWaboMGVubL/s1600/77.gif" />');
theText = theText.replace(/:H\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXYgoLEEaQOHKgrhgTXwPbfGX3VZgXQxDAL3pP8nm5dGK_ubJ5mGthbKmbv8bnXpt56MtKltSgM8G0eUmkZt5CVfk9boIh23aHiveVnXjuTQ4yBoGHBD7dw5q_zpusXLLmjm2kzO91BgYN/s1600/86.gif" />');
theText = theText.replace(/:I\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8B002eqVZ1rxLs5J9nmY83Y6JosNTqXKzgyYD6ETdnEgDU5WCaEQDRYesT8z5ckZVafdRcX2NUxIQAwKBaDKzVol8c0zU1yGCeL0gsfwx8jKnaw62ufyvxDaOLpCUAo8o9c4MJPlBdw5s/s1600/94.gif" />');
theText = theText.replace(/:J\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUvLqZC_5bD48R95LqrdfNqs60w6IoBMzzlGeaBCJW_mbvPzvIgUa0xe46p5sXqrzPqlAwdcgzncKLV_HzJuo7rjtHqmrWTWXRmyoWN5lUl5ZFQPMsNFBEhQbCvS8D8-XLtaMQUpExQ4hU/s1600/83.gif" />');
theText = theText.replace(/:K\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggrQbBnhwzuB3JEU4pDUKHUJJPG7i89x9bm3KMzqYjpDw972_mDqgWSK9oHO0UG9GLgoOwPZ_cAQUxlBKe_F-UZvKgjiW2ZjQ3ZoTT29Z3c6zHKR7TEDRJFJHeASN77fLhDfgNKSo2KZ-j/s1600/59.gif" />');
theText = theText.replace(/:L\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqFt9nTxTp8oqTSEgjw2bApS63AxJ7pxnh0h6F7WX2bVb3XvBaCvjtmTXfKjSGqyXzhaRdnTHBbRU4SQ-u4FrD1TUBG1F3ZqItqeuFu0AsrHcPNmTF957Z3UJbTMwwhZe6DYeAq44lcxr9/s1600/soldierbaby.gif" />');
theText = theText.replace(/:M\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMxbgjZJdu6uW1qjggXbbsg8TlocRzrSYxNxSah5KBrEWaKp-1f1H7VIbpvhL_Du90hswfrHprLJ2bde-EggXxmtTc024vTzzlO6pnlXPgPLMOnuvb4LizJsvlN8u3Wvd3qSKhM6BlfHg7/s1600/alo.gif" />');
theText = theText.replace(/:N\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV7wSELdnlUa6kmKuWE99Kau87VF8MQm5wXZw7OESRY54MmW2BNgGC-HHj2f68GiXDGGGK-O1A6yXk35HR8E1xstQFMb-gZGdPCcjQi_deEy4l5DZ0kTQ7XGXrWOxHG9Gqv1lYB4-ws2Or/s1600/shutup.gif" />');
theText = theText.replace(/:O\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_tmoM-S2e6_FdFcj4MKoIiZBvTK97HuyUtgiI-c3GlYOBNsGpiK_6qNCQUJqCY8KWrTJWX1I2Q6lF9XwtO_Oq2xND1yu4lXxK_gWwH66NAgusJ-0Nz6AXMm_RaejmWhwQQGE5NAZiZWA1/s1600/yeulam.gif" />');
theText = theText.replace(/:P\)/g,'<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2_esugHtNSHEJkwvBlKFMYI8vjwiaykSHDJv6VngeTU8rf2uvV67FclPE8xgdBHpq36gGSTYgp9PIOOeDaaK1WWQRWLhwLTVRVNvDYd4P4I2pTJGyQeXNRGq1XOVSjMBq4Y7RuiqrYx5D/s1600/datbomb.gif" />');

bodyText.innerHTML = theText;}
//]]>
</script>
<script type='text/javascript'>
emoticonBloggerHuynhNhatHa();
</script>
</b:if>

Cần chú ý để chức năng biểu tượng cảm xúc hoạt động trong phần nhận xét thì bạn phải thay đổi ID comments-block cho phù hợp. ID này nằm trong một thẻ chỉ định thành phần chứa các dữ liệu của nhận xét, thẻ này thường nằm ngay trước dòng <b:loop values='data:post.comments' var='comment'>. Tùy theo cách đặt tên của người thiết kế Template mà id này có thể có tên khác nhau ví dụ: comments-block, comments-block3, comments_block, cm_block, commentsblock …

Bước 2. Tìm đến đoạn code như bên dưới. Đoạn code này biểu thị phần khung viết nhận xét.

<data:blogTeamBlogMessage/>
<a expr:href='data:post.commentFormIframeSrc' id='comment-editor-src'/>
<iframe allowtransparency='true' class='blogger-iframe-colorize blogger-comment-from-post' frameborder='0' height='410' id='comment-editor' name='comment-editor' src='' width='100%'/>

Đặt trước đoạn code trên bằng đoạn code bên dưới:

<script type='text/javascript'>
//<![CDATA[
// Script to insert Emoticons and Links on Blogspot Comments V1 by www.thuthuatblogger.info
function comments_URL() {
var r = prompt("Nhập địa chỉ trang", "http://");
var p = prompt("Nhập link text hiển thị", "Text");
if(r != "") ; if(p != ""){
document.getElementById('comments_input').value += "<a href='" + r + "' rel='nofollow'>" + p + "<\/a>";
} else {
alert("Bạn đã nhập xong dữ liệu");
}
}
function comments_HTML() {
document.getElementById('comments_input').value += '<a href=\'http://URL dẫn đến link \'>Trang<\/a>';
}
function comments_B() {
document.getElementById('comments_input').value += '<b><\/b>';
}
function comments_I() {
document.getElementById('comments_input').value += '<i><\/i>';
}
function comments_EM() {
document.getElementById('comments_input').value += '<em><\/em>';
}
function moreSmilies() {
document.getElementById('smiley-more').style.display = 'inline';
document.getElementById('smiley-toggle').innerHTML = '<a href="javascript:lessSmilies()">&laquo;&nbsp;Less</a></span>';
}
function lessSmilies() {
document.getElementById('smiley-more').style.display = 'none';
document.getElementById('smiley-toggle').innerHTML = '<a href="javascript:moreSmilies()">More&nbsp;&raquo;</a>';
}
//]]>
</script>
<style>
#comments_insert {padding:0;margin:0;width:600px;float:left;text-align: center}
#comments_insert img {padding:0;border:none;margin:2px}
.text_style_wrap {margin-top:10px;}
.text_style {border:1px solid #069;padding:3px;background: #d8eaee}
#comments_insert a {text-decoration:none}
#comments_HTML {display: none}
#comments_input {margin-top:10px}
.tooltip{outline:none;cursor:help;text-decoration:none;position:relative}
.tooltip span{margin-left:-999em;position:absolute}
.tooltip:hover span{border-radius:5px 5px;-moz-border-radius:5px;-webkit-border-radius:5px;box-shadow:5px 5px 5px rgba(0,0,0,0.1);-webkit-box-shadow:5px 5px rgba(0,0,0,0.1);-moz-box-shadow:5px 5px rgba(0,0,0,0.1);font-family:Calibri,Tahoma,Geneva,sans-serif;position:absolute;left:1em;top:2em;z-index:99;margin-left:0;width:300px}
.tooltip:hover img{border:0;margin:-10px 0 0 -55px;float:left;position:absolute}
.tooltip:hover em{font-family:Candara,Tahoma,Geneva,sans-serif;font-size:1.2em;font-weight:bold;display:block;padding:0.2em 0 0.6em 0}
.help{padding: 0.8em 1em; background: #FFCCAA; border: 1px solid #FF3334;text-align:justify;color:#000}
</style>
<!--[if IE]> <style> #comments_URL {display: none} #comments_HTML {display:inline} </style> <![endif]-->

<div id='comments_insert'>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:1) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH2GcZRWJ-mB_A9cmApfk4TJQzOI6TePBkc3cfTAZmHxxi_32ItNucScnRvPfuW9TB_i5-kIAo-XvVrF-fY2IelBclCwV5vH6P2Jh25C0_N-JVbxTmS96_Jg_kc2qFrZ4-oSCUAa-15lxv/s1600/49.gif' style='border: 0; padding:0' title='hê hê hê'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:2) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgESaISRrg8mzJrsbbf92zvdfkI1VqQgCpbHE06GL-m10jRnAsUc5UQT3cCYVddsH5LIwCIuSexy9uDEVcNmU6EBTEGwLJUe3YrTRoGrA3Cr28SOg4WiEQaHeu04_f4iXsNHNNh9oSD4ncg/s1600/102.gif' style='border: 0; padding:0' title='hôn hôn'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:3) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgP3GxuYaY8Og48gJX1Ljgba9y189eKp3Htu14o8saDeRWmeTwmMzWQp8r63sK96-5MRMA9Ln8itmOtll_AO_moAnQfxhnQogSLXCk_NDcQTfUzmnnl5ICh5jgQeC2EyEQkb1ELq46Wgfl4/s1600/113.gif' style='border: 0; padding:0' title='ua ua ua'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:4) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiIQkb8Wq-nWyyJb_5_Ht2PKDEO7vnDzwxfniG0XyQ8jOhS2u3vOPDlcHHcNbSn0Aak6VRIqgLIT5wq6CWwAT3RPLW13eaFpOZNvqOhy4EGEtMkdr6DXVxMS_HBN2amBDSSY53Rly6QAkL3/s1600/93.gif' style='border: 0; padding:0' title='nhìn nè'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:5) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLG_zsOyWiqt2WYLfjSSspY9cOF5AnoB4jje6lhnJ2tV8pVehMm_aijMY6908LCjhnv2Z2Azru2FAwPobKGXlYNvQsmJJwdzo6vfScPZ6UquQeGzS4FmpOj6xkAIkDXIIri-fq8O3EUkX7/s1600/61.gif' style='border: 0; padding:0' title='vỗ tay'/></a>
<span id='smiley-more' style='display: none;'>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:6) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifdjf4CaUnnqZ-vY7rVNbbmOraQSAk-3NO1QBqBd8gSy5c65Zc0jahIl6zsTkJ94KVX2vGLSbbcFHNT1K2k2WW3IbaXdK2XiaKdHBlbBh5Ux4k5iF8_Rdbt3RTxnZYT7rH8AmigsAK10z0/s1600/134.gif' style='border: 0; padding:0' title='tát bớp'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:7) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhR3wjPS_2ceiD1BZ3Dq3FO8_adrPGqTAa2FOJk9ygK9JUTuQw1Nv3-CW9SjcXMR9u-WG4lEplRqroqNASqOsz40dQm3WAEYq7B2xG_Vcokz3i8evmOT5zUfLW8TLK3Fpc8-TSSI1K7H1oE/s1600/39.gif' style='border: 0; padding:0' title='rơi lệ'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:8) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1WLCtPaJ0EYLjnSaiMlklD5YfwmHKn85R12JqHN6Y_91ZehChQSyvF78uikm4y5_wzJvMy0Doy7AzIcIxrm0BPk5PCBqzcP-bSj6VY8gY0TsrOcU_5is7JdWFBlsqXIjfvgCksc9FCwGN/s1600/106.gif' style='border: 0; padding:0' title='money money'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:9) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-gW6NNd_gt89k0DE3mDVT4VKGZyO1LcybA9dE3ntSsfgwElDs6d292rSuXvdLI2fGRPFIVbazsAD6yxzWrPo6ZgtqtRoRztdYDkXH8t2w-zr8PQkqrBhgokvo2u1p0aFXSAbGtx4Z5i7c/s1600/43.gif' style='border: 0; padding:0' title='lêu lêu'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:A) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieUhhDNotQy2RaBst3jnrXH9ySLVxmJ-OtZJ8VIho_VD2sjbfhXg7US4W63HDYIAFxv88RflX-OFkvI48kjEhrVsNvpDIJNVmkSVQjC7FGDU5bJNAvZ5lzHxo_i1Vc63OMn0MPMcpcZLk8/s1600/111.gif' style='border: 0; padding:0' title='lắc đầu'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:B) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinfgJ_lVCgHJUlbTWHrdOXwuuedK3Opzy7vBBYe6hzD3J9d_so6XI8T7L0JFLB-Si0xcWSeN3PbTt6VvuG5zgQRH0qOoV_tF2IuobALqPcbBJvQCi4nn-rSn7ud_Ec3CgF50Mxbo6hGU3p/s1600/48.gif' style='border: 0; padding:0' title='khóc ròng'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:C) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8WtvNyYaNdPQLkY57KCOMQPIVeetQXgTUGgjeBxDoT2PHyQxkSOHaIyx7FQpRkaeT71D0yEoHOhzjAgIiSYn8_Z_3zdORwnYYkuB1WMcnw2XkshiwiO31fKmuqq0XCo5L3WPH2ZTTkw73/s1600/54.gif' style='border: 0; padding:0' title='I don’t know'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:D) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_L_hb-SmYZF513svMgzOwh2ZA_591M3VWuwdluodD6JFyYczRui2WyfqUcsQ44onxHhdg4DM0Qzn-mcO3Z8xQMTZ-4wZ-apbpqyzNPi1TImwfJ_n1BSoDDN1NeMCoS8oJE0PnSVpEekVJ/s1600/63.gif' style='border: 0; padding:0' title='hi hi hi'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:E) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwbvae-91I_uRzIDi2qKqY2w0lKCNVZtiGHUIOhBmG-nln07tLUBYnZ9UzTQO1N3rED0Hcpb5_9EvgdMkVC9xfc3linDEkUlnqVT9VN1HvLfroHIuARzgNWItvCHhGJ_hShSe6fFLb9iEb/s1600/100.gif' style='border: 0; padding:0' title='đá một phát'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:F) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiET8ub6ImW6lIHzU5VOWDLdWh9XYDFdR4ot0Gt6ZTR9gSyuWKXy_PY6Tn7fGqy6s-bPGOxKJXYeQ7jryEpyzr4TQ1PBKZU-Aso5wsBH8LUwZNcs4dzLUnE-Recq1xIUHoWLnsLf_SLMxPs/s1600/45.gif' style='border: 0; padding:0' title='cười lớn giơ răng'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:G) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih2A15ym_T-l6ixSIh88NABjD9fV1AUV3RvPIa803VaqObboSlaj7wUgqCOQ1NAuhhnCE69KgwQwbEgQphRNL_qtACnkvkw8SPIJ1g73Bx0xmeS446LtinnyaxkDf7OoBWRUWaboMGVubL/s1600/77.gif' style='border: 0; padding:0' title='cụng ly'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:H) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXYgoLEEaQOHKgrhgTXwPbfGX3VZgXQxDAL3pP8nm5dGK_ubJ5mGthbKmbv8bnXpt56MtKltSgM8G0eUmkZt5CVfk9boIh23aHiveVnXjuTQ4yBoGHBD7dw5q_zpusXLLmjm2kzO91BgYN/s1600/86.gif' style='border: 0; padding:0' title='chém gió'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:I) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8B002eqVZ1rxLs5J9nmY83Y6JosNTqXKzgyYD6ETdnEgDU5WCaEQDRYesT8z5ckZVafdRcX2NUxIQAwKBaDKzVol8c0zU1yGCeL0gsfwx8jKnaw62ufyvxDaOLpCUAo8o9c4MJPlBdw5s/s1600/94.gif' style='border: 0; padding:0' title='bắt tay'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:J) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUvLqZC_5bD48R95LqrdfNqs60w6IoBMzzlGeaBCJW_mbvPzvIgUa0xe46p5sXqrzPqlAwdcgzncKLV_HzJuo7rjtHqmrWTWXRmyoWN5lUl5ZFQPMsNFBEhQbCvS8D8-XLtaMQUpExQ4hU/s1600/83.gif' style='border: 0; padding:0' title='ăn ăn ăn'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:K) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggrQbBnhwzuB3JEU4pDUKHUJJPG7i89x9bm3KMzqYjpDw972_mDqgWSK9oHO0UG9GLgoOwPZ_cAQUxlBKe_F-UZvKgjiW2ZjQ3ZoTT29Z3c6zHKR7TEDRJFJHeASN77fLhDfgNKSo2KZ-j/s1600/59.gif' style='border: 0; padding:0' title='byyeee'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:L) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqFt9nTxTp8oqTSEgjw2bApS63AxJ7pxnh0h6F7WX2bVb3XvBaCvjtmTXfKjSGqyXzhaRdnTHBbRU4SQ-u4FrD1TUBG1F3ZqItqeuFu0AsrHcPNmTF957Z3UJbTMwwhZe6DYeAq44lcxr9/s1600/soldierbaby.gif' style='border: 0; padding:0' title='nhóc lính'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:M) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMxbgjZJdu6uW1qjggXbbsg8TlocRzrSYxNxSah5KBrEWaKp-1f1H7VIbpvhL_Du90hswfrHprLJ2bde-EggXxmtTc024vTzzlO6pnlXPgPLMOnuvb4LizJsvlN8u3Wvd3qSKhM6BlfHg7/s1600/alo.gif' style='border: 0; padding:0' title='Alo'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:N) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV7wSELdnlUa6kmKuWE99Kau87VF8MQm5wXZw7OESRY54MmW2BNgGC-HHj2f68GiXDGGGK-O1A6yXk35HR8E1xstQFMb-gZGdPCcjQi_deEy4l5DZ0kTQ7XGXrWOxHG9Gqv1lYB4-ws2Or/s1600/shutup.gif' style='border: 0; padding:0' title='Shup up'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:O) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_tmoM-S2e6_FdFcj4MKoIiZBvTK97HuyUtgiI-c3GlYOBNsGpiK_6qNCQUJqCY8KWrTJWX1I2Q6lF9XwtO_Oq2xND1yu4lXxK_gWwH66NAgusJ-0Nz6AXMm_RaejmWhwQQGE5NAZiZWA1/s1600/yeulam.gif' style='border: 0; padding:0' title='Yêu lắm đó'/></a>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).value += &quot;:P) &quot;;'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2_esugHtNSHEJkwvBlKFMYI8vjwiaykSHDJv6VngeTU8rf2uvV67FclPE8xgdBHpq36gGSTYgp9PIOOeDaaK1WWQRWLhwLTVRVNvDYd4P4I2pTJGyQeXNRGq1XOVSjMBq4Y7RuiqrYx5D/s1600/datbomb.gif' style='border: 0; padding:0' title='Đặt bom'/></a>
</span>
<span id='smiley-toggle'><a href='javascript:moreSmilies()'>
More &#8594;</a></span>

<div class='text_style_wrap'>
<a href='javascript: void(0);' onClick='comments_B()'><span class='text_style'><b>Chữ đậm</b></span></a>
<a href='javascript: void(0);' onClick='comments_I()'><span class='text_style'><i>Chữ nghiêng</i></span></a>
<a href='javascript: void(0);' onClick='comments_EM()'><span class='text_style'><em>Chữ nghiêng 2</em></span></a>
<a href='javascript: void(0);' id='comments_HTML' onClick='comments_HTML()'><span class='text_style'>Chèn Link</span></a>
<a href='javascript: void(0);' id='comments_URL' onClick='comments_URL()'><span class='text_style'>Chèn Link</span></a>
<script type='text/javascript'>
function openup_parseHTML() { window.open(&quot;http://ha-escapexml.blogspot.com&quot;, &quot;followblog&quot;, &quot;height=540, width=450, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no&quot; ); }
</script>
<a href='javascript:openup_parseHTML()' rel='nofollow' title='Mã hóa code trước khi đưa vào bình luận'><span class='text_style'>Mã hóa code</span></a>
<a class='tooltip' href='javascript: void(0);'><b style='color:#F00'>Help ?</b><span class='help'>Nhấn vào biểu tượng hoặc kiểu chữ hoặc chèn link sau đó nhấn nút Chọn rồi copy (Ctrl + C) để paste (Ctrl + V) vào khung viết bình luận. Mã hóa code nếu bạn muốn đưa code vào bình luận.</span></a>
</div>
<form name='comments_form'>
<textarea cols='70' id='comments_input' rows='1' style='background: #F8F8FF;margin-bottom:7px'/>
<br/>
<a href='javascript: void(0);' onClick='document.getElementById(&quot;comments_input&quot;).select();'><span class='text_style'>Chọn</span></a>
<a href='javascript: void(0);' onClick='document.comments_form.reset();'><span class='text_style'>Xóa</span></a>
</form>
</div>

Lưu Template. Trên đây mình gắn sẳn 25 biểu tượng cảm xúc, nếu các bạn muốn thêm thì có thể tự nghiên cứu để gắn thêm vào, đảm bảo sự đồng nhất biểu tượng theo thứ tự ở Bước 1 và Bước 2. Những phần được đánh dấu màu đỏ là những phần bạn có thể tùy biến theo ý thích của mình.

Tự động chèn video Youtube chỉ bằng ID vào bài viết

Trước đây mình đã từng giới thiệu cách chèn tự động video trên Youtube vào blogspot. Cách này áp dụng cho code embed kiểu cũ. Mà code embed kiểu cũ của Youtube thường có dạng như thế này:

<object width="420" height="315"><param name="movie" value="http://www.youtube.com/v/2WnaQgQwGa4?version=3&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/2WnaQgQwGa4?version=3&amp;hl=en_US" type="application/x-shockwave-flash" width="420" height="315" allowscriptaccess="always" allowfullscreen="true"></embed></object>

Trong đoạn code trên thì 2WnaQgQwGa4 chính là ID của video. Hiện nay Youtube đã áp dụng code chèn kiểu mới, có dạng như sau:

<iframe width="420" height="315" src="http://www.youtube.com/embed/2WnaQgQwGa4" frameborder="0" allowfullscreen></iframe>

Đối với các blogspot chuyên đăng video clip lấy từ Youtube thì công việc chèn video cần được tự động hóa, giúp người quản trị đỡ phần mệt nhọc. Ngoài cách chèn tự động trước đây mình đã giới thiệu, hôm nay mình giới thiệu tiếp một cách khác. Trước tiên bạn cần đặt một đoạn script tạo chức năng chèn video tự động trước thẻ </head> trong Template.

<script type='text/javascript'>
//<![CDATA[
// Script to insert Youtube video automatically on Blogspot by www.thuthuatblogger.info
function insert_YouTube(IDyoutube) {
var width = 430; // có thể chỉnh chiều rộng khung video
var height = 315; // có thể chỉnh chiều cao khung video
var output = "<div style=\"text-align:center;\">";
output = '<iframe width="'+width+'" height="'+height+'" src="http://www.youtube.com/embed/'+IDyoutube+'?rel=0" frameborder="0" allowfullscreen>'; // rel=0 giúp vô hiệu hóa chức năng video liên quan
output += "</iframe>";
output += "</div>";
document.write (output);
}
//]]>
</script>

Đến đây, mỗi khi đăng bài viết, ở chế độ Edit HTML trong công cụ đăng bài, bạn chỉ việc đặt code như sau:

<script>insert_YouTube("XXXXXXXXXXX");</script>

Trong đó XXXXXXXXXXX chính là ID của video trên Youtube.
Ưu điểm của cách này so với cách cũ là khi đang play video, click vào màn hình video thì sẽ không xuất hiện tab dẫn đến trang video Youtube (trong khi cách cũ vẫn bị tình trạng này).

Tối ưu hóa việc lập chỉ mục blogspot trên công cụ tìm kiếm

Khi nói đến lập chỉ mục trang web, chúng ta đang đề cập đến việc thêm một trang web vào danh sách các kết quả của một công cụ tìm kiếm. Về lý thuyết, người sử dụng Blogger không cần phải làm bất cứ điều gì phức tạp để blogspot được đánh chỉ mục, công việc này được thực hiện tự động khi bạn khai báo trong mục cài đặt Settings >> Basic:


Việc đưa một blogspot để được đánh chỉ mục trên công cụ tìm kiếm của Google có thể được thực hiện thủ công tại trang Add URL của Google. Tại đây, bạn chỉ cần điền vào URL trang blogspot của bạn là được.

Tuy nhiên, đối với blogspot, việc tự động lập chỉ mục trên công cụ tìm kiếm có những tiêu cực nhất định, nếu bạn để tất cả các trang trên blogspot của bạn đều được lập chỉ mục thì đó là một sai lầm. Nhìn chung, một blogspot nên chỉ lập chỉ mục trang chính, các trang bài viết (item page) và các trang tĩnh (static page), còn mọi kiểu trang khác (gồm các trang nhãn, các trang phân trang và các trang lưu trữ) nên bỏ qua và cần được chặn không cho lập chỉ mục để tránh việc lặp nội dung.

Những kiểu trang cần phải chặn như:

http://huynh-nhat-ha.blogspot.com/search/label/Blogger
http://huynh-nhat-ha.blogspot.com/search?updated-max=2011-08-31T00%3A00%3A00-03%3A00
http://huynh-nhat-ha.blogspot.com/2011_09_01_archive.html

Những kiểu trang như thế cần được chặn không cho lập chỉ mục vì chúng chứa những thông tin trùng lặp với trang chủ. Về lý thuyết file robot.txt chặn các URL trang nhãn, song đôi khi bạn vẫn tìm thấy các trang nhãn xuất hiện trên kết quả công cụ tìm kiếm do nhiều lý do khác nhau và điều này không có lợi cho blogspot của bạn.

Để chặn việc lập chỉ mục các trang lưu trữ, chúng ta sử dụng lệnh điều kiện như thế này:

<b:if cond='data:blog.pageType == &quot;archive&quot;'>
<meta content='noindex,nofollow' name='robots'/>
</b:if>

Tiếp tục muốn chặn không cho lập chỉ mục các trang khác ngoài trang chủ thuộc kiểu trang chính (index) thì ta sử dụng như sau:

<b:if cond='data:blog.pageType == &quot;index&quot;'>
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<meta content='noindex,nofollow' name='robots'/>
</b:if>
</b:if>

Tựu trung lại, chúng ta sẽ có một đoạn code hoàn chỉnh để giúp chúng ta tối ưu hóa việc lập chỉ mục cho blogspot của bạn như sau:

<b:if cond='data:blog.pageType == &quot;archive&quot;'>
<!-- nếu là các trang lưu trữ thì không cho lập chỉ mục -->
<meta content='noindex,nofollow' name='robots'/>
<b:else/>
<b:if cond='data:blog.pageType == &quot;index&quot;'>
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<!-- nếu là các trang nhãn và trang phân trang thì không cho lập chỉ mục -->
<meta content='noindex,nofollow' name='robots'/>
<b:else/>
<!-- còn lại trang chủ cho phép lập chỉ mục -->
<meta content='all,index,follow' name='robots'/>
</b:if>
<b:else/>
<!-- còn lại các trang bài viết và trang tĩnh cũng cho phép lập chỉ mục -->
<meta content='all,index,follow' name='robots'/>
</b:if>
</b:if>

Đoạn code trên cần được đặt sau dòng <b:include data='blog' name='all-head-content'/> trong Template của bạn.

Nếu kết hợp tối ưu hóa thẻ tiêu đề và thẻ meta mô tả cho blogspot thì bạn sẽ dùng code như sau:

<b:include data='blog' name='all-head-content'/>
<!-- Meta Tags and Indexing SEO Full Pack by http://www.thuthuatblogger.info for Bloggers -->
<b:if cond='data:blog.pageType == &quot;archive&quot;'>
<!-- nếu là các trang lưu trữ thì không cho lập chỉ mục -->
<meta content='noindex,nofollow' name='robots'/>
<b:else/>
<b:if cond='data:blog.pageType == &quot;index&quot;'>
<b:if cond='data:blog.homepageUrl != data:blog.url'>
<!-- nếu là các trang nhãn và trang phân trang thì không cho lập chỉ mục -->
<meta content='noindex,nofollow' name='robots'/>
<b:else/>
<!-- còn lại trang chủ cho phép lập chỉ mục và tối ưu thẻ meta -->
<meta content='Đây là đoạn text mô tả ngắn gọn cho chủ đề blogspot của bạn.' name='description'/>
<meta content='Từ khóa 1, từ khóa 2, từ khóa 3, từ khóa 4, từ khóa 5' name='keywords'/>
<meta content='all,index,follow' name='robots'/>
</b:if>
<b:else/>
<!-- còn lại các trang bài viết và trang tĩnh cũng cho phép lập chỉ mục -->
<meta expr:content='data:blog.pageName' name='Description'/>
<meta content='all,index,follow' name='robots'/>
</b:if>
</b:if>
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<title><data:blog.title/></title>
<b:else/>
<title><data:blog.pageName/> | <data:blog.title/></title>
</b:if>
<b:skin><![CDATA[/*

Website, phần mềm, smartphone liên quan quản lý gia phả

Giới thiệu chung
Mình làm cái phần mềm Gia Phả từ ngày mới bắt đầu viết code php, năm 2003. Từ những ý tưởng chính như bài viết sau:  GIA PHẢ, TRUYỀN THỐNG VÀ HIỆN ĐẠI (bài này viết từ năm 2003, cũ rích)

Ban đầu, website rất cùi (bây giờ cũng cùi??), chỉ đơn giản là HTML, TEXT. Lý do chính là thời đó, mình nghĩ là người dùng toàn là những ông cụ lớn hơn 60 tuổi, xài Dialup là chính. Làm gì có ADSL như bây giờ. Phiên bản đầu, việc cập nhật thông tin gia phả cực kỳ khó khăn. Chỉ dùng web form. Chậm rì, lỗi nhiều như bug.

Sau này, Bản nâng cấp phần soạn thảo được viết lại hoàn toàn bằng JAVA SWT Vietnamgiapha Offline Editor, chạy lẹ hơn. Và quan trọng là có thể đồng bộ hóa dữ liệu giữa Software Offline và website.

Trên tinh thần phi lợi nhuận và vì cộng đồng là chính, mình sẽ viết lại toàn bộ kỹ thuật từ đầu tới cuối, để bạn hiểu cách làm một hệ thống Gia Phả.

Mục lục nội dung
1. Website Việt Nam Gia Phả
2. Phần mềm soạn thảo Offline Việt Nam Gia Phả
  • Chọn ngôn ngữ viết, vì sao dùng Java SWT
  • Mô tả các functions chính
  • Cách lưu trữ dữ liệu
  • Load dữ liệu từ file và xuất dữ liệu ra file.
  • Khó khăn chưa giải quyết được.
3. Hướng nâng cấp hỗ trợ cho smartphone 
4. Dự tính xa vời khác
Sẽ đăng từng bài một, xin đón đọc và chờ góp ý!

Góp ý xây dựng trang Author cho Thủ thuật Blogger

Thủ thuật Blogger luôn mở rộng cửa chào đón những tác giả có nhiệt huyết cống hiến cho cộng đồng Blogspot Việt Nam để chia sẻ những kinh nghiệm cá nhân về kỹ thuật thế kế blog trên nền tảng Blogger. Thực hiện chủ trương này, Thủ thuật Blogger xây dựng một trang Author thật đặc biệt thể hiện cái nhìn tổng quan về các tác giả, tại đây người đọc không chỉ có thể tiếp cận các bài viết của từng tác giả, mà còn có thể kết nối với các tác giả qua các trang mạng xã hội, tạo sự tương tác hài hòa giữa người đọc và tác giả.


Kể từ ngày 12/9/2011, trang Author của Thủ thuật Blogger được lập ra chính thức. Tuy nhiên, để có những tính năng thật nổi bật đồng thời đem lại hiệu quả tốt nhất cho việc khai thác kiến thức của người đọc, Ban Quản trị Thủ thuật Blogger kính đề nghị bạn đọc gần xa góp ý về giao diện trang Author này; có thể cho ý kiến thêm, bớt tiện ích cho phù hợp với loại hình trang.

Trân trọng cảm ơn và chân thành kính báo!

Tạo trang homepage riêng cho trang nhãn nhất định

Để tạo ra những thủ thuật vừa mới vừa độc thì mình luôn luôn khuyến khích các bạn đóng góp ý tưởng, bởi một lẽ hiển nhiên là “một cây làm chẳng nên non – ba cây chụm lại nên hòn núi cao” và trí óc mình dù có sáng tạo mãi thì nó cũng cạn đấy bạn ạ. Thế nên sự đóng góp của các bạn rất hữu ích cho cộng đồng.

Mới đây bạn Minh Triết có hỏi rằng, có cách nào tạo hẳn một trang giao diện riêng cho một nhãn gồm cả phần main blog hay không, và nếu cái này mà làm được nữa thì vô đối. Lấy ví dụ blog của mình có 3 chủ đề chính: là A, B, C gồm các bài viết theo các nhãn A, B và C. Mình muốn trang homepage riêng và mỗi khi vào trang có dạng http://abc.blogspot.com/search/label/A thì sẽ tạo ra một trang homepage riêng cho nhãn A (tương tự với B và C).

Quả thật thì ý tưởng này rất hay và rất độc đáo. Trước tiên xin cảm ơn bạn Minh Triết đã đóng góp ý tưởng này. Và sau đây là trang Demo để các bạn xem trước.

Nào chúng ta cùng tìm hiểu vấn đề nhé bạn. Hẳn bạn cũng biết, mỗi trang chủ của blogspot được định dạng trong phần main (gồm tiện ích Blog Posts và các tiện ích khác có thể được thêm vào). Code của phần main này ở chế độ Edit HTML của Template không mở rộng mẫu tiện ích có dạng chuẩn như sau:

<!-- Main content -->
<div id='main-wrapper'>
<b:section class='main' id='main' showaddelement='yes'>
<b:widget id='Blog1' locked='true' title='Bài đăng trên Blog' type='Blog'/>
</b:section>
</div>
<!-- /Main content -->

Như vậy muốn tạo kiểu trang chủ riêng cho một nhãn thì chúng ta tạo thêm một phần main khác (có ID khác phần main chính của blogspot) và dùng lệnh điều kiện để chỉ hiển thị phần main mới tạo ở trang nhãn đó. Khi đó bạn sử dụng code như sau (thay đoạn code nói trên bằng đoạn code bên dưới:

<!-- Main content -->
<b:if cond='data:blog.url == &quot;URL_đến nhãn nào đó&quot;'>
<style>
#main2-wrapper {
… đặt code CSS ở đây …
}
</style>
<div id='main2-wrapper'>
<b:section class='main' id='main2' showaddelement='yes'>
<b:widget id='Blog2' locked='true' title='Bài đăng trên Blog' type='Blog'/>
</b:section>
</div>
<b:else/>
<div id='main-wrapper'>
<b:section class='main' id='main' showaddelement='yes'>
<b:widget id='Blog1' locked='true' title='Bài đăng trên Blog' type='Blog'/>
</b:section>
</div>
</b:if>
<!-- /Main content -->

Lưu ý phần code CSS ở trên bạn có thể tạo giống như CSS của phần main ở trang chủ hoặc có thể tạo khác nếu bạn muốn nó khác biệt.

Bạn cần phải nhớ rằng phần main mới tạo chỉ hiển thị ở trang nhãn chỉ định nên khi vào phần Page Elements để thêm tiện ích thì bạn sẽ không thấy được phần main này. Do đó nếu muốn tùy biến cho phần main này thì bạn phải chỉnh sửa ở chế độ mở rộng mẫu tiện ích hoặc thêm tiện ích ở trang chủ và hoàn thiện nó rồi sau đó vào Edit HTML để di dời nó đến phần main mới tạo. Lấy ví dụ mình tạo một tiện ích có ID là HTML100 ở trang chủ, sau đó mình vào Edit HTML và di dời nó đến phần main mới tạo như sau:

<b:section class='main' id='main2' showaddelement='yes'>
<b:widget id='HTML100' locked='false' title='' type='HTML'/>
<b:widget id='Blog2' locked='true' title='Bài đăng trên Blog' type='Blog'/>
</b:section>

Hoặc

<b:section class='main' id='main2' showaddelement='yes'>
<b:widget id='Blog2' locked='true' title='Bài đăng trên Blog' type='Blog'/>
<b:widget id='HTML100' locked='false' title='' type='HTML'/>
</b:section>

Như vậy nếu bạn muốn một trang nhãn nào đó có định dạng rất phức tạp với nhiều tiện ích thì trước tiên bạn thêm chúng ở trang chủ, xong rồi bạn di dời chúng đến phần main mới tạo theo cách như trên.

Tương tự nếu bạn muốn tạo kiểu trang chủ cho nhiều nhãn, ví dụ các nhãn A, B, C thì bạn dùng code như sau:

<!-- Main content -->
<b:if cond='data:blog.url == &quot;URL_đến nhãn A&quot;'>
<style>
#main2-wrapper {
… đặt code CSS ở đây …
}
</style>
<div id='main2-wrapper'>
<b:section class='main' id='main2' showaddelement='yes'>
<b:widget id='Blog2' locked='true' title='Bài đăng trên Blog' type='Blog'/>
</b:section>
</div>
</b:if>

<b:if cond='data:blog.url == &quot;URL_đến nhãn B&quot;'>
<style>
#main3-wrapper {
… đặt code CSS ở đây …
}
</style>
<div id='main3-wrapper'>
<b:section class='main' id='main3' showaddelement='yes'>
<b:widget id='Blog3' locked='true' title='Bài đăng trên Blog' type='Blog'/>
</b:section>
</div>
</b:if>

<b:if cond='data:blog.url == &quot;URL_đến nhãn C&quot;'>
<style>
#main4-wrapper {
… đặt code CSS ở đây …
}
</style>
<div id='main4-wrapper'>
<b:section class='main' id='main4' showaddelement='yes'>
<b:widget id='Blog4' locked='true' title='Bài đăng trên Blog' type='Blog'/>
</b:section>
</div>
</b:if>

<div id='main-wrapper'>
<b:section class='main' id='main' showaddelement='yes'>
<b:widget id='Blog1' locked='true' title='Bài đăng trên Blog' type='Blog'/>
</b:section>
</div>
<!-- /Main content -->

Xin lưu ý một điều rằng, thủ thuật này chỉ dành cho các bạn đã có chút kiến thức về blogspot và có máu phiêu lưu với Template của mình, đồng thời đầu óc phải sáng suốt khi Edit HTML nếu không bạn sẽ phá tanh bành lên đó. Hãy nhớ Download Full Template để sao lưu dữ liệu trước khi thực hiện thủ thuật.

Làm đẹp tiện ích Popular Posts (hiệu ứng tooltip)

Tiện ích Popular posts là 1 tiện ích được cung cấp bởi Blogger, nó hiển thị các bài viết được xem nhiều nhất trong blog với các khoảng thời gian như : 1 tuần, 1 tháng, hay mọi lúc. Và nó cũng có 3 chế độ hiển thị : chỉ hiển thị tiêu đề, hiện thị tiêu đề và ảnh thumbnail, và thứ 3 là kiểu hiện thị đầy đủ (gồm : tiêu đề, ảnh thumbnail và trích dẫn).
Lâu rồi mới lại "nổi hứng", nên bữa nay rảnh ngồi chế lại cái tiện ích Popular posts cho nó đẹp chút. Như các bạn đã biết, tiện ích này có 3 chế độ hiển thị khác nhau. Và trong 3 chế độ này đa phần mọi người thường dùng cách hiển thị ảnh thumnnail và tiêu đề vì cách này nhìn tương đối nhất. Với cách hiển thị đầy đủ (gồm : tiêu đề, ảnh thumbnail và trích dẫn), thì cách này thường chiếm nhiều không gian của blog, do đó mà ít người dùng. Hôm nay mình sẽ áp dụng hiệu ứng tooltips cho tiện ích này, để có thể hiển thị đầy đủ nhất nôi dung của tiện ích này mà không tốn nhiều không gian của blog.


Với áp dụng này, phần trích dẫn của tiện ích sẽ hiển thị khi ta rê chuột vào tiêu đề của bài viết. Việc làm này cũng ko ảnh hưởng nhiều đến việc load tiện ích, do tooltips cũng khá nhẹ, vì thế các bạn có thể an tâm về tốc độ load.

Ở đây mình sẽ hướng dẫn 2 cách hiển thị với tooltips.

Cách 1 : Hiển thị tiêu đề và ảnh thumnail, phần trích dẫn sẽ hiển thị khi rê chuột vào tiêu đề.
Cách 2 : Chỉ hiển thị tiêu đề, khi rê chuột sẽ hiển thị ảnh thumbnail và trích dẫn.

Ảnh minh họa :
Cách 1

Cách 2

Sau đây là hướng dẫn:
1. Đầu tiên để thực hiện được thủ thuật này, blog bạn phải có tiện ích popular posts.
- Các bạn thực hiện các bước chuẩn bị như hình bên dưới.

2. Chèn code javascript và CSS cho tooltips:
- Các bạn vào phần chỉnh sửa HTML và chèn đoạn code này vào trước thẻ </head>
<style type='text/css'>
/* CSS ToolTip */
#dhtmltooltip{
border-right: #555 1px solid;
padding-right: 4px;
border-top: #555 1px solid;
padding-left: 4px;
font-size: 10pt;
z-index: 100;
filter: alpha(opacity=90);
-moz-opacity: .90;
-khtml-opacity: .90;
opacity: .90;
left: -300px;
visibility: hidden;
padding-bottom: 4px;
border-left: #555 1px solid;
padding-top: 4px;
border-bottom: #555 1px solid;
font-family: Arial;
position: absolute;
background: #ffffe0;
width: 250px;
}
#dhtmlpointer{
z-index: 101;
left: -300px;
visibility: hidden;
position: absolute;
}
/* END CSS ToolTip */
</style>
<script language='javascript' src='http://data.fandung.com/js/tooltip.js'/>

3. Như vậy đã chuẩn bị xong. bây giờ sẽ là hướng dẫn thực hiện thủ thuật.

A. Cách 1 : hiển thị ảnh thumnail và tiêu để, phần trích dẫn sẽ hiển thị khi rê chuột.

- Vào bố cục, vào chỉnh sửa code HTML, nhấp chọn mở rộng mẫu tiện ích.
- Chèn đoạn code CSS của thủ thuật vào trước dòng ]]></b:skin>
/* CSS Most View with ToolTip */
.popular-posts {display:none;}
#fdmostview {
margin:0px;
padding: 0px 5px 5px 5px;
}
#fdmostview ul {margin:0!important;}
#fdmostview li.lipopu {min-height:54px;border-bottom:1px dashed #F7AA4F;padding:5px 0 5px 0;}
#fdmostview li.lipopu img {float:left;border:1px solid #ccc;padding:1px;margin-right:4px;width:50px;}
#fdmostview ul li {list-style:none;}
/* END Most View with ToolTip */

- Tiếp tục tìm đến code của tiện ích Popular Posts. code của nó sẽ trông như bên dưới :
<b:widget id='PopularPosts1' locked='false' title='Most View' type='PopularPosts'>
<b:includable id='main'>
<b:if cond='data:title'><data:title/></b:if>
<div class='widget-content popular-posts'>
<ul>
<b:loop values='data:posts' var='post'>
<li>
...
...
...
</li>
</b:loop>
</ul>
<b:include name='quickedit'/>
</div>

</b:includable>
</b:widget>
- và các bạn thêm code của thủ thuật vào đoạn code vừa tìm được như đoạn code highlight bên dưới :
<b:widget id='PopularPosts1' locked='false' title='Most View' type='PopularPosts'>
<b:includable id='main'>
<b:if cond='data:title'><data:title/></b:if>
<div class='widget-content popular-posts'>

<script type='text/javascript'>
var p=0;
var sumpopu = new Array();
var titlepopu = new Array();
var urlpopu = new Array();
var thumbpopu = new Array();
</script>

<ul>
<b:loop values='data:posts' var='post'>

<b:if cond='data:post.thumbnail'>
<script type='text/javascript'>
p++;
sumpopu[p]='<data:post.snippet/>';
titlepopu[p]='<data:post.title/>';
urlpopu[p]='<data:post.href/>';
thumbpopu[p]='<data:post.thumbnail/>';
</script>
<b:else/>
<script type='text/javascript'>
p++;
sumpopu[p]='<data:post.snippet/>';
titlepopu[p]='<data:post.title/>';
urlpopu[p]='<data:post.href/>';
thumbpopu[p]='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYIEgVs9vSOpzUgdEaTB9r_U9YS8pnz2-nk9ra3lomVnNGT_Y0kwTlSIYCrNAtSAfs8rgMXGxQmyjCcQE-q_GTwHp5Z-pydVfQLBaShbQO4VacFmBk1aU1IE4nEHy4rKCGS8x9e6j0b4jr/';
</script>
</b:if>

<li>
...
...
...
</li>
</b:loop>
</ul>
<b:include name='quickedit'/>
</div>


<div id='fdmostview'>
<ul>
<script type='text/javascript'>
//<![CDATA[
for (k=1;k<p+1;k++) {
document.write("<li class='lipopu'><img src='"+thumbpopu[k]+"' /><a href='"+urlpopu[k]+"' onmouseout='hidetip();' onmouseover='showtip('"+sumpopu[k]+"')'>"+titlepopu[k]+"</a></li>");
}
//]]>
</script>
</ul>
</div>

</b:includable>
</b:widget>

- Cuối cùng save template lại.

B. Cách 2 : chỉ hiện thị tiêu đề bài viết, ảnh thumbnail và trích dẫn sẽ hiện thị khi rê chuột vào tiêu đề.

- Vào bố cục, vào chỉnh sửa code HTML, nhấp chọn mở rộng mẫu tiện ích.
- Chèn đoạn code CSS của thủ thuật vào trước dòng ]]></b:skin>
/* CSS Most View with ToolTip */
.popular-posts {display:none;}
#fdmostview {
margin:0px;
padding: 0px 5px 5px 5px;
}
#fdmostview ul {margin:0!important;}
#fdmostview li.lipopu2 {border-bottom:1px dashed #F7AA4F;padding:5px 0 5px 0;}
#fdmostview ul li {list-style:none;}
img.imgpopu2 {float:left;border:1px solid #ccc;padding:1px;margin-right:4px;width:60px;}
/* END Most View with ToolTip */

- tương tự như cách 1, thêm đoạn code highlight bên dưới :
<b:widget id='PopularPosts1' locked='false' title='Most View' type='PopularPosts'>
<b:includable id='main'>
<b:if cond='data:title'><data:title/></b:if>
<div class='widget-content popular-posts'>

<script type='text/javascript'>
var p=0;
var sumpopu2 = new Array();
var titlepopu = new Array();
var urlpopu = new Array();
</script>

<ul>
<b:loop values='data:posts' var='post'>

<b:if cond='data:post.thumbnail'>
<script type='text/javascript'>
p++;
sumpopu2[p]='&lt;img class="imgpopu2" src="<data:post.thumbnail/>" /&gt;<data:post.snippet/>';
titlepopu[p]='<data:post.title/>';
urlpopu[p]='<data:post.href/>';
</script>
<b:else/>
<script type='text/javascript'>
p++;
sumpopu2[p]='&lt;img class="imgpopu2" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYIEgVs9vSOpzUgdEaTB9r_U9YS8pnz2-nk9ra3lomVnNGT_Y0kwTlSIYCrNAtSAfs8rgMXGxQmyjCcQE-q_GTwHp5Z-pydVfQLBaShbQO4VacFmBk1aU1IE4nEHy4rKCGS8x9e6j0b4jr/" /&gt;<data:post.snippet/>';
titlepopu[p]='<data:post.title/>';
urlpopu[p]='<data:post.href/>';
</script>
</b:if>

<li>
...
...
...
</li>
</b:loop>
</ul>
<b:include name='quickedit'/>
</div>


<div id='fdmostview'>
<ul>
<script type='text/javascript'>
//<![CDATA[
for (k=1;k<p+1;k++) {
document.write("<li class='lipopu2'><img src='http://data.fandung.com/img/icon_popular.png' /><a href='"+urlpopu[k]+"' onmouseout='hidetip();' onmouseover='showtip('"+sumpopu2[k]+"')'>"+titlepopu[k]+"</a></li>");
}
//]]>
</script>
</ul>
</div>

</b:includable>
</b:widget>

- Save template lại.

Ẩn nội dung widget bằng password (Update)

Thỉnh thoảng có những nội dung trên widget (tiện ích) mà bạn chỉ muốn một vài người xem và bạn muốn đặt mặt khẩu cho widget đó. Có cách nào để hiện thực hóa vấn đề này không? Câu trả lời là có. Xem DEMO. Password: password

Các bạn chỉ cần làm theo hướng dẫn nho nhỏ dưới đây:

1. Đầu tiên các bạn vào trang này.



2. Nhập mật mã vào khung Key.

3. Chép nội dung bạn muốn ẩn vào khung Plain Text.

4. Bấm vào nút Encrypt và copy code trong khung HTML Code được tạo ra.

5. Bây giờ bạn chỉ cần vào Blogger thêm một tiện ích và paste code bạn đã copy.

6. Bạn tìm thẻ </head> và đặt trước nó đoạn code sau:

<script type="text/javascript" src="http://www.vincentcheung.ca/jsencryption/jsencryption.js"></script>

Như vậy là bạn đã hoàn thành thủ thuật này.

Vậy thủ thuật này có thể áp dụng cho bài đăng trên blog hay không? Câu trả lời là có. Bạn chỉ cần copy nội dung của bài đăng rồi làm theo các bước hướng dẫn tương tự như trong widget.

Hy vọng thủ thuật này sẽ giúp các bạn được phần nào trong quá trình viết blog.

Gia nhập hệ thống Linh Dung VnMart để khởi nghiệp

Xin chào tất cả các bạn!

Lời đầu tiên mình xin gửi tới các bạn lời chúc sức khỏe và lời chào trân trọng nhất.

Sau đây mình xin kể với các bạn câu chuyện thực tế cũng là chia sẻ kinh nghiệm kinh doanh của mình với cộng đồng.

Họ tên đầy đủ của mình là Hoàng Khánh Linh, một cái tên mà ai nghe được cũng bảo là giống con gái nhưng mình là con trai thứ thiệt đấy nha. Mình sinh ra và lớn lên tại Nghệ An, một vùng đất còn nhiều khó khăn đầy nắng đầy gió. Hiện tại mình đang sinh sống và học tập tại Tp. Hồ Chí Minh, 1 thân 1 mình xa quê đến nơi đất khách lại không có anh em họ hàng ở gần nên mình gặp khá nhiều khó khăn. Mình cũng đã từng đi kiếm việc làm thêm nhằm trang trải cuộc sống nhưng để kiếm được việc ở một thành phố đông đúc như Sài Gòn và phù hợp với lịch học quả là một việc không dễ chút nào.

Và trong một lần rất tình cờ, mình đã biết đến VSIM, một công ty kinh doanh theo mạng với sản phẩm là sim đa năng. Mình cùng với bạn gái, lập nên Blog Linh Dung VnMart, chúng mình đã cùng hòa mình vào ngành kinh doanh mới này, đây quả là một đại dương bao la thỏa sức cho chúng mình vùng vẫy.



Chắc các bạn cũng như mình, mục tiêu của mình cũng chẳng khác gì mọi chàng trai khác, hẳn ai cũng đặt ra mục tiêu kiếm thật nhiều tiền, có thật nhiều bạn, cưới một cô vợ thật đẹp, mua 1 ngôi nhà thật tiện nghi, 1 chiếc xế hộp để đưa vợ con đi thăm cha mẹ hay đi du lịch đó đây, mọi người sống hạnh phúc bên nhau, khắp nơi chỉ có tiếng cười và niềm hạnh phúc… một cuộc sống thật hoàn mỹ phải không các bạn?

Nhưng để đạt được “cảnh giới tối cao” đó, chúng ta phải băng qua nghìn trùng gian nan, muôn vàn thử thách để kiếm 1 thứ: đó chính là TIỀN - ai cũng bảo tiền không phải là tất cả - nhưng đâu có ai dám nói là: tôi không cần tiền nhưng tôi vẫn có tất cả!

Ngay cả Bill Gates cũng chưa từng nói như vậy.

Henry Ford – người sáng lập hãng xe hơi nổi tiếng trên toàn thế giới từng phát biểu rằng: “Tôi không dùng 100% sức lực và trí tuệ của chính mình để thành công mà tôi chỉ dùng 1% sức lực và trí tuệ của 100 người để đi tới thành công”.

Nắm bắt thời cơ là vô cùng quan trọng!

Với những gì mình đã trải qua và nắm bắt được, mình muốn chia sẻ đến các bạn, muốn mang đến cho các bạn cơ hội này. Ai trong chúng ta cũng ấp ủ trong mình một hay nhiều ước mơ, nhưng những ước mơ đó có thành hiện thực hay không là do chính bản thân chúng ta quyết định. Tiền không phải là tất cả, nhưng có tiền bạn sẽ dễ dàng tìm lại những ước mơ của mình hơn…

Bạn thích làm thuê hay làm chủ? Chắc chắn bạn sẽ nói: làm chủ. Có ai nói thích làm thuê cho người khác không bạn? 99 người nói KHÔNG! Còn 1 người nói có chẳng qua vì họ bị “thần kinh có vấn đề”!

Bạn muốn suốt đời mình bị hút trong vòng xoay của chữ “nghèo” hay không? Chắc chắn là KHÔNG!

Ước mơ của bạn là gì? Phải chăng bạn không hề có ước mơ? Hoặc nếu có thì chắc nó cũng đã bị cho vào quên lãng, bạn làm gì để hồi sinh nó đây thưa bạn?

Dù bạn là ai, dù bạn làm nghề gì thì chiếc điện thoai cũng là vật bất li thân của bạn trong tất cả các mối quan hệ, và để duy trì liên lạc thường xuyên thì bạn phải trả tiền cho các nhà mạng, vô tình đã làm giàu cho các nhà cung cấp mạng và tất nhiên họ sẽ cung cấp dịch vụ cho bạn, dịch vụ đó chính là sản phẩm, là hàng hóa mà bạn sử dụng hàng ngày, bạn có nghĩ là có khi nào chính bạn cũng là người phân phối những sản phẩm đó không?



Để có thể sở hữu cho mình 1 chiếc sim đa năng thì rất đơn giản, bạn chỉ cần soạn tin nhắn theo cú pháp mà công ty cung cấp, chi phí chỉ là 1,000 đồng. Chức năng của sim đa năng mang lại cho bạn như sau:

- Cho phép bạn có thể thực hiện nạp tiền/ mua mã thẻ trả trước cho tất cả các 7 mạng di động hiện nay là: Mobifone, Vinaphone, Viettel, Beeline, Sfone, Vietnamobile, EVN Telecom.

- Thanh toán trả sau 2 mạng là Viettel và Mobifone.

- Mua các loại tài khoản/ thẻ game...

- Mua bảo hiểm Ô tô - xe máy với mức chiết khấu cao, thao tác nạp tiền nhanh chóng, thuận tiện.

Trong thời gian tới, công ty sẽ nâng cấp thêm nhiều tiện ích mới nữa cho đúng với cái tên: “SIM ĐA NĂNG

Cơ hội có thể đến rất nhiều lần, nhưng thời cơ thuận lợi nhất chỉ có 1 lần thôi bạn ạ! Nếu bạn không tận dụng thì bạn sẽ nhường nó vào tay người khác. Hãy liên hệ với mình nếu các bạn muốn thử sức trong lĩnh vực này nhé!

Trân trọng cảm ơn!

Thủ thuật yêu cầu: Tiện ích Bài viết liên quan mới nhất cho nhãn trên sidebar

Ý tưởng khi xem một bài viết trong nhãn bất kỳ thì tiện ích Bài viết mới nhất xuất hiện gồm những bài mới đăng trong nhãn đó, là một ý tưởng khá thú vị. Thực ra ý tưởng này mình đã nghĩ đến khá lâu và đã từng bước tạo code và thử nghiệm. Gần đây quá trình thử nghiệm đã tới giai đoạn cuối cùng với những dấu hiệu thành công như ý muốn, cũng đúng vào lúc tác giả Lee Peace đã nhắc đến ý tưởng này và yêu cầu mình hiện thực hóa xem có được không. Tiện ích này mình gọi tên là tiện ích Bài viết liên quan mới nhất cho nhãn trên Sidebar (Recent and Related Posts for Label on Sidebar). Trên tiện ích này, mình tạo thêm phân trang có bản (Prev, Next) để có thể xem tất cả các bài viết trong nhãn một cách dễ dàng.

Trước khi nghiên cứu và cài đặt, bạn có thể xem qua Demo.

Bước 1. Đăng nhập Blogger, vào Design >> Edit HTML, chọn Page Elements. Thêm một tiện ích HTML/Javascript, đặt tên tiện ích là Bài viết liên quan mới nhất rồi dán vào phần nội dung tiện ích bằng đoạn code sau đây (Lưu ý mình đã chú ý script để các bạn có thể hiểu tường tận hơn, có thể tùy biến CSS theo ý thích của bạn).

<script type="text/javascript">
// Recent and Related Posts for Label on Sidebar widget by www.thuthuatblogger.info
var post_per_page = 5; // thiết lập số bài viết hiển thị mỗi trang
var post_snippet = 70; // thiết lập số ký tự tóm tắt bài viết
var homepage = "http://huynh-nhat-ha.blogspot.com"; // đặt địa chỉ trang chủ của bạn
var img_default = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSTBOADLaQxKP6C1kR057CprGMaKodKnMQv-C3oypgKgg0xfsP1UUCchnNiRfeEzuPBwDzHO6b1__33UhSJJ8BYkde1CRHxVHiWcf-7rOAzGHYg1zOaHF85RnEnojhnqtphr9OhfpdYxw/s1600/recentpostnothumb.png"; // thiết lập URL hình mặc định

var pr_flagfirst = 0;
var url_prev, url_next;

// chức năng tạo tóm tắt bài viết
function removeHtmlTag(strx,chop){
var summary = strx.split("<");
for(var i=0;i<summary.length;i++){
if(summary[i].indexOf(">")!=-1){
summary[i] = summary[i].substring(summary[i].indexOf(">")+1,summary[i].length);
}
}
summary = summary.join("");
summary = summary.substring(0,chop-1);
return summary;
}

// chức năng tạo biến
function showpagelabel(json) {
var entry, posttitle, posturl, postimg, postcontent;
var str_out = "";

// tìm URL phân trang
for (var k = 0; k < json.feed.link.length; k++) {
if (json.feed.link[k].rel == 'previous') {
// đây là trang trước
url_prev = json.feed.link[k].href;
}
if (json.feed.link[k].rel == 'next') {
// đây là trang sau
url_next = json.feed.link[k].href;
}
}

// đọc và xác định bài viết
for (var i = 0; i < post_per_page; i++) {

// nếu không có thì kết thúc lệnh
if (i == json.feed.entry.length) { break; }

entry = json.feed.entry[i];

// đây là tiêu đề bài viết
posttitle = entry.title.$t;

// tìm URL bài viết
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
// lưu trữ nó
posturl = entry.link[k].href;
break;
}
}

// tìm nội dung bài viết và lưu trữ nó
if ("content" in entry) {
postcontent = entry.content.$t;
} else if ("summary" in entry) {
postcontent = entry.summary.$t;
} else {
postcontent = "";
}

// tìm ảnh đại diện hoặc sử dụng ảnh mặc định
if ("media$thumbnail" in entry) {
postimg = entry.media$thumbnail.url;
} else {
postimg = img_default;
}

// kết thúc đọc, tạo code HTML
str_out += "<div class='pagi_label'>";
str_out += "<a href='" + posturl + "' target='_blank'><img src='" + postimg + "' /></a>";
str_out += "<h6><a href='" + posturl + "' target='_blank'>" + posttitle + "</a></h6>";
str_out += "<p>" + removeHtmlTag(postcontent,post_snippet) + " ...</p>";
str_out += "</div>";
}

// kết thúc lệnh và viết kết quả
document.getElementById("Sidebar_Label").innerHTML = str_out;

// tạo phần phân trang
str_out = "";

// nếu có trang trước, tạo link nhưng chỉ có text
if(url_prev) {
str_out += "<a href='javascript:navi_pagi_label(-1);' class='previous'>Prev</a>";
} else {
str_out += "<span class='disabled previous'>Prev</span>";
}

// nếu có trang sau, tạo link nhưng chỉ có text
if(url_next) {
str_out += "<a href='javascript:navi_pagi_label(1);' class='next'>Next</a>";
} else {
str_out += "<span class='disabled next'>Next</span>";
}

// tạo link cho trang đầu
str_out += "<a href='javascript:navi_pagi_label(0);' class='first'>First</a>";

// viết code
document.getElementById("PR_Label_Sidebar").innerHTML = str_out;
}

// chức năng tạo địa chỉ feed sẽ đọc
function navi_pagi_label(direction){
var p, parameters;
if(direction==-1) {
// trang trước
p = url_prev.indexOf("?");
parameters = url_prev.substring(p);
} else if (direction==1) {
// trang sau
p = url_next.indexOf("?");
parameters = url_next.substring(p);
} else {
// trang đầu
parameters = "?start-index=1&max-results=" + post_per_page + "&orderby=published&alt=json-in-script"
}
parameters += "&callback=showpagelabel";

include_script(parameters);
}

// đây là chức năng load script động
function include_script(parameters) {
// nếu không phải lần đầu tiên thì loại script trên
if(pr_flagfirst==1) {remover_script();}
// xóa mọi thứ và đặt một dòng text hoặc ảnh load
document.getElementById("Sidebar_Label").innerHTML = "<div id='loading_script'></div>";
document.getElementById("PR_Label_Sidebar").innerHTML = "";
// đây là lưu trữ feed
var archive_feeds = homepage + "/feeds/posts/default/-/" + label_Related + parameters;
// load và cho chạy
var nouvo = document.createElement('script');
nouvo.setAttribute('type', 'text/javascript');
nouvo.setAttribute('src', archive_feeds);
nouvo.setAttribute('id', 'LABELTEMPORAL');
document.getElementsByTagName('head')[0].appendChild(nouvo);
pr_flagfirst = 1;
}

// đây là chức năng loại bỏ script đã được load trước
function remover_script() {
var that = document.getElementById("LABELTEMPORAL");
var father = that.parentNode;
father.removeChild(that);
}

// khi load trang thì bắt đầu chức năng
onload=function() { navi_pagi_label(0); }
</script>
<style type="text/css">
#Sidebar_Label {margin: 0 auto;width:100%}
.pagi_label {background-color: #ffffff;border-bottom: 1px dashed #101921;height: 72px;margin: 5px 0;padding: 5px;width: 300px;}
.pagi_label img {float: left;height: 70px;padding:1px;margin: 0 5px 3px;width: 70px;}
.pagi_label h6, .pagi_label h6 a {margin:0;font-size:12px !important;font-weight:normal !important;color:#069}
.pagi_label:hover {-moz-box-shadow: 0px 0px 60px #505961 inset;}
.pagi_label p {font-size:12px;padding:0 3px 3px}
#loading_script {color:#888;font-family:Century Gothic;font-size:100px;letter-spacing:-10px;text-align:center;text-shadow:-5px 0 1px #444; background: #ffffff url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqxvqjv2RKeY20YZ388gcAGpZosIJOF_dKV5OBcObEQRAVzZB98sHpOocn-D0Qci22425Z2v6hF7Qpd-qleIW-j8dTORHN6sKkT9QSDnW5F7CBKU85zBmnjRwjVAQwc8pGUC4JtACftiw/) no-repeat 50% 50%; height:489px; width:100%}
#PR_Label_Sidebar {background-color: #ffffff;color: #BBB;font-family: Tahoma;font-size: 18px;text-align: center;margin:0 auto;width:100%}
#PR_Label_Sidebar a {color: #BBB !important;font-family: Tahoma !important;font-size: 18px !important;font-weight: normal !important;padding: 5px 10px;display:block;}
#PR_Label_Sidebar a:hover {color: #069 !important;}
#PR_Label_Sidebar span {padding: 5px 10px;}
#PR_Label_Sidebar span.disabled {color: #666 !important;}
#PR_Label_Sidebar .next {float:right;}
#PR_Label_Sidebar .previous {float:left;}
#PR_Label_Sidebar .first {text-align:center;}
</style>
<div id="Sidebar_Label"></div>
<div id="PR_Label_Sidebar"></div>

Bước 2. Vào Edit HTML, chọn Expand Wiget Templates. Dùng từ khóa Bài viết liên quan mới nhất tìm đến đoạn code XML của tiện ích rồi thay nó thành như sau (phần đánh dấu màu đỏ là phần thêm vào):

<b:widget id='HTML1' locked='false' title='Bài viết liên quan mới nhất' type='HTML'>
<b:includable id='main'>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<!-- only display title if it's non-empty -->
<b:if cond='data:title != &quot;&quot;'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>
<b:else/>
<style>#HTML1 {display: none;}</style>
</b:if>
</b:includable>
</b:widget>

Bước 3. Dùng các từ khóa như: <div class='post-footer'>, <div class='post-footer-line post-footer-line-1'> hoặc <div class='post-footer-line post-footer-line-2'> tìm đến đoạn code XML liên quan đến nhãn rồi thay nó bằng đoạn code bên dưới (phần đánh dấu màu đỏ là phần được thêm vào):

<span class='post-labels'>
<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<script>var label_Related=&quot;<data:label.name/>&quot;;</script>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != &quot;true&quot;'>,</b:if>
</b:loop>
</b:if>
</span>

Lưu Template là hoàn thành bạn nhé.
Subscribe to RSS Feed Follow me on Twitter!