[Question] Make easy Joomla module. |
13/04/2007 00:39:15 (+0700) | #1 | 53284 |
|
canh_nguyen
Elite Member
|
0 |
|
|
Joined: 23/08/2004 18:55:09
Messages: 775
Location: Broken dream
Offline
|
|
Dạo này thấy nhiều bạn dùng Joomla quá tiện thể mình cũng đang dùng Joomla nên có chút chia sẻ .
Joomla cho người dùng tạo thêm các module nhằm dễ dàng tùy biến việc hiển thị thông tin và việc ta viết 1 module cho Joomla cũng khá đơn giản :wink: .
Một module của Joomla cần phải có 2 file tên_module.xml và tên_module.php.
Yêu cầu khác : Biết chút xíu về php .
Sau đây là vd của 2 file đó:
file *.xml
Code:
<?xml version="1.0" ?>
<mosinstall type="module">
<name>hvamember</name>
<creationDate>04/12/2007</creationDate>
<author>canh_nguyen</author>
<copyright>canh_nguyen@hvaonline</copyright>
<authorEmail> <a href="mailto:canh_nguyen@hvaonline.net">canh_nguyen@hvaonline.net</a> </authorEmail>
<authorUrl>www.url.com</authorUrl>
<version>1.0</version>
<description>Module display member from hva</description>
<files>
<filename module="mod_hvamember">mod_hvamember.php</filename>
</files>
</mosinstall>
Chú thích:
<mosinstall type="module">: Nhằm xác định khi cài đặt để Joomla biết pack của bạn là một module hay component.
<name>hvamember</name>: Là tên module sẽ hiển thị trong phần quản trị nhằm phân biệt với các module khác.
Các phần dưới thì dễ hiểu rồi dịch chút là ra
) .
Tiếp theo là file *.php có chức năng hiển thị các thông tin ta cần lấy:
Code:
<?php
//hvamember Module//
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
global $database;
$query = "SELECT user FROM hvamember WHERE id='80306'";
$database->setQuery( $query );
$rows = $database->loadObjectList();
echo $row->username;
?>
Chú thích:
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );: Tránh những người dùng "tò mò" truy cập trực tiếp vào file này.
global $database;: Khai báo biến database theo chuẩn của Joomla để có thể thực hiện các câu lệnh truy vấn đến database.
$query = "SELECT user FROM hvamember WHERE id='80306'";
$database->setQuery( $query );
$rows = $database->loadObjectList();
Hì cái nì yêu cầu các bạn biết chút xíu về php để hiểu được nó ^^.
echo $row->username;: Với dòng này kết quá show ra sẽ là :canh_nguyen .
Xong rùi đó các bạn , à tui cũng đang mò thêm để cái dòng
Code:
$query = "SELECT user FROM hvamember WHERE id='80306'";
nó echo ra được password của mấy bác màu vàng, chắc nó phải thế này thì mới được.
Code:
$query = "SELECT username,password FROM hvamember WHERE color='orange'";
$database->setQuery( $query );
$rows = $database->loadObjectList();
echo $row->username;
echo $row->password;
Chúc thành công. |
|
|
|
|
[Question] Re: Make easy Joomla module. |
13/04/2007 05:05:21 (+0700) | #2 | 53328 |
|
SuperChicken
Elite Member
|
0 |
|
|
Joined: 11/07/2006 18:31:27
Messages: 635
Location: bottom of hell
Offline
|
|
@canh_nguyen: good example, mới làm quen với Joomla thì rất cần những ví dụ như thế này.
Chẳng ai thèm quan tâm hả trời, việc viết module, component cho Joomla rất đơn giản nên Joomla có thể được dùng cho nhiều mục đích khác nhau, ta có thể xem nó như 1 framework để bắt đầu cho mục đích của mình, rất nhanh và tiện lợi (do đã được cung cấp nhiều API có sẵn, chỉ cần chịu khó tìm hiểu source code của nó 1 chút, hoặc nếu cần thì có thể hỏi ai đó rành trước khi bắt tay vào viết, vì có thể khi bạn viết xong mới vỡ lẽ ra rằng Joomla đã có chức năng đó và lại còn làm tốt hơn của bạn :wink: ).
Sẵn đây tặng cho ai đang dùng Joomla cái tool khá là có ích: http://12tin.no-ip.org/tmp/xmlgenerator.zip
Rất cần cho những ai làm template cho Joomla, do Joomla rất khó tính khi install 1 thành phần khác, nó bắt bạn phải liệt kê đầy đủ tất cả từng file một vào 1 file xml (thiếu 1 file cũng không đc), nên thử tưởng tượng cái template của bạn có đến cả trăm cái image mà phải liệt kê bằng tay thì... |
|
|
|
|
[Question] Re: Make easy Joomla module. |
13/04/2007 11:43:18 (+0700) | #3 | 53399 |
|
canh_nguyen
Elite Member
|
0 |
|
|
Joined: 23/08/2004 18:55:09
Messages: 775
Location: Broken dream
Offline
|
|
Hì định viết tiếp 1 số thứ liên quan đến module và component nhưng chưa thấy động tĩnh gì... )
@ST : Share cho anh em chút kinh nghiệm Joomla nào. |
|
|
|
|
[Question] Make easy Joomla module. |
13/04/2007 23:57:47 (+0700) | #4 | 53475 |
Zeros
Member
|
0 |
|
|
Joined: 30/07/2006 14:51:42
Messages: 121
Location: ...o0o...
Offline
|
|
to canh_nguyen: động tĩnh gì là sao ???? tui là newbie nên những bài học về Joomla này có thể nói là khá tốt, thanks U !!!
ti ALL :Cho mình hỏi 1 câu, mình đang định làm về 1 trang bán sách trực tuyến (Chú thích : làm thực tập tốt nghiệp thôi, rất nhỏ )) nhưng mình chưa có kinh nghiệm trong việc phát triển nó, mình ko biết là với trang như thế thì chỉ cần 1 modul là vituemart thôi có đủ ko ??? có cần thêm gì nữa ko ??? (thêm module hoặc comp... nào chảng hạn) Thanks !!! |
|
|
|
|
[Question] Make easy Joomla module. |
14/04/2007 00:10:29 (+0700) | #5 | 53478 |
|
canh_nguyen
Elite Member
|
0 |
|
|
Joined: 23/08/2004 18:55:09
Messages: 775
Location: Broken dream
Offline
|
|
Zeros wrote:
to canh_nguyen: động tĩnh gì là sao ???? tui là newbie nên những bài học về Joomla này có thể nói là khá tốt, thanks U !!!
ti ALL :Cho mình hỏi 1 câu, mình đang định làm về 1 trang bán sách trực tuyến (Chú thích : làm thực tập tốt nghiệp thôi, rất nhỏ )) nhưng mình chưa có kinh nghiệm trong việc phát triển nó, mình ko biết là với trang như thế thì chỉ cần 1 modul là vituemart thôi có đủ ko ??? có cần thêm gì nữa ko ??? (thêm module hoặc comp... nào chảng hạn) Thanks !!!
Bạn cần nói rõ các chức năng của trang đó, như ngoài bán sách thì còn cái gì khác... thì mới có thể liệt kê các module cần thiết của nó .
Còn về vituemart thì nó không chỉ là module mà nó còn là một component phải nói là thèng ku vituemart khá nhiều file edit nó khá mệt ) .
Chúc thành công. |
|
|
|
|
[Question] Re: Make easy Joomla module. |
14/04/2007 02:40:52 (+0700) | #6 | 53491 |
|
SuperChicken
Elite Member
|
0 |
|
|
Joined: 11/07/2006 18:31:27
Messages: 635
Location: bottom of hell
Offline
|
|
Cần phân biệt module và component, module chỉ là phần hiển thị (đại đa số module chỉ làm nhiệm vụ show thông tin), còn component thì bao gồm cả những chức năng khác, như add data, xử lý data, quản lý, ... và cũng có thể có thêm phần show data.
@canh_nguyen: biết chia sẻ cái gì bây giờ nhỉ ) . Thôi thì tặng mấy pác cuốn sách này, chỉ cần đọc chương 10-11 là ok rồi, rất dễ hiểu, còn ai quan tâm tới VirtueMart thì đọc chương 9 :wink:
Download: http://12tin.no-ip.org/tmp/Packt.Publishing.Building.Websites.With.Joomla.Jan.2006.rar
Một vài kinh nghiệm nhỏ xíu nhé ) :
1. Nên tìm hiểu các class trong file /includes/joomla.php, có rất nhiều class tiện ích như mosHTML cung cấp những API về giao diện, class mosMainFrame cung cấp những API về session, cookie, những function cho phép add thêm meta tag vào phần head, những class về CMS như mosContent, mosSection, mosCategory, và vô số những function có ích khác :wink: Ngoài ra còn các file khác như pageNavigation.php (dùng cho việc phân trang), file database.php cung cấp class tương tác với MySQL, file /includes/js/jooma.javascript.js cũng chứa những function JS khá quan trọng. Tiếc là Joomla 1.0.x chưa có AJAX. Ngoài ra còn 1 class dùng để thao tác với field params rất hay (có nghĩa là những attribute linh tinh khác thường đc gom vào field params, và format theo dạng attr1=value1, giả sử bạn muốn thêm 1 field vào object nhưng field đó không quan trọng đến nỗi bạn phải thay đổi database thì bạn có thể gom nó vào field params) nhưng quên mất tên cái class đó rồi, sẽ bổ sung sau )
2. Khi viết component thì nên tách phần giao diện (images, css,...), ngôn ngữ, ... ra riêng cho từng component để sau này tiện quản lý, do lúc trước chưa có kinh nghiệm nên tui gộp cả vào template chung và file ngôn ngữ chung, sau này khi nhiều component rồi, muốn tìm kiếm, sửa đổi rất mệt, đồng thời nếu bạn install template mới thì những component sử dụng giao diện chung với template cũ sẽ hiển thị không đúng nữa.
3. Nếu muốn chạy nhiều function cùng 1 lúc cho 1 sự kiện nào đó thì hãy viết mambot với chế độ trigger rất hay. |
|
|
|
|
[Question] Make easy Joomla module. |
14/04/2007 06:20:34 (+0700) | #7 | 53524 |
|
gsmth
Elite Member
|
0 |
|
|
Joined: 15/02/2007 13:25:36
Messages: 749
Offline
|
|
Hay là Siêu trộm viết 1 bài "make easy joomla template" chia sẻ cho anh em cái |
|
|
|
|
[Question] Make easy Joomla module. |
14/04/2007 06:22:39 (+0700) | #8 | 53526 |
|
SuperChicken
Elite Member
|
0 |
|
|
Joined: 11/07/2006 18:31:27
Messages: 635
Location: bottom of hell
Offline
|
|
Hix, làm template thì đọc chương 10 trong cuốn sách trên đó, dễ hiểu lắm, hay là bắt tui dịch ra nữa hả trời? |
|
|
|
|
[Question] Make easy Joomla module. |
14/04/2007 06:28:31 (+0700) | #9 | 53530 |
|
gsmth
Elite Member
|
0 |
|
|
Joined: 15/02/2007 13:25:36
Messages: 749
Offline
|
|
Siêu trộm wrote:
Hix, làm template thì đọc chương 10 trong cuốn sách trên đó, dễ hiểu lắm, hay là bắt tui dịch ra nữa hả trời?
Ơ, ST nghĩ bài của canh_nguyen viết không có trong sách đó hả. Vấn đề ở đây là chia sẻ kinh nghiệm đó :wink: Sách nào có thì kệ chứ. |
|
|
|
|
[Question] Make easy Joomla module. |
14/04/2007 06:39:25 (+0700) | #10 | 53535 |
|
SuperChicken
Elite Member
|
0 |
|
|
Joined: 11/07/2006 18:31:27
Messages: 635
Location: bottom of hell
Offline
|
|
Hix, trước giờ làm template thì tui thấy chỉ toàn cắt ráp layout, rùi đóng thành gói và install, làm gì có kinh nghiệm gì nhỉ ) |
|
|
|
|
[Question] Re: Make easy Joomla module. |
15/04/2007 00:27:33 (+0700) | #11 | 53687 |
|
canh_nguyen
Elite Member
|
0 |
|
|
Joined: 23/08/2004 18:55:09
Messages: 775
Location: Broken dream
Offline
|
|
Hì mình chưa đọc cuốn đó bao giờ :lol .
Có điều creat một cái template và tùy biến hiển thị nó dễ dàng hơn việc creat một module hoặc component :lol . Joomla lại có cơ chê gán template khá hay, bạn có thể gán từng module, coponent, link theo từng template riêng.)
@ST: Bro có quyển nào nói sâu về các API , framework của joomla hông ?
Còn về template trước giờ tui test toàn nhét nguyên cái template html + file xml chứ không install ^^.
Thêm nữa để viết một component hoặc module giao tiếp tốt với core của joomla thì cần nghiên cứu các biến của nó vd:mosGetParam(); dùng để lấy các biến truyền trong form submit... |
|
|
|
|
[Question] Re: Make easy Joomla module. |
15/04/2007 01:13:10 (+0700) | #12 | 53703 |
|
gsmth
Elite Member
|
0 |
|
|
Joined: 15/02/2007 13:25:36
Messages: 749
Offline
|
|
[Question] Make easy Joomla module. |
15/04/2007 01:58:08 (+0700) | #13 | 53710 |
|
SuperChicken
Elite Member
|
0 |
|
|
Joined: 11/07/2006 18:31:27
Messages: 635
Location: bottom of hell
Offline
|
|
@canh_nguyen: sorry nhưng tui không có cuốn nào như vậy cả, chịu khó đọc source đi:lol |
|
|
Users currently in here |
1 Anonymous
|
|
Powered by JForum - Extended by HVAOnline
hvaonline.net | hvaforum.net | hvazone.net | hvanews.net | vnhacker.org
1999 - 2013 ©
v2012|0504|218|
|
|