Trường Đại học Vinh Khoa c«ng nghƯ th«ng tin đồ án tốt nghiệp đại học ngành tin học XY DNG WEBSITE BN ĐIỆN THOẠI DI ĐỘNG BẰNG CÔNG CỤ Mà NGUỒN MỞ DRUPAL Giáo viên hướng dẫn: Th.S TRẦN XUÂN HÀO Sinh viên thực : ĐINH TIẾN THĂNG Lớp : 46K1 - CNTT Vinh - 05/2010 LỜI NãI ĐẦU PHP đ· tr thành ngôn ng web s mt hin vi số lượng website khổng lồ nã trªn internet, từ c¸c ứng dụng cỡ lớn Portal, thương mại điện tử, mạng x· hội, diễn đàn, giải trÝ Với c¸c hệ thống cã lượng truy cập khổng lồ Yahoo, Facebook, Wikipedia…C¸c ứng dụng web ngày đa dạng chức yªu cầu khắt khe hệ thống, đặc biệt xuất ph¸t triển c¸c hệ thống m· nguồn më tạo xu hướng ph¸t triển web Trong đã, hệ quản trị nội dung (Content Management System - CMS) xu hướng để x©y dựng c¸c web site cã c¸c chức kh¸c với c¸c nghiệp vụ xử lý kh¸c nhau, ứng dụng mạng x· hội, quản lý tài nguyªn, blog… Với số lượng lớn c¸c hệ thống vậy, việc chọn nn tng phát trin ng dng òi hi rt kỹ lưỡng, đặt nhiều tiªu chÝ: khả thực thi hệ thống, khả ph¸t triển, mở rộng, bo mt v.v Trên nn web, h thng CMS ph bin nht c ánh giá cao nhiu tiêu chÝ Drupal (www.drupal.org), Joomla! (www.joomla.org), DotNetNuke (www.dotnetnuke.com),…C¸c framework Zend (www.zend.com/framework), Symfony (www.symfony-project.com) Drupal CMS đ¸nh giá cao nhiu tiêu chí v nhiu nm dn đầu b×nh chọn Opensouce CMS xuất sắc nhất, với số lượng người ph¸t triển cộng đồng lớn vi hng ngn lp trình viên v công ty phát triển ứng dụng Với tÝnh mạnh mẻ, linh hoạt cấu tróc th«ng minh, Drupal tảng tốt xây dng website hin án Drupal xây dng Website bán in thoi di ng , trªn sở nghiªn cứu, trao dồi hiểu biết cïng với hướng dẫn, gióp đỡ tận t×nh ca thy cô t Khoa hc máy tính c bit ca thy Th.S Trn Xuân Ho- Khoa công ngh thông tin- trng i hc Vinh à giúp nghiên cứu Drupal x©y dựng hồn thành việc ứng dụng Drupal website b¸n điện thoại di động Cuối mt ln na, xin chân thnh cm n s hng dn tn tình ca thy Th.S Trn Xuân Hào cïng gióp đỡ, gãp ý c¸c thầy, cô t Khoa hc máy tính Mc dù đ· hết søc cố gắng nhng cã nhiều thiếu sãt mong cã đãng gãp ý kiến c¸c thy, cô giáo v bn h thng ngy hồn thiện Xin ch©n thành cảm ơn! Vinh, tháng 05 nm 2010 Chơng H THNG QUN TR NỘI DUNG DRUPAL 1.1 Tổng quan Drupal 1.1.1 Kh¸i niệm hệ quản trị nội dung (Content management system - CMS) Trước t×m hiểu drupal, chóng ta nãi sơ lược hệ quản trị nội dung Hệ quản trị nội dung hay CMS phần mềm để tổ chc v to môi trng cng tác thun li nhm mục đÝch x©y dựng hệ thống tài liệu loi ni dung khác mt cách thng nht Trên web gọi web content management Hệ quản trị nội dung trở thành xu hướng phổ biến vic xây dng ng dng web a dng hin Một số Opensource CMS phổ biến: Drupal (PHP) c ánh giá cao nht hin tiªu chÝ ổn định (stable), bảo mật (security), khả thực thi (performent), linh hoạt (flexible development), tối ưu hãa b máy tìm kim (Search Engine Optimizer - SEO) Joomla! (PHP) Liferay (Jsp,Servlet) DotNetNuke (ASP.Net+VB/C#) 1.1.2 Lý chọn đề tài Drupal tảng đỵc xy dng ngôn ng lp trình PHP, mt khung sn phát trin ng dng web hng mô-un, mt h thống quản trị nội dung miễn phÝ m· nguồn mở (Opensouce CMS) Hai năm liªn tục 2008, 2009 Drupal đ¸nh gi¸ hệ quản trị nội dung m· nguồn mở xuất sắc để x©y dựng Website nay, với tÝnh bảo mật, linh hoạt sẵn sàng cao Với số lượng người cộng đồng lớn vi hng ngn lp trình viên v công ty phát triển ứng dụng ‚Cần g× Drupal cã‛, Drupal cã cấu trúc lp trình rt tinh vi, da ó, hu hết c¸c t¸c vụ phức tạp cã thể giải với Ýt đoạn m· viết, chÝ không cn hay nói cách khác ch cn t mc ‚Sử dựng Drupal‛ mà x©y dựng website mạnh mẽ nhanh chãng Thấy sức mạnh Drupal trước nhu cầu thực tế thời i in thoi: Khách hng có quyn lạ chn điện thoại tốt nhanh nhất, c¸c phương thức kinh doanh truyền thống (b¸n trực tiếp cửa hàng) không áp ng c.Các Website bán in thoi trc tuyn (thương mại điện tử) đời http://thegioididong.com.vn, http://www.muabandtdd.com/ Đem lại doanh thu lớn cho c¸c doanh nghiệp.Kh¸ch hàng cần lướt web, đặt mua cã điện thoại m×nh ưng ý ‚Website bán in thoi di ng c xõy dng t yêu cầu 1.1.3 Tổng qu¸t hệ thống Website cã đầy đủ c¸c chức website thương mai in t: - Cho khách hng duyt, tìm kim sản phẩm đặt mua - Đăng kÝ làm kh¸ch hng di lâu - Khách hng có quyn bình lun, ánh giá sn phm Giao din thân thin, gn gũi thuận tiện với khả điều hướng nội dung cao 1.1.4 Giới thiệu Drupal Drupal tảng ph¸t triển ứng dụng web (web platform), hệ quản trị nội dung (Content Management System) m· nguồn mở miễn phÝ ph©n phối theo giấy phÐp GNU (General Public License) Cũng giống c¸c hệ thống quản trị nội dung đại kh¸c, Drupal cho phÐp người quản trị hệ thống tạo tổ chức liu, tùy chnh cách trình by, t ng hóa t¸c vụ điều hành quản lý hệ thống Drupal có cu trúc lp trình rt tinh vi, da đã, hầu hết c¸c t¸c vụ phức tạp cã thể giải với Ýt đoạn m· viết, chÝ kh«ng cần Đ«i khi, Drupal gọi l "khung sn phát trin ng dng web", kin tróc th«ng minh uyển chuyển nã Drupal ứng dụng ph¸t triển c¸c hệ thống website kh¸c nhau, từ đơn giản đến c¸c website cã nghiệp vụ phức Drupal c chy rt nhiu môi trng khác nhau, bao gồm Windows, Mac OS X, Linux, FreeBSD, OpenBSD v môi trng h tr máy phc v web Apache (phiªn 1.3+) IIS (phiªn 5+) cã h tr ngôn ng PHP (phiên bn 4.3.3+) Drupal kt nối với sở liệu MySQL PostgreSQL để lu ni dung v thit lp Thông tin phát hnh Phát hnh: 01/2001 Phiên bn hin ti: 6.14 Website: www.drupal.org Sáng lp bi: Dries Buytaert Ngôn ng lp trình (Language) C s d liu (Database) Máy ch web (Web server) Hệ điều hành (Operating System) Drupal ứng dng tt hu ht hot ng tác v: Cổng th«ng tin cộng đồng (Community web portal) Website thảo luận (Discussion sites) Website c«ng ty (Corporate web sites) Ứng dụng nội ( Intranet applications) Personal web sites or blogs Ứng dụng thương mại điện tử (E-commerce applications) Quản lý tài nguyªn (Resource directories) Một số website tiªu biểu: Drupal s dng xây dng hng ngn website th gii, đa chức năng, đa ng«n ngữ - BBC Magazines (www.bbcmagazines.com) - Website Nhà trắng www.WhiteHouse.gov - Ubutu Linux www.ubuntu.com - Chng trình lng thc liên hp quc (United Nations World Food Programme) www.wfp.org - www.VietNamworks.com - www.Tamtay.vn -… 1.1.5 Kiến trúc ca Dupal Drupal c kin trúc tuân theo mô h×nh MVC (Model–view–controller) MVC mẫu kiến tróc phần mềm kỹ thuật kỹ sư phần mềm Khi sử đóng c¸ch, mẫu MVC gióp cho người ph¸t triển phần mm thnh tho nguyên tc, thao tác nghề nghiệp giao diện người dïng c¸ch râ ràng Phần mềm ph¸t triển theo mẫu MVC tạo nhiu thun li cho vic bo trì nguyên tắc nghề nghiệp giao diện Ýt liªn quan vi Trong mu Model-View-Controller, mô hình (model) tng trng cho liệu chương tr×nh phần mềm Tầm nh×n hay khung nhìn (view) bao gm thnh phn ca giao diện người dïng Bộ kiểm tra hay điều chỉnh (controller) quản lý trao đổi liệu v nguyên tc ngh nghip thao tác liên quan n mô hình B lõi ca Drupal (core) ( Sơ lược phần lâi Drupal ) Drupal core bao gồm c¸c phần m· xử lý hệ thống ng t nhn yêu cu (request), gi thư viện, gọi c¸c module cung cấp c¸c chức xö lý xuất nội dung - Quản lý nội dung - Quản lý người dïng - Quản lý phiªn - Định danh URL (Uniform Resouce Locator) - Địa phương hãa (Xư lý website đa ng«n ngữ) 1.2 C¸c thuật ngữ Drupal 1.2.1 Node Trong drupal, node chÝnh đơn vị liệu bản, hầu hết c¸c liệu drupal node, trừ user, comment, block Một node giống bảng sở liệu quan hệ, nã gồm c¸c thành phần (c¸c trường) Node Drupal cã c¸c thành phần ngầm định cã ID, Title (tiªu đề), Body (ni dung) Node ch có trng ngm ịnh gọi Node 1.2.3 Content Type C¸c Node mở rộng từ Node gọi kiểu nội dung, tức ngồi c¸c trường ngầm nh ca Node c bn kiu ni dung c thêm trng khác Ví d: kiu nội dung có tên l in thoi ngoi trng ngm nh, có thêm trng: Giá bán, HÃng,Model, Thông s 1.2.4 Content Content nội dung Content Type Một Content giống ghi bảng quan hệ, bảng quan hệ lại giống Content Type 1.2.5 Block - Block khối văn nhỏ, thường đặt bªn ngồi vïng nội dung chÝnh website - Mỗi Block cã c¸c trường title description, thường sử dụng để viết c¸c đoạn code nhỏ thông báo trng thái, không phi l nhng on ni dung y , vy Block không phi l Node v không phi theo nhng nguyên tc lm vic Node Node thường dïng để lưu trữ c¸c phần nội dung website - Block cã c¸c tïy chọn để điều khiển người quyền xem nã trang mà nã xuất 1.2.6 Menu Mt menu l danh sách liên kt người dïng truy cập nhanh 1.2.7 Module Module nhãm chức định, gồm thuộc tÝnh bản: + Name: tªn chÝnh thức module, ảnh hưởng trực tiếp đến hàm kết nối với hệ thng + Display name: tên gi nh, c trình by trang điều hành module + Description: giới thiệu ngắn gn v chc nng ca module, c trình by trang điều hành module + Version: m· số phiªn module + Dependencies: tªn module mà module thiết kế yªu cầu tới (trong trường hợp sử dụng hàm từ module kh¸c), cã nhiều module module ny cách bi du phy Module không th c kích hot nu module c yêu cầu kh«ng tồn chưa kÝch hoạt + Package: ph©n nhãm chức chứa đựng module Một điểm hay Drupal cho phÐp người ph¸t triển module cã thể sử dụng lại hàm viết module khác xây dng module cho Module cã thể tự động ngưng hoạt động tạm thời để giảm tải cho m¸y chủ cã qu¸ nhiều truy cập c¸ch bật module throttle (quản lý chế tự động điều chế tắt nghẽn hệ thống) chọn sử dụng chức điều tiết lưu lượng Chức tự động điều tiết cã thể bật thông qua trang cu hình throttle sau ó bt module throttle Mỗi module phải xử lý c¸c kin hoc nh ngha s kin riêng ca Mi thao tác cn c phân quyn rõ rng Vic ph©n quyền thuộc người điều hành Mỗi thao t¸c cần cã internal path (hay drupal path) nh Thông tin c khai báo rõ rng qua tin info, điều làm cho người điều hành d qun lý Không cn quan tâm nhiu n quyn hạn truy cập Module t¸ch thư mục cụ thể để quản lý c¸ch dễ dàng Ph¸t trin module không cn thay i phn nhân ca mà nguồn, nh©n cã lỗi bảo mật, việc cập nhật tr nên d dng Vic gán quyn truy cp vi vai trò thuc v ngi iu hnh, ngi điều hành kh«ng bị ràng buộc quyền truy cập Mỗi module cã thể định nghĩa cho riªng nã quyền hạn truy cập kh¸c 1.2.8 Hook Hook cã thể hiểu chế xử lý kiện nội hệ thống drupal, cßn gọi ‚callback‛, th«ng qua chế hook, hệ thống drupal xử lý c¸c kiện tương ứng module phải cài đặt hook để mở rộng nạp chồng c¸c xử lý VÝ dụ: nội dung (node) gi lên h thng, s kin c phát sinh: hook_validate() : x¸c thực nội dung hook_insert() (update, delete): xử lý kiện node thªm (sửa, xãa) hook_submit(): xử lý sau node xử lý thnh công 1.2.9 Taxonomy Taxonomy l cách phân nhãm nội dung c¸c node drupal VÝ dụ: kiểu nội dung tin_tøc cã thể ph©n theo nhiều nhãm (taxonomy): Tin thị trường, tin thể thao, tin giới… Trong drupal taxonomy cã thể sử dụng cho nhiều kiu ni dung khác nhau; có th phân nhiu cp; cã c¸c kiểu chọn: đơn, nhiều, theo thẻ… 1.2.10 Theme Một theme ( giao diện ) bao gồm c¸c tệp xử lý giao diện ( css ), c¸c tệp kịch ( js ), c¸c tệp template (.tpl.php) định dng trình by kiu ni dung cung cp giao diện cho website 1.3 Cài đặt ph¸t triển Drupal 13.1 KÝch hoạt c¸c Module Sau đ· cã c¸c module cần thiết, chóng ta cần copy module chóng ta vào đóng thư mục cài đặt drupal, cã vị trÝ để đưa module vào: - path_to_drupal/modules/******* - sites/your_domain_name/modules/******* - sites/all/modules/******** Khi copy thành c«ng, vào trang điều hành module (path_to_drupal /admin/build/modules) để kÝch hoạt c¸c module h·y check vo module cn kích hot(trng hp mun kÝch hoạt th× ta bỏ check).Nhấp chuột vào nót "Lưu c¸c thiết lập" (Form tạo nội dung thuộc kiểu nội dung “Khuyến m¹i”) 2.2.2 Kiểu nội dung “Sản phẩm” Đnh ngha thông tin (các trng) ca sn phm – điện thoại di động (Node) Website Kiểu nội dung Module Ubercart tạo ra.Ngồi c¸c trường ngầm định, b sung thêm mt s trng: Kiu dáng, Bo hành, Camera, Nghe nhc (Các trng ca kiu ni dung “Sản phẩm”) 2.2.3 Kiểu nội dung “Tin tức” §ịnh ngha thông tin (các trng) ca tin tc Website (C¸c trường kiểu nội dung “Tin tức”) (Cấu hình hin th trng ca kiu d liu) (Form tạo nội dung thuộc kiểu nội dung “Tin tức”) 2.3 C¸c Views (Danh mục c¸c views) Website ngồi c¸c views ngầm định sẵn (archive, date_browse, frontpage, glossary, taxonomy_term) Drupal, có views c to nhm mc ích lọc liệu để thị c¸c form quản lý: 2.3.1 View “admin_content” Tạo form quản lý toàn nội dung (Tin tức, Sản Phẩm, Khuyến mại) Website, người quản trị cã thể t×m kiếm nội dung theo tiªu chÝ kiểu nội dung; nội dung cã xuất (Form cấu h×nh view “admin_content”) (Kết trả view “admin_content”) 2.3.2 View “Khuyến mi hay không Tao danh sách ni dung (content) kiểu nội dung ‚khuyến mại‛, người quản trị cã thể xãa, sửa c¸c nội dung khuyến mại (Form cấu h×nh view “Khuyến mại”) (Kết hiển thị view “Khuyến mại”) 2.3.3 View “Điện thoại” Tạo danh sách in thoi da tham số (Agruments) truyền vào – t×m kiếm sản phẩm.Trong view gồm nhiều page block thực c¸c chc nng riêng: page Tìm kim to form tìm kim in thoi; Block Hng bình dân tao danh sách in thoi di ng hng bình dân, (Cấu h×nh Page-“Danh mục điện thoại theo hãng” view “điện thoại”) (Kết hiển thị page view “Điện thoại”) 2.2.4 View “menu h·ng” Trong view cã 1‛display‛ kiểu ‚block‛ thực truy vấn để tạo danh s¸ch c¸c h·ng dạng menu "Display‛ c hin th bên thc n trái ca trang Khi nhp vo tiêu hÃng tr v danh sách in thoi di ông thuc hÃng ó (Cấu h×nh block “menu-h·ng”) (Kết hiển thị view- menu hÃng bên trái) 2.3.5 View Thông tin Trong view cã page: Page ‚Tin tức‛ để tạo danh s¸ch c¸c tin tức; Page ‚Quản lÝ tin tức‛ tạo form có th sa, xóa tin (Cấu h×nh page view) (Kết hiển thị page view) 2.4 C¸c Block Ngồi c¸c block tạo từ module views, ta cã thể tạo block trang admin/build/block/add Mỗi Block ta cã thể đặt vùng bt k trang v c biệt ta cã thể thiết lập Block phÐp hiển thị trªn trang (Block “ tìm theo chc nng ang c thêm) (Kt qu hin th mt block tìm theo chc nng bên menu phi) (Form b trí block ti vùng (region) trang) 2.5 Ph©n quyền quản lý người dïng Drupal phân quyn ngi qun tr thnh nhóm quyn (Role), nhãm quyền cã quyền thực c¸c t¸c vụ (Permission) kh¸c người quản trị tối cao qui nh (ti khon admin trình ci t Drupal) (Danh mục c¸c nhãm quyền- Role) (C¸c t¸c vụ mà nhãm quyền “NhanVienBanHang” phÐp) KẾT LUẬN 3.1 KÕt luËn Đứng trớc xu hớng phát triển nhanh mạnh nỊn c«ng nghƯ th«ng tin thÕ giíi cịng nh nỊn công nghệ thông tin nớc nhà, việc tìm hiểu phát triển phần mềm hay công cụ để đáp ứng nhu cầu quan trọng cần thiết Drupal công cụ đáp ứng phần vấn đề thiết nêu Trong suốt trình thực Website em đà tìm hiểu phần công cụ Drupal Tuy chơng trình cha hoàn thiện so với yêu cầu song ®· cho em thÊy søc m¹nh cđa Drupal tríc nhu cầu thực tế Nhìn chung: à t c mc s dng CMS Drupal mc trung bình vic xây dựng Website ‚B¸n điện thoại di động‛ Website với giao din thân thin, gần gi, thun tin, d s dng đầy đủ c¸c chức Mặc dï đ· cố gắng vèn kiÕn thøc cha sâu, vic tìm hiu Drupal v phát trin Drupal nhiu hn ch, kính mong Thy, Cô bạn bÌ gãp ý 3.2 Hướng ph¸t triển: Về quy mô, điều kiện cho phép em muốn phát triển hệ thống quy mô hệ thống cửa hàng lớn Về công tác quản lý: Thêm chức quản lý mặt hàng, thống kê doanh thu định kỳ hàng quý để ngời quản trị (chủ cửa hàng) đa giải pháp kinh doanh cho phù hợp đem lại lợi nhuận cao Trau di, nâng cao vic phát trin Drupal, hon thin hn mặt chức mặt giao diện TH«NG TIN THAM KHẢO [1] Trang chủ Drupal: www.drupal.org [2] Tài liệu sử dụng ph¸t triển ứng dụng: http://drupal.org/handbooks [3] Drupal module: http://drupal.org/project/Modules [4] Cộng đồng ph¸t triển drupal Việt Nam drupal.org http://groups.drupal.org/vietnamese ... lập tr×nh viên v công ty phát trin ng dng Vi tính mạnh mẻ, linh hoạt cấu tróc th«ng minh, Drupal l nn tng tt xây dng website hin án Drupal xây dng Website bán điện thoại di động? ?? , trªn sở nghiªn... cần lướt web, đặt mua cã điện thoại m×nh ưng ý ? ?Website b¸n điện thoại di động? ?? xõy dng t yêu cu ó 1.1.3 Tng quát v hệ thống Website cã đầy đủ c¸c chức website thương mai điện tử: - Cho kh¸ch hàng... đà cho em thấy sức mạnh Drupal trớc nhu cầu thùc tÕ Nh×n chung: Đ· đạt mức sử dụng CMS Drupal mc trung bình vic xây dng Website ‚B¸n điện thoại di động? ?? Website với giao di? ??n thân thin, gần gi,