Thursday, September 15, 2011

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).

Wednesday, September 14, 2011

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[/*

Tuesday, September 13, 2011

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 ý!

Monday, September 12, 2011

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!

Sunday, September 11, 2011

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.

Saturday, September 10, 2011

Ẩ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.

Friday, September 9, 2011

Đại hội chém gió của cộng đồng Blogspot Việt Nam

Không biết từ bao giờ “chém gió” đã trở thành cái mốt của con người. Nó len lỏi khắp nơi trong cuộc sống xung quanh chúng ta: tại cơ quan, công sở, hội họp, quán sá, những cuộc chè chén, những ngôi nhà online… Chém gió đã phát triển thành một nghệ thuật độc đáo, với đầy đủ tuyệt kỹ, thế thần, vũ khí. Khi bạn đi cưa cẩm một cô gái, bạn phải biết cách chém gió như thế nào để hạ đo ván nàng, để nàng phủ phục trước sức hấp dẫn nam nhi của bạn và ngược lại.

Chém gió đã trở thành một bản sắc văn hóa, một tinh hoa phi vật thể, một di sản của loài người. Chém gió có nhiều sắc thái, nhiều góc cạnh khác nhau song chém gió như thế nào cho nó có ích thì mới được, chém gió như thế nào để cho nó thành bão thì mới đã … Vậy nên Đại hội chém gió hôm nay được tổ chức nhằm khảo sát ý kiến của cộng đồng về việc lập ra Hội Chém gió Blogspot Việt Nam. Hội Chém gió ra đời nhằm giúp đỡ các anh chị em trong cộng đồng Blogspot Việt Nam vừa chém gió vừa chia sẻ những kinh nghiệm bản thân để cùng nhau học tập, trao dồi kiến thức giúp hoàn thiện mỗi người trong chúng ta. Những kinh nghiệm ấy không giới hạn phạm vi đề tài, lĩnh vực; đó có thể là kinh nghiệm thiết kế web/blog, học ngoại ngữ, kinh nghiệm xin việc, kỹ năng nói chuyện trước công chúng, tuyệt kỹ chinh phục bạn gái/bạn trai, mẹo vặt… Hội Chém gió có thể được chia nhỏ thành các phân hội theo lĩnh vực hoặc địa phương. Lấy ví dụ Phân hội Chém gió Bạc Liêu, Phân hội Chém gió Đà Nẵng, Phân hội Chém gió Sài Gòn, Phân hội Chém gió Hà Nội, Phân hội Chém gió Phật giáo… Các phân hội được đặt dưới sự quản lý chung của Tổng Hội Chém gió. :67)

Về quy chế thành viên và nguyên tắc hoạt động, Hội chém gió không có giới hạn nào, ai có nhã ý thì gia nhập, ai có tình thì cùng chém cho vui, song như đã nói: chém sao cho có ích, vì thế có một nguyên tắc bất di bất dịch của Hội Chém gió là cấm làm mây làm mưa, tức là cấm chém bừa chém vô tội vạ ảnh hưởng đến người khác. Tạm thời mình sẽ nhận làm Tổng Thư ký lâm thời cho Tổng Hội Chém gió Blogspot Việt Nam, có nhiệm vụ tổng hợp mọi ý kiến và chia sẻ của cộng đồng, báo cáo tình hình chém gió để công khai thông tin và xây dựng chủ trương đường lối hoạt động của Hội. Hội cần một số anh chị em có nhiệt huyết để đảm nhận các chức danh sau đây:

1. Tổng Hội trưởng Hội chém gió: Điều hành các hoạt động của Hội.

2. Đội trưởng Đội phòng chống gió độc: Thay mặt Tổng Hội trưởng xử lý các trường hợp có gió độc gây hại cho cộng đồng.

Các bạn ai có lòng thành muốn gia nhập Hội, vui lòng ghi danh trực tiếp dưới đây, có thể tự ứng cử hoặc đề cử người đảm nhận các chức danh quan trọng, hoặc có thể đề xuất thêm chức danh để Hội phát triển tốt.

Thay mặt Hội Chém gió Blogspot Việt Nam, trân trọng kính báo!

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!

Thursday, September 8, 2011

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/AVvXsEi90J1nRWlOKXCUL31jdVNj8eZ4R08fSXt0iXsnAUabVeTbLc29X4lWgnMhy72CvK3cyGt6mMGcdPYXHDae_ZZJ5yB41RQDhUQ42uP_GKFCzTc_CWpw5MwZUzevzsgxVHOMtQ-GXCoSOFM/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/AVvXsEhmrdpCZ6ncCLQbI8jwkP3uFjeurLTwkSCe6tlN7LbwLMov1yYKgrvHFoK3zg_TYIFxKhkqrKMK50WG6fO-E-pc6ZdrqqyFRnfPR9uEeTiZW7gN5Rxyn_fwP4uqXGf9azlOftcgE5BYo7I/) 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é.

Wednesday, September 7, 2011

Hiển thị widget khi xem bài viết thuộc nhãn nhất định

Chỉ hiển thị widget khi xem bài viết một nhãn nhất định là cách giúp tạo sự khác biệt cho các bài viết thuộc một nhãn nào đó. Theo đó tiện ích được chọn hiển thị sẽ mặc định được ẩn đi, khi nào vào xem các bài viết thuộc nhãn nào đó, nếu lệnh lặp nhãn tìm thấy nhãn đã chỉ định thì tiện ích sẽ được hiển thị.

Bạn có thể xem Demo khi xem các bài viết thuộc nhãn Thông báo tại Thủ thuật Blogger, chú ý tiện ích Cập nhật từ blog khác.

Để thực hiện thủ thuật này, trước tiên bạn cần xác định ID của một tiện ích (widget) mà bạn muốn chỉ hiển thị khi xem các bài viết thuộc nhãn nào đó. Lấy ví dụ ở đây là một tiện ích có ID là HTML1.

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ẻ </head>:

<style type='text/css'>
#HTML1{display:none}
</style>

Bước tiếp theo, tìm đoạn code tương tự đoạn code sau đây:

<span class='post-labels'>
<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<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>

Rồi đổi nó thành thế này:

<span class='post-labels'>
<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<script>var getLabel=&#39;<data:label.name/>&#39;;</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>

Bước 2. Kế đến dùng từ khóa HTML1 tìm đến cấu trúc XML của tiện ích này rồi thêm vào thành như sau (phần được đánh dấu màu đỏ là phần thêm vào):

<b:widget id='HTML1' locked='false' title='Tên tiện ích' type='HTML'>
<b:includable id='main'>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<script>
//<![CDATA[
// Code to display widgets on posts from a label by www.thuthuatblogger.info
if(getLabel=="Tên nhãn") {
document.getElementById("HTML1").style.display = "block";
}
//]]>
</script>
</b:if>
<!-- 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:includable>
</b:widget>

Thay Tên nhãn thành tên của nhãn mà bạn muốn áp dụng thủ thuật. Lưu Template là hoàn thành.

Từ thủ thuật này, chúng ta có thể suy luận ra nhiều vấn đề. Lấy ví dụ theo ý của bạn Linh Dung có hỏi rằng nếu bài viết có nhiều nhãn thì có thể thêm điều kiện để tiện ích chỉ hiển thị đối với nhãn cuối cùng hay không. Câu trả lời của mình là chỉ cần sử dụng Bước 1 với code nhãn như sau:

<span class='post-labels'>
<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != &quot;true&quot;'>,</b:if>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<b:if cond='data:label.isLast == &quot;true&quot;'>
<style type='text/css'>
#HTML1 {display:block}
</style>
</b:if>
</b:if>
</b:loop>
</b:if>
</span>

Tuesday, September 6, 2011

Danh bạ blogspot Việt Nam

Danh bạ blogspot Việt Nam là cổng thông tin lưu trữ toàn bộ các blogspot tại Việt Nam, nơi quảng bá blogspot của các bạn đến từ mọi miền tổ quốc thuộc mọi lĩnh vực kiến thức. Danh bạ blogspot Việt Nam giúp người dùng Blogger dễ dàng tìm kiếm thông tin theo chủ đề đồng thời là cửa ngõ kết nối mọi ngã đường blogspot quy tụ về một mối.


Hãy đăng ký blogspot của bạn vào Danh bạ blogspot Việt Nam! Nội dung đăng ký bao gồm các mục sau đây:

1. Tiều đề blogspot
2. URL (địa chỉ) của blogspot
3. Chủ đề (Category) và Phụ đề (Sub Category)
4. Địa phận (tỉnh/thành phố)
5. Quản trị viên
6. Địa chỉ E-mail
7. Mô tả blogspot.

Sunday, September 4, 2011

Thủ thuật yêu cầu: Ẩn nhận xét của Nặc danh

Hẳn bạn cũng biết người nhận xét với tư cách ẩn danh hoặc có tên là Nặc danh/Anonymous ít nhiều có tác hại đối với blogspot của bạn. Người nhận xét dạng này thường dễ dàng dùng ngôn từ xấu gây phản cảm cho mọi người hoặc cố tình phá hoại đến blogspot của bạn trong khi bạn không phải lúc nào cũng online để ngăn chặn những điều ngoài ý muốn xảy đến với ngôi nhà online của bạn.

Thế thì việc không cho hiện nhận xét của Nặc danh trên blogspot của bạn một cách tự động sẽ giúp bạn giải quyết vấn đề nói trên. Mình viết thủ thuật này theo yêu cầu của bạn Yolks tại trang Vngreenzone.

Để thực hiện thủ thuật này, bạn hãy thực hiện như sau. Đăng nhập Blogger, vào Design >> Edit HTML, chọn Expand Widget Templates.

Tìm đến dòng <b:loop values='data:post.comments' var='comment'>

và đặt sau nó bằng đoạn code bên dưới.

<!-- Anti-Anonymous START -->
<b:if cond='data:comment.author != &quot;Nặc danh&quot;'>
<!-- Anti-Anonymous START -->

Tiếp tục kéo xuống dưới một đoạn để tìm đến thẻ đóng </b:loop> cho thẻ <b:loop> ở trên và đặt trước nó bằng đoạn code bên dưới.

<!-- Anti-Anonymous CLOSE -->
</b:if>
<!-- Anti-Anonymous CLOSE -->

Lưu Template là OK. Lưu ý nếu blogspot của bạn có ngôn ngữ tiếng Anh thì thay từ Nặc danh bằng từ Anonymous. Ý nghĩa của đoạn code này là nếu người nhận xét với tư cách Nặc danh hoặc có tên Nặc danh (nếu đăng nhập tài khoản Google có tên Nặc danh) thì sẽ không có chức năng hiển thị các thành phần của nhận xét như Avatar, tên, URL, nội dung nhận xét …

Ngoài ra nếu bạn muốn thay thế phần nhận xét của Nặc danh bằng một đoạn text thông báo riêng của Quản trị viên thì bạn hãy thay đoạn code:

<!-- Anti-Anonymous START -->
<b:if cond='data:comment.author != &quot;Nặc danh&quot;'>
<!-- Anti-Anonymous START -->

bằng đoạn code bên dưới:

<!-- Anti-Anonymous START -->
<b:if cond='data:comment.author == &quot;Nặc danh&quot;'>
<div class='anoncm-wrapper' expr:id='data:comment.id'><p style='float:left;padding:10px;margin:0;width:400px;color:green;text-align:justify'>Ban Quản trị thông báo: Người bình luận có tên <strong>Nặc danh/Anonymous</strong> không được phép chém gió tại đây.</p>
</div>
<div style='clear:both'/>
<b:else/>
<!-- Anti-Anonymous START -->



Tuy thủ thuật thật đơn giản song kết quả nó mang lại không hề nhỏ.

Wednesday, August 31, 2011

Thông báo về việc nghỉ lễ Quốc khánh ngày 2 tháng 9 năm 2011



Nhân dịp Quốc khánh 2/9/2011, Ban Quản trị và Ban Biên tập website www.thuthuatblogger.info xin kinh chúc Quý khách sức khỏe an khang – sự nghiệp thành đạt và trân trọng thông báo đến Quý khách về việc nghỉ lễ như sau:

- Thủ thuật Blogger nghỉ lễ từ 00 giờ 00 ngày 01/9/2011 đến 24 giờ 00 ngày 03/9/2011 và sẽ trở lại hoạt động bình thường từ lúc 00 giờ 00 ngày 04/9/2011.

Do nghỉ lễ Quốc khánh nên việc công bố giải thưởng Top chém gió trong tháng 8 (giải nhất và giải nhì) sẽ được dời đến ngày 04/9/2011. Trong thời gian nghỉ lễ, quý bạn đọc nếu có vấn đề gì cần giải đáp, vui lòng để lại lời nhắn ở các mục Yêu cầu thủ thuật, Hỏi và Đáp, Gửi hồ sơ bệnh án cho B-Care và chúng tôi sẽ sắp xếp giải đáp kể từ ngày 04/9/2011.

Hy vọng trong những khoảnh khắc quý báu này, quý bạn đọc gần xa sẽ tận hưởng tối đa cuộc sống cùng gia đình và bạn bè. Nếu ai có rảnh muốn lang thang online thì có thể dành chút ít thời gian tạt ngang chốn này và để lại những dòng lưu bút gọi là …






Nước Việt Nam Dân chủ Cộng hòa được thành lập vào ngày 2 tháng 9 năm 1945 (đây cũng là ngày quốc khánh của nước Cộng hòa Xã hội Chủ nghĩa Việt Nam hiện nay), sau Cách mạng Tháng Tám với đóng góp chung của toàn dân Việt Nam dưới sự lãnh đạo của của mặt trận Việt Minh. Trong cuộc cách mạng này Đảng Cộng sản Đông Dương (tổ chức nòng cốt Việt Minh) đóng vai trò chỉ đạo, dù trên thực tế ở một số tỉnh thành chưa có hay khôi phục tổ chức đảng. Tại miền Bắc, một số tỉnh chưa có tổ chức đảng nhưng Việt Minh hoạt động rất mạnh hầu khắp các tỉnh thành. Tại miền Trung, hoạt động của Việt Minh và Đảng Cộng sản khá mạnh. Trong khi đó ở Nam Bộ, hoạt động của Việt Minh có phần yếu hơn, Đảng Cộng sản chưa khôi phục đầy đủ sau Nam Kỳ Khởi Nghĩa. Trong Cách mạng Tháng Tám, tổ chức Việt Minh đã lôi kéo lực lượng Thanh niên tiền tuyến do Chính phủ Đế quốc Việt Nam nuôi dưỡng ủng hộ Việt Minh. Tại một số tỉnh Nam Bộ, Thanh niên tiền phong đóng vai trò quan trọng giành chính quyền.

Tuesday, August 30, 2011

Đặt quảng cáo banner và giới thiệu sản phẩm tại đây

Kính gửi Quý khách,

Thủ thuật Blogger xin gửi lời chào trân trọng và cảm ơn về sự ủng hộ nhiệt tình của quý khách trong thời gian qua. Sau một tháng đi vào hoạt động, Thủ thuật Blogger đã có những dấu ấn phát triển ổn định. Trên con đường hội nhập vươn lên không ngừng, Thủ thuật Blogger quyết tâm trở thành địa chỉ tin cậy, điểm đến trong tương lai của cộng đồng Blogger Việt Nam.

Bắt đầu từ tháng 9/2011, Thủ thuật Blogger chính thức triển khai dịch vụ quảng cáo trên hệ thống website www.thuthuatblogger.info nhằm giúp trang web duy trì hoạt động thường xuyên và cải thiện chất lượng thông tin trong thời gian tới. Đây là cơ hội để cộng đồng Blogger Việt Nam có thêm dịp khẳng định thương hiệu, uy tín và quảng bá sản phẩm của mình tại Thủ thuật Bloger.

Thủ thuật Blogger kính mời Quý khách có nhu cầu sử dụng dịch vụ quảng cáo, đề nghị liên hệ trực tiếp với Ban Quản trị Thủ thuật Blogger tại địa chỉ email webmaster@thuthuatblogger.info hoặc số điện thoại di động: 0909841270 để tham gia khai thác dịch vụ đạt hiệu quả cao nhất.

Hiện nay Thủ thuật Blogger cung cấp các hình thức quảng cáo sau đây:

1. Đặt quảng cáo Banner trên Header
- Kích cỡ: 468 x 60.
- Giá: 10 USD/tháng. Gói khuyến mãi: 15 USD/3 tháng.




Price Range



2. Đặt quảng cáo Banner trên Sidebar
- Kích cỡ: 125 x 125.
- Giá: 3 USD/tháng.




Price Range



3. Đặt quảng cáo giới thiệu sản phẩm tiêu biểu dưới Header
- Bài viết giới thiệu chi tiết về sản phẩm tiêu biểu (có cả banner), thể loại sản phẩm không giới hạn ngành nghề.
- Giá: 5 USD/tháng.




Price Range



Hình thức thanh toán dịch vụ: Qua tài khoản Paypal, tài khoản (ATM) Vietcombank hoặc quy đổi sang VND nộp tiền vào số điện thoại di động.

Riêng các khách hàng tiềm năng (đăng ký quảng cáo có kỳ hạn trên 1 tháng) sẽ được hưởng chính sách khuyến mãi ưu đãi lên đến 50%.

Kính báo!

Giải thưởng Top chém gió tại Thủ thuật Blogger

Thành công của Thủ thuật Blogger của ngày hôm nay không thể không kể đến sự nhiệt tình bình luận và góp ý chân thành của quý bạn đọc. Để vinh danh những đóng góp quý báu ấy, Thủ thuật Blogger thành lập Giải thưởng top chém gió dành cho những người có số bình luận nhiều xếp thứ nhất và thứ hai trong tháng, định kỳ 6 tháng và 1 năm. Giải thưởng được trao dưới hình thức cấp quyền đặt quảng cáo tại Thủ thuật Blogger. Đây là cơ hội để bạn đọc vừa thể hiện quan điểm của mình qua những bình luận đồng thời có thể quảng bá sản phẩm của mình tại Thủ thuật Blogger.

Thủ thuật Blogger luôn phấn đấu xây dựng mối quan hệ tốt với cộng đồng vì thế luôn trân trọng những bình luận của quý bạn đọc.

Bình luận tại Thủ thuật Blogger có lợi ích gì?

Tên miền Thuthuatblogger.info tuy mới hoạt động kể từ ngày 28/7/2010 song đã có PR3, Alexa Rank và lượng truy cập tăng lên từng ngày. Hy vọng rằng những phát triển mới trong thời gian tới sẽ đem đến nhiều backlinks cho người bình luận. Thủ thuật Blogger cũng hy vọng rằng quý bạn đọc không ngừng tạo thương hiệu riêng cho mình thông qua những bình luận mang tính xây dựng.

Quy định về Giải thưởng Top chém gió như thế nào?

Giải thưởng Top chém gió được chia thành 3 định kỳ: theo tháng, 6 tháng và 1 năm.

1. Giải nhất của Giải thưởng Top chém gió trong tháng là quyền đặt banner quảng cáo có kích cỡ 125 x 125 trên sidebar của Thủ thuật Blogger trong vòng 1 tháng, giải nhì là quyền đặt Favicon Link ở phần Main trong vòng 1 tháng.

2. Giải nhất của Giải thưởng Top chém gió 6 tháng là quyền đặt banner quảng cáo có kích vỡ 125 x 125 trên Sidebar trong thời hạn 6 tháng, giải nhì là quyền đặt banner ở cùng vị trí trong thời hạn 3 tháng.

3. Giải nhất của Giải thưởng Top chém gió trong năm là quyền đặt banner quảng cáo có kích vỡ 468 x 60 trên Header của Thủ thuật Blogger trong vòng 1 năm, giải nhì là quyền đặt banner có kích cỡ 125 x 125 trên Sidebar trong thời hạn 6 tháng.

4. Người bình luận phải có tối thiểu 30 bình luận trong tháng để đủ tiêu chuẩn nhận giải thưởng, các tác giả trong Ban biên tập không được phép tham gia chương trình này.

5. Kết quả giải thưởng được công bố tại đây vào ngày đầu tiên hàng tháng (đối với giải thưởng Top chém gió trong tháng), ngày đầu tiên tháng 7 (đối với giải thưởng Top chém gió 6 tháng) và ngày đầu tiên của năm (đối với giải thưởng Top chém gió trong năm).

6. Người bình luận khi trúng giải cần gửi Banner/Favicon vào hộp mail webmaster@thuthuatblogger.info để được đặt Banner/Favicon theo quy định các giải thưởng.

7. Giải thưởng Top chém gió trong tháng được tính từ tháng 8/2011, giải thưởng Top chém gió 6 tháng được tính từ tháng 7/2011 và giải thưởng Top chém gió trong năm được tính từ tháng 1/2011.

8. Quy đinh về các giải thưởng có thể được điều chỉnh bổ sung tùy tình hình phát triển của Thủ thuật Blogger.

Để tạo tính cạnh tranh và công bằng, Thủ thuật Blogger sẽ không đặt tiện ích Top chém gió online mà đặt script tự động theo dõi offline nhằm tránh tình trạng người bình luận miễn cưỡng bình luận để mong muốn vượt lên hàng đầu trong top chém gió.

THỐNG KÊ TOP CHÉM GIÓ TẠI THỦ THUẬT BLOGGER

THÁNG 1/2011
1. Minh Quân (42 bình luận)
2. LinkFoci (17 bình luận)
3. (¯`•.º-:¦:-º♥º¶v¶r.£ëëº♥º-:¦:-º.•´¯) (11 bình luận)
4. BB (10 bình luận)
5. Noct (8 bình luận)
THÁNG 7/2011
1. Ngọn lửa nhỏ blog (26 bình luận)
2.
blue79blog (20 bình luận)
3.
Quan Pham (13 bình luận)
4.
Lamkan (13 bình luận)
5.
Phim Online (11 bình luận)
THÁNG 2/2011
1. Lê Trương Vĩnh Trung (24 bình luận)
2. Minh Quân (17 bình luận)
3. LinkFoci (11 bình luận)
4. Phim Online (10 bình luận)
5. Đinh Thiên Hoàn (8 bình luận)
THÁNG 8/2011
1. Ngọn lửa nhỏ (72 bình luận)
2. Phim Online (67 bình luận)
3. blue79blog (58 bình luận)
4. Linh Dung (47 bình luận)
5. Quan Pham (37 bình luận)
THÁNG 3/2011
1. Phim Online (26 bình luận)
2. Minh Quân (16 bình luận)
3. Hieu (10 bình luận)
4. Tịch Phi Dương (9 bình luận)
5. Lê Trương Vĩnh Trung (9 bình luận)
THÁNG 9/2011
1. Linh Dung (114 bình luận)
2. Yolks (62 bình luận)
3. Hoàng Hải (32 bình luận)
4. D.N.H (25 bình luận)
5. Ngọn lửa nhỏ (25 bình luận)
THÁNG 4/2011
1. iTechPlus (7 bình luận)
2. Lý Siêu Nhân (6 bình luận)
3. poormewhy (5 bình luận)
4. Hùng (5 bình luận)
5. Cassandra (3 bình luận)
THÁNG 10/2011
1. 24h-Cafe (68 bình luận)
2. Linh Dung (53 bình luận)
3. Hoàng Hải (36 bình luận)
4. Lee Peace (24 bình luận)
5. mAn ĐiezEl (19 bình luận)
THÁNG 5/2011
1. Born to Trade (5 bình luận)
2. PRDanang (3 bình luận)
3. Ngankvn ® (2 bình luận)
4. Nobita Hang (2 bình luận)
5. Lý Siêu Nhân (2 bình luận)
THÁNG 11/2011
THÁNG 6/2011
1. Ngankvn ® (7 bình luận)
2. Svip4u.InFo (4 bình luận)
3. Noct (3 bình luận)
4. Trao yêu thương (3 bình luận)
5. TruyenJava (2 bình luận)
THÁNG 12/2011

Sunday, August 28, 2011

Tạo Next Post và Previous Post theo phong cách Wordpress

Trước đây, mình đã từng hướng dẫn bạn cài đặt Next Post và Previous Post cho blogspot, theo đó giúp bạn thay đổi các liên kết Newer Posts, Older Posts ở các trang item thành các tiêu đề bài viết như phong cách ở các trang Wordpress. Thủ thuật này có sử dụng thư viện jQuery. Hôm nay mình sẽ giúp bạn thực hiện một thủ thuật có chức năng tương tự song chỉ sử dụng đến Javascript.

Xem DEMO.


Để cài đặt tính năng này bạn hãy 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. Dùng từ khóa blog-pager tìm đến đoạn code liên quan đến thuật phân trang như bên dưới:

<b:includable id='nextprev'>
<div class='blog-pager' id='blog-pager'>
<b:if cond='data:newerPageUrl'>
<span id='blog-pager-newer-link'>
<a class='blog-pager-newer-link' expr:href='data:newerPageUrl' expr:id='data:widget.instanceId + &quot;_blog-pager-newer-link&quot;' expr:title='data:newerPageTitle'><data:newerPageTitle/></a>
</span>
</b:if>

<b:if cond='data:olderPageUrl'>
<span id='blog-pager-older-link'>
<a class='blog-pager-older-link' expr:href='data:olderPageUrl' expr:id='data:widget.instanceId + &quot;_blog-pager-older-link&quot;' expr:title='data:olderPageTitle'><data:olderPageTitle/></a>
</span>
</b:if>

<b:if cond='data:blog.homepageUrl != data:blog.url'>
<a class='home-link' expr:href='data:blog.homepageUrl'><data:homeMsg/></a>
<b:else/>
<b:if cond='data:newerPageUrl'>
<a class='home-link' expr:href='data:blog.homepageUrl'><data:homeMsg/></a>
</b:if>
</b:if>

</div>
<div class='clear'/>
</b:includable>

Thay đoạn code ở trên bằng đoạn code bên dưới:

<b:includable id='nextprev'>
<div class='blog-pager' id='blog-pager'>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
<script type='text/javascript'>
//<![CDATA[
// Next Post and Previous Post Script by www.thuthuatblogger.info
function search(json,urlsearch) {

max_post=500;

txt_next='Next Post';
txt_previous='Previous Post';
var prev_posturl='';
var prev_posttitle='';
var next_posturl='';
var next_posttitle='';
post_found=0;
var i=0;
var j=0;

for (i = 0; i < max_post; i++) {
var post = json.feed.entry[i];
var posttitle = post.title.$t;
var posturl;

if (i == json.feed.entry.length) break;
for (var k = 0; k < post.link.length; k++) {
if (post.link[k].rel == 'alternate') {
posturl = post.link[k].href;
break;
}
}

if (posturl == urlsearch) {
j=i;
i=max_post;
post_found=1;
}
else{
next_posturl=posturl;
next_posttitle=posttitle;
}
}

if (post_found == 1) {
j=j+1;
post = json.feed.entry[j];
prev_posttitle = post.title.$t;
for (var k = 0; k < post.link.length; k++) {
if (post.link[k].rel == 'alternate') {
prev_posturl = post.link[k].href;
break;
}
}
}

if (next_posturl != '') {
entry_next_post = '<br /><span id="blog-pager-newer-link">' + txt_next + ': <a href="' + next_posturl + '" title="' + next_posttitle + '" class="blog-pager-newer-link">' + next_posttitle + '</a></span>';

document.write(entry_next_post)
}

if (prev_posturl != '') {
entry_prev_post = '<br /><span id="blog-pager-older-link">' + txt_previous + ': <a href="' + prev_posturl + '" title="' + prev_posttitle + '" class="blog-pager-older-link">' + prev_posttitle + '</a></span><br />';

document.write(entry_prev_post)
}

}

function searchpost(json) {
url=document.URL;
search(json,url);
}
//]]>
</script>
<script src='/feeds/posts/default?alt=json-in-script&amp;callback=searchpost'>
</script>
<b:else/>

<b:if cond='data:newerPageUrl'>
<span id='blog-pager-newer-link'>
<a class='blog-pager-newer-link' expr:href='data:newerPageUrl' expr:id='data:widget.instanceId + &quot;_blog-pager-newer-link&quot;' expr:title='data:newerPageTitle'><data:newerPageTitle/></a>
</span>
</b:if>

<b:if cond='data:olderPageUrl'>
<span id='blog-pager-older-link'>
<a class='blog-pager-older-link' expr:href='data:olderPageUrl' expr:id='data:widget.instanceId + &quot;_blog-pager-older-link&quot;' expr:title='data:olderPageTitle'><data:olderPageTitle/></a>
</span>
</b:if>


<b:if cond='data:blog.homepageUrl != data:blog.url'>
<a class='home-link' expr:href='data:blog.homepageUrl'><data:homeMsg/></a>
<b:else/>
<b:if cond='data:newerPageUrl'>
<a class='home-link' expr:href='data:blog.homepageUrl'><data:homeMsg/></a>
</b:if>
</b:if>
</b:if>
</div>
<div class='clear'/>
</b:includable>

Bước 2. Dùng từ khóa blog-pager tìm đến code CSS liên quan đến phân trang, cắt hết chúng rồi đặt đoạn code như sau vào sau dòng ]]></b:skin>.

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<style>
#blog-pager {margin:0px;padding:10px 0 20px;float: left}
#blog-pager-newer-link, #blog-pager-older-link {float:left;text-align:left}
</style>
<b:else/>
<b:if cond='data:blog.pageType == &quot;static_page&quot;'>
<style>
#blog-pager {display:none}
</style>
<b:else/>
<style>
Đặt code CSS vừa bị cắt vào đây nha
</style>
</b:if></b:if>

Lưu Template là xong.

Điểm hạn chế của Script này là do sử dụng JSON nên bài viết tối đa để search là 500, do đó nếu blogspot của bạn có hơn 500 bài viết thì có thể áp dụng thủ thuật này không thành công.

Friday, August 26, 2011

Trang lưu bút của Thủ thuật Blogger

Vào cái thời áo trắng cắp sách đến trường, hẳn mỗi người trong chúng ta không ai không rạo rực bồi hồi mỗi độ hè về hoa phượng nở báo hiệu mùa thi xong lại chia tay lớp, cũng là dịp bạn bè chung trường chung lớp chuyền tay nhau từng quyển lưu bút xinh xinh để ghi lại những dòng lưu niệm, những ký ức đã qua trong năm học đầy ắp cảm xúc.

Trang lưu bút Thủ thuật Blogger được lập ra với mục đích lưu giữ những tâm tình, những cảm xúc của bạn đọc blogspot gần xa, quẳng gánh lo đi qua những ngày nghiên cứu, học tập, vọc vằn với những dòng code và thủ thuật blogspot để bày tỏ cảm xúc, cảm nghĩ về nhau; để ghi lại những câu chúc thân tình, những lời động viên đến bạn bè nhân những ngày lễ đặc biệt trong năm hay những dịp cuối tuần hoặc có thể là những cảm xúc xuất khẩu thành thơ ngẫu hứng nào đó để mọi người được chiêm ngưỡng.

Trang lưu bút này không giới hạn người tham gia và cũng không giới hạn chủ đề, tuy nhiên cũng đề nghị mọi người nghiêm túc trong ngôn từ của mình để tránh gây khó chịu cho người khác. Hy vọng đây sẽ là nơi lưu dấu những kỷ niệm thân thương của cộng đồng Blogger Việt mỗi khi ghé thăm nơi đây và cũng có thể là một cách giữ liên lạc, kết bạn mới trong tương lai.

Thursday, August 25, 2011

Không hiển thị bài viết thuộc nhãn nhất định ở kiểu trang index

Chúng ta đều biết Blogger đã có tính năng tạo trang tĩnh (static_page) giúp người dùng tạo các trang chuyên biệt như trang giới thiệu (About), trang liên hệ (Contact)… Đặc trưng của các trang tĩnh là không được duyệt hiển thị trên trang chính (kiểu trang index gồm trang chủ, trang nhãn và trang lưu trữ). Tuy nhiên Blogger giới hạn số trang tĩnh tối đa được tạo cho mỗi blogspot là 10 trang. Dường như con số này quá khiêm tốn so với nhu cầu sử dụng của bạn. Nào là trang nén CSS, trang mã hóa, trang mã màu, trang liên kết, trang sản phẩm, trang dịch vụ, trang diễn đàn, trang liên hệ, trang giới thiệu, trang góp ý, trang lưu bút … Tính ngót ra cũng đến trên dưới hai chục trang như vậy. Thế thì làm sao để thỏa mãn nhu cầu tạo trang riêng biệt như thế.

Bạn có thể xem DEMO (Chú ý ở tiện ích Recent Posts có hiển thị 2 bài viết đầu tiên thuộc 1 nhãn song đến trang chủ thì không nhìn thấy chúng nữa).

Lời giải đáp lại đụng đến các lệnh điều kiện trong cấu trúc XML của Template. Ở đây mình sẽ gán một nhãn chung cho các bài viết được dùng để tạo trang riêng biệt giống trang tĩnh, ví dụ tên nhãn là HiddenLabel. Nào chúng ta hãy bắt đầu thực hiện như sau:

Bước 1: Đăng nhập Blogger, vào chỉnh sửa Template ở chế độ mở rộng mẫu tiện ích. Tìm đến dòng code này:

<b:include data='post' name='post'/>

Lệnh include ở trên sẽ giúp duyệt hiển thị các bài viết ở tất cả các kiểu trang. Vậy ta bắt đầu thay nó bằng đoạn code bên dưới:

<!-- Điều kiện nếu ở kiểu trang index -->
<b:if cond='data:blog.pageType == &quot;index&quot;'>
<!-- Điều kiện nếu ở các bài viết có gắn nhãn -->
<b:if cond='data:post.labels'>
<b:loop values='data:post.labels' var='label'>
<b:if cond='data:label.name != &quot;HiddenLabel&quot;'>
<!-- Ở đây đặt điều kiện cho các nhãn, hiển thị bài viết của tất cả các nhãn ở trang index, trừ nhãn có tên HiddenLabel -->
<b:include data='post' name='post'/>
<!-- Kết thúc điều kiện cho các nhãn -->
</b:if>
</b:loop>
<b:else/>
<!-- Nếu các bài viết không gắn nhãn thì cũng cho hiển thị ở trang index -->
<b:include data='post' name='post'/>
</b:if>
<b:else/>
<!-- ở kiểu trang còn lại là các trang item thì -->
<b:include data='post' name='post'/>
</b:if>


Bước 2. Tiếp theo là ẩn liên kết nhãn HiddenLabel ở cuối bài viết hoặc dưới tiêu đề bài viết để khi ta đọc đến các bài viết thuộc nhãn HiddenLabel thì sẽ không nhìn thấy liên kết của nó. Tìm tất cả các đoạn code như bên dưới.

<b:loop values='data:post.labels' var='label'>
<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>

Rồi thay nó bằng đoạn code bên dưới.

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

Lưu Template là hoàn thành. Bằng cách này chúng ta có thể tạo được rất nhiều trang riêng biệt có tính năng không hiển thị ở kiểu trang chính như trang tĩnh vậy, miễn là ta gán cho các bài viết đó chung cho một nhãn nhất định.