Hướng dẫn viết Mod (Plugin) cho VBB chi tiết - dễ hiểu

Posted by Admin, on 16/11/2010 09:51 PM in Lập trình with 19,780 views and 6 Comments

Hướng dẫn viết Mod (Plugin) cho VBB chi tiết - dễ hiểu - Image 1

Mấy bữa nay định viết cái tút hướng dẫn viết Mod (plugin) cho Vbb cho mọi người mà mãi chưa có time rảnh rỗi để viết, tại viết 1 cái tút chi tiết, tỉ mỉ thì cũng khá là mất thời gian.

Tối nay đang phởn phởn, lên google search xem đã có ai viết cái tút này chưa để còn tính thì vớ đc cái video hướng dẫn này

Video được thực hiện bởi Adrian - 1 Coder của VBulletin.Org.

Video này sẽ hướng dẫn các bạn cách thức code 1 MOD khá đơn giản cho vbb,từ đó các bạn biết được cách code MOD cơ bản,sẽ có khả năng làm nhiều MOD khác Hướng dẫn viết Mod (Plugin) cho VBB chi tiết - dễ hiểu - Image 2

Video hướng dẫn code 1 MOD My News,(MOD add thông báo).

Video rất rõ nét Hướng dẫn viết Mod (Plugin) cho VBB chi tiết - dễ hiểu - Image 3

Nếu ko thấy được video bạn hãy download K-Lite Media Codec về máy và cài đặt

Download: http://www.mediafire.com/?nvxjmin4emm

Để thực hiện được như video trên, các bạn mở file config.php lên, thêm dòng này vào cuối cùng:

  1. $config['Misc']['debug'] = true;

Xem qua cái Video thấy khá là chi tiết và cụ thể, đảm bảo newbie xem xong cũng có thể tự viết đc 1 mod đơn giản (mặc dù bằng tiếng anh nhưng ai ko rành tiếng anh cũng đừng lo, vì xem hình ko thôi cũng dư sức hiểu để làm rồi. Chỉ cần biết chút ít PHP để code là oke)

Lúc trước ko biết, nên khi mới vọc code mod cho vbb, mình toàn lấy 1 số mod đơn giản của các coder khác ra để xem cấu trúc XML + cách viết rồi bắt đầu viết. Các bước tạo sườn cơ bản (option, title, version .v.vv.) toàn thực hiện trực tiếp trên file XML rồi mới import vào database, sau đó mới viết code cho các hook

Sau 1 thời gian nghịch VBB (vài tháng), nắm đc cũng kha khá về code của VBB, thấy nhiều bạn cũng đang muốn tìm tòi + học cách viết Mod nên mình viết cái tút này để ai thích tìm hiểu về vbb thì có thể xem và tham khảo.

Ai chơi vbb chắc cũng biết 1 số mod của mình ^^! ( hoặc có thể lên google seach mod chiplove.9xpro, hoặc vô vietvbb.vn, hoiquantinhoc.com search là thấy!)

Nếu kinh nghiệm code PHP của bạn kha khá + chăm nghịch vbb vài tháng là có thể nắm vững các thứ về VBB, các ý tưởng hay thích gì là có thể làm cái đó trên VBB ngay đc mà ko cần phải thuê mưọn ai cả Hướng dẫn viết Mod (Plugin) cho VBB chi tiết - dễ hiểu - Image 4 ( tiết kiệm tiền ^^!)

Trước khi đọc tiếp phần này thì các bạn nên down cái video ở trên về xem qua 1 lượt đi đã, vì đoạn dưới này mình viết để bổ sung cho video trên và để chia sẻ 1 số mẹo khi viết mod

Mẹo chọn Hook và test code khi viết plugin:

- Trong vbb có rất nhiều hook, mỗi hook đc đặt ở 1 vị trí làm việc khác nhau và cho phép coder có thể thêm các đoạn code xử lý của mình chen vào đó. VD để nick của thành viên có màu mè, icon thì vbb xài qua hàm fetch_musername. Trong hàm này có hook vBulletinHook::fetch_hook('fetch_musername'); Nếu mình ko thích cho 1 nick nào đó có màu mè thì có thể xử lý tại hook này

Hướng dẫn viết Mod (Plugin) cho VBB chi tiết - dễ hiểu - Image 5

(Hình minh họa khi chọn hook trong Plugins & Products -> Add New Plugin)

- Đối với mỗi script (index.php, forumdisplay.php, showthread.php .v.v) lại có các hook khác nhau, làm những công việc khác nhau. Để thay đổi nội dung hiển thị của trang nào thì các bạn cần tìm các hook đc sử dụng khi script đó chạy và test thử tại đó.

- Cách chọn hook liên quan cũng ko khó, các hook đc chạy tại trang nào thì thường đc bắt đầu bằng tên của file đó.

- VD: các hook đc bắt đầu bằng từ member_ thì sẽ được gọi khi các bạn xem tại trang member.php hay các hook bắt đầu bằng từ newthread_ sẽ đc gọi khi các bạn đang ở trang gửi bài mới (newthread.php)

- Để test các hook cần sử dụng thì các bạn có thể vào Add New Plugin, thêm 1 plugin tại hook đó và có thể echo hay print_r cái gì đó đang muốn xử lý ra. Nếu echo nó ra thì hook đó có thể xử lý đc cái mà mình cần.

- VD: tại trang forumdisplay.php, bạn muốn thêm chữ abcccccccc vào đằng trước tất cả các tiêu đề thì bạn có thể test thử tại hook threadbit_display, nội dung code thì có thể print_r($thread); để test thử

Hướng dẫn viết Mod (Plugin) cho VBB chi tiết - dễ hiểu - Image 6

Nếu khi chạy thử trang nó có hiển thị ra cái gì đó khác bình thường (cái mà muốn hiển thị) như bên dưới thì tức là hook đó có thể xử lý đc cái mình cần xử lý

Hướng dẫn viết Mod (Plugin) cho VBB chi tiết - dễ hiểu - Image 7

Dưới này là forumdisplay hiển thị như bình thường

Hướng dẫn viết Mod (Plugin) cho VBB chi tiết - dễ hiểu - Image 8

Bây giờ thử edit cái tiêu đề như ở trên nói, là thêm 1 đoạn abccccccc vào trước tiêu đề xem

Hướng dẫn viết Mod (Plugin) cho VBB chi tiết - dễ hiểu - Image 9

khi chạy lại nó có thay đổi thía tức là Okie ^^!

Hướng dẫn viết Mod (Plugin) cho VBB chi tiết - dễ hiểu - Image 10

Để biết tại sao tôi lại print_r ra cái $thread thì các bạn có thể mở code của vbb lên (file forumdisplay.php, rồi lần mò dần theo cái nó xử lý, xem cái title đó nó xử lý ở đâu thì vào đó. Khi thấy cái chỗ xử lý rồi thì tìm cái hook ở bên trên nó và "hành động" ở cái hook đấy (gợi ý VD ở trên màn hình - view-source cần xử lý đoạn nào, thì tìm cái chỗ HTML gần đấy rồi tìm xem nó ở trong template nào. Xong dùng DW để tìm xem file php nào nó fetch_template đó ở trong code php là nhanh nhất)

Cách làm việc với template:

- Sau khi đã xong phần chọn hook + test code, 1 số mod đơn giản, chỉ cần edit, sửa xóa nội dung có sẵn của VBB thì ko sao, nhưng nhiều mod cần làm 1 trang hiển thị riêng hay thêm html nhiều thì ko thể cứ viết html vào plugin đc. Cái này gây bất tiện cho người sử dụng khi muốn thêm sửa xóa giao diện

- Để tìm hiểu cái này, các bạn có thể dow tạm cái Mod View more thread same category của mình để coi, vì mod này là mod đầu tiên khi mình code mod cho vbb ( bản 1.0 hoặc 1.0.2 ý nhé, vì bản mới đầu code kiểu newbie nên xem dễ hiểu hơn) Link download tại đây. Sau khi download về, các bạn có thể xem trực tiếp trên file XML hoặc import product vào để xem (nên xem trên xml thì dễ hơn)

- Ai thích tìm hiểu template engine của vbb thì có thể xem qua hàm eval tại http://php.net/eval

Trên đây là các bước cơ bản để bắt đầu viết mod cho vbb, dần dần, sau này nếu viết mod cho 1 diễn đàn lớn, database nặng thì còn phải chú trọng tới việc tối ưu nữa, chứ nhiều mod do các coder code ko tối ưu, mà khi cài vào diễn đàn chạy rất ì ạch cho cái mod chạy database nhiều quá

Vì time có hạn nên mình ko viết đc nhìu, nếu có gì thắc mắc, các bạn cứ reply tại đây, mình sẽ trả lời hết nếu có thể. Hi vọng sẽ giúp đc chút ít cho cộng đồng ^^!

hi

Hướng dẫn viết Mod (Plugin) cho VBB chi tiết - dễ hiểuHướng dẫn viết Mod (Plugin) cho VBB chi tiết - dễ hiểu
Nhận xét
Bạn còn ký tự