Thứ Tư, 22 tháng 7, 2009

[ Yêu cầu ] : Giới hạn việc xem blog cho trình duyệt IE

Theo yêu cầu của bạn Ngân (www.blogtruyen.com)
[FD's BlOg] - Theo yêu cầu của bạn Ngân, bài này sẽ hướng dẫn 2 việc : 1 là ngăn không cho các User dùng trình duyệt IE phiên bản 6 trở xuống, 2 là hiện 1 bảng thông báo nhỏ yêu cầu các user này phải sử dụng các trình duyệt khác như FireFox, chrome,... hoặc yêu cầu nâng cấp IE lên phiên bản mới để xem được blog.



Hình ảnh minh họa kết quả thực hiện :

Khi dùng trình duyệt khác IE , cụ thể là FireFox

Khi dùng trình duyệt IE6

Cơ bản của thủ thuật này là ta điều chỉnh việc hiển thị các ID cho từng trình duyệt, khi ở các trình duyệt khác IE hoặc IE với các phiên bản lớn hơn 6 thì ta sẽ xem được blog bình thường, và bảng thông báo được ẩn đi. Khi dùng trình duyệt nhỏ hơn hoặc bằng IE6 thì phần nội dung blog sẽ bị ẩn và thay vào đó là bảng thông báo sẽ được hiển thị (như trong hình mà mình đã minh họa)

☼ Sau đây là các bước thực hiện:
1. Vào bố cục
2. Vào chỉnh sửa code HTML
3. Chèn đoạn code CSS bên dưới vào trước dòng code ]]></b:skin>

#noticeIE6 {
width:500px;
background:#eee url(http://img.photo.zing.vn/file_uploads/gallery/w642h/q42008/2009/07/23/10/76591248319987.gif) no-repeat top;
border:2px solid #ccc;
padding:100px 10px 10px 10px;
font-size:15px;
display:none;
}

- đây chính là ID chứa nội dung của bảng thông báo.
- Có thể tùy chỉnh lại các thuộc tính của ID này.
- Lưu ý đoạn code display:none; code này là để mặc định cho bảng thông báo luôn luôn được ẩn.

4.
tiếp tục chèn đoạn code bên dưới vào sau dòng code ]]></b:skin>

<!--[if lt IE 7]>
<style type='text/css'>
#noticeIE6 {display:block;}

#lessIE6 {display:none;}
</style>
<![endif]-->

- trong đoạn code ở bước 4 này ta thấy có 2 ID với việc hiển thị trái ngược nhau. ID noticeIE6 chính là ID chứa nội dung của bảng thông báo, ID lessIE6 chính là ID để ẩn nội dung blog với trình duyệt bé hơn IE7.
- Mình sẽ giải thích thêm về ý nghĩa của đoạn code màu xanh ở trên:

+ Đoạn code màu xanh ở trên có nghĩa là nếu trình duyệt hiện hành là trình duyệt IE với các phiên bản nhỏ hơn 7 thì các lệnh bên trong nó sẽ được thực thi.
+ Ngoài ra ta còn có các lệnh khác như :
- if IE 7 : trình duyệt là IE 7
- if gt IE 7 : trình duyệt IE với các phiên bản lớn hơn 7
- if gte IE 7 : trình duyệt IE với các phiên bản lớn hơn hoặc bằng 7
- if lt IE 7 : trình duyệt IE với các phiên bản bé hơn 7
- if lte IE 7 : trình duyệt IE với các phiên bản bé hơn hoặc bằng 7

5. Tiếp tục tìm đến thẻ <body> và thêm các đoạn code được đánh dấu highlightcode màu đỏ vào như bên dưới:

...
...
<body>
<center>
<div id='noticeIE6'>
{Nội dung của bảng thông báo}
</div>
</center>


<div id='lessIE6'>
...
...
...
</div>

</body>
</html>

- với code Highlight là code của bảng thông báo.
- Code màu đỏ là code dùng để ẩn nội dung blog khi người dùng truy cập blog bằng trình duyệt IE với các phiên bản nhỏ hơn 7.

6. Save template.

P/S: mở rộng ra ta có thể áp dụng thủ thuật này cho việc hiển thị từng tiện ích ở các trình duyệt khác nhau, như yêu cầu của bạn Tài đã nhờ mình.

Chúc các bạn thành công.

[ Yêu cầu ] chỉ hiển thị tiện ích với quản trị blog

Theo yêu cầu của bạn Tài (roboonline.blogspot.com)
[FD's BlOg] - Đây là 1 thủ thuật cũng khá đơn giản, tương tự như với nút edit widget. Chỉ khi đã đăng nhập quyền quản trị blog thì khi load blog bạn mới thấy được widget mà bạn đã ẩn đi. Lưu ý là chỉ nhưng người được cấp quyền admin cho blog mới thấy được tiện ích, còn những tác giả thông thường cũng sẽ không thấy được tiện ích này.



Hình ảnh minh họa :

Khi chưa đăng nhập quyền Admin

Khi đã đăng nhập quyền Admin


Ví dụ ta có 1 widget có ID HTML 1. Các bạn vào Bố cục -> chỉnh sửa code HTML -> Nhấp chọn mở rộng mẫu tiện ích -> và các bạn sẽ thấy code của nó như bên dưới:

<b:widget id='HTML1' locked='false' title='TEST' type='HTML'>
<b:includable id='main'>
<!-- only display title if it's non-empty -->

<b:if cond='data:title != ""'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>
<b:include name='quickedit'/>

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

- Ở đọan code trên, dòng <b:include name='quickedit'/> chính là code của icon chỉnh sửa widget. Như mình đã nói ở trên, thủ thuật này sẽ dùng cách tương tự như icon chỉnh sửa widget, nhưng các bạn cũng thấy, trong code của widget HTML1 này ko có đọan nào cho thấy icon chỉ hiển thị với quản trị blog.
- Muốn thấy được code này, các bạn hãy view source của blog thì sẽ thấy được ngay, và code của nó sẽ là đọan code này :

<span class='item-control blog-admin'>
...
...
...
</span>

- khi đã tìm được dòng code này, giờ ta chỉ việc thêm nó vào trong code của widget là xong,

<b:widget id='HTML1' locked='false' title='TEST' type='HTML'>
<b:includable id='main'>
<!-- only display title if it's non-empty -->

<span class='item-control blog-admin'>

<b:if cond='data:title != ""'>
<h2 class='title'><data:title/></h2>
</b:if>
<div class='widget-content'>
<data:content/>
</div>
<b:include name='quickedit'/>

</span>

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

- Save template lại sau khi thực hiện xong.

Chúc các bạn thành công.

Thứ Ba, 21 tháng 7, 2009

Modify Form Comment : Bài 10 - Tạo màu nền riêng biệt cho các comment

Theo yêu cầu của bạn Tài (roboonline.blogspot.com)
[FD's BlOg] - Thủ thuật này Tài có nhờ mình lâu rồi, trước kia mình có thử qua các cách đơn giản với vài đoạn code nhỏ từ javascript đều không thành công. Hôm nay mình thử nó với jQuery thì lại thành công. Thủ thuật sẽ tạo ra các màu nền riêng cho các bài comment, và sẽ lặp lại 1 cách tuần tự.


Đây là hình ảnh mà mình đã thực hiện ở blog test của mình:

- Như trong hình minh họa, mình sẽ hướng dẫn code theo cách hiển thị 2 màu tuần tự, ví dụ 2 màu #eee #ccc.

☼ Các bước thực hiện:
1. Vào bố cục
2. vào chỉnh sửa code HTML
3. chèn đoạn Code CSS bên dưới vào trước dòng code ]]></b:skin>

.comment-body.style1 {
background:#eee;
}
.comment-body.style2 {
background:#ccc;
}

4. Chèn tiếp đoạn code Javascript bên dưới vào trước thẻ đóng </head>

<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js' type='text/javascript'/>

<script type='text/javascript'>
$(document).ready(function(){
$(".comment-body:nth-child(2n+0)").addClass("style1");
$(".comment-body:nth-child(2n+1)").addClass("style2");
});
</script>

5. Save template.

☼ Hướng dẫn cách thêm các màu nền cho việc hiển thị tuần tự:
- Như các bạn đã thấy, ở trên mình hướng dẫn cho các bạn cách hiển thị tuần tự theo 2 màu nền, giờ mình sẽ hướng dẫn thêm vào thành 3, 4 màu tuần tự, tùy theo ý thích của bạn.

Đây là hình ảnh lặp với nhiều màu nền

- Trước hết về code CSS, muốn có bao nhiêu màu sẽ được lặp tuần tự thì bạn sẽ phải có bấy nhiêu class, ví dụ mình sẽ cho lặp 4 màu nền thì code sẽ như bên dưới:


.comment-body.style1 {
background:#eee;
}
.comment-body.style2 {
background:#ccc;
}
.comment-body.style3 {
background:#bbb;
}
.comment-body.style4 {
background:#aaa;
}

- Tiếp theo là tới phần code javascript.
- Các bạn để ý đoạn code màu đỏ ở trên (2n+0, 2n+1) , đây là code xác định các comment để hiển thị màu nền. Nếu bạn muốn lặp nó với 4 màu thì ta sẽ có dãy sau : 4n+0, 4n+1, 4n+2, 4n+3 và 4 đoạn code javascript tương ứng như bên dưới :

$(".comment-body:nth-child(4n+0)").addClass("style1");
$(".comment-body:nth-child(4n+1)").addClass("style2");
$(".comment-body:nth-child(4n+2)").addClass("style3");
$(".comment-body:nth-child(4n+3)").addClass("style4");

Mở rộng ra, bạn có thể thêm các thuộc tính khác vào các class, để tạo nên sự khác biệt rõ ràng, như : màu chữ, font chữ, đường viền, căn lề...

Chúc các bạn thành công.

Thứ Hai, 20 tháng 7, 2009

Thủ thuật SEO blog : Tìm hiểu về thẻ META trong HTML

[FD's BlOg] - Thẻ META là một thành phần quan trọng trong file HTML, nó chứa các thông tin về file HTML đó như tên tác giả, các từ khoá, các thông tin mô tả site đó… Và có thể có 1 số thông tin điều khiển trình duyệt, chỉ định cho các máy tìm kiếm...


Thẻ Meta có có cấu trúc như sau:

<META NAME="" HTTP-EQUIV="" CONTENT="" SCHEME="" >


Trong đó :
- NAME là tên của thẻ Meta,
- CONTENT chứa nội dung của thẻ, (nội dung chỉ có thể là Text chứ ko thể có các thẻ HTML trong đó)
- SCHEME là định dạng của giá trị, ví dụ SCHEME="Day-Month-Year" là định dạng ngày tháng năm.

Không có chuẩn cho những thuộc tính của trong thẻ meta vì vậy bạn có thể tự định nghĩa thoải mái, ví dụ :

<META NAME="author" CONTENT="Tac gia">


Một vài những bộ máy tìm kiếm như Google, sử dụng các meta keywords, description để dựa vào đó để tìm kiếm thông tin, vì thế đa số các blog, web đều dùng các thẻ này. Một cách SEO blog/web rất hiệu quả.

Ví dụ như bên dưới:

<meta name="description" content="Blog FD, Thủ thuật Blog" />
<meta name="keywords" content="fandung, blog FD, thu thuat blog, widget, recent posts, chinh sua blog, menu" />

Để tránh bị cắt cụt bởi máy tìm kiếm thì thông tin mô tả (description) nên nhỏ hơn 200 kí tự, từ khoá (keyword) được viết cách nhau bởi dấu phẩy, và không phân biệt hoa thường.

Một vài bộ máy tìm kiếm còn sử dụng thẻ meta robots để xem trang mà nó vào có được phép lưu lại hoặc đi tiếp các link khác trong site hay không.

Giá trị của thẻ robots như sau:
- index: bộ máy tìm kiếm sẽ lưu trang này lại để giành cho việc tìm kiếm
- noindex: bộ máy tìm kiêm sẽ không nên lưu trang này
- follow: bộ máy tìm kiếm sẽ đi tiếp các Link trong trang này
- nofollow: bộ máy tìm kiếm sẽ không đi tiếp các Link trong trang này
- all tức là bao gồm index, follow
- none tức là noindex, nofollow

Ví dụ bạn muốn các bộ máy tìm kiếm ko lưu trang của bạn nhưng vẫn đi tiếp các link trong trang thì các bạn sẽ có thẻ meta như sau:

<META NAME="robots" CONTENT="noindex,follow">


Thuộc tính HTTP-EQUIV dùng để thay thế thuộc tính NAME trong 1 số trường hợp ví dụ:

+ Thiết lập thời gian tồn tại của trang đó tới thời điểm nào:

<META HTTP-EQUIV=Expires CONTENT=”Thu, 29 Nov 2009 16:18:42 GMT”>


+ Tự động refesh trang đó sau 10s (ko phải tất cả các trình duyệt đều hỗ trợ thẻ meta này)

<META HTTP-EQUIV="Refresh" CONTENT="10; URL=http://fandung.blogspot.com/">

+ và 1 vài thẻ khác...

<META HTTP-EQUIV="Content-Script-Type" CONTENT="text/javascript">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS">


Nhiều bộ máy tìm kiếm theo từ khoá chỉ sử dụng các thông tin trong thẻ meta để tìm kiếm dựa trên những từ khoá đã được viết sẵn trong thẻ keyword mà không tìm kiếm trong toàn từ ngữ trong site và kém hiệu quả hơn những bộ máy tìm kiếm toàn bộ những từ khoá trong site. Những bộ máy tìm kiếm toàn bộ site sẽ sử dụng các thông tin metadata để đánh thứ hạng tìm kiếm cho site. metadata mà bạn thích. Ví dụ bạn có thể định nghĩa thông tin tác giả: việc với 1000 kí tự đầu tiên trong thẻ meta keyword.

Theo thegioiweb (nguồn zonotek)

Chúc các bạn thành công.

Chủ Nhật, 19 tháng 7, 2009

Tuyển thành viên cho BlOg FD

[FD's BlOg] - Sau hơn 4 tháng hoạt động chính thức, hiện nay BlOg FD đã có 1 số lượng User truy cập thương xuyên, và cũng đã được nhiều Blogger Việt biết tới. Và hiện tại FanDung đang chuẩn bị đứng trước tình trạng quá tải do yêu cầu của các blogger quá nhiều. Để có thể là nơi giao lưu, học hỏi, chia sẽ cũng như hướng dẫn các thủ thuật cho blogger, BlOg FD chính thức tuyển thành viên.

Do BlOg FD là Blog thủ thuật, và đa số các bài viết trên blog đều là thủ thuật cho blogspot (chiếm gần 1/2 tổng số bài viết trên blog), vì thế BlOg FD tạm thời sẽ chỉ tuyển thành viên để cho lĩnh vực này mà thôi, vì thế sẽ có những yêu cầu nhất định cho các thành viên này.

☼ Sau đây là 1 số yêu cầu nhỏ :
- Là 1 Blogger (Blogspot), am hiểu tương đối về Blogger, nhất là hiểu được bố cục trong code template của Blogger (Ở đây mình chỉ yêu cầu là hiểu được bố cục của nó, chứ không nhất thiết phải nắm rõ toàn bộ code template)
- Có kinh nghiệm về Blogger.
- Có 1 chút kiến thức về HTMLCSS.
- Sẵn sàng chia sẻ, giải đáp thắc mắc cho các Blogger (nếu thắc mắc đó nằm trong tầm hiểu biết của bạn).

Lưu ý : BlOg FD sẽ chỉ kết nạp tạm thời các bạn đăng kí làm thành viên , sau 1 thời gian mình sẽ đánh giá, nếu đủ những điều kiện trên mình sẽ kết nạp chính thức. Việc đánh giá sẽ thông qua các comment của các bạn.

Hiện tại FanDung tuyển thành viên chỉ phục vụ cho việc chia sẻ kinh nghiệm làm blog, giải đáp các thắc mắc cho blogger. Vì thế sẽ không yêu cầu các thành viên này nhất thiết phải post bài cho blog. Nếu post bài hoặc có những ý tưởng hay cho blogspot thì càng tốt. Trước khi post bài các bạn nên đọc qua hướng dẫn cách post bài và các quy định.

☼ Để đăng kí làm thành viên của các bạn comment ở bên dưới với một số thông tin như mẫu sau :

- Tên hiển thị : User (tên hiển thị của bạn ở blogger)
- Tài khoản Gmail : user@gmail.com
- Nick yahoo : user

"Nhiệm vụ chính của các thành viên BlOg FD là hướng dẫn, trợ giúp, giải đáp, chia sẻ kinh nghiệm về blogger với mọi người."

FanDung BlOg FD

Vì cộng đồng Blogger Việt

Kỹ thuật load ảnh trước bằng CSS

[FD's BlOg] - Trong code CSS các bạn thường dùng ảnh làm background, nhưng những ảnh đó sẽ không được trình duyệt tải về trong bộ đệm (cache) trên máy ngay từ đầu, mà khi nào sử dụng đến thì nó mới được tải về. Chính vì vậy đôi khi nó sẽ sinh ra độ trễ khi lần đầu tiên các bạn vào blog. Bài viết này mình sẽ hướng dẫn các bạn khắc phục điều này.

Việc này cũng xảy ra ở blog của mình, và vấn đề này bạn Ngân (blogtruyen.com) trước kia đã có hỏi mình, nhưng mình chưa trả lời được, nay mới tìm ra cách giải quyết nó.

Mình sẽ lấy ngay ví dụ trong blog của mình. Các bạn để ý là nút Readmore ở mỗi bài viết của mình, nó được sử dụng 2 ảnh, 1 ảnh là hiển thị ngay từ ban đầu, còn ảnh thứ 2 là khi ta rê chuột nó mới hiển thị (hover). Khi bạn vào blog của mình, lúc đang load dữ liệu của blog, nếu các bạn rê chuột và nút Readmore, thì nó sẽ không hiển thị gì hết, tức là khi rê chuột vào ta có cảm giác ảnh 1 bị biến mất. Thực ra là do ảnh thứ 2 chưa được load, vì thế nó sẽ không hiển thị gì cả khi ta rê chuột vào. Đợi khoảng vài giây sau (không nhất thiết phải load hết blog) thì ta rê chuột vào mới thấy được ảnh thứ 2. Và thời gian này nhanh hay chậm tùy thuộc vào tốc độ đường truyền của bạn.

Bên dưới là ảnh mình họa cho các bạn thấy điều này:
Khi blog load chưa xong:

Khi blog đã load gần xong

Để khắc phục điều đó chúng ta có một thủ thuật nhỏ như sau, đó là cho phép các ảnh này được load trước, khi đó sẽ không xuất độ trễ giữa 2 ảnh 1 và 2 (như ví dụ đưa ở trên).
☼ Để thực hiện các bước như bên dưới :
1. vào bố cục
2. vào chỉnh sửa code HTML
3. và chèn đoạn code CSS bên dưới vào sau dòng <head> hoặc trước dòng </head>

<style type="text/css">
#preLoadImages {
width: 0px;
height: 0px;
background: url(Link ảnh 1.gif);
background: url(Link anh 2.gif);
background: url(Link anh 3.gif);
}
</style>

- Với các link ảnh 1, link ảnh 2, link ảnh 3, ... là các ảnh sẽ được load trước. Và bạn có thể thêm bao nhiêu vào tùy bạn.

4. Tiếp tục xuống dưới, tìm tới thẻ <body> , và chèn đoạn code màu đỏ vào ngay sau nó, như bên dưới:

<body>
<div id="preLoadImages"></div>

Với việc thêm đoạn thẻ <div id="prLoadImages"> trên vào ngay dưới thẻ <body> của blog của bạn. Khi trình duyệt đọc tới thẻ <div> này, nó sẽ load trước toàn bộ những ảnh được liệt kê trong danh sách trên vào trong bộ đệm của trình duyệt. Như thế vấn đề của chúng ta được khắc phục.

5. Save template.

Theo CSSYeah

Chúc các bạn thành công.

Thứ Bảy, 18 tháng 7, 2009

[ Yêu cầu ] : Chống copy và quét khối trong blog (cập nhật)

Theo yêu cầu của bạn Minh Thành
[FD's BlOg] - Thủ thuật này sẽ giúp ích cho 1 số bạn muốn giữ bản quyền về nội dung của blog mình, tránh nội dung bị sao chép đại trà. Bài viết sẽ dùng 2 thủ thuật là ngăn chặn việc dùng chuột phải (right click) và quét khối trên blog.
Có thể xem demo ở đây : http://bl2-fd.blogspot.com/

Hình ảnh minh họa khi bạn dùng chuột phải:


☼ Cách thực hiện:
1. vào bố cục
2. vào chỉnh sửa code HTML
3. chèn đoạn code bên dưới vào sau thẻ <head> hoặc trước thẻ </head>

<!-- code chống quét khối -->
<script language='JavaScript1.2'>
function disableselect(e){
return false
}

function reEnable(){
return true
}

//if IE4+
document.onselectstart=new Function ("return false")

//if NS6
if (window.sidebar){
document.onmousedown=disableselect
document.onclick=reEnable
}

</script>

<!-- code chống dùng chuột phải -->
<script language='JavaScript'>

var msg="Welcome to BlOg FD";
function disableIE() {if (document.all) {alert(msg);return false;}
}
function disableNS(e) {
if (document.layers||(document.getElementById&amp;&amp;!document.all)) {
if (e.which==2||e.which==3) {alert(msg);return false;}
}
}
if (document.layers) {
document.captureEvents(Event.MOUSEDOWN);document.onmousedown=disableNS;
} else {
document.onmouseup=disableNS;document.oncontextmenu=disableIE;
}
document.oncontextmenu=new Function("alert(msg);return false")

</script>

- Thay đổi lại dòng thông báo (code màu xanh).

4. Save template

☼ Cập nhật : chỉ cấm sao chép ở trang bài viết, hoặc không cho thủ thuật hiển chạy trên trang chủ.
- Chỉ cấm sao chép ở trang bài viết : thủ thuật này xem ra tiện lợi nhất, vì bạn chủ yếu chỉ cấm việc người xem copy nội dung cũng như hình ảnh của bài viết, vì thế ta áp dụng thủ thuật này chỉ ở trang bài viết, như thế sẽ không làm cho người đọc thấy bất tiện. Để thực hiện việc này, bạn chỉ cần thêm đoạn code màu đỏ vào code ở bước 3 :

<b:if cond='data:blog.pageType == "item"'>
{CODE Ở BƯỚC 3}
</b:if>

- Ngoài ra bạn cũng có thể ngăn không cho thủ thuật này có tác dụng ở trang chủ, tức là ở trang chủ ta có thể dùng chuột phải hoặc quét khối 1 cách bình thường. Để thực hiện các bạn cũng làm tương tự như trên :

<b:if cond='data:blog.url != data:blog.homepageUrl'>
{CODE Ở BƯỚC 3}
</b:if>

Nguồn : internet

Chúc các bạn thành công.