Thứ Ba, 24 tháng 1, 2012

Nâng cấp ANCMedia 3.3 - add server.

Đầu năm đầu tháng khai xuân một bài. Chúc mọi người một năm mới đầy sức khoẻ, may mắn, hạnh phúc. Mình về tết cũng rảnh đôi chút, sửa lại cho mọi người tiện add server.. Chứ suốt ngày kêu ca và yêu cầu mình có 3 đầu 6 tay cũng không làm hết được. ^^

Maphim.Net | Xem phim Online, xem phim han, phim 47, tron bo
Mình đã tách riêng làm 2 file js..Mọi người có thể up lên google code. Nhưng để tiện edit các bạn nên down dropbox về và up file server lên đó.

* File server : http://anhnc.googlecode.com/svn/trunk/ANC/3.3/server.js

_Trong file server này gồm 2 phần chính: config và server.

Maphim.Net | Xem phim Online, xem phim han, phim 47, tron bo
 Danh sách id các bạn có thể thay đổi tuỳ ý. Đã có nhiều bạn có host riêng, vì vậy mình đã làm thêm config cho Player, Proxy, Skin...

* File player: http://anhnc.googlecode.com/svn/trunk/ANC/3.3/player.js

_Vẫn là player có sẵn trong site, nhưng nếu dùng file đó để + file server sẽ không còn dùng được.

* Trong site chỉ cần paste 2 file này như sau vào dưới "anc_tp" hoặc </body>. Tốt nhất là dán dưới </body>
<script src="http://anhnc.googlecode.com/svn/trunk/ANC/3.3/server.js"></script>   
<script src="http://anhnc.googlecode.com/svn/trunk/ANC/3.3/player.js"></script>   

== > Phiên bản 3.3 này mình đã cải thiện vấn đề code, các player trước nhìn rất đau mắt, khó cấu hình CSS, nhiều đoạn code HTML bị thừa. Mọi người có thể nhìn vào hình dưới.

 +) ANC_old

Maphim.Net | Xem phim Online, xem phim han, phim 47, tron bo

+) ANC_new


* ) Giờ vẫn đang nghỉ tết nên mình chưa có mạng add server lên site mình, do đó không có demo cho mọi người. Nhưng có thể xem video hướng dẫn tại đây..

*) Các lưu ý mình đã ghi trong file server, các bạn có thể đọc.

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

Thứ Ba, 3 tháng 1, 2012

[Updated] K14 - Pro Menu (với hiệu ứng prodown)

Lấy ý tưởng từ việc thực hiện demo cho bài viết Tạo Menu Thanh menu ngang có sổ dọc xuống mình dự định sẽ updated thủ thuật lên bằng việc tạo các giao diện khác nhau cho menu khi xem ở các trang khác nhau, ví dụ như các trang label. Nhưng sau đó mình nhớ đến kênh14 cũng có menu như vậy (chỉ khác là không có dropdown) mà giao diện lại đẹp nữa, nên mình quyết định Rip menu này. Và ở bài này menu sẽ không có hiệu ứng dropdown, mình dự định sẽ thêm hiệu ứng dropdown trong thời gian tới.


Xem DEMO

Hình ảnh minh họa :

Updated: Đã cập nhật hiệu ứng sổ dọc cho menu, các bạn có thể xem ở bên dưới

Do làm biếng design giao diện cho nó, nên mình lấy hình nên bên kênh 14 về rồi fix lại để giới thiệu cho mọi người. Và sau đây là 1 số tính năng của nó :
- Tự động thay đổi giao diện của menu cho các trang định sẵn.
- có hiệu ứng trang hiện hành (current) trên menu.
- có 6 kiểu giao diện cho các lựa chọn để thay đổi.

Sau đây là các bước thực hiện :
- Tạo 1 widget HTML/javascript ở nơi muốn đặt menu (tốt nhất là trên header của blog), sau đó dán đoạn code bên dưới vào :
<style type="text/css">
#promenu ul li a:hover {text-decoration:none;}
#promenu {
background-repeat: repeat-x;
background-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoP45khL8XKsShBgBgC9-jALLlTn2Xe4eLhqiMNWeoTWwKzTYIxWMxroOJp2aq-1CqkHx94QzeqGpgEhdrRZvUZ7OWIFyWCg9Oh-VYN7rJg3nBXlDrqbgq7yIcHBi1VzW21PT_MmsUyz_G/s400/1-6-bg.png);
width: 100%;
height: 32px;
}
.menu {
list-style: none;
width: 100%;
margin: auto!important;
}
.menu li {
float: left;
text-align: center;
padding:0!important;
}
.menu li a {
color: white;
}
.menu .active, .menu li:hover {
background-position: 0 -34px;
float: left;
}
.menu .active span, .menu span:hover {
background-position: 100% -34px;
float: left;
line-height: 30px;
height: 30px;
}
.menu li a span {
font: 12px/31px Tahoma;
font-weight: 700;
display: block;
text-align: center;
padding: 0 8px 0 9px;
}
.menusep {
background-position: 0 0;
height: 32px;
line-height: 32px;
width: 2px;
}
</style>

<script type="text/javascript">
//<![CDATA[
var style1=["0px","https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrRFYXzkUABokz09sGX3M6iA9NmQIWDZq3rn6X3riA1uHPyL3sTdcaNcAOe7p3YPco8clPe_PWZjFUI0IvbHL_KudRL134nbpsmpOzJI4QEAeEzg_szftzXtY5AVyLdGQbFnINn8aUjHCk/s318/style1-sp.png"];
var style2=["-40px","https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnj6R3NgnAnEaAsZGcGQVIKAOXBifBCCk12U890zvcaT0ZGJjUU_WYH854wTHgzNVdIX2H07MrzwJtFDyQTjD2rxFv2XI7jE_t4jeTSY6rbrqzSYCBM5-Rv8WFNkYcSEkC4kxp9zYfz04m/s318/style2-sp.png"];
var style3=["-80px","https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDt4TcQwrsp8nUStJL7Ue-DKzXfeVcpXcoP0sS8uqZo01fFePChzm1-MuWIR48t3ITO6_l3EnY-wr-7pG_QVtsHpGpi7VZ7AtGawcsNk5FtlseTkr8FywQ3UNuzEv66x5F9gF6eQOMdUvE/s318/style3-sp.png"];
var style4=["-120px","https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVxiHRY4GgSxB-pQuC3a5LqBRrjSr_4B0F994JR9IWkMQ5FkmYbPzQ0DgKOEh3RWePGPYcbxB25u4pySz7YkcbWn70HwEs7oOVSUtj8c-YRRFzMD21zEDvk-JaTffNtCtioc1P8psx16Or/s318/style4-sp.png"];
var style5=["-160px","https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyY3-mYBDneOEupOaTm8TkP37YAdoScJDjk2-c64eMW85JapQ65Cqus108gXyNlIt3K-I8akoIPfjRx2DeYuhXuSMlZHyn2qKgemtgngd-Zwqu8sGhyO0R27R2u5op-uEVyV_QP1E7WeJr/s318/style5-sp.png"];
var style6=["-200px","https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6DUvIeffVVmIvOh3MDrMobl30Ld1PLkHmd66FF1jYI_VKoI5gNdlWm9ctI5MNvc9pbjgdl04M0a_ZKeKf5kQw68lrWyux4DitVBESsT2JknvFkNxpK_cBeCOLCnOhMOR7aG67hbBQVBx9/s318/style6-sp.png"];

var m0=["http://demo.fandung.com","Home","home_id"];
var m1=["link_menu1","Menu1","m_id1"];
var m2=["link_menu2","Menu2","m_id2"];
var m3=["link_menu3","Menu3","m_id3"];
var m4=["link_menu4","Menu4","m_id4"];
var m5=["link_menu5","Menu5","m_id5"];
var m6=["link_menu6","Menu6","m_id6"];

var ttmenu = [m0,m1,m2,m3,m4,m5,m6];

var n=ttmenu.length;
var list_menu=[];
var list_active=[];
var c_menu='';
var m_homepage='http://demo.fandung.com';
var h_cond=m_homepage+'/search';

var active_cond = location.href;
var home_cond=active_cond.split("?")[0];

var bg_pos='';
var sp_img='';

if (active_cond.indexOf(ttmenu[1][0])!=-1) {bg_pos=style2[0];sp_img=style2[1];}
else if (active_cond.indexOf(ttmenu[2][0])!=-1) {bg_pos=style3[0];sp_img=style3[1];}
else if (active_cond.indexOf(ttmenu[3][0])!=-1) {bg_pos=style4[0];sp_img=style4[1];}
else if (active_cond.indexOf(ttmenu[4][0])!=-1) {bg_pos=style5[0];sp_img=style5[1];}
else if (active_cond.indexOf(ttmenu[5][0])!=-1) {bg_pos=style6[0];sp_img=style6[1];}
else if (active_cond.indexOf(ttmenu[6][0])!=-1) {bg_pos=style2[0];sp_img=style2[1];}
else {bg_pos=style1[0];sp_img=style1[1];}

var mcss = document.createElement('style');
mcss.type = 'text/css';
mcss.innerHTML = '#promenu {background-position: 0 '+bg_pos+'} .menu li:hover, .menu .active, .menu .active span, .menusep, .menu span:hover {background-image: url('+sp_img+')}';
document.body.appendChild(mcss);

c_menu +='<div id="promenu"><ul class="menu">';

for (var i=0;i<n;i++) {

if ((home_cond==m_homepage)||(home_cond==h_cond)) {list_active[0]='class="active"';}
else if (active_cond.indexOf(ttmenu[i][0])!=-1) {list_active[i]='class="active"';} else {list_active[i]='';}

list_menu[i]='<li><a href="'+ttmenu[i][0]+'" '+list_active[i]+' id="'+ttmenu[i][2]+'"><span>'+ttmenu[i][1]+'</span></a></li>';
c_menu +=list_menu[i];
if (i<n-1) {c_menu +='<li class="menusep"> </li>';}
}
c_menu +='</ul></div>';
document.write(c_menu);

//]]>
</script>

Một vài hướng dẫn :
- Việc đầu tiên là thay http://demo.fandung.com thành tên miền của blog bạn, nhớ là không có dấu (/) theo sau tên miền.
- Để thêm menu, bớt menu, thay đổi tên hiển thị của menu, thay đổi link liên kết của menu,... các bạn chỉnh sửa ở đoạn code như bên dưới :
...
...
var m0=["http://demo.fandung.com","Home","home_id"];
var m1=["link_menu1","Menu1","m_id1"];
var m2=["link_menu2","Menu2","m_id2"];
var m3=["link_menu3","Menu3","m_id3"];
var m4=["link_menu4","Menu4","m_id4"];
var m5=["link_menu5","Menu5","m_id5"];
var m6=["link_menu6","Menu6","m_id6"];

var ttmenu = [m0,m1,m2,m3,m4,m5,m6];
...
...
- http://demo.fandung.com thay bằng địa chỉ trang chủ của blog bạn
- link_menu1, link_menu2, ... là đia chỉ liên kết của các menu.
- Menu1, Menu2, ... là tên hiển thị của các menu.
- nếu muốn thêm nhiều menu nữa thì các bạn thêm code tương tự như bên dưới :
...
...
var m0=["http://demo.fandung.com","Home","home_id"];
var m1=["link_menu1","Menu1","m_id1"];
var m2=["link_menu2","Menu2","m_id2"];
var m3=["link_menu3","Menu3","m_id3"];
var m4=["link_menu4","Menu4","m_id4"];
var m5=["link_menu5","Menu5","m_id5"];
var m6=["link_menu6","Menu6","m_id6"];
var m7=["link_menu7","Menu7","m_id7"];
var m8=["link_menu8","Menu8","m_id8"];


var ttmenu = [m0,m1,m2,m3,m4,m5,m6,m7,m8];
...
...
- để tùy chọn style cho menu ở mỗi trang, các bạn chỉnh sửa ở đoạn code bên dưới :
...
...
if (active_cond.indexOf(ttmenu[1][0])!=-1) {bg_pos=style2[0];sp_img=style2[1];}
else if (active_cond.indexOf(ttmenu[2][0])!=-1) {bg_pos=style3[0];sp_img=style3[1];}
else if (active_cond.indexOf(ttmenu[3][0])!=-1) {bg_pos=style4[0];sp_img=style4[1];}
else if (active_cond.indexOf(ttmenu[4][0])!=-1) {bg_pos=style5[0];sp_img=style5[1];}
else if (active_cond.indexOf(ttmenu[5][0])!=-1) {bg_pos=style6[0];sp_img=style6[1];}
else if (active_cond.indexOf(ttmenu[6][0])!=-1) {bg_pos=style2[0];sp_img=style2[1];}
else {bg_pos=style1[0];sp_img=style1[1];}
...
...
- ttmenu[1][0], ttmenu[2][0], ..., ttmenu[6][0] ; đây là các phần tử trong mảng 2 chiều ttmenu, tương ứng với địa chỉ liên kết của các menu : Menu1, Menu2, ..., Menu6
- ở trên menu0, tức là menu HOME mình cho style mặc định là style1. cùng style với các trang liên kết không có trong menu (ví dụ các trang archive hoặc trang bài viết, ...) , hoặc các liên kết không được chọn style để hiển thị.
- code trên sẽ được hình dung như bên dưới :
Menu0 ------ style1
Menu1 ------ style2
Menu2 ------ style3
Menu3 ------ style4
Menu4 ------ style5
Menu5 ------ style6
Menu6 ------ style2
Trang khác ------ style1
- Nếu muốn thay đổi style cho các trang, các bạn chỉ cần đổi tên style1, style2,... thành các style khác là được. tức là các vị trí trong code bên dưới :
...
...
if (active_cond.indexOf(ttmenu[1][0])!=-1) {bg_pos=style2[0];sp_img=style2[1];}
else if (active_cond.indexOf(ttmenu[2][0])!=-1) {bg_pos=style3[0];sp_img=style3[1];}
else if (active_cond.indexOf(ttmenu[3][0])!=-1) {bg_pos=style4[0];sp_img=style4[1];}
else if (active_cond.indexOf(ttmenu[4][0])!=-1) {bg_pos=style5[0];sp_img=style5[1];}
else if (active_cond.indexOf(ttmenu[5][0])!=-1) {bg_pos=style6[0];sp_img=style6[1];}
else if (active_cond.indexOf(ttmenu[6][0])!=-1) {bg_pos=style2[0];sp_img=style2[1];}
else {bg_pos=style1[0];sp_img=style1[1];}
...
...

- Nếu như có nhiều menu thì các bạn cứ thêm code như bên dưới để chọn style cho nó :
...
...
if (active_cond.indexOf(ttmenu[1][0])!=-1) {bg_pos=style2[0];sp_img=style2[1];}
else if (active_cond.indexOf(ttmenu[2][0])!=-1) {bg_pos=style3[0];sp_img=style3[1];}
else if (active_cond.indexOf(ttmenu[3][0])!=-1) {bg_pos=style4[0];sp_img=style4[1];}
else if (active_cond.indexOf(ttmenu[4][0])!=-1) {bg_pos=style5[0];sp_img=style5[1];}
else if (active_cond.indexOf(ttmenu[5][0])!=-1) {bg_pos=style6[0];sp_img=style6[1];}
else if (active_cond.indexOf(ttmenu[6][0])!=-1) {bg_pos=style2[0];sp_img=style2[1];}
else if (active_cond.indexOf(ttmenu[7][0])!=-1) {bg_pos=style3[0];sp_img=style3[1];}
else if (active_cond.indexOf(ttmenu[8][0])!=-1) {bg_pos=style4[0];sp_img=style4[1];}

else {bg_pos=style1[0];sp_img=style1[1];}
...
...
- lưu ý : ttmenu[7][0], và ttmenu[8][0] là liên kết của các Menu7, và Menu8.
- nếu muốn chỉ 1 trang nào đó có giao diện đặc biệt khác với các trang còn lại (ở đây mình ví dụ là trang Menu1) thì đoạn code ở trên sẽ chỉ còn như bên dưới :
...
...
if (active_cond.indexOf(ttmenu[1][0])!=-1) {bg_pos=style2[0];sp_img=style2[1];}
else {bg_pos=style1[0];sp_img=style1[1];}
...
...
- Đoạn code trên có nghĩa là chỉ có trang Menu1 là có giao diện riêng biệt là Style2, còn các trang khác sẽ có giao diện Style1.

Như vậy mình hướng dẫn đã xong. các bạn cứ test thử, nếu có trục trặc gì mình sẽ fix lại bài viết và cập nhật thêm hướng dẫn.

----- UPDATED -----
K14 - Promenu (với hiệu ứng sổ dọc)
- ở bản update này, mình sẽ cập nhật thêm tính năng thêm submenu cho menu chính. Tính năng này mình kết hợp từ bài viết "Tạo menu nằm ngang với hiệu ứng sổ dọc".
- Để thực hiện việc cập nhật này, các bạn phải xem lại bài viết Tạo Menu Thanh menu ngang có sổ dọc xuống

Xem DEMO

Hình ảnh minh họa :

- Sau đây là code mẫu của thủ thuật đã updated, các bạn thực hiện theo hướng dẫn của bài này và bài Tạo Menu Thanh menu ngang có sổ dọc xuống để có thể chỉnh sửa lại từ code mẫu :
<script src="http://fandung.googlecode.com/svn/trunk/js/dropdown2.js" type="text/javascript"></script>

<style type="text/css">
#promenu ul li a:hover {text-decoration:none;}
#promenu {
background-repeat: repeat-x;
background-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoP45khL8XKsShBgBgC9-jALLlTn2Xe4eLhqiMNWeoTWwKzTYIxWMxroOJp2aq-1CqkHx94QzeqGpgEhdrRZvUZ7OWIFyWCg9Oh-VYN7rJg3nBXlDrqbgq7yIcHBi1VzW21PT_MmsUyz_G/s400/1-6-bg.png);
width: 100%;
height: 32px;
}
.menu {
list-style: none;
width: 100%;
margin: auto!important;
}
.menu li {
float: left;
text-align: center;
padding:0!important;
}
.menu li a {
color: white;
height:30px;
display:block;
}
.menu .active, .menu li:hover {
background-position: 0 -34px;
float: left;
}

.menu .active span, .menu span:hover {
background-position: 100% -34px;
float: left;
line-height: 30px;
height: 30px;
}

.menu li a span {
font: 12px/31px Tahoma;
font-weight: 700;
display: block;
text-align: center;
padding: 0 8px 0 9px;
}
.menusep {
background-position: 0 0;
height: 32px;
line-height: 32px;
width: 2px;
}
.promenu_sub {
background-repeat: repeat-x;
background-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJZbaK6D1jJqW59xnjAHIfmiRDPeIJ9M13S0pIKvhHUO6shIIEhW8x5I_TujnQGSB4BKJIjKqA3ckc7wwGDQYk3oYfuJs737ZuvopfVjz9qzmxx8PJhp_t7uCj3uI6aVvq7dW4WucEWm-H/s240/1-6-bg_sub2.png);
margin-top:1px;
padding:1px;
color: #fff;;
margin: 1 1px;
padding: 7px 12px;
font-weight:bold;
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
cursor:pointer;
border-top:1px solid #ededed;
}
</style>

<script type="text/javascript">
//<![CDATA[
var style1=["0px","https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrRFYXzkUABokz09sGX3M6iA9NmQIWDZq3rn6X3riA1uHPyL3sTdcaNcAOe7p3YPco8clPe_PWZjFUI0IvbHL_KudRL134nbpsmpOzJI4QEAeEzg_szftzXtY5AVyLdGQbFnINn8aUjHCk/s318/style1-sp.png"];

var style2=["-40px","https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnj6R3NgnAnEaAsZGcGQVIKAOXBifBCCk12U890zvcaT0ZGJjUU_WYH854wTHgzNVdIX2H07MrzwJtFDyQTjD2rxFv2XI7jE_t4jeTSY6rbrqzSYCBM5-Rv8WFNkYcSEkC4kxp9zYfz04m/s318/style2-sp.png"];

var style3=["-80px","https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDt4TcQwrsp8nUStJL7Ue-DKzXfeVcpXcoP0sS8uqZo01fFePChzm1-MuWIR48t3ITO6_l3EnY-wr-7pG_QVtsHpGpi7VZ7AtGawcsNk5FtlseTkr8FywQ3UNuzEv66x5F9gF6eQOMdUvE/s318/style3-sp.png"];

var style4=["-120px","https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVxiHRY4GgSxB-pQuC3a5LqBRrjSr_4B0F994JR9IWkMQ5FkmYbPzQ0DgKOEh3RWePGPYcbxB25u4pySz7YkcbWn70HwEs7oOVSUtj8c-YRRFzMD21zEDvk-JaTffNtCtioc1P8psx16Or/s318/style4-sp.png"];

var style5=["-160px","https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyY3-mYBDneOEupOaTm8TkP37YAdoScJDjk2-c64eMW85JapQ65Cqus108gXyNlIt3K-I8akoIPfjRx2DeYuhXuSMlZHyn2qKgemtgngd-Zwqu8sGhyO0R27R2u5op-uEVyV_QP1E7WeJr/s318/style5-sp.png"];

var style6=["-200px","https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6DUvIeffVVmIvOh3MDrMobl30Ld1PLkHmd66FF1jYI_VKoI5gNdlWm9ctI5MNvc9pbjgdl04M0a_ZKeKf5kQw68lrWyux4DitVBESsT2JknvFkNxpK_cBeCOLCnOhMOR7aG67hbBQVBx9/s318/style6-sp.png"];

var m0=["http://demo.fandung.com","Home","home_id"];
var m1=["/search/label/Label1","Label1","id1"];
var m2=["/search/label/Label2","Label2","id2"];
var m3=["/search/label/Label3","Label3","id3"];
var m4=["/search/label/Label4","Label4","id4"];
var m5=["/search/label/Label5","Label5","id5"];
var m6=["/search/label/Label6","Label6","id6"];
var m7=["/search/label/Label7","Label7","id7"];
var m8=["/search/label/Label8","Label8","id8"];
var m9=["/search/label/Label9","Label9","id9"];

var ttmenu = [m0,m1,m2,m3,m4,m5,m6,m7,m8,m9];
var n=ttmenu.length;
var list_menu=[];
var list_active=[];
var c_menu='';
var m_homepage='http://demo.fandung.com/';
var h_cond=m_homepage+'search';

var active_cond = location.href;
var home_cond=active_cond.split("?")[0];

var bg_pos='';
var sp_img='';

if (active_cond.indexOf(ttmenu[1][0])!=-1) {bg_pos=style2[0];sp_img=style2[1];}
else if (active_cond.indexOf(ttmenu[2][0])!=-1) {bg_pos=style3[0];sp_img=style3[1];}
else if (active_cond.indexOf(ttmenu[3][0])!=-1) {bg_pos=style4[0];sp_img=style4[1];}
else if (active_cond.indexOf(ttmenu[4][0])!=-1) {bg_pos=style5[0];sp_img=style5[1];}
else if (active_cond.indexOf(ttmenu[5][0])!=-1) {bg_pos=style6[0];sp_img=style6[1];}
else if (active_cond.indexOf(ttmenu[6][0])!=-1) {bg_pos=style2[0];sp_img=style2[1];}
else if (active_cond.indexOf(ttmenu[7][0])!=-1) {bg_pos=style3[0];sp_img=style3[1];}
else {bg_pos=style1[0];sp_img=style1[1];}

var mcss = document.createElement('style');
mcss.type = 'text/css';
mcss.innerHTML = '#promenu, .promenu_sub {background-position: 0 '+bg_pos+'} .menu li:hover, .menu .active, .menu .active span, .menusep, .menu span:hover {background-image: url('+sp_img+')}';
document.body.appendChild(mcss);

// submenu
function otab(){document.write('<table border="0" bordercolor="#999" style="background-color: #FFF" cellspacing="0" cellpadding="0">');}

function submn(submn_link,submn_text){ document.write('<tr><td onmouseover="this.style.background=\'url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoP45khL8XKsShBgBgC9-jALLlTn2Xe4eLhqiMNWeoTWwKzTYIxWMxroOJp2aq-1CqkHx94QzeqGpgEhdrRZvUZ7OWIFyWCg9Oh-VYN7rJg3nBXlDrqbgq7yIcHBi1VzW21PT_MmsUyz_G/s400/1-6-bg.png) repeat-x 0 '+bg_pos+'\'" onmouseout="this.style.background=\'url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJZbaK6D1jJqW59xnjAHIfmiRDPeIJ9M13S0pIKvhHUO6shIIEhW8x5I_TujnQGSB4BKJIjKqA3ckc7wwGDQYk3oYfuJs737ZuvopfVjz9qzmxx8PJhp_t7uCj3uI6aVvq7dW4WucEWm-H/s240/1-6-bg_sub2.png) repeat-x 0 '+bg_pos+'\'" class="promenu_sub" onclick="window.location.href=\''+submn_link+'\'">'+submn_text+'</td></tr>');}

function ctab(){document.write('<\/table>');}

function otab(child_id){document.write('<table id="' + child_id +'" border="0" bordercolor="#999" style="background-color: #FFF" cellspacing="0" cellpadding="0">');}

//submenu

c_menu +='<div id="promenu"><ul class="menu">';

for (var i=0;i<n;i++) {

if ((home_cond==m_homepage)||(home_cond==h_cond)) {list_active[0]='class="active"';}
else if (active_cond.indexOf(ttmenu[i][0])!=-1) {list_active[i]='class="active"';} else {list_active[i]='';}

list_menu[i]='<li><a href="'+ttmenu[i][0]+'" '+list_active[i]+' id="'+ttmenu[i][2]+'"><span>'+ttmenu[i][1]+'</span></a></li>';
c_menu +=list_menu[i];
if (i<n-1) {c_menu +='<li class="menusep"> </li>';}
}
c_menu +='</ul></div>';
document.write(c_menu);

//]]>
</script>

<script type="text/javascript">
otab("id1_child");
submn('link_submenu1.1','Submenu 1.1');
submn('link_submenu1.2','Submenu 1.2');
ctab();
at_attach("id1", "id1_child", "hover", "y", "pointer");

otab("id2_child");
submn('link_submenu2.1','Submenu 2.1');
ctab();
at_attach("id2", "id2_child", "hover", "y", "pointer");

otab("id3_child");
submn('link_submenu3.1','Submenu 3.1');
ctab();
at_attach("id3", "id3_child", "hover", "y", "pointer");

otab("id4_child");
submn('link_submenu4.1','Submenu 4.1');
submn('link_submenu4.2','Submenu 4.2');
submn('link_submenu4.3','Submenu 4.3');
submn('link_submenu4.4','Submenu 4.4');
submn('link_submenu4.5','Submenu 4.5');
submn('link_submenu4.6','Submenu 4.6');
ctab();
at_attach("id4", "id4_child", "hover", "y", "pointer");

otab("id5_child");
submn('link_submenu5.1','Submenu 5.1');
submn('link_submenu5.2','Submenu 5.2');
ctab();
at_attach("id5", "id5_child", "hover", "y", "pointer");

otab("id6_child");
submn('link_submenu6.1','Submenu 6.1');
ctab();
at_attach("id6", "id6_child", "hover", "y", "pointer");

otab("id7_child");
submn('link_submenu7.1','Submenu 7.1');
submn('link_submenu7.2','Submenu 7.2');
submn('link_submenu7.3','Submenu 7.3');
ctab();
at_attach("id7", "id7_child", "hover", "y", "pointer");

otab("id8_child");
submn('link_submenu8.1','Submenu 8.1');
submn('link_submenu8.2','Submenu 8.2');
submn('link_submenu8.3','Submenu 8.3');
submn('link_submenu8.4','Submenu 8.4');
submn('link_submenu8.5','Submenu 8.5');
submn('link_submenu8.6','Submenu 8.6');
submn('link_submenu8.7','Submenu 8.7');
ctab();
at_attach("id8", "id8_child", "hover", "y", "pointer");
</script>
- bản updated vẫn chưa hoàn thiện ở phần hiện hiệu ứng thay đổi style cho menu ở các trang submenu, mình sẽ fix sớm khi có thể.

Thứ Năm, 29 tháng 12, 2011

Chèn Chabox Gtalk vào BlogSpot.

Nếu site bạn rất nhiều bạn bè có tài khoản Google, tại sao không thử chèn thêm một ChatBox để tăng tình năng trò chuyện kết bạn cho Blog. Việc đơn giản phải làm là bạn chỉ cần nhúng một iframe của Google cho sẵn.





Xem DEMO


Các bạn coppy và cài đặt nhé. Và nhớ chỉnh lại CSS. của mình.


<style>
    #chat{position:fixed; top:0px; left:1px;}
    .bt{background:url('http://cdn1.iconfinder.com/data/icons/androiddevicons/dialog.png') no-repeat; width: 48px; height: 48px;}
    #cbody{border-radius: 3px 10px 0px #444;}
</style>
<div id="chat">
<div class="bt" onclick="toggle()" ></div>
<p id="cbody" style="display:none;">
    <iframe height="350" frameborder="0" width="300" src="http://talkgadget.google.com/talkgadget/client?fid=gtalk0&amp;relay=http%3A%2F%2Fwww.google.com%2Fig%2Fifpc_relay"></iframe>
</p>
</div>
<script>
    var $_ = function(x){return document.getElementById(x);}
   
    function toggle(){
    var ck = $_("cbody").style.display;
        if(ck != "none"){
            $_("cbody").style.display = "none";
        }
        if(ck != "block"){
            $_("cbody").style.display = "block";
        }
    }
</script>


Chúc bạn thành công !

[Thông báo] V/v VNPT chặn BlogSpot.

Chia buồn với cộng đồng Blogger tại Việt Nam. VNPT chính thức đưa BlogSpot vào danh sách đen của mình.... Được biết thì họ không chặn luôn trang blogspot.com mà chặn các subdomain là *.blogspot.com.

Do vậy khi vào fandung load lâu không có gì là lạ. Trên site chưa rất nhiều backlink domain *.blogspot.com


Bá đạo !


Ảnh hưởng tới các domain sau:


*.googleusercontent.com - Nghĩa là khỏi dịch, khỏi xem cache Google luôn.
  (P/s : Hiện tại VNPT đã thả Google Translate).

Picasa cũng dạng *.googleusercontent.com nên chịu chung số phận.
  (P/s : Có lẽ cũng sẽ được thả sớm).

Thêm thông tin là IP của *.blogspot.com và *.googleusercontent.com đều là 74.125.71.132. Vậy là các bạn đã hiểu tại sao cả Blogspot và Google Dịch, Google Cache đều không vào được rồi đấy.






Chung số phận với facebook, blogger.com chính thực lĩnh án chung thân.

Mình theo dõi và phỏng đoán, nguyên nhân về việc chặn subdomain blogspot.com do hiện tại rất nhiều web đen chưa nội dung xấu (xxx, phản động...). Đã được đưa vào tầm ngắm của bộ thông tin. Không lâu nữa, rất có thể em Google + của chúng ta sẽ tiếp tục lên đường vào thăm anh Luyện.


Cộng đồng nghĩ gì, bạn hãy đọc:



http://www.phamen.com/bloggerr-wordpress-tai-sao-vnpt/

Các site có domain riêng không bị chặn là bới dùng faceIP. Do vậy hiện tại để vào được BlogSpot sẽ có 2 cách khắc phục sau.

1. Sử dụng domain riêng...

2. Hướng dẫn bạn bè dùng faceIp ngay trên máy. (cách này sẽ giúp các admin đi ngủ sớm hơn, vì blogger cũng không mặn mà cho lắm với nhiều người xem :| )



Cách này có vẻ không hiệu quả.

==> Dùng UltraSuft

==> BlOg... " Bỗng dưng bị ấy...!!! " - Blogspot bị chăn, khắc phục sao???    (Anh Dũng viết =)) )

Khung giờ bị chặn bắt đầu từ 0h = > 6h sáng. Mình không rõ có phải là 6h sáng không. Bây giờ thì vui rồi. Facebook thì chặn cả ngày, tối mở. Blogger chặn cả đêm ngày mở. :(( Hết cả các sân chơi thật rồi..




Chưa có danh sách chình thức, nhưng thế này cũng đủ hiểu.

Kết luận lại vụ việc này sẽ làm nhiều người buồn hơn bao giờ hết. Nhưng nếu để cái văn hoá phản động ngấm vào thân còn buồn hơn...Mình bắt đầu ghét chúng rồi đấy.


P/s: Anh em sử dụng VNPT để lại comments  cho biết thêm khu vực nhé. Để mọi người biết được khu vực nào không bị dính vào thảm sát.

Jquery Slider Tin Tức - News Slider


Hẳn nhiều bạn cần slide này... mình đã phát triển phiên bản thumbail cho site phim. Nhưng gà CSS quá nên đắp chiếu, lấy silder của trang tin tức này cho các bạn dùng.



Nói về jquery thì mình cũng chả rành lắm, đến từ jquery viết còn hay nhầm thì các bạn chắc cũng đoán được. Phần slider rip của gostep.info, các bạn có thể vào đó xem.

Xem DEMO

Mình cũng hơi buồn ngủ, các bạn setup luôn nhé.


CSS (Cái này cũng gà lắm, mọi người tự căn chỉnh nhé !)

<style>
ul#ticker {
    font: "Helvetica,Arial";
    height: 26px;
    overflow: hidden;
    text-align: right;
    color: red;
    font-size: 12px;
    line-height: 28px;
    background: #444;
}
ul#ticker strong,ul#ticker strong a {
    color: green;
    font-size: 10px;
    padding-right: 5px;
    text-transform: uppercase;
}
#ticker a {
    text-decoration: none;
}
ul#ticker a {
    color: white;
    text-decoration: none;
}
ul, li {
    list-style: none outside none;
}
ul#ticker .meta-comments a,.meta-sep,.meta-date{
    color: #777777;
}
</style>


Javascript

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script src="http://anhnc.googlecode.com/svn/trunk/p/news.js"></script>
<script src="/feeds/posts/default?max-results=12&amp;orderby=published&amp;alt=json-in-script&amp;callback=news"></script>


Phần numberposts (12) có thể unlimit nhé ;))

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

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

Quà tặng âm nhạc cho BlogSpot

Hehe, gần tết rồi.. thêm không khí cho cho Blog của bạn chút nhỉ. Hôm nay giới thiệu với các bạn một Plugin mới. Quà tặng âm nhạc, điều không tưởng phải không, chỉ có ở các 4rum. Nhờ có load feed comment của anh Dũng, mình mới dám nghĩ đến tạo ra cái gì đó mới lại từ tiện ịch này.


Lâu nay ẩn danh cũng vì đang làm đồ án, rảnh tay mới code được.



Mình cũng không rành lắm CSS, vậy nên mình chỉ viết js thôi. Các bạn code theo phong cách riêng của mình nhé, mới làm hiện bài hát đầu tiên. Có thêm thời gian mới tạo được thêm 2 cái nút tiến lùi, chắc cũng trước tết thôi. ^^! Chờ nhé.

Nhaccuatui.com

Mp3.zing.vn

Nhacso.net

Music.soha.vn

Nhac.vui.vn

Zippshare và *.mp3
Tha hồ chọn lựa skin ;))

Để sử dụng tiện ích, các bạn tạo một trang mới hoặc một bài mới. Tạo một widget HTML mới, dán code sau vào.

CSS

<style type="text/css">
#tomusic{border:1px dashed #444; padding: 5px; width: 680px;}
#avmusic img{padding: 1px; width: 120px;}
#avmusic a{position: relative; left:0px; bottom:-px;}
#anc_chuc{width:90%; height: 95px; float: right;}
.process{
    background: url("http://dl.dropbox.com/u/52283085/47/sr.gif") no-repeat scroll right top transparent;
    color: #EDE7C2;
    display: block;
    float: left;
    font-size: 13px;
    height: 33px;
    margin-left: -13px !important;
    margin-top: 80px;
    padding-right: 9px;
    position: absolute;
    text-shadow: 1px 1px 1px #131212;
    z-index: 100;
}
.process a{text-decoration:none; color: #888888;}
.process span {
    background: url("http://dl.dropbox.com/u/52283085/47/gc.png") no-repeat scroll 0 0 transparent !important;
    float: left;
    height: 33px;
    padding: 5px 0 0 8px;
}
</style>


JavaScript

<script type="text/javascript">
var cm_desc = 50; // Để 50 chắc là đủ (sô ký tự hiển thị)
var homepage = "domain";
postID = "id_bai_qua_tang_am_nhac";

var cm_ava = new Array();
cm_ava['openid'] = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2eRGPivVnARYL7GKe64M8JwVyJB4dfqVevCRB5hQQaDObWaFASMnFKP9NXOHFjdJ1Fn-1TyzRgqdC2gcncYJ-dk3_bojYlH5ZvNMt7-Nop1kDR2f6w81OcFn_pLcdDAJqzK-Wzy_Od2yw/";
cm_ava['livej'] = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvq7E1aK71_3JvWtJ4eujayPj3TOAt823CLz1cYC8ZoHqs569gdd-AuGy8aiNvPLtqiMrz71YApGka0D6M4M4mdcMspML2eO8yaCAqsh8ypUx5Nt8YL8SFvoFQp6rMWHQFLom4L0lBo_Kf/";
cm_ava['wp'] = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAyjshOWEH0EoOqN-aMQUAh3_O_D6DT2gkPcIXu81wiwYndwWse57M3q0H4r-Xezc2DlHw5ffVdRb4tQfheXvUQlNAGkU0vTXyyJGs1mqG05asdmtkGesB73AC7urCXByBvCwccv0pughb/";
cm_ava['typepad'] = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_Zy5e8x4OoV1Itrduisf52_98GaIpVK2tzfYnX9aXtSelHDSObRd8uCw0z_-HxB3R6QAYt331boXCap8SxcXj3yjN5TamEmrXbsZ_biZQXww1afZ5UsK7W7WfScnA4SBC0WBxPSuDpZRV/";
cm_ava['aim'] = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaf5eQD_iWpWx9Y_Ip1f0-i7stx4hjRx7n6ZyfXqWp7WmJwuo7e2ZKp693KTPL55ODbtnzQSfixgw9zs3IBkdZm7ANK8Hd5UoinPbMqZKdabxwRAiNZducpQKuLPnhRvKHhpoq5gZKqhyphenhyphenZ/";
cm_ava['url'] = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-Nr4IRuXTERBJk7Ckej8WMHqXfM0YscfO4dvSiJpXsIYS6ESNopl-yRkbj0v7q52joQX5CiwmAp4KfWHFVhLM57Zggzm0fmgD9vT1xuZAeTTcNGn4QGNM8NuOJo2xkTEMLv4Lc-2JOXgE/";
cm_ava['anon'] = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsWHfvG4mr9T6IXKa9tVaPbtcJKfoCVmczXYCQ1U7F1x1m3uJ1uZj_g7ws8g4zzWFMzRUPjejJInmJN9uiy4umpUuaIKwyx-vDYJlKH2xHR0Xg9z8wt7A7UDj7pSYjbg_wnefcHoyBMz3O/";

</script>
<script src="http://anhnc.googlecode.com/svn/trunk/p/qtan.js" type="text/javascript"></script>
<script>
M.p(M.r());
</script>

File js này các bạn hãy edit lại nhé. Mình làm cho nó giống cấu trúc site mình thôi.

http://anhnc.googlecode.com/svn/trunk/p/qtan.js

Cấu trúc gửi bài hát như sau:

[m]link bài hát|nguoi_nhan|Lời muốn nói[/m]

Chúc mọi người thành công !

Thứ Năm, 22 tháng 12, 2011

Chèn link Google Search vào footer của bài viết

Ở thủ thuật này, theo như yêu cầu, mình sẽ tạo 1 link text nhỏ ở dưới mỗi bài viết. Khi click vào link này thì lập tức sẽ mở ra 1 cửa sổ mới của trang Google với nội dung tìm kiếm chính là tiêu đề bài viết mà bạn đang xem. Như yêu cầu thì tiện ích sẽ thay thế cho việc copy tiêu đề bài viết và dán vào google để tìm kiếm. Thủ thuật này cũng là 1 cách để cho các bạn có thể kiểm tra xem bài biết của bạn đứng thứ bao nhiêu trong kết quả tìm kiếm của google (với từ khóa chính là tiêu đề bài viết).


Xem DEMO

Sau đây là các bước thực hiện :
1. Vào thiết kế
2. Vào chỉnh sửa code HTML
3. Nhấp chọn mở rộng mẫu tiện ích
4. Tìm đoạn code như bên dưới :
<div class='post-footer-line post-footer-line-3'>
- nếu không tìm thấy đoạn mã này, bạn có thể tìm các đoạn mã bên dưới :
<div class='post-footer'>
hoặc :
<data:post.body/>

5. Sau khi tìm được 1 trong các đoạn code trên, các bạn dán đoạn code bên dưới vào ngay sau nó :
<div class='google-search-link' style='text-align:center;'>
<form action='http://www.google.com.vn/search' method='get' name='search-pt' target='_blank'>
<input autocomplete='off' expr:value='data:post.title' id='search-text' name='q' style='display:none;' tabindex='7' type='text'/>
<a href='#' onclick='document[&quot;search-pt&quot;].submit()'>=== click search google ===</a>
</form>
</div>
- các bạn có thể thay dòng === click search google === thành đoạn text khác mà các bạn thích.

6. Save template.

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

Theo yêu cầu của ChoiBlogs.blogspot.com