Xây dựng trang web của công ty công nghệ cổ phần tương lai với địa chỉ là http://www.nextjsc.com.vn thực hiện các chức năng chính mà công ty yêu cầu như giới thiệu sản phẩm , giao dịch với khách hàng , trao đổi kinh nghiệm giữa các nhân viên trong công ty …
Trang 1MỤC LỤC
LỜI MỞ ĐẦU 1
CHƯƠNG I: MỤC ĐÍCH CỦA ĐỀ TÀI 2
1.1.Mục đích của đề tài : 2
1.2 Giới thiệu về công ty: 2
1.3.Yêu cầu về hướng phát triển trang web: 2
1.3.1.Cách thức truy cập 2
1.3.2 Manage WebPage: Quản lý các trang thông tin của web site 3
1.3.3 Quản lý sản phẩm 5
CHƯƠNG 2: TÌM HIỂU VỀ NGÔN NGỮ KỊCH BẢN PHP, HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MYSQL, VÀ HỆ MÃ NGUỒN MỞ JOOMLA 12
1 Giới thiệu và sử dụng PHP 12
1.1 - Giới thiệu 12
1.2 - Sử dụng PHP 13
2 Giới thiệu MySQL 20
2.1 - MySQL là gì? 20
2.2 - Nơi cung cấp MySQL? 21
2.3 – Các kiểu dữ liệu trong cơ sở dữ liệu MySQL 21
2.4 – Phát biểu SQL 23
3.Giới thiệu về Joomla 24
3.1.Lịch sử 25
3.2.Các phiên bản 26
3.3 Ứng dụng 26
CHƯƠNG 3: PHÂN TÍCH HỆ THỐNG 27
CHƯƠNG 4: THIẾT KẾ CƠ SỞ DỮ LIỆU 31
CHƯƠNG 5 : GIAO DIỆN CHƯƠNG TRÌNH 33
CHƯƠNG 6 : VIẾT CODE 36
TÀI LIỆU THAM KHẢO 58
Trang 2Trong thời gian thực tập vừa qua , em đã học được nhiều điều về việc thiết kế webbằng ngôn ngữ kịch bản PHP hệ quản trị cơ sở dữ liệu MySQL, mã nguồn mởjoomla và ứng dụng để xây dựng 1 trang web thương mại điện tử Bài báo cáo này
hi vọng sẽ nói được một phần nào về những việc trên
Vì thời gian và trình độ có hạn nên bài báo cáo thực tập tổng hợp này sẽ không tránh khỏi sai sót Mong cô thông cảm , châm chước và giúp đỡ em
Trang 3CHƯƠNG I: MỤC ĐÍCH CỦA ĐỀ TÀI 1.1.Mục đích của đề tài :
Xây dựng trang web của công ty công nghệ cổ phần tương lai với địa chỉ làhttp://www.nextjsc.com.vn thực hiện các chức năng chính mà công ty yêu cầu nhưgiới thiệu sản phẩm , giao dịch với khách hàng , trao đổi kinh nghiệm giữa các nhânviên trong công ty …
1.2 Giới thiệu về công ty:
Tên:Công ty cổ phần công nghệ tương lai
Lĩnh vực : Điện tữ viễn thông
Địa chỉ:
Tầng 2 & 3 , Nhà 3 tầng , số 2 , Chùa Bộc , Đống Đa , Hà Nội
1.3.Yêu cầu về hướng phát triển trang web:
Trang 41.3.2 Manage WebPage: Quản lý các trang thông tin của web site
- Trang quản lý WebPage đưa ra thông tin về những trang web hiện có:
o Page Name: Tên của trang web
o Home: Trang này có là trang chủ không
o Visiable: Trang nào được hiển thị
o Component: Trang này có bao nhiêu module
Trang 5o Up/Down: Mỗi trang đều được đánh thứ tự tương đối so với các trang khác
Up/Down được dùng để thay đổi thứ tự đó
o Check: Nếu muốn xóa trang web nào, check vào check box rồi chọn nút
Delete
- Để chỉnh sửa một trang web: Click vào link của từng tên trang web
o Menu:Web Page này thuộc về menu nào
o Show title: Khi web page này được hiển thị, có hiển thị tiêu đề của trang
web không
o Main Img: Có ảnh chính của trang web này không
o Member Only: Trang này có dành riêng cho member không
o Set as Home Page: Có đặt trang này là trang chủ không
o Visiable: Trang này có được hiển thị không
o WebPage Name: Tên của trang web
o Title: Tiêu đề của trang web
o Short Desc: Mô tả ngắn gọn
o Content: nội dung của trang web.
Trang 61.3.3 Quản lý sản phẩm
a) Quản lý chủng loại
- Mỗi chủng loại được đánh một chỉ số xác định vị trí tương đối giữa các
chủng loại Để thay đổi vị trí tương đối của một chủng loại chọn nút up/down
tương ứng với chủng loại đó
- Để xóa chủng loại chọn check tương ứng rồi click nút Delete
- Để thêm mới một chủng loại chọn Add Category
- Để xem / sửa / thêm số sản phẩm có trong chủng loại đó ta chọn vào Product (n):
+ n: là số sản phẩm có trong chủng loại đó ( có trong category )
Ví dụ: trong dòng sản phẩm
- Banner: Ảnh đại diện cho chủng loại này
- Name: Tên của chủng loại
- Description: Mô tả của chủng loại
- Parrent Category: Chủng loại này có là một chủng loại con của chủng loại
nào không
b) Quản lý sản phẩm
- Khi click vào mục product của từng chủng loại, chương trình sẽ hiển thị toàn bộ sản phẩm thuộc chủng loại đó
Trang 7- Thông tin bao gồm:
- Để xóa sản phẩm, chọn check rồi click nút delete
- Để thêm mới sản phẩm click vào Add Product
Để chỉnh sửa thông tin 1 sản phẩm click vào ảnh hoặc tên sản phẩm
Trang 8- Thông tin về sản phẩm gồm:
o Image: Ảnh sản phẩm
o Name: Tên sản phẩm
o Descriptions: Mô tả ngắn gọn sản phẩm
o Full Descriptions: Mô tả đầy đủ
o Price: Giá sản phẩm default để là 0
o Supplier: Nhà cung cấp sản phẩm
o Is Spesical: Có là sản phẩm đặc biệt hay không
o Category: Thuộc chủng loại nào
o Images Library: deafault để là 2
Trang 9- Muốn cập nhật thông tin sản phẩm thì kích chuột chon add product của phần Product
màn hình sẽ hiện ra như sau:
o Image: Ảnh sản phẩm
o Name: Tên sản phẩm
o Descriptions: Mô tả ngắn gọn sản phẩm
Trang 10o Full Descriptions: Mô tả đầy đủ
o Price: Giá sản phẩm default để là 0
o Supplier: Nhà cung cấp sản phẩm
o Is Spesical: Có là sản phẩm đặc biệt hay không
o Category: Thuộc chủng loại nào
o Images Library: deafault để là 1 hoặc 2
c) Quản lý tin tức
1 Đăng nhập vào vào phần quản lý tin tức:
(H1)
2.Muốn cập nhật thêm tin tức mới
Kích chọn News(1) (ảnh minh hoạ H1)
Sẽ hiện ra hình ảnh dưới đây
Trang 11- Kích chuột vào Add News:
Sau khi kích chuột vào Add News màn hình sẽ hiện ra như sau:
Trong đó:
- Mainmg: đương dẫn ảnh tin tức
- Actived: Có hiển thị nên trang web hay ko(phải kích chuột chọn vào ô vuông thi tin tức mới hiện nên trang web)
- Library Image Cols: Mặc định để là 2
- Subject: tên tiêu đề tin tức
Trang 12- Nguồn: nguồn tin tức này lấy từ đâu.
- Short Desc: Mô tả ngắn gọn tin tức
- Content: Mô tả đầy đủ tin tức
- Sau đó thi kích chuột chon Submit
3.Chỉnh sửa nội dung tin tức
Muốn chỉnh sửa nội dung tin tức thì kích chuột vào tin mình cần chỉnh sửa
VD: Bạn muốn chỉnh sửa nội dung tin tức “Dự án khu phố chợ Phủ - Bình Giang”
- Sau khi kich chuột vảo tin “Dự án khu phố chợ Phủ - Bình Giang” thì màn hình sẽ hiện ra một bảng như sau
Trong đó : - Browse: đương dẫn ảnh
- Atived: ẩn hay hiện tin này nên trang web hay ko
- Subject: Tiêu đề tin tức
- ImageDescription: Nguồn ảnh
- Nguồn: thông tin này bạn lấy ở đâu
- Short Desc: Mô tả ngắn gọn tin tức
Trang 13- Content: Mô tả chi tiết tin tức
Có thể tùy y sửa tất cả các mục ở trên hoặc một mục mà mình nuốn chỉnh sủa sau
đó ấn vào nut “Submit”
CHƯƠNG 2: TÌM HIỂU VỀ NGÔN NGỮ KỊCH BẢN PHP, HỆ QUẢN TRỊ
CƠ SỞ DỮ LIỆU MYSQL, VÀ HỆ MÃ NGUỒN MỞ JOOMLA
và có thể nhúng vào HTML Hiện nay được sử dụng rất rộng rãi
Mã PHP được thực thi ở phía Server, khi trình duyệt của người dùng truycập một trang web có chứa một đoạn mã PHP thì trình duyệt nhận được trangkếtquả đã xử lý từ Web server, người dùng sẽ không thể biết được đoạn mã viết gì
Mã PHP được bao trong cặp dấu <?php ?> hoặc <? ?> Tập tin PHP có phần mở rộng là php hoặc php3
PHP tương tự JSP và ASP với tập thẻ lệnh dùng cho trang HTML Điểm đặc
Trang 14biệt là PHP được phát triển hoàn toàn cho nền tảng web, chính vì vậy , mà các ứngdụng viết bằng PHP rất ngắn gọn so với VBScript hay JSP Đây cũng chính làđiểm mạnh của PHP so với Perl.
Cú pháp PHP mượn từ nhiều ngôn ngữ khác như C, Java, Perl PHP có thể giaotiếp với nhiều hệ CSDL như MySQL, MS Access, Sybase, Oracle và cảMicrosoft SQL Không chỉ có khả năng thao tác CSDL, PHP còn có nhiều khảnăng khác như IMAP, SNMP, LDAP, XML PHP chạy trên hầu hết các nền tảng
hệ thống Trình máy chủ phân giải mã lệnh PHP có thể tải về miễn phí từ trangweb chính thức của PHP
Có lẽ yếu tố hấp dẫn nhất của PHP là nó hoàn toàn miễn phí Với máy tính cấuhình vừa phải chạy Linux, cài đặt Apache, PHP và MySQL, bạn sẽ có máy chủ cóthể phục vụ được nhiều ứng dụng web tương đối Toàn bộ chi phí hầu như chỉ làthời gian bạn bỏ ra để cài đặt các phần mềm
PHP được xem là một thay thế cho Perl PHP không thể làm được nhiều nhưPerl, thế nhưng chính sự hạn chế này làm cho PHP dễ học và dễ dùng.Nhiều nhà phát triển dùng kết hợp cả hai : Perl dùng cho những tác vụ chạybên dưới còn PHP dùng cho việc xử lý bề mặt Komodo của Active State Corp
là công cụ miễn phí dùng để phát triển trang PHP
1.2 - Sử dụng PHP
a) Thẻ PHP
Có 4 loại khác nhau của thẻ PHP:
- Kiểu Short: là thẻ mặc định mà các nhà lập trình PHP thường sử dụng
<? echo “Đây là kiểu Short”; ?>
- Kiểu định dạng XML: thẻ này có thể sử dụng với văn bản dạng XML
<?php echo “Đây là kiểu định dạng với XML”; ?>
- Kiểu Script: trong trường hợp muốn sử dụng PHP như một script tương
tự như khai báo Javascript hay VBScript
<script language = ‘php’>
Trang 15Để gọi hàm trong PHP, khai báo tương tự như gọi hàm trong các ngôn ngữ
lập trình khác, hầu hết các hàm khi gọi cần truyền tham số và giá trị trả về
VD: Gọi hàm date()
<?
echo “Hôm nay là: ”.date(“d/m/Y”);
?>
c) Truy cập biến Form
Thông thường khi cần lấy dữ liệu của người dùng nhập, chúng ta sẽ dùng
thẻ form trong trang web nhằm ràng buộc tất cả các thẻ input, selec, textarea
Dữ liệu đến từ script đều là biến PHP, chúng ta có thể nhận biết chúng bằng cách
sử dụng dấu $ trước tên biến Có hai cách để truy cập dữ liệu trên form
thông qua biến
- Để lấy giá trị của các thẻ trong form theo dạng POST:
$_POST[‘tên_thẻ’]
- Để lấy giá trị của các thẻ trong form theo dạng GET: $_GET[‘tên_thẻ’]
d) Khai báo biến:
PHP Engine không cần yêu cầu khai báo biến trước khi sử dụng, tuy nhiên
nên tập thói quen khai báo và khởi tạo giá trị ban đầu cho biến trước khi sửdụng chúng
e) Gán giá trị cho biến
Để gán giá trị cho biến, nếu biến đó chưa khai báo trước đó, biến này được
Trang 16coi như vừa khai báo và khởi tạo Trong trường hợp biến đã khai báo, biến này chỉ thay đổi giá trị.
- Interger: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là số
- Double: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là số thực
- String: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là chuỗi, ký tự
- Array: Sử dụng hầu hết cho giá trị có kiểu dữ liệu là mảng có các phần
Trang 17*= $a*=$b $a=$a*$b;
Trang 18* Các phép logic
Phép
&& AND $a &&
$b Trả về true nếu cả hai biến có giá trị true.Ngược lại là false
|| OR $a || $b Trả về true nếu $a hay $b hay cả hai biến có
>= $a>=$b $a lớn hơn hoặc bằng $b
h) Kiểm tra biến trong PHP
- is_array(): Kiểm tra biến là array hay không
- is_double(): Kiểm tra biến là double hay không
- is_float(): Kiểm tra biến là float hay không
- is_real(): Kiểm tra biến là real hay không
- is_long(): Kiểm tra biến là long hay không
- is_int(): Kiểm tra biến là int hay không
- is_interger(): Kiểm tra biến là integer hay không
- is_string(): Kiểm tra biến là string hay không
- is_object(): Kiểm tra biến là object hay không
Trang 19- isset(): Nếu biến tồn tại hàm trả về giá trị true, ngược lại trả về false.
- empty(): Cho phép kiểm tra biến tồn tại và không rỗng, có chiều dài khác 0
trả về true, ngược lại là false
Để sử dụng tất cả các hàm trên, cần phải truyền vào hàm biến PHP dưới dạng tham số
i) Phát biểu có điều khiển
- Phát biểu If: Phát biểu if với một điều kiện, nếu điều kiện là true thì khối lệnh trong phát biểu If sẽ được thực hiện, điều kiện được khai
báo trong dấu () VD: $a = 10;
- Phát biểu Else: phát biểu else luôn là trường hợp ngược lại của phát biểu if vớimột điều kiện, nếu điều kiện là true thì khối lệnh trong
phát biểu if sẽ được thực hiện, ngược lại khối lệnh trong phát biểu
else sẽ được thực hiện
Trang 20case “5”: echo “Điểm trung bình”;
- Phát biểu While: phát biểu vòng lặp đơn giản nhất trong PHP là vòng lặpwhile cho phép bạn thực thi khối lệnh trong while cho đến khi điều kiện củawhile là true như cú pháp
While (điều kiện)
while (điều kiện)
- Phát biểu vòng lặp for: tương tự như trong phát biểu while, có thể sử
dụng vòng lặp for với 1 giới hạn chỉ định
for (giá trị khởi đầu; điều kiện giới hạn; giá trị lặp của vòng lặp for)
Trang 21o fopen(tên file, chế độ mở): mở file
o fputs(), fwrite(): ghi file
o fclose(): Đóng file
o feof(): Nhận giá trị true nếu con trỏ ở cuối file
o file_exists(): Kiểm tra file có tồn tại
o filesize(): kiểm tra dung lượng của file
o unlink(): xóa file
w+ Mở dưới dạng Write-Read Nếu file này tồn tại, nội dung sẽ bị xóa,
nếu không tồn tại chúng sẽ được tạo ra
a Mở dưới dạng append dữ liệu (write), nếu nội dung tồn tại, bắt đầu
cuối cùng của nội dung, dữ liệu sẽ được ghi tiếp phần cuối, trong trường hợp file không tồn tại chúng sẽ được tạo ra
a+ Mở dưới dạng append dữ liệu (write & read), nếu nội dung tồn tại, bắt
đầu phần đầu của nội dung, dữ liệu sẽ được ghi tiếp phần đầu, trong trường hợp file không tồn tại chúng sẽ được tạo ra
- Thiết lập kết nối cơ sở dữ liệu
Để kết nối cơ sở dữ liệu MySQL, cần cung cấp tên Server hay IP (có thể làlocalhost) của máy chứa cơ sở dữ liệu MySQL, Username và Password để đăng nhập làm việc trên cơ sở dữ liệu được mở
- Thiết lập kết nối:
Trang 22Int mysql_pcconnect(“serverbname”, “username”, “password”);
$link = mysql_connect(“servername”, “username”, “password”)
or die(“Không kết nối được với CSDL”);
- Mở một CSDL: mysql_select_db(“database name”); hoặc
mysql_select_db(“database name”, $link);
- Đóng kết nối cơ sở dữ liệu: mysql_close(database_connection);
- Truy vấn cơ sở dữ liệu:
Int mysql_query(string sql);
Int mysql_query(string sql, [int db_connect]);
Int mysql_query(string database, string sql, [int db_connect]);
- Số lượng mẩu tin: mysql_num_rows(); Cho biết số lượng mẩu tin câu
truy vấn trả về
- Truy vấn dữ liệu:
Int mysql_fetch_array($result); Mysql_fetch_object($result);
- Dung lượng của tập mẩu tin: int mysql_free_result(int $result);
2 Giới thiệu MySQL
2.1 - MySQL là gì?
MySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở dành cho máy tính cánhân MySQL còn đang trên đà phát triển, nhưng các lệnh cơ bản của SQL có thểthử nghiệm được trên cơ sở dữ liệu MySQL
MySQL là cơ sở dữ liệu được sử dụng cho các ứng dụng Web có quy mô vừa
và nhỏ Tuy không phải là một cơ sở dữ liệu lớn nhưng chúng cũng có trìnhgiao diện trên Windows hay Linux, cho phép người dùng có thể thao tác các hành
Trang 23động liên quan đến cơ sở dữ liệu Cũng giống như các hệ cơ sở dữ liệu khác, khilàm việc với cơ sở dữ liệu MySQL bạn đăng ký kết nối, tạo cơ sở
dữ liệu, quản lý người dùng, phân quyền sử dụng, thiết kế đối tượng Table của
cơ sở dữ liệu và xử lý dữ liệu
2.2 - Nơi cung cấp MySQL?
Có thể download tại website www.mysql.com qua mạng Internet phần mềm
hệ quản trị cơ sở dữ liệu server/client đến các phần mềm tiện nghi và các phần mềm giao diện đẹp mắt và tiện dụng
2.3 – Các kiểu dữ liệu trong cơ sở dữ liệu MySQL
a) Loại dữ liệu numeric
Tinyint -127 ->128 hay 0 255 1 Số nguyên rất nhỏ
Int -231 -> 231 hay 0 232-1 4 Số nguyên
Bigint -263 -> 263 hay 0 264-1 8 Số nguyên lớn
Float phụ thuộc số thập phân Số thập phân dạng
Single hay DoubleFloat(M,D) ±1.175494351E-38
±3.40282346638
4 Số thập phân dạngSingle
Double(M,D) ±1.7976931348623157308
±2.2250738585072014E-308
8 Số thập phân dạngDouble
dưới dạng char
Trang 24b) Loại dữ liệu Date and Time
Date 1000-01-01 Date trình bày dưới dạng
Date và Time trình bày dưới dạngYYY-mm-dd hh:mm:ss
TimeStamp[(M)] 1970-01-01
00:00:00 TimeStampYYYY-mm-dd hh:mm:sstrình bày dưới dạngYear[(2|4)] 1970-2069
1901-2155
Year trình bày dưới dạng 2 số hay 4 số
Trình bày đại diện của TimeStamp
c) Loại dữ liệu String
Char 1-255 ký tự Chiều dài của chuỗi lớn nhất 255 ký
tựVarchar 1-255 ký tự Chiều dài của chuỗi lớn nhất 255 ký
tựTinyblob 28-1 Khai báo cho Field chứa kiểu đối
tượng nhị phân cỡ 255 ký tựTinytext 28-1 Khai báo cho Field chứa kiểu chuỗi
cỡ 255 ký tựBlob 216-1 Khai báo cho Field chứa kiểu blob
cỡ 65535 ký tự
dạng văn bản cỡ 65535 ký tự
Trang 25Mediumblob 224-1 Khai báo cho Field chứa kiểu blob
vừa khoảng 16777215 ký tựMediumtext 224-1 Khai báo cho Field chứa kiểu chuỗi
dạng văn bản vừa khoảng 16777215
ký tựLongblob 232-1 Khai báo cho Field chứa kiểu blob
lớn khoảng 4294967295 ký tựLongtext 232-1 Khai báo cho Field chứa kiểu blob
vừa khoảng 4294967295 ký tự
2.4 – Phát biểu SQL
Tạo cơ sở dữ liệu:
Create Database <database_name> Create <object type>
<object_name>
Phát biểu SQL thao tác dữ liệu
- SELECT (truy vấn mẩu tin)
- INSERT (Thêm mẩu tin)
- UPDATE (Cập nhật dữ liệu)
- DELETE (Xóa mẩu tin)
a) Phát biểu Select
Select <danh sách cột> From <danh sách bảng>
Where <các điều kiện ràng buộc>
[Group by <tên cột/biểu thức trong Select>]
[Having <điều kiện bắt buộc của Group by>]
Trang 26[where <restrictive conditions>]
d) Phát biểu Delete
Delete from <table_name> Where <condition>
Một số hàm thông dụng trong MySQL
Hàm AVG: Hàm trả về giá trị bình quân của cột hay trường trong câu truy vấnVD: select AVG(Amount) From tblOrder
Hàm MIN: Hàm trả về giá trị nhỏ nhất của cột hay trường trong câu truy vấnVD: select MIN(Amount) From tblOrder
Hàm MAX: Hàm trả về giá trị lớn nhất của cột hay trường trong câu truy vấnVD: select MAX(Amount) From tblOrder
Hàm Count: Hàm trả về số lượng mẩu tin trong câu truy vấn
VD: select Count(*) From tblOrder
Hàm Sum: Hàm trả về tống các giá trị của trường, cột trong câu truy vấn
VD: select SUM(Amount) From tblOrder
Hàm CurDate(): hàm trả về ngày, tháng, năm hiện hành của hệ thống
VD: select curdate() as ‘Ngay hien tai’
Hàm CurTime(): Hàm trả về giờ phút giây hiện hành của hệ thống
VD: select curtime() as ‘Thoi gian’
3.Giới thiệu về Joomla
Joomla! là một hệ quản trị nội dung mã nguồn mở Joomla! được viết bằng ngôn ngữPHP và kết nối tới cơ sở dữ liệu MySQL, cho phép người sử dụng có thể dễ dàng xuất bản các nội dung của họ lên Internet hoặc Intranet
Joomla! có các đặc tính cơ bản là: bộ đệm trang (page caching) để tăng tốc độ hiển thị, lập chỉ mục, đọc tin RSS (RSS feeds), trang dùng để in, bản tin nhanh, blog, diễnđàn, bình chọn, lịch biểu, tìm kiếm trong site và hỗ trợ đa ngôn ngữ
Joomla! được phát âm theo tiếng Swahili như là jumla nghĩa là "đồng tâm hiệp lực".Joomla! được sử dụng ở khắp mọi nơi trên thế giới, từ những website cá nhân cho tớinhững hệ thống website doanh nghiệp có tính phức tạp cao, cung cấp nhiều dịch vụ
Trang 27và ứng dụng Joomla! có thể dễ dàng cài đặt, dễ dàng quản lý và có độ tin cậy cao.Joomla! có mã nguồn mở do đó việc sử dụng Joomla! là hoàn toàn miễn phí cho tất
cả mọi người trên thế giới
Mọi thứ vẫn tiến triển bình thường cho đến trước khi xảy ra tranh chấp về mặt pháp
lý vào năm 2003 Vụ việc dẫn tới ý tưởng Mambo cần phải được bảo vệ bởi một tổ chức phi lợi nhuận Nhưng những nhà phát triển không hài lòng về cơ cấu của Quỹ tài trợ Mambo Andrew Eddie, người lãnh đạo nhóm phát triển, trong một lá thư gửicộng đồng, đã chia sẻ những lo lắng của mình về Quỹ tài trợ Mambo và mối quan
hệ của nó tới cộng đồng Ông viết: " Chúng tôi cho rằng tương lai của Mambo nên được quản lý, điều chỉnh bởi những yêu cầu của người sử dụng và khả năng của những nhà phát triển Trong khi đó, Quỹ tài trợ Mambo lại được thiết kế nhằm traoquyền điều khiển cho Miro, một thiết kế ngăn cản sự hợp tác giữa Quỹ tài trợ vàcộng đồng " Bởi vậy vào ngày 17 tháng 8 năm 2005, toàn bộ đội phát triển nòngcốt của Mambo đã rời khỏi dự án trong khi đang làm việc với phiên bản 4.5.3.Nhờ sự trợ giúp của Trung tâm Luật Tự do Phần mềm (Software Freedom LawCenter - SFLC), 20 thành viên nòng cốt cũ của Mambo đã thành lập một tổ chức philợi nhuận khác lấy tên là Open Source Matters, để hỗ trợ về mặt tổ chức, pháp lý vàkinh phí cho dự án mã nguồn mở còn chưa được đặt tên của họ Cùng lúc đó, nhómphát triển cũng lập một website lấy tên OpenSourceMatters để phân phối thông tintới những người sử dụng, những người phát triển, những người thiết kế và cộngđồng Joomla nói chung Người đứng đầu dự án chính là Andrew Eddie, còn đượcbiết đến với tên gọi "Sếp trưởng"
Trang 28Ngay ngày hôm sau, 1000 người đã gia nhập diễn đàn OpenSourceMatters, hầu hếtcác bài viết cho diễn đàn đều khuyến khích và đồng tình với hành động của NhómPhát triển Tin trên đã nhanh chóng được đăng tải trên các tạp chí newsforge.com,eweek.com và ZDnet.com.
Trong một thông báo của Eddie 2 tuần sau đó, các nhóm đã được tổ chức lại vàcộng đồng Joomla! tiếp tục tăng trưởng Tới ngày 1 tháng 9 năm 2005 tên mới của
dự án đã được thông báo cho khoảng 3000 người theo dõi đội Phát triển và đếnngày 16 tháng 9 thì họ cho ra đời Joomla! 1.0
3.2.Các phiên bản
Hiện Joomla! có 2 dòng phiên bản chính:
* Joomla! 1.0.x: Phiên bản thế hệ 1 (ổn định)
o Phiên bản phát hành đầu tiên: Joomla! 1.0.0 (ngày 15 tháng 9 năm 2005)
o Phiên bản phát hành mới nhất: Joomla! 1.0.15 (ngày 22 tháng 2 năm 2008)
- Các cổng thông tin điện tử hoặc các website doanh nghiệp
- Thương mại điện tử trực tuyến
- Báo điện tử, tạp chí điện tử
- Website của các doanh nghiệp vừa và nhỏ
- Website của các cơ quan, tổ chức phi chính phủ
- Website các trường học
- Website của gia đình hay cá nhân
Trang 29CHƯƠNG 3: PHÂN TÍCH HỆ THỐNG
Phân tích hệ thống theo nghĩa chung nhất là khảo sát nhận diện và phânđịnh các thành phần của một phức hợp và chỉ ra các mối liên hệ giữa chúng.Theo nghĩa hẹp phân tích hệ thống là giai đoạn 2, đi sâu vào các thành phần của
hệ thống
Phân tích hệ thống bao gồm việc phân tích về chức năng xử lý và phân tích
về dữ liệu (dữ liệu là đối tượng xử lý)
Xem thông tin chi tiết từng sản phẩm
Quản lý người dùng
Quản lý sản phẩm
Thống
kê về danh mục sản phẩm hiện có
Trang 30Biểu đồ phân cấp chức năng
Yêu cầu tìm kiếm Yêu cầu xem thống kê
Kết quả tìm kiếm Yêu cầu cập nhật
Website giới thiệu sản phẩm công ty