Điều kiện
1. Chút k
2. Chút h
3. Chút k
4. Quan t
Giờ hãy b
1. Đồ dù
Để bắt ta
1. YM bả
Files\Yah
2. YM Pl
Messeng
2. Những
Plugin c
ủ
Plugin có
cứu trong
Về cơ bả
chính của
cửa sổ ch
1 user tro
Giờ hãy n
MANIFE
mục đích
plugin, tu
trong plu
n để theo đư
kỹ năng lập t
hiểu biết về H
kiên nhẫn
trọng nhất, c
bắt tay vào p
ùng cần chuẩ
ay vào viết p
ản mới nhất
hoo!\Messen
lugin SDK b
ger.
g điều cần b
ủa YM thực
ó thể làm rất
g SDK đã do
ản có 2 loại p
a chương trìn
hat, ví dụ như
ong khi Conv
nói về thư m
EST chứa fi
h, đường dẫn
uy vậy mã ng
ugin.properti
Viết pl
N
M
V
r
x
B
a
ược tut bao g
trình
HTML và Ja
chút thời gian
phần chính:
ẩn bị
lugin cho YM
- 8.bao_nhiê
nger
bản mới nhất
biết về plugi
chất là 1 thư
t nhiều việc v
own về.
plugin cho Y
nh, giống nh
ư Y! Emote
versation hỗ
mục plugin củ
le plugin.pr
n tới file mã
guồn hoàn to
ies cho thích
lugin cho
Như tất cả m
Messenger 8
Với khả năng
rất nhiều việ
xem bản đồ,
Bài này đượ
ai quan tâm
gồm 4 "chút"
avascript
n.
M, bạn cần c
êu_đấy. Hãy
t - 1.1 . Dow
in của YM
ư mục. Thư m
và tất cả nhữ
YM: Tab và C
hư plugin Y!
(hay cái tên
ỗ trợ tối đa 2
ủa YM: Thư
roperties. Fi
nguồn... Cùn
oàn có thể đ
h hợp.
o Yahoo!
mọi người đã
8 có một tính
g này, về lý
ệc khác ngoà
... Impossibl
ợc viết ra co
m và muốn v
":
có:
y coi như bạn
wn về tại http
mục đó chứa
ững hàm phụ
Conversation
! 360, Y! An
n nào đại loại
user.
ư mục của ch
ile này sẽ ch
ng cấp với fi
ặt trên một s
Messeng
ã biết (ai ko b
h năng rất thú
thuyết YM c
ài việc chat. X
le is nothing
oi như hướn
viết plugin c
n cài nó vào
p://developer
a code viết b
ục vụ cho cá
n. Loại Tab
nswer... Loại
i thế - tớ ko
húng ta sẽ ba
hứa mọi thôn
file MANIFE
server nào đó
er 8
biết thì giờ b
ú vị - đó là h
có thể được
Xem thời tiế
g
ng dẫn bước
cho YM.
thư mục C:\
r.yahoo.com
bằng Javascr
c việc đó đề
hiển thị nga
y
i Conversatio
nhớ rõ lắm)
ao gồm thư m
ng tin về plug
EST có thể là
ó - chỉ cần s
biết), Yahoo
hỗ trợ plugin
sử dụng để
ết, chơi game
c đầu cho nh
\Program
m, mục
ript hoặc C++
u có thể đượ
y tại giao di
on hiển thị tr
. Loại Tab c
mục con
gin như tác g
à mã nguồn
ửa đường d
ẫ
!
n.
làm
e,
hững
+.
ợc tra
ện
rong
chỉ có
giả,
của
ẫn
3. Ý tưởn
Plugin củ
Nghĩa củ
Khi nhập
thế - sẽ c
kết quả s
CHÚ Ý: P
mọi người
4. Thực
ng về plugin
ủa chúng ta s
ủa từ sẽ được
p từ vào ô Từ
chuyển từ "T
ẽ được hiển
Plugin sau đây
i tôn trọng bản
hiện plugin
n
sẽ là một *từ
c "chôm" từ
ừ cần tra và c
Trạng thái: Sẵ
thị trong cử
y do identical v
n quyền và ko
n
ừ điển bỏ túi
Vdict.com.
chọn loại từ
ẵn sàng" san
ửa sổ khác.
viết, tuy chưa
o "submit hộ"
i* cho YM, h
Giao diện đạ
điển xong, t
ng "Đang tra
submit cho Y
dưới danh ng
hỗ trợ tra cứ
ại loại sẽ như
ta bấm nút T
a từ..." chẳng
Yahoo! nhưng
ghĩa tác giả. C
ứu Anh - Việt
ư sau:
Tra từ. Status
g hạn. Khi có
ko có nghĩa là
Cảm ơn.
t và Việt - A
s bar - tạm g
ó nghĩa của t
à ko submit. M
Anh.
gọi là
từ,
Mong
4.1. Tạo thư mục và file cần thiết
Bạn hãy vào thư mục C:\Program Files\Yahoo!\Messenger\Plugin\Test, sau đó tạo thư mục
MANIFEST với file plugin.properties bên trong. Nhớ là thư mục này nằm TRONG thư mục
Test.
Giờ hãy mở file plugin.properties và thêm vào các giá trị tương tự như sau:
Description=Integrate Vdict into Yahoo! Messenger. Looking up Vietnamese and English words
within seconds. Unikey or Vietkey is not needed, as ViettypingPlus is also integrated.
Id={79F8BB14-7F12-48d6-826F-22AFF465303C}
Version=1.0.0
Author=Quang Anh Do
Homepage=
Timestamp=2006-07-14T00:00::00+7:00
Contracts=com.yahoo.messenger.contenttab
Category=4
Plugin-type=4
Module-type=1
Locale=vi-VN
Location=../vdict.html
Icon=
Email=
Company=Quang Anh Do
Prefer-height=168
Prefer-width=284
Min-height=168
Min-width=284
Prefer-expanded-height=168
Prefer-expanded-width=284
Users=1
Activex=false
Sendfile=false
Sendim=false
Voice=false
Addressbook=false
Một số giá trị có lẽ ko phải giải thích làm gì. Name, Description, Version, Author, Homepage,
Icon, Users, Email, Company là những thông tin về plugin và tác giả.
Các thông tin còn lại như sau:
- Id : Với plugin TEST, luôn đặt như
ví dụ.
- Timestamp: Thời điểm làm plugin
- Category: 1, 2, 3, 4 tùy mục đích plugin. Tương ứng với mục đích Games, Fun, Info-Share,
Generic
- Plugin-type: 1 với loại Conversation plugin, 4 với loại Tab plugin.
- Module-type: Giá trị luôn là 1 - HTML
- Locale: Để localize plugin. Ở đây là tiếng Việt.
- Location: Đường dẫn tới mã nguồn plugin. Đây là file vdict.html nằm ở thư mục TEST.
- Các giá trị liên quan đến Height, Width: Chiều dài chiều rộng của khu vực chứa plugin nằm
trên tab.
- Các giá trị như Sendfile, Sendim, Voice, Addressbook: Đặt là true thì plugin sẽ có quyền can
thiệp vào quá trình gửi file, IM,... Cần chú ý: Càng mạnh và can thiệp sâu thì thời gian đợi
Yahoo! kiểm duyệt sẽ càng lâu.
4.2. Bắt tay vào làm *thật*
4.2.1. Thiết kế giao diện (nghe oai ác liệt :">
Bạn hãy nhảy khỏi thư mục MANIFEST để lên thư mục TEST. Tại đây, bạn tạo file vdict.html.
Đây là file HTML nên bạn hãy thoải mái tự do mà thiết kế giao diện cho plugin.
Để cho đơn giản và nhanh chóng, ta sẽ làm nhanh 1 input field, 1 drop-down box, 1 button và 1
*status bar*.
Đây là code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"
<html xmlns=" xml:lang="vi">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Vdict Integration</title>
</head>
<body>
Từ cần tra <input type="text" id="what" value="Nhập vào đây..." /><br />
Loại từ điển
<select id="which">
<option value="1">
Từ điển Anh - Việt
</option>
<option value="2">
Từ đi
ển Việt - Anh
</option>
</select>
<br />
<img src="lookup.gif" /><br />
<div id="qad_status">Trạng thái: Sẵn sàng</div>
</body>
</html>
Chẳng có j` khó hiểu ở trên cả, nhỉ? Chỉ cần chú ý button của chúng ta là một ảnh gif
(lookup.gif) - đặt cùng thư mục với file vdict.html. Cái *status bar* của chúng ta chính là một cái
div có chỉ rõ id để dễ cập nhật và thay đổi nội dung.
4.2.2. Dive into YM Plugin (hay giai đoạn viết javascript)
Hãy bổ sung một đoạn script js vào trong phần header của file vdict.html:
<script type="text/javascript">
function onLoad() {
// Blah blah blah
}
</script>
Hãy nhớ, onLoad() là hàm PHẢI có trong mọi plugin cho YM.
Bạn cần sửa thẻ <body> thành <body onload="onLoad();"> để hàm onLoad() được thực thi ngay
khi plugin được load.
Tiếp theo, vì chúng ta sẽ phải *sờ mó* đến các element trong plugin bằng cách dùng id nên tốt
nhất nên khai báo một hàm để làm shortcut:
// Shortcut for document.getElementById(id)
function $(id) {
return document.getElementById(id);
}
Tiện tay tạo luôn một hàm Hiển thị trạng thái Loading...:
// Display a Loading indicator
function showLoading(id, msg) {
$(id).innerHTML = "<img src=\"indicator.gif\" /> " + msg;
}
Hàm showLoading() nhận id của status bar và hiển thị ảnh indicator.gif kèm với một message
được truyền qua tham số msg. Như bạn có thể đoán được, file indicator.gif được đặt cùng chỗ
với lookup.gif.
Xong các phần linh tinh. Ta chuyển vào trong hàm onLoad() giờ đang rỗng như túi của identical: