Trong phạm vi giới hạn của báo cáo, tôi không thể trình bàyđầy đủ quy trình thiết
kế của tất cả các Module đã được tích hợp với hệ thống. Ở đây chỉ lấy một Module đơn giản để giải thích về cách thức xây dựng mới một module trong Joomla
Mặc nhiên sau khi cài đặt Joomla! chỉ có một số Module cơ bản cần thiết cho Web
Site hoạt động, muốn mở rộng thêm chức năng cho Web Site thông thư ờng cần phải cài đặt thêm các phần mở rộng (Extensions) khác. Tuy nhi ên đôi lúc cũng cần phải tự
tạo cho riêng Web Site của mình một vài Mod để mở rộng thêm chức năng riêng cho Web Site.
Thông thường một Mod sẽ gồm có 2 file chính là .php (chương trình) và file .xml
(thông số), ngoài ra có thể có thể có thêm thư mục ảnh, Java Script... hỗ trợ thêm cho Module.
VI.1. mod_list_product.xml
Khai báo các thông số và cài đặt cho Module, các thông số này sẽ được hiển thị
trong phần Quản lý Module (Site Module: Edit)
<?xml version="1.0" encoding="iso -8859-1"?> <mosinstall type="module" version="1.0.0">
<name>List product</name> <author>Tran Van Ve</author> <creationDate>5/2008</creationDate>
<copyright>(C) 2008 Tran Van Ve. All rights rese rved.</copyright> <license>http://www.gnu.org/copyleft/gpl.html GNU/GPL </license> <authorEmail>tranvanve84@gmail.com</authorEmail>
<authorUrl>www.tranvanve.vn</authorUrl> <version>1.0.0</version>
<description>Hiển thị sản phẩm mới nhất ,sản phẩm khuyến mại, mua nhi� u nhất</description>
<files>
<filename module="mod_list_product">dtabs.js</filename> <filename module="mod_list_product">tabs -mac3.js</filename> </files>
<params>
<param name="number_product" type="text" default="6" label="Số sản phẩm hiển thị" description="Số sản phẩm hiển thị trên trang" />
<param name="moduleclass_sfx" type="text" default="" label="Háºu tố
Module của trang" description="Má»™t háºu tố sẽ được thêm và o cho lá»›p CSS của module (table.moduletable), nó cho phép cấu hình kiểu riêng cho Module" />
</params> </mosinstall>
Dòng <?xml version="1.0" encoding="iso -8859-1"?> quy địnhchuẩn định
dạng cho file XML
Dòng <mosinstall type="module" version="1.0.0"> là thẻ khai báo cài đặt
module
Dòng <name>List product</name> là tên module Dòng <author>Tran Van Ve</author> là tên tác giả
Dòng <creationDate>5/2008</creationDate> là ngày thực hiện
Dòng <copyright>(C) 2008 Tran Van Ve. All rights reserved.</copyright> là bản quyền
Dòng <license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license> là loại giấy phép sử dụng
Dòng <authorEmail>tranvanve84@gmail.com</authorEmail> là địa chỉ email
của tác giải
Dòng <authorUrl>www.tranvanve.vn</authorUrl> là trang web của tác giả
Dòng <version>1.0.0</version> là phiên bản của module
Dòng <description>Hiển thị sản phẩm mới, sản phẩm khuyến mãi và sản phẩm
Các dòngsau khai báo các file có trong module đ ể cài đặt
<files>
<filename module="mod_list_product">mod_list_product.php</filename> <filename module="mod_list_product">dtabs.js</filename>
<filename module="mod_list_product">tabs -mac3.js</filename> </files>
Các dòng sau khai báo các thông số có trong module với:
Name– tên thông số
Type– kiểu thông số
Default – giá trị mặc định
Label – tên hiển thị của thông số
<params>
<param name="number_product" type="text" default="6" label="Số sản phẩm
hiển thị" description="Số sản phẩm hiển thị trên trang" />
<param name="moduleclass_sfx" type="text" default="" label="Háºu tố Module của trang" description="Má»™t háºu tố sẽ được thêm và o cho lá»›p CSS
của module (table.moduletable), nó cho phép cấu hình kiểu riêng cho Module"
/>
</params>
Dòng </mosinstall> kết thúc việc cài đặt module
VI.2. mod_list_product.php
Đây là tập lệnh xử lý chính của module, kết hợp với các thông số trong
mod_list_product.xml. Xử lý các thuật toán truy vấn dữ liệu và trình bày dữ liệu lên trang.
<?php
global $mosConfig_absolute_path,$mosConfig_live_site,$database,$aht_templates_path; $number_product=$params ->get('number_product','6');
<script language="javascript"> function getproduct(str,numb) { var c='soluong'+numb; document.adminForm.product_cart.value=str+'|'+document.getElementById(c).value+'^'; } </script>
<form action="index.php?option=com_product" met hod="post" name="adminForm" enctype="multipart/form-data">
<link id="luna-tab-style-sheet" type="text/css" rel="stylesheet" href="<?php echo $aht_templates_path;?>/css/tabpane.css" />
<script type="text/javascript" src="<?php echo
$mosConfig_live_site;?>/i ncludes/js/tabs/tabpane_mini.js"></script> <div class="tab-page" id="modules-cpanel">
<script type="text/javascript">
var tabPane1 = new WebFXTabPane( document.getElementById( "modules -cpanel" ), 1 ) </script>
<div class="tab-page" id="module32"><h2 class="tab">Sản phẩm mới</h2>
<script type="text/javascript">
tabPane1.addTabPage( document.getElementById( "module32" ) ); </script>
<table cellpadding="0" cellspacing="0" width="100%" > <?php showproduct(1,$number_product);?> </table>
</div>
<div class="tab-page" id="module19"><h2 class="tab">Sản phẩm khuyến mại</h2> <script type="text/javascript">
tabPane1.addTabPage( document.getElementById( "module19" ) ); </script>
<table cellpadding="0" cellspacing="0" width="100%" cl ass="border_lattest_news"> <?php showproduct(2,$number_product);?>
</table> </div>
<div class="tab-page" id="module20"><! --<h2 class="tab">San Pham chua biet</h2> --> <script type="text/javascript">
tabPane1.addTabPage( document.getElementById( "module20" ) ); </script>
<table cellpadding="0" cellspacing="0" width="100%" class="border_lattest_news"> <?php //showproduct(3,$number_product);?>
</table>
<input type="hidden" name="back_link" value="<?php echo
'http://'.$_SERVER["HTTP_HOST"].$_SERVER['REQUEST_URI'];?>"> <input type="hidden" name="product_cart" value="" id="product_cart">
<input type="hidden" value="cart" name="task"> </div>
</div> </form>
Đoạn lên sau khai báo các biến toàn cụ được sử dụng trong module
global $mosConfig_absolute_path,$mosConfig_live_site,$database,$aht_templates_path; $number_product=$params ->get('number_product','6');
$number_product = 9;
Hàm showproduct() với các tham số $n= 1 là sản phẩm mới, $n=2 là sản phẩm
khuyến mãi, còn $number_product là số sản phẩm tối đa trình bày trên một tab.
function showproduct($n,$number_product){………}
CHƯƠNG 3
TRIỂN KHAI ỨNG DỤNG