Get rid of the focus rect with CSS


:focus {
outline: 0;
}

Advertisements

Đưa status Twitter lên tiêu đề Blogspot

bài viết trước, mình đã giới thiệu các bạn cách lấy status Twitter mới nhất từ một tài khoản bất kì, bây giờ ta sẽ áp dụng để đưa dòng status đó lên tiêu đề blog, giống như tính năng Blast trong Y! 360 ngày trước
Trước tiên, trong mục Bố cục trang, bạn thêm một Tiện ích mới ngay dưới Header của blog.
Đặt tên nó là Twitter Status (tên gì cũng được, tùy bạn thôi). Phần nội dung của nó, bạn chèn đoạn code này vào:


$.getJSON("http://twitter.com/status/user_timeline/huydotnet.json?count=1&callback=?",function(data){var newdata = data[0].text.replace(new RegExp( "\\n", "g" )," ");
$(".descriptionwrapper").html("

" + newdata + "
");
document.title = document.title + " [" + newdata + "]";
});

Lưu ý đường link trong câu lệnh getJSON

http://twitter.com/status/user_timeline/huydotnet.json?count=1&callback=?

Bạn phải thay chữ huydotnet thành tài khoản twitter của bạn, nếu không nó sẽ lấy status từ twitter của mình 😀
Bạn cũng phải đổi cả cái link ở cái icon Twitter nữa 😀
Từ bây giờ, mỗi khi thay đổi status trên Twitter, dùng tiêu đề blog của bạn cũng sẽ thay đổi theo. 😀

Get latest Twitter status with PHP and jQuery

So simple, here is the PHP code to get the latest Twitter status from any user you want

PHP Code:

function getTwitterStatus($userid){
$url = "http://twitter.com/statuses/user_timeline/$userid.xml?count=1";

$xml = simplexml_load_file($url) or die("could not connect");

foreach($xml->status as $status){
$text = $status->text;
}
echo $text;
}

getTwitterStatus("huydotnet");

Or you can try to use ajax with jQuery too

First of all, you need too add jQuery library to your page


Then

$.getJSON("http://twitter.com/status/user_timeline/huydotnet.json?count=1&callback=?",
function(data){
alert (data[0].text.indexOf("\n"));
var newdata = data[0].text.replace(new RegExp( "\\n", "g" )," ");
alert(newdata);
});

It’s very simple, isn’t it ?

Create 3D Pixel Art from BMP file


Create 3D Pixel art from BMP file (using Irrlicht) – source code here (C#) http://www.box.net/shared/z9cko90zb1

Làm game TIC-TAC-TOE 3D với C++

 
Phần 1: Game Logic
Mọi người chắc không lạ gì cái trò này và sẽ có người bảo là cái trò này thì có gì đâu mà phải viết tut hướng dẫn, nhưng mà em biết là có cả đống người không làm được, em thề em hứa em đảm bảo! Big Grin.gif Em không có ý gây sự đâu
Trò này đơn giản chỉ là một bàn cờ 3×3 ô, có 2 người chơi (bài này em chỉ đề cập tới phần người đấu với người, không có đấu với máy) sẽ thay phiên nhau đánh vô từng ô, người đánh X, người đánh O cho tới khi nào 1 trong 2 người hoàn thành được 3 ô liên tiếp (theo hàng dọc, ngang hay chéo) giống nhau thì sẽ thắng.Trong bài này em sẽ trình bày cách làm một trò chơi như thế này, đây là trò đơn giản nhất và thích hợp cho những ai mới bắt đầu làm quen với gamedev. Vì nội dung chú trọng vào vấn đề game hoạt động thế nào nên em bỏ qua phần đồ họa, game sẽ được trình bày trên cửa sổ console đen xì, phản cảm nhưng các bác chịu khó theo dõi.
Về nội dung trò chơi thì em đã giới thiệu trên kia, có điều em muốn nhắc lại là ở đây em bỏ qua vấn đề đồ họa, chỉ tập trung thể hiện gameplay, và sẽ thể hiện dưới dạng text-based
Để tiện theo dõi thì em khuyên các bác học chút món C++ căn bản đã rồi đọc. Cũng không phức tạp mấy.

Giao diện trò chơi ta sẽ làm:

Qui trình trò chơi này nó như thế này:
– Đầu tiên vô là khởi tạo một số dữ liệu dùng cho game.
– Tiếp theo là vòng lặp chính, bao gồm

+ vẽ bàn cờ ra
+ người chơi nhập nước đi vào (nhập dưới dạng tọa độ [x;y] )
+ xử lý nước đi của người chơi và kiểm tra điều kiện thắng cuộc của game
+ nếu vẫn chưa thắng thì ta quay về lại bước vẽ bàn cờ, nếu thắng rồi thì ta in kết quả và thoát ra ngoài

Với một trò chơi dạng này, ta cần một mảng 2 chiều để lưu bàn cờ, mỗi phần tử trong mảng sẽ có các giá trị khác nhau như

* nếu ô tương ứng là ô trống
X nếu ô tương ứng được đánh quân X
O nếu ô tương ứng được đánh quân O

sau đó ta cần thêm biến winner để trả về người chơi nào thắng, biến winner có giá trị ứng với

0 nếu hòa
1 nếu player 1 thắng
2 nếu player 2 thắng

và biến endGame để biết được lúc nào game kết thúc.
Trò chơi gồm có các hàm và thủ tục:

void initBoard() – khởi tạo một số giá trị trong game
bool blank() – kiểm tra xem còn ô trống nào không
void checkWin() – kiểm tra xem ai thắng hoặc đã có ai thắng chưa
void drawBoard() – in ra màn hình bàn cờ
void playGame() – vòng lặp chính kiểm soát quá trình game

Đấy là với chế độ chơi 2 người, và trong bài này em cũng chỉ nói tới phần đó.
lát nữa em sẽ đưa full code lên vì trong đó em đã comment sẵn, giờ mà em ghi ra nữa thì nó dài quá.
em chỉ giải thích tí về cái thủ tục playGame
thủ tục này tóm tắt như sau

playGame()

– Kiểm tra điều kiện endGame, nếu bằng false thì tiếp tục

– Vào trong này, ta vẫn kiểm tra tiếp nếu endGame = false thì làm tiếp, vì nếu không kiểm tra trong này, sẽ xảy ra tình trạng người chơi đã thẳng rồi nhưng vẫn cho người kia tiếp tục đi tiếp.
Bước này thực hiện 2 lần vì ta xử lý cho 2 người chơi

+ Người chơi nhập tọa độ ô muốn đi
+ Kiểm tra xem ô vừa nhập có hợp lệ không (hợp lệ ở đây là ô còn trống và chưa có ai đánh vào)
+ Nếu hợp lệ thì đi tiếp, nếu không thì báo lỗi và nhập lại
+ Đã hợp lệ, ta đánh vào ô vừa nhập giá trị X hoặc O, tùy vào người chơi 1 hay 2 đang đi
+ Đánh xong thì ta kiểm tra điều kiện thắng cuộc và in bàn cờ ra màn hình

– Nếu endGame bằng true thì ta kết thúc và in ra kết quả

về thủ tục kiểm tra điều kiện thắng cuộc
checkWin()

– Ban đầu, ta cho biến winner bằng 0, tức là hòa
– Ta tạo một biến key, biến này để lấy giá trị dãy các quân cờ giống nhau và so sánh
– Ta chạy vòng lặp để duyệt qua các hàng, cột, đường chéo, nếu các ô trong hàng/cột/đường chéo bằng nhau thì ta sẽ ghi nhận giá trị của chúng vào biến key

– Ta sẽ kiểm tra giá trị của key, nếu bằng X thì đặt winner là 1 và endGame = true (*)
– Nếu key = O thì đặt winner là 2 và endGame cũng bằng true (**)

– Nếu blank = false, tức là đã không còn ô trống nào trên bàn cờ, thì ta cũng đặt endGame = true luôn
Khi endGame được đặt bằng true thì game sẽ kết thúc, lúc này chương trình sẽ kiểm tra winner để đưa ra kết quả game, như ta thấy, nếu kết thúc game mà hòa, tức là (*) hoặc (**) không được thực hiện, biến winner vẫn là 0.

Sau đây là mã nguồn đầy đủ, có comment:

#include 

char board[3][3]; // Mảng 2 chiều lưu bàn cờ
int winner; // cho biết ai là người thắng, nếu bằng 1 là player 1, 2 là player 2, 0 là hòa
bool endGame; // nếu bằng true thì kết thúc game

// khởi tạo bàn cờ và một số dữ liệu khác trong game
void initBoard()
{
endGame = false; // đầu tiên thì ta đặt endGame là false vì lúc này mới bắt đầu game mà
/* cái bàn cờ thì nó sẽ trông như thế này
* +--------------+
* | * | * | X |
* +--------------+
* | X | O | * |
* +--------------+
* | * | X | * |
* +--------------+
* quân X ứng với ô có giá trị là X, O ứng với ô có giá trị O
* ô nào trống thì có giá trị *
*/
for (int i=0; i<=2; i++)
{
for (int j=0; j<=2; j++)
{
board[i][j] = '*';
}
}
}

// hàm này kiểm tra xem bàn cờ còn ô nào trống khôn
// nếu còn thì trả về false, không thì true
bool blank()
{
for (int i=0; i<=2; i++)
{
for (int j=0; j<=2; j++)
{
if (board[i][j] == '*') return true;
}
}
return false;
}

// hàm này kiểm tra điều kiện thắng và cho biết ai thắng
// nguyên tắc thế này:
// kiểm tra nếu các giá trị ở các hàng/ cột/ đường chéo bằng nhau thì lấy ra một giá trị chung
// là key rồi kiểm tra key, nếu key = 'X' thì player 1 thắng, key = 'O' thì player 2 thắng
void checkWin(){
int i;
char key = '*';
winner = 0;
endGame = false;

for (i=0; i<3;i++)
if (board [i][0] == board [i] [1] && board [i][0] == board [i] [2] && board [i] [0] != '*') key = board [i] [0];

for (i=0; i<3;i++)
if (board [0][i] == board [1] [i] && board [0][i] == board [2] [i] && board [0] [i] != '*') key = board [0] [i];

if (board [0][0] == board [1] [1] && board [1][1] == board [2] [2] && board [1] [1] != '*') key = board [1] [1];
if (board [0][2] == board [1] [1] && board [1][1] == board [2] [0] && board [1] [1] != '*') key = board [1] [1];

if (key == 'X')
{
winner = 1; // key = 'X' nên player1 thắng
endGame = true; // thắng rồi thì end game
}
if (key == 'O')
{
winner = 2; // player 2 thắng
endGame = true; // cũng end game luôn
}

// còn nếu mà hết ô trống rồi thì cũng end game, nếu winner vẫn bằng 0 thì là hòa
if (blank() == false)
{
endGame = true;
}
}

// in ra cái bàn cờ
void drawBoard()
{

for (int i=0; i<=2; ++i)
{
for (int j=0; j<=2; ++j)
{
printf("%c | ", board[i][j]);
}
printf("\n");
}
}

// đây chính là phần quan trọng nhất, vòng lặp chính
void playGame()
{
int x,y; // ta tạo 2 biến x và y để nhập nước đi

// lặp chừng nào endGame vẫn còn false
while (endGame == false)
{
// phải thêm cái này vì trước mỗi nước đi ta sẽ kiểm tra xem đã kết thúc game chưa
// nếu chưa thì cho người chơi nhập tiếp, còn end rồi thì thôi, dừng.
if (endGame == false)
{
// ta làm một cái mốc et để nhập nước đi cho player 1
et: printf("Player 1 nhap nuoc di: ");
std::cin >> x;
std::cin >> y;

if ( (x<=3) || (y<=3) ) // nếu mà giá trị nhập vào hợp lệ thì xử lý tiếp
{
if (board[x-1][y-1] == '*'){ // nếu ô người chơi nhập vào còn trống
board[x-1][y-1] = 'X'; // thì đánh vào quân X
checkWin(); // đồng thời kiểm tra xem đã thắng chưa
}else{
// nếu ô người chơi nhập vào không còn trống (tức là đã có X hoặc O)
// thì nhảy về mốc er1 để báo lỗi và cho người chơi nhập lại
goto er1;
}
printf("--> Player 1: %d - %d\n", x, y); // ghi lại các nước đi cho dễ theo dõi
}else
{
// mốc er1 để báo lỗi game với người chơi 1
er1: printf("Nhap sai!\n");
goto et; // báo lỗi xong thì nhảy về et để nhập nước đi lại
}

drawBoard(); // đi xong thì in bàn cờ ra
}

// tương tự, trước khi player 2 ra nước đi, ta cũng kiểm tra xem game đã kết thúc chưa
if (endGame == false)
{
// mốc et2 là để player 2 nhập nước đi
// dưới đây cũng giống như đối với player 1 nên không cần comment nữa
et2: printf("Player 2 nhap nuoc di: ");
std::cin >> x;
std::cin >> y;
if ( (x<=3) || (y<=3) )
{
if (board[x-1][y-1] == '*'){
board[x-1][y-1] = 'O';
checkWin();
}else{
goto er2;
}
printf("--> Player 2: %d - %d\n", x, y);
}else
{
er2: printf("Nhap sai!\n");
goto et2;
}

drawBoard();
}
}
// Nếu endGame = true thì kết thúc trò chơi, in ra kết quả
printf("Ket thuc!\n");
switch(winner) // kiểm tra winner
{
case 0: // nếu bằng 0 là hòa
printf("Hoa!\n"); break;
case 1: // nếu bằng 1 là player 1 thắng
printf("Player 1 thang!\n"); break;
case 2: // bằng 2 là player 2 thắng
printf("Player 2 thang!\n"); break;
}
getchar();
}

int main(int argc, char* argv[])
{
initBoard();
drawBoard();
playGame();
getchar();
return 0;
}

Phần 2: Đồ họa
Ở trên, ta đã biết cách thiết kế gameplay cho trò chơi tictactoe đơn giản, nhưng chỉ đến đó thì vẫn chưa hấp dẫn được con mèo nào cả, vì lý do là giao diện quá ư là xấu, ai mà thèm chơi một trò như thế, bằng chứng là từ hôm post bài đến nay vẫn chưa ai bình luận gì cái bài viết này LOL.gif
Bây giờ ta sẽ nâng cấp cái game này, thiết kế nó thành một game 3D đơn giản. Sử dụng Irrlicht.
Cũng không phức tạp mấy, phần chính vẫn là gameplay, và cái này ta đã thực hiện ở trên kia, bây giờ ta sẽ dùng lại nó để viết thành một game 3D. Có một số thủ tục ta cần viết lại hoặc chỉnh sửa lại cho phù hợp với môi trường đồ họa 3D, đó là các thủ tục drawBoard(), playGame() (ta không cần thủ tục playgame như thế này nữa vì bản thân Irrlicht đã có mainloop, ta chỉ cần chỉnh sửa thủ tục playGame() và đưa nó vào trong mainloop là được),…
Post trước screenshot để các bác xem:

Các bác có thể download game tại đây:https://sites.google.com/site/kingno1host1/TicTacToe3D.rar
Mã nguồn:
https://sites.google.com/site/kingno1host1/TicTac3D_src.rar

Mã nguồn mình post lên không kèm theo dữ liệu, vì thế để chạy được thì cần tải game về để lấy dữ liệu mà chạy Big Grin.gif
Để build bộ source này, cần có:
– Irrlicht 1.5
– IrrKlang 1.3
– Microsoft VC++ 2008 (hoặc nếu đang dùng bản 2005 thì xóa file sln đi, mở file vcproj thôi, dùng VC++6 thì xóa luôn cái vcproj luôn, tạo project mới và copy cái file main.cpp, 2 file irrGameEventReceiver.h và irrGameInput.h vào Big Grin.gif )

Đọc số lớn với PHP

Phương pháp chung để giải bài toán đọc số lớn chính là phân tách con số đó thành từng bộ 3 số nhỏ hơn, sau đó xác định các bộ số nằm ở vị trí đơn vị nào (chục, trăm, nghìn, triệu, tỉ,…), đọc từng bộ 3 số đó và thêm đơn vị ứng với từng vị trí vào.
Đoạn code đầy đủ như sau:
Giới hạn đọc là số có 21 chữ số (hàng tỷ tỷ :D) – Nhưng thực chất bạn có thể thêm vào các trường hợp xử lý để nó đọc được số dài bao nhiêu tùy ý

function doc3so($so)
{
$achu = array ( " không "," một "," hai "," ba "," bốn "," năm "," sáu "," bảy "," tám "," chín " );
$aso = array ( "0","1","2","3","4","5","6","7","8","9" );
$kq = "";
$tram = floor($so/100); // Hàng trăm
$chuc = floor(($so/10)%10); // Hàng chục
$donvi = floor(($so%10)); // Hàng đơn vị
if($tram==0 && $chuc==0 && $donvi==0) $kq = "";
if($tram!=0)
{
$kq .= $achu[$tram] . " trăm ";
if (($chuc == 0) && ($donvi != 0)) $kq .= " lẻ ";
}
if (($chuc != 0) && ($chuc != 1))
{
$kq .= $achu[$chuc] . " mươi";
if (($chuc == 0) && ($donvi != 0)) $kq .= " linh ";
}
if ($chuc == 1) $kq .= " mười ";
switch ($donvi)
{
case 1:
if (($chuc != 0) && ($chuc != 1))
{
$kq .= " mốt ";
}
else
{
$kq .= $achu[$donvi];
}
break;
case 5:
if ($chuc == 0)
{
$kq .= $achu[$donvi];
}
else
{
$kq .= " lăm ";
}
break;
default:
if ($donvi != 0)
{
$kq .= $achu[$donvi];
}
break;
}

return $kq;
}
function doc_so($so)
{
$so = preg_replace("([a-zA-Z{!@#$%^&*()_+?,.}]*)","",$so);
if (strlen($so) <= 21)
{
$kq = "";
$c = 0;
$d = 0;
$tien = array ( "", " nghìn", " triệu", " tỷ", " nghìn tỷ", " triệu tỷ", " tỷ tỷ" );
for ($i = 0; $i < strlen($so); $i++)
{
if ($so[$i] == "0")
$d++;
else break;
}
$so = substr($so,$d);
for ($i = strlen($so); $i > 0; $i-=3)
{
$a[$c] = substr($so, $i, 3);
$so = substr($so, 0, $i);
$c++;
}
$a[$c] = $so;
for ($i = count($a); $i > 0; $i--)
{
if (strlen(trim($a[$i])) != 0)
{
if (doc3so($a[$i]) != "")
{
if (($tien[$i-1]==""))
{
if (count($a) > 2)
$kq .= " không trăm lẻ ".doc3so($a[$i]).$tien[$i-1];
else $kq .= doc3so($a[$i]).$tien[$i-1];
}
else if ((trim(doc3so($a[$i])) == "mười") && ($tien[$i-1]==""))
{
if (count($a) > 2)
$kq .= " không trăm ".doc3so($a[$i]).$tien[$i-1];
else $kq .= doc3so($a[$i]).$tien[$i-1];
}
else
{
$kq .= doc3so($a[$i]).$tien[$i-1];
}
}
}
}
return $kq;
}
else
{
return "Số quá lớn!";
}
}

Cách dùng
Đọc số 586524000:

echo doc_so(586524000);

Kết quả:

Năm trăm tám mươi sáu triệu năm trăm hai mươi bốn nghìn

Đối với trường hợp số quá lớn (dài quá 21 kí tự)
Đọc số 5654941515132131545554:

echo doc_so(5654941515132131545554);

Kết quả:

Số quá lớn

Hàm chuyển mã Unicode sang VNI

Hàm chuyển mã tiếng Việt Unicode sang VNI, dùng thủ thuật tìm và thay thế từng âm tiết

function UNI_2_VNI ( $text2 )
{
$text = utf8_encode($text2);
$UNI = array ("À","à","Ã�","á","Â","â","Ã","ã","È","è","É","é","Ê","ê","ÃŒ","ì","Ã�","í","Ã’","ò","Ó","ó","Ô","ô","Õ","õ","Ù","ù","Ú","ú","Ã�","ý","Ä‚","ă","Ä�","Ä‘","Ĩ","Ä©","Ũ","Å©","Æ ","Æ¡","Ư","Æ°","Ạ","ạ","Ả","ả","Ấ","ấ","Ầ","ầ","Ẩ","ẩ","Ẫ","ẫ","Ậ","ậ","Ắ","ắ","Ằ","ằ","Ẳ","ẳ","Ẵ","ẵ","Ặ","ặ","Ẹ","ẹ","Ẻ","ẻ","Ẽ","ẽ","Ế","ế","Ề","á»�","Ể","ể","Ễ","á»…","Ệ","ệ","Ỉ","ỉ","Ị","ị","Ọ","á»�","Ỏ","á»�","á»�","ố","á»’","ồ","á»”","ổ","á»–","á»—","Ộ","á»™","Ớ","á»›","Ờ","á»�","Ở","ở","á» ","ỡ","Ợ","ợ","Ụ","ụ","Ủ","ủ","Ứ","ứ","Ừ","ừ","Ử","á»­","á»®","ữ","á»°","á»±","Ỳ","ỳ","á»´","ỵ","Ỷ","á»·","Ỹ","ỹ");
$VNI = array ("AØ","aø","AÙ","aù","AÂ","aâ","AÕ","aõ","EØ","eø","EÙ","eù","EÂ","eâ","Ì","ì","Í","í","OØ","oø","OÙ","où","OÂ","oâ","OÕ","oõ","UØ","uø","UÙ","uù","YÙ","yù","AÊ","aê","Ñ","ñ","Ó","ó","UÕ","uõ","Ô","ô","Ö","ö","AÏ","aï","AÛ","aû","AÁ","aá","AÀ","aà","AÅ","aå","AÃ","aã","AÄ","aä","AÉ","aé","AÈ","aè","AÚ","aú","AÜ","aü","AË","aë","EÏ","eï","EÛ","eû","EÕ","eõ","EÁ","eá","EÀ","eà","EÅ","eå","EÃ","eã","EÄ","eä","Æ","æ","Ò","ò","OÏ","oï","OÛ","oû","OÁ","oá","OÀ","oà","OÅ","oå","OÃ","oã","OÄ","oä","ÔÙ","ôù","ÔØ","ôø","ÔÛ","ôû","ÔÕ","ôõ","ÔÏ","ôï","UÏ","uï","UÛ","uû","ÖÙ","öù","ÖØ","öø","ÖÛ","öû","ÖÕ","öõ","ÖÏ","öï","YØ","yø","Î","î","YÛ","yû","YÕ","yõ");

for ($i = 0; $i < count($UNI); $i++)
{
$text = str_replace($UNI[$i], $VNI[$i], $text);
}
return $text;
}

Cách dùng

echo UNI_2_VNI("Xin chào các bạn, đây là chuỗi tiếng Việt Unicode đã được chuyển sang VNI");

Mở rộngBạn cũng có thể thay thế đoạn code này

$text = str_replace($UNI[$i], $VNI[$i], $text);

Thành thế này

$text = str_replace($VNI[$i], $UNI[$i], $text);

Để thực hiện việc chuyển từ mã VNI sang Unicode.Ngoài ra, bạn cũng có thể dùng Unikey, chuyển nội dung mảng $VNI thành những bảng mã khác.Ví dụ: Hàm chuyển từ bảng mã Unicode sang TCVN3

function UNI_2_TCVN3 ( $text )
{
$UNI = array ( "à", "á", "ả", "ã", "ạ", "ă", "ằ", "ắ", "ẳ", "ẵ", "ặ", "â", "ầ", "ấ", "ẩ", "ẫ", "ậ", "đ", "è", "é", "ẻ", "ẽ", "ẹ", "ê", "ề", "ế", "ể", "ễ", "ệ", "ì", "í", "ỉ", "ĩ", "ị", "ò", "ó", "ỏ", "õ", "ọ", "ô", "ồ", "ố", "ổ", "ỗ", "ộ", "ơ", "ờ", "ớ", "ở", "ỡ", "ợ", "ù", "ú", "ủ", "ũ", "ụ", "ư", "ừ", "ứ", "ử", "ữ", "ự", "ỳ", "ý", "ỷ", "ỹ", "ỵ", "Ă", "Â", "Đ", "Ê", "Ô", "Ơ", "Ư");
$TCVN3 = array ( "µ", "¸", "¶", "·", "¹","¨", "»", "¾", "¼", "½", "Æ","©", "Ç", "Ê", "È", "É", "Ë","®", "Ì", "Ð", "Î", "Ï", "Ñ","ª", "Ò", "Õ", "Ó", "Ô", "Ö","×","Ý", "Ø", "Ü", "Þ","ß", "ã", "á", "â", "ä","«", "å", "è", "æ", "ç", "é","¬", "ê", "í", "ë", "ì", "î", "ï", "ó", "ñ", "ò", "ô", "­", "õ", "ø", "ö", "÷", "ù","ú", "ý", "û", "ü", "þ", "¡", "¢", "§", "£", "¤", "¥", "¦");

for ($i = 0; $i < count($UNI); $i++)
{
$text = str_replace($UNI[$i], $TCVN3[$i], $text);
}
return $text;
}

jQuery Plugin – Very Simple Multilevel Menu

Hi there, this is my first post here 😀
Today, i’ll show you how to make a simple multilevel menu with jQuery
Here is my plugin code:

/*========================================================
* kMenu - Simple multilevel menu
* Copyright (c) Tran Duc Huy (kingbazoka@gmail.com)
*/
jQuery.fn.kMenu = function(options){
var defaults = {

};
var opts = $.extend(defaults, options);
$(this).hover(function(){
if ($(this).find("ul").length > 0)
{
$(this).find("ul").eq(0).css({"display":"block"});
$(this).addClass("active");
$(this).parent().addClass("active");
}
},function(){
$(this).removeClass("active");
$(this).find("ul").eq(0).css({"display":"none"});
});
}

How to use

  • Home



  • Products

    • Software

    • Graphics

    • Games




  • Contact

    • Email

    • Phone


Welcome

Welcome to my blog

I’m Tran Duc Huy
I’m a programmer, I’m now working at The Flat World Co. Ltd, as a Web Developer.
I also interested in Game Programming, Computer Graphics,…
%d bloggers like this: