Luận văn Tìm hiểu cms joomla úng dụng xây dựng siêu thị sách trực tuyến

MỤC LỤC MỞ ĐẦU 8 I. Bối cảnh của đề tài 8 II. Lý do chọn đề tài 9 III. Mục tiêu cụ thể 9 IV. Giải pháp công nghệ 10 V. Kết quả mong đợi 10 V.1. Cập nhật thông tin hàng hóa trực tuyến nhanh chóng và chính xác. 11 V.2. Đặt hàng trực tuyến 11 V.3. Quản lý các đơn đặt hàng trực tuyến, hóa đơn, báo cáo 11 V.4. Quản lý khách hàng 12 VI. Nội dung tóm tắt các chương tiếp theo 12 CƠ SỞ LÝ THUYẾT 13 I. Tổng quan về CMS 13 I.1. Giới thiệu CMS 13 I.2. Tính hướng đối tượng trong CMS 13 I.3. Mô hình/cấu trúc CMS 14 I.4. Mô hình MVC 14 I.4.1. Tầng lấy dữ liệu 14 I.4.2. Tầng hiển thị 14 I.4.3. Tầng điều khiển 15 I.4.4. Nhân sự cho mô hình này 15 II. Giới thiệu về Joomla 15 II.1. Khái niệm Joomla 15 II.2. Vài nét về lịch sử phát triển Joomla 16 II.3. Các dòng phiên bản của Joomla 17 II.4. Kiến trúc của Joomla 17 II.5. Đối với người sử dụng cuối 18 II.6. Ứng dụng của Joomla 18 III. Một số khái niệm trong Joomla. 19 III.1. Front-end và Back-end 19 III.1.1. Front-end 19 III.1.2. Back-end 20 III.2. Các thành phần mở rộng (Extension) 20 III.2.1. Module 20 III.2.2. Component 22 III.2.3. Mambot 24 III.2.4. Menu 26 III.3. Quản lý nội dung site 26 III.4. Template 28 IV. Quản trị trong Joomla 29 IV.1. Tổng quan về phần quản trị 29 IV.2. Tạo một chủ đề mới (Section) 34 IV.3. Tạo một chuyên mục mới (Category) 34 IV.4. Thêm một bài viết (Content Item) 34 IV.5. Cài đặt Component 35 IV.6. Cài đặt Mambot 35 IV.7. Cài đặt Module 35 IV.8. Cài đặt Templates 36 IV.9. Vị trí các module trong template 36 IV.10. Thêm một vị trí module vào template 39 IV.11. Quản lý hình ảnh 39 IV.12. Quản lý người dùng (Users) 39 IV.13. Thêm một liên hệ 40 IV.14. Thêm một module HTML 40 V. Một số thủ thuật để tối ưu và bảo mật Joomla 40 V.1. Tăng tốc cho Joomla 40 V.2. Cải thiện các truy vấn SQL 41 V.3. Bảo vệ file Configuration.php khỏi các truy cập trái phép 43 V.4. Bảo mật trang quản trị bằng mật khẩu 44 XÂY DỰNG ỨNG DỤNG SIÊU THỊ SÁCH TRỰC TUYẾN TRÊN CMS JOOMLA 46 I. Môi trường và công cụ để phát triển ứng dụng 46 II. Cài đặt Joomla 48 III. Việt hóa Joomla 53 III.1. Tiến hành Việt hóa Joomla 53 III.2. Cài đặt gói ngôn ngữ cho Joomla 55 III.3. Sử dụng JoomFish để xây dựng Website đa ngôn ngữ 56 IV. Thiết kế Template 65 IV.1. Vị trí các module và component 65 IV.2. Cấu trúc Template 68 IV.3. templateDetails.xml 69 IV.4. index.php 71 IV.5. template_css.css 73 IV.6. Cài đặt Template 80 V. Component 82 V.1. Cấu trúc chung của một component 82 V.2. yourcom.php và yourcom.html.php 83 V.3. admin.yourcom.php và file admin.yourcom.html.php 85 V.4. toolbar.yourcom.php và toolbar.yourcom.html.php 85 V.5. file.xml 86 VI. Thiết kế Modules danh mục sản phẩm 88 VI.1. mod_list_product.xml 88 VI.2. mod_list_product.php 90 TRIỂN KHAI ỨNG DỤNG 93 I. Cài đặt website trên web host 93 II. Kết quả demo 96 II.1. Trang chủ 96 II.2. Đăng nhập 96 II.3. Lựa chọn mục sản phẩm 97 II.4. Chọn sản phẩm vào giỏ hàng 97 II.5. Gửi đơn hàng 98 KẾT LUẬN 99 I. Kết quả thu được 99 II. Nhận xét 99 II.1. Ưu điểm 99 II.2. Nhược điểm 100 III. Phạm vi ứng dụng 100 IV. Hướng phát triển 100 MỞ ĐẦU I. Bối cảnh của đề tài Ngày nay, thông tin đã và đang dần chuyển hướng phát triển của mình sang các dịch vụ Web. Một trong những dịch vụ người người ta khá quan tâm là Thương mại Điện tử. Dịch vụ này giúp những bận rộn, thường xuyên làm việc trong các phòng máy, phòng thí nghiệm có thể tiết kiệm được thời gian đi mua sắm để tập trung vào công việc của mình. Nhờ Thương mại Điện tử, chỉ cần vài thao tác đơn giản trên máy tính có kết nối với Internet, bạn sẽ có tận tay những thứ mình cần mà không phải đi đâu cả. Bạn chỉ cần vào các trang dịch vụ Thương mại Điện tử là có thể mua bất cứ thứ gì, nhân viên dịch vụ sẽ mang đến tận nhà cho bạn. Việc thanh toán cũng thật dễ dàng, có thể gián tiếp qua các hệ thống ngân hàng hoặc trực tiếp nếu bạn muốn. Vậy, thực chất của Thương mại Điện tử là như thế nào? Để tìm hiểu mô hình hoạt động cũng như quá trình xây dựng một ứng dụng có tính chất thương mại trực tuyến, tôi xin giới thiệu đề tài “Tìm hiểu CMS Joomla, ứng dụng để xây dựng siêu thị sách trực tuyến” là đề tài nghiên cứu cho Đồ án tốt nghiệp này. Mặc dù ứng dụng đã triển khai được phần lớn các yêu cầu chính mà một ứng dụng Thương mại Điện tử cần đáp ứng, tuy nhiên với thời gian hạn chế, việc tìm hiểu và xây dựng một ứng dụng trên công nghệ Joomla là khá khó khăn. Do đó, ứng dụng này không tránh khỏi những thiếu sót, rất mong nhận được nhiều ý kiến nhận xét quý báu của quý thầy cô và các bạn để tôi có thể rút kinh nghiệm cho việc xây dựng những ứng dụng thực tế sau này. II. Lý do chọn đề tài Trong thời đại phát triển bùng nổ của Công nghệ thông tin(CNTT) và quan hệ hợp tác toàn cầu phát triển mạnh mẽ, nhất là khi Việt Nam đã trở thành thành viên chính thức của WTO, việc áp dụng tính chuyên nghiệp và các mô hình quản lý sản xuất - kinh doanh chuyên nghiệp - hiện đại thông qua mô hình “Tin học hoá doanh nghiệp” để theo kịp sự phát triển của xã hội là yếu tố cần thiết, đẩy mạnh sự phát triển của doanh nghiệp và giúp cho doanh nghiệp gặt hái được nhiều thành công trong môi trường sản xuất - kinh doanh năng động và đang thay đổi nhanh chóng như hiện nay. Thương mại điện tử là một trong những vấn đề nóng bỏng, mặc dù khái niệm này đã khá quen thuộc với nhiều người Việt Nam, song những dịch vụ tiện lợi này trên thực tế vẫn còn chưa phổ biến. Chính vì vậy, tôi chọn đề tài này với mong muốn tự trang bị cho mình những hiểu biết chung về thương mại điện tử, kỹ năng và phương pháp xây dựng và phát triển các ứng dụng thương mại điện tử, góp một phần nhỏ trong bước chuyển mình của dịch vụ này. III. Mục tiêu cụ thể  Nắm được cơ sở lý thuyết chung về thương mại điện tử và các vấn đề liên quan đến thương mại điện tử.  Tìm hiểu các Website thương mại điện tử lớn đã được triển khai để nắm được cách thức hoạt động và những yêu cầu cần thiết đối với ứng dụng thương mại điện tử.  Xác định đối tượng khách hàng mà mình hướng tới để phục vụ.  Lựa chọn giải pháp công nghệ thích hợp cho việc xây dựng và phát triển ứng dụng đã chọn.  Tìm hiểu về CMS Joomla và những tính năng của nó.  Xây dựng ứng dụng thương mại điện tử dựa trên nền tảng CMS Joomla có thể đáp ứng được nhu cầu của đối tượng phục vụ.  Tính toán, đưa ra phương pháp và kế hoạch thực hiện dự án trong thời gian ngắn nhất và chi phí thấp nhất có thể. IV. Giải pháp công nghệ Sử dụng nền tảng là Joomla, Joomla! cung cấp 1 nền tảng ứng dụng mạnh mẽ tạo điều kiện thuận lợi cho các lập trình viên thiết kế ra các add-ons nhằm mở rộng sức mạnh của Joomla nhắm đáp ứng tối đa nhu cầu của doanh nghiệp.  Hệ thống thương mại điện tử tích hợp  Hệ thống kiểm soát hàng hoá  Công cụ báo cáo dữ liệu  Danh mục hàng hoá  Các thư mục kinh doanh phức tạp  Công tự hỗ trợ giao tiếp  Cầu nối ứng dụng V. Kết quả mong đợi Dựa trên nền tảng công nghệ Web phát triển nhiều năm qua, tôi đã nghiên cứu và phát triển hệ thống quản trị nội dung website thương mại điện tử Online SuperMarket với đầy đủ các tính năng ưu việt đảm bảo có thể cung cấp đầy đủ, hoàn chỉnh các chức năng mạnh mẽ, hỗ trợ cho việc thực hiện thương mại điện tử trực tuyến cho các siêu thị, các nhà sách lớn trong nước. Qua hệ thống website thương mại điện tử này, các doanh nghiệp có thể được sở hữu một hệ thống quản trị website hoàn hảo và dễ dàng sử dụng mà không cần qua đào tạo, không cần phải biết về thiết kế và lập trình website bạn cũng có thể quản trị và xuất bản website một cách xuất sắc. Những tính năng chính mà hệ thống Online SuperMarket cung cấp: V.1. Cập nhật thông tin hàng hóa trực tuyến nhanh chóng và chính xác.  Không giới hạn chủng loại sản phẩm  Không giới hạn số lượng sản phẩm  Thiết kế theo cấu trúc Section - Category - Content  Cấu trúc sản phẩm Section - Category – Products  Hổ trợ nhiều ngôn ngữ, dễ dàng cài đặt thêm ngôn ngữ  Hổ trợ nhiều template, cho phép thay đổi giao diện để hấp dẫn người dùng  Hổ trợ nhiều loại tiền tệ  Bạn dễ dàng cập nhật và thường xuyên thay đổi những hình ảnh, thông tin chi tiết, giá cả các mặt hàng mà bạn kinh doanh bất cứ lúc nào. V.2. Đặt hàng trực tuyến Khách hàng của bạn có thể tìm kiếm và lựa chọn sản phẩm thêm hoặc bớt vào giỏ hàng( Shopping Cart). Nhân viên phục vụ của siêu thị sẽ mang hàng đến tận nơi theo đơn đặt hàng của khách hàng và thực hiện các thủ tục thanh toán. V.3. Quản lý các đơn đặt hàng trực tuyến, hóa đơn, báo cáo Hệ thống quản lý, lưu trữ và báo cáo các thông tin về đặt hàng và trạng thái của đơn hàng: đã giao hàng chưa, chờ thanh toán hay đã thanh toán đơn hàng. V.4. Quản lý khách hàng  Tất cả các các đơn đặt hàng đượclưu trữ vào CSDL giúp dễ dàng truy xuất khi cần thiết.  Khách hàng có thể xem các đơn đặt hàng của họ và trạng thái đơn đặt hàng(order tracking)  Khách hàng có thể quản lý và thay đổi tài khoản của họ.  Quản lý giỏ hàng tạm dành cho khách hàng chưa là thành viên và giỏ hàng giành cho khách hàng là thành viên.  Giỏ hàng lưu trữ thông tin hàng hóa khách hàng đã chọn để hiển thị lần sau khi khách hàng đăng nhập.  Công cụ tìm kiếm nhanh dễ sử dụng và có nhiều phương thức tìm kiếm chi tiết.  Danh sách sản phẩm bán chạy - Sản phẩm mới.  Hệ thống tương thích hầu hết với các trình duyệt.  Tự động hiển thị những sản phẩm mới, sản phẩm khuyến mãi, đặc biệt.  Tự động hiển thị trạng thái sản phẩm còn hay hết để khách hàng có thể tiếp tục đặt hàng.  Khách hàng có thể đăng kí hoặc bỏ đăng kí nhận email về thông tin sản phẩm của công ty thông qua hệ thống newsletters. VI. Nội dung tóm tắt các chương tiếp theo Chương I: Cơ sở lý thuyết Chương II: Xây dựng ứng dụng siêu thị sách trực tuyến trên CMS Joomla Chương III: Triển khai ứng dụng Chương IV: Kết luận

doc110 trang | Chia sẻ: lvcdongnoi | Lượt xem: 3007 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Luận văn Tìm hiểu cms joomla úng dụng xây dựng siêu thị sách trực tuyến, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hiều module cho phép sử dụng tính năng cache, tuy nhiên chúng lại bị tắt theo chế độ mặc định và ít bạn chú ý tới điều này. Để bật tính năng CACHE cho các module. Vào menu Modules --> Site Modules --> chọn từng Module. Trong phần tham số Parameters, nếu tìm thấy dòng đại loại như "Enable Cache" thì hãy chọn "Yes". 4. Làm sao để xóa CACHE Theo mặc định thời gian một bản CACHE có hiệu lực là 900 s = 15 phút. Tuy nhiên vì một lý do nào đó, bạn muốn các bài viết hoặc các module... cần được cập nhật ngay thông tin mà không phải đợi 15 phút sau. Bạn vào menu System --> chọn Clean Content Caches để xóa các file cache của các bài viết Bạn vào menu System --> chọn Clean All Caches để xóa tất cả các cache Cải thiện các truy vấn SQL Xác định phần tiền tố của các bảng.Thường là "jos_" Mở công cụ SQL (thực hiện các truy vấn SQL) Chạy các câu lệnh SQL tương ứng sau Đối với Joomla! core: ALTER TABLE `jos_categories` ADD INDEX `title_id` (`title`,`id`); ALTER TABLE `jos_components` ADD INDEX `opt_par` (`option`, `parent`, `id`); ALTER TABLE `jos_components` ADD INDEX `admin_opt` (`admin_menu_link`, `option`); ALTER TABLE `jos_content` ADD INDEX `state_access` ( `state` , `access` , `publish_up` , `publish_down` , `id` , `catid` , `sectionid` , `created_by` ); ALTER TABLE `jos_core_acl_aro` ADD INDEX `val_aro_id` (`value`, `aro_id`); ALTER TABLE `jos_core_acl_aro_groups` ADD INDEX `name_lft_rgt` (`name`, `lft`, `rgt`); ALTER TABLE `jos_mambots` ADD INDEX `fold_acc` ( `folder`, `access`, `published`, `ordering`, `element`, `params`(20)); ALTER TABLE `jos_mambots` ADD INDEX `element` ( `element` ); ALTER TABLE `jos_menu` ADD INDEX `link_id` (`link`(30), `id`); ALTER TABLE `jos_menu` ADD INDEX `link_pub_id` (`link`(30), `published`, `id`); ALTER TABLE `jos_menu` ADD INDEX `pub_acc_menu` (`published`, `access`, `menutype`, `parent`,`ordering`, `id`, `name`); ALTER TABLE `jos_sections` ADD INDEX `id,acc,pub` (`id`, `access`, `published`, `name`(20)); ALTER TABLE `jos_sections` ADD INDEX `pub_acc_id` (`published`,`access`,`id`,`name`(20)); ALTER TABLE `jos_stats_agents` ADD INDEX `agent_type` (`agent`,`type`,`hits`); ALTER TABLE `jos_templates_menu` ADD INDEX `client_menu` (`client_id`, `menuid`, `template`); ALTER TABLE `jos_template_positions` ADD INDEX `pos` (`position`); ALTER TABLE `jos_users` ADD INDEX `user_pass_id` (`username`,`password`,`id`); Đối với DocMan: ALTER TABLE `jos_docman` ADD INDEX `own_pub` (`dmowner`, `published`, `approved`, `catid`, `id`); Đối với JoomComment ALTER TABLE `jos_jomcomment` ADD INDEX `content_opt` (`contentid`,`option`, `published`); Đối với OpenSEF ALTER TABLE `jos_opensef_config` ADD INDEX `scope_name` (`scope`, `name`); ALTER TABLE `jos_opensef_sef` ADD INDEX `exter_dir` (`external`, `direction`, `site_id`, `use_internal`); Bảo vệ file Configuration.php khỏi các truy cập trái phép Việc bảo vệ các file có nội dung quan trọng, các file cấu hình chứa các thông số của hệ thống như: tên database, tên truy nhập, mật khẩu... là rất cần thiết và phải đặc biệt lưu tâm. Trong Joomla có một file như thế - file "configuration.php". Để tăng cường bảo mật cho file "configuration.php" này có nhiều cách, tuy nhiên có một cách hay được sử dụng và đề cập trên các diễn đàn, đó là chuyển file "configuration.php" tới một nơi an toàn, tránh sự nhòm ngó của hacker. Các bước thực hiện như sau: Giả sử Website Joomla của bạn được đặt trong thư mục "/www/public_html" www ---|public_html --------------|configuration.php Chuyển file "configuration.php" ra khỏi "public_html", đặt nó vào một khu vực khác do bạn tự tạo chẳng hạn "/www/private". Đặt cho nó một cái tên mới, chẳng hạn "vinaora_joomla.conf". www ---|private -----------|vinaora_joomla.conf Tạo một file "configuration.php" thay thế file cũ nhưng chứa nội dụng sau: Đừng để bất cứ khoảng trắng hoặc dòng trắng nào phía trước thẻ "" và không được lưu nó với UTF-8 nếu không bạn sẽ nhận được thông báo lỗi, đại loại như: Warning: Cannot modify header information - headers already sent by (output started at /home/xxxxx/public_html/configuration.php:2) in /home/xxxxx/public_html/index.php on line 250 Thiết lập (CHMOD) quyền chỉ đọc cho file "configuration.php" mới này để đảm bảo nó không bị thay đổi nội dung. Khi bạn cần thay đổi các thiết lập cho Joomla hãy thực hiện bằng tay đối với file "vinaora_joomla.conf" Bảo mật trang quản trị bằng mật khẩu Bạn muốn ngăn chặn việc truy cập trái phép vào vùng quản trị, trang administrator (phần backend trong Joomla). Có nhiều giải pháp để thực hiện việc này. Bài viết này xin giới thiệu một cách khá đơn giản nhưng lại hiệu quả với mục đích "Tăng cường thêm một rào cản trước khi truy nhập được file index.php". Áp dụng trên Hosting chạy Apache Server. Cách thực hiện: Copy đoạn mã sau và đặt vào đầu của file "index.php" trong thư mục "Joomla\administrator\" VINAORA : Access Denied'); } ?> Trong đó username = vinaora password = vinaora CHƯƠNG 2 XÂY DỰNG ỨNG DỤNG SIÊU THỊ SÁCH TRỰC TUYẾN TRÊN CMS JOOMLA Môi trường và công cụ để phát triển ứng dụng Để xây dựng và phát triển ứng dụng này ta cần phải cài đặt môi trường máy ảo php và có các công cụ cần thiết như sau: Server Apache 2.2.8 (Win32) Bộ php 5.2.5 Bộ MySQL 5.0.51 Phiên bản mã nguồn mở Joomla ổn định Ngoài ra chúng ta có thể cài đặt các chương trình soạn thảo: phpDesigner 2008, Macromedia Dreamweaver 8, Zend Studio - 5.5.0… Để thuận lợi và nhanh chóng hơn, ta có thể cài bộ XAMPP 1.6.6 tích hợp tất cả server apache, php và mysql như sau: XAMPP: dùng để giả lập máy tính của bạn thành một máy chủ web (máy tính của bạn khi được giả lập máy chủ web sẽ được gọi là: localhost, để phân biệt với các máy chủ đang hoạt động trên web là host server). Bạn vào địa chỉ sau: Hình 6 : Các gói cài đặt XAMPP Ta có thể download 1 trong 2 gói là Installer và Zip. Với gói ZIP ta chỉ cần giải nén là có thể sử dụng được ngay mà không cần cài đặt như gói Installer. Cách sử dụng của 2 gói phần mềm này về cơ bản là giống nhau. Joomla : joomla các phiên bản được cung cấp miễn phí tại trang web . Hình 7 : Các phiên bản Joomla Chọn download phiên bản 1.0.12 và download file Joomla_1.0.12-Stable-Full_Package.zip. Hình 8 : Các gói phiên bản Joomla 1.0 Cài đặt Joomla Đầu tiên, bung nén gói XAMPP vào một thư mục gốc của máy tính. Ở đây giả sử dùng ổ C. Cần lưu ý là các file trong gói XAMPP phải nằm ngay trong thư mục cấp 1 ở ổ C. Tiếp đó, bung nén gói Joomla vào thư mục C:\xampp\htdocs , và đổi tên thư mục chứa Joomla thành mysite để sau này dễ truy cập. Để cài đặt Joomla, trước tiên chúng ta phải tạo một database rỗng và phải giả lập máy tính của mình thành web server (cụ thể trong trường hợp này là localhost). Chúng ta sẽ sử dụng gói XAMPP để làm cả hai công việc trên. Vào thư mục C:\xampp, double-click file xampp_start. Hình 9 :Khởi động XAMPP Mở trình duyệt web lên, trong thanh Address, gõ vào dòng chữ Trong phần menu bên trái chọn phpMyAdmin, đây là công cụ quản lý các cơ sở dữ liệu của webserver. Hình 10 : Vào phpMyAdmin Màn hình sẽ tương tự bên dưới Hình 11 : Trang mặc định của phpMyAdmin Trong mục Create new database: gõ dòng chữ joom1, đây là tên của database mà ta sẽ sử dụng, mục collation nhớ chọn utf8_unicode_ci để thuận lợi cho việc sử dụng tiếng Việt trong joomla sau này. Bấm nút Create. Hình 12 : Tạo cơ sở dữ liệu mới Sau khi tạo thành công một database rỗng mới tên joom1, vào trình duyệt gõ dòng chữ: . Màn hình cài đặt Joomla sẽ bắt đầu. Hình 13 : Bắt đầu cài đặt Joomla Nhấn nút Next trên góc phải. Hình 14 : Giấy phép sử dụng Joomla Tiếp tục nhấn Next. Lúc này, màn hình cài đặt sẽ tới bước 1 như bên dưới. Điền các thông số cần thiết như bên dưới và tiếp tục nhấn Next. Hình 15 : Thông tin kết nối cơ sở dữ liệu Có một thông báo xuất hiện. Nhấn OK. Hình 16 : Thông báo xác nhận lại thông tin Tại bước 2, đặt tên site (Ví dụ: Test Site, Web site của ABC), tên này sẽ xuất hiện trên thanh trình duyệt khi duyệt site. Nhấn Next. Hình 17 : Đặt tên Site Trong bước 3, điền địa chỉ email và Admin password (password này dùng để truy cập vào phần quản lý website sau này). Nhấn Next. Hình 18 : Cấu hình url, path, thông tin admin Hình 19 : Cài đặt thành công Khi tới bước 4, bạn đã cài đặt thành công Joomla, hãy xóa thư mục cài đặt Installation (Điều này nhằm đảm bảo an toàn, tránh việc người khác truy cập và cài đặt lại Joomla). Cần chú ý 2 thông số, hai thông số này dùng để truy cập phần quản lý của Joomla. Username: admin Password: 123456 Hệ quản trị Joomla được chia làm 2 phần : Front-End: là phần mặt trước của Joomla, đây là phần mà người dùng bình thường thấy được khi vào thăm web site, phần này thường hiển thị các bài viết, hình ảnh mà web site muốn hiển thị. Back-End: là mặt sau, dành cho người quản lý site (administrator). Phải có username và password mới truy cập được vào back-end để quản lý thông tin, cấu hình hệ thống. Vậy ta đã cài đặt xong Joomla trên localhost, các công việc còn lại để tạo lên website sẽ là cấu hình Joomla và cài đặt thêm các giao diện, extensions cần thiết theo yêu cầu của website. Việt hóa Joomla Tiến hành Việt hóa Joomla Joomla! 1.5 ra đời đánh dấu sự nhảy vọt cả về cách trình bày, giao diện, tính năng, kiến trúc và "...hỗ trợ tất cả các ngôn ngữ có tập ký tự được biểu diễn bằng bảng mã UTF-8..." (trích dẫn từ Với Joomla! 1.5 việc bản địa hóa đã trở nên dễ dàng hơn, toàn diện hơn (sử dụng bảng mã Unicode và cho phép bản địa hóa cả phần front-end, back-end). Bài viết này sẽ giúp các bạn nhanh chóng Việt hóa Joomla! (Việt hóa cả phần front-end và back-end) chỉ sau vài bước đơn giản Việt hóa phần tiền sảnh front-end (phía người sử dụng) Các gói ngôn ngữ phần tiền sảnh của Joomla! 1.5 được lưu trong thư mục "\language". Gói ngôn ngữ tiếng Anh sẽ được lưu trong thư mục "\language\en-GB". Trong thư mục này lại có các file sau: index.html: Để tránh các hacker liệt kê các file và thư mục. en-GB.xml: Mô tả các thông tin liên quan tới gói ngôn ngữ. en-GB.ignore.php: Danh sách các ký tự bỏ qua khi tìm kiếm. en-GB.ini: File ngôn ngữ chính của Joomla! en-GB.com_xxx.ini: File ngôn ngữ cho component có tên là com_xxx. en-GB.mod_xxx.ini: File ngôn ngữ cho module có tên là mod_xxx. en-GB.plg_xxx.ini: File ngôn ngữ cho các plugin có tên liên quan. Để tạo gói ngôn ngữ tiếng Việt. Chúng ta làm như sau: Bước 1. Tạo thư mục chứa gói ngôn ngữ tiếng Việt: "\language\vi-VN" Bước 2. Copy toàn bộ các file trong thư mục "\language\en-GB" tới thư mục "\language\vi-VN" Bước 3. Thay phần tiền tố của tên các file tiếng Anh (en-GB) bằng tiền tố của file tiếng Việt (vi-VN). Nghĩa là ta có cấu trúc thư mục chứa gói ngôn ngữ tiếng Việt như sau: \language\vi-VN\ ---------------\index.html ---------------\vi-VN.xml ---------------\vi-VN.ignore.php ---------------\vi-VN.ini ---------------\vi-VN.com_xxx.ini ---------------\vi-VN.mod_xxx.ini ---------------\vi-VN.plg_xxx.ini Bước 4. Thay file "vi-VN.xml", "vi-VN.ignore.php" bằng 2 file download từ liên kết sau: Bước 5. Mở các file *.ini bằng trình soạn thảo Notepad++ (khuyến cáo). Bước 6. Chọn định dạng (mở menu Format) khi lưu các file này: "UTF-8 without BOM" (lưu các ký tự tiếng Việt nhưng không chèn thêm ký tự đánh dấu UTF-8 ở đầu file). Bước 7. Tiến hành Việt hóa. Thay các từ/cụm từ tiếng Anh bằng từ/cụm từ tiếng Việt tương đương. Việt hóa phần hậu sảnh back-end (phía người quản trị) Gói ngôn ngữ tiếng Anh của phần hậu sảnh Joomla! được lưu trong thư mục "administrator\language\en-GB". Việc Việt hóa được tiến hành tương tự như phần tiền sảnh front-end của Joomla!. Chú ý: Tất cả các file nếu nội dung có chứa tiếng Việt thì đều phải lưu với lựa chọn "UTF-8 without BOM". Keyword: Việt, Việt hóa, tiếng Việt, ngôn ngữ, gói ngôn ngữ, tiếng Anh, bản địa hóa, UTF-8, front-end, back-end. Cài đặt gói ngôn ngữ cho Joomla Tải gói ngôn ngữ (language package): hoặc Mở menu "Installers" --> "Languages" Nhấn vào nút [Browser...] để chọn gói ngôn ngữ (được đóng gói trong một file nén *.zip) Nhấn vào nút [Upload File & Install] để tiến hành cài đặt Nhấn vào link 'Continue...' để kết thúc quá trình cài đặt. Joomla! sẽ chuyển hướng đến trang quản lý các ngôn ngữ. Từ danh sách các gói ngôn ngữ, chọn ngôn ngữ mới cài đặt (ngôn ngữ Việt Nam), sau đó nhấn vào nút [Publish] Vào menu Global Configuration -> Site -> Locale, chọn ngôn ngữ Việt Nam và nhấn nút [Default] để thiết lập tiếng Việt thành ngôn ngữ mặc định cho site. Sử dụng JoomFish để xây dựng Website đa ngôn ngữ Chúng ta sẽ tiến hành xây dựng Website sử dụng 3 ngôn ngữ: tiếng Anh, tiếng Việt, và tiếng Pháp. Bước 1: Cài đặt JoomFish Truy cập vào Back-end, mục Installers/Components, duyệt tới file Component JoomFish và nhấn Upload File & Install. Hình 20 : Cài đặt JoomFish Khi cài đặt thành công, chúng ta sẽ thấy màn hình chào mừng của JoomFish: Hình 21 : Màn hình JoomFish Bước 2: Cài đặt và tinh chỉnh các file ngôn ngữ Vào mục Installers/Languages để cài thêm 2 ngôn ngữ tiếng Việt và tiếng Pháp, tiếng Anh đã có sẵn khi cài đặt Joomla. Hình 22 : Cài đặt ngôn ngữ Sau khi cài xong, chúng ta vào mục Site/Language Manager/Site Languages để kiểm tra. Hình 23 : Kiểm tra ngôn ngữ Hình 24 : Danh mục ngôn ngữ Chúng ta thấy rằng, tên ngôn ngữ tiếng Pháp bị lỗi, chúng ta cần sữa lại vì tên ngôn ngữ sẽ hiển thị trên Website để khách viếng thăm lựa chọn. Vào Components/Joom!Fish/Languages Hình 25 : Quản lý ngôn ngữ Joom!Fish đã nhận được 3 gói ngôn ngữ Hình 26 : Quản lý ngôn ngữ Mở chương trình Word, chọn Insert Symbol Tìm tới chữ ç và chèn vào file word. Bôi đen chữ ç và copy vào clipboard (Ctrl+C), quay lại Joomla, dán chữ ç vào vị trí dấu ? trong tên file Fran?ais (dùng Ctrl+V), và sửa luôn chữ Vietnam thành Tiếng Việt (sử dụng Unicode). Hình 27 : Kích hoạt ngôn ngữ Cho Active các ngôn ngữ và điền thêm các thông số cho ngôn ngữ tiếng Việt và tiếng Pháp như hình dưới đây Hình 28 : Kích hoạt ngôn ngữ Chọn thứ tự cho các ngôn ngữ sẽ hiển thị trên Front-end: Tiếng Việt 0, tiếng Anh 1, tiếng Pháp 2. Hình 29 : Thứ tự ngôn ngữ Tiếp đó nhấn Save để lưu lại Hình 30 : Lưu ngôn ngữ Sau khi đã cài đặt và điều chỉnh các gói ngôn ngữ như trên, để site hoạt động tốt, ít xảy ra lỗi, chúng ta cần điều chỉnh các file ngôn ngữ sang UTF-8. Dùng Dreamweaver mở các file sau (trong thư mục language) và điều chỉnh các charset từ ISO-8859-1 sang UTF-8. english.php english.xml french.php french.xml Đối với file *.php Sửa dòng DEFINE(‘_ISO’,’charset=iso-8859-1’); thành DEFINE(‘_ISO’,’charset=utf-8’); Vẫn trong Dreamweaver, chọn menu Modify/Page Properties Trong phần Page Properties, mục Title/Encoding, mục Encoding chọn Unicode(UTF-8). Nhấn OK rồi lưu lại (Save). Đối với file *.xml Trong Dreamweaver, thay dòng encoding từ iso-8859-1 thành utf-8 rồi lưu lại giống phía trên. Hình 31 : Điều chỉnh chuẩn ngôn ngữ Bước 3: Test thử Site Quay lại Joomla, vào mục Modules/Site Modules Tìm tới mục JoomFish language selection Chọn vị trí xuất hiện của module lựa chọn ngôn ngữ. Ví dụ ở đây chúng ta chọn Position: top, chọn Published: yes và lưu lại (Save) Hình 32 : Chọn hiển thị module chọn ngôn ngữ Bây giờ hãy mở cửa sổ trình duyệt và test thử site ngoài Front-end, nếu có xuất hiện module lựa chọn và khi lựa chọn từng ngôn ngữ thì các dòng chữ trên Joomla thay đổi theo là bạn đã thành công. Bước 4: Dịch các bài viết và các thành phần trong site thành nhiều ngôn ngữ Quay vào Back-end, chọn Components/Joom!Fish/Translation Lưu ý các menu bên góc phải Hình 33 : Dịch bài viết và thành phần trong Joomla Mục Content elements là các thành phần trong Joomla mà bạn có thể dịch ra ngôn ngữ khác nhau. Mục Languages dùng để lựa chọn ngôn ngữ dịch. Lưu ý: Theo mặc định trong Joom!Fish, khi có một mục bạn không dịch (No translation) thì mục này sẽ được để với ngôn ngữ mặc định của site (Ngôn ngữ mặc định được thiết lập trong Site/Global configuration). Bạn có thể thay đổi mặc định này bằng cách vào Components/Joom!Fish/Configuration Hình 34 : Mặc định trong JoomFish Thiết kế Template Vị trí các module và component Trước khi tìm hiểu về template Joomla chúng ta cần phải phân biệt rõ sự khác nhau giữa 2 khái niệm module và component và vị trí xuất hiện của chúng trong template. Trong hình vẽ sau, bạn hãy chú ý các khối được đánh dấu màu da cam. Chúng mô tả các vị trí của module và component mà template này cung cấp. Hình 35 : Vị trí module và component mà joomla cung cấp Chú ý: Trên một trang bất kỳ các module có thể có nhiều (cả về số lượng và vị trí) hoặc không có module nào nhưng luôn có duy nhất một component (trừ 1 vài trường hợp đặc biệt) Làm thế nào để biết template đang sử dụng cho phép những vị trí nào? Thật đơn giản, bạn chỉ cần đăng nhập vào trang quản trị. Sau đó, mở menu Extension >>> Modules Manager bạn sẽ trông thấy các vị trí có thể dùng được trong danh sách có dòng chữ "Select Position" như hình dưới đây Hình 36 : Danh sách vị trí module và component Chúng ta hãy quay trở lại trang chủ Joomla và bạn sẽ nhận thấy rằng, các module, component đã được bố trí như sau: Hình 37 : Vị trí module và component Chúng ta cần xem xét những đoạn mã nào đã tạo ra các vị trí dành cho module và component. Bạn hãy quan sát hình sau: Hình 38 : Đoạn mã tạo vị trí module và component Chú ý: Tất cả các module bên trái đều sử dụng duy nhật một đoạn mã có dạng như sau: Tất cả các module bên phải đều sử dụng duy nhật một đoạn mã sau: Cấu trúc Template Hệ thống Joomla Template là một trong những thứ dễ học nhất của Content Management System. Cấu trúc của một Joomla Template như sau: /templates /basic_template /css template_css.css /images index.php template_thumbnail.png templateDetails.xml Đó là một tập hợp tối thiểu các file mà chúng ta cần để tạo một template. Hình 39 : Tập các file của template templateDetails.xml templateDetails.xml phải chứa tên của tất cả các file của template. Nó cũng bao gôm các thông tin như tác giả, bản quyền, một số thông tin chỉ được hiển thị trong phần the admin backend trong Template Manager. Ví dụ một file templateDetails.xml có nội dung như sau: mytemplate July 08 Tran Van Ve GNU/GPL tranvanve84@gmail.comThis e-mail address is being protected from spam bots, you need JavaScript enabled to view it www.tranvanve.com 1.0 Day la template cua toi index.php js/ie.js template_thumbnail.png images/header.png images/background.png template_thumbnail.png css/base.css css/norightcol.css css/template_css.css Ý nghĩa của các thẻ được sử dụng như sau: + mosinstall nội dung của tài liệu xml được sử dụng để chỉ dẫn cho công việc cài đặt. Tùy chọn type="template" thông báo cho trình cài đặt là chúng ta đang cài đặt template. + name định nghĩa tên cho template, tên được điền ở đây sẽ được sử dụng để tạo thư mục trong thư mục template . Bởi vậy tên ở đây không được chứa các kí tự mà hệ thống khó nắm bắt ví dụ như kí tự cách. + create date ngày template được tạo ra, nó là một dạng mẫu tự do có thể là: May 2005, 08-June-1978, 01/01/2004 …. + author tên của người thiết kế ra template này. + copyright bất kì thông tin bản quyền nào bên trong thành phần này. + authorEmail hòm thư điện tử của tác giả. + authorURL tên trang web của tác giả. + version phiên bản của template này. + files tất cả các mục file chứa tất cả các file chung như mã nguồn PHP hay hình thu nhỏ của template. Mỗi một danh sách file được đặt trong cặp thẻ . + images tất cả các hình ảnh được sử dụng trong template, và mỗi danh sách cũng được đặt trong cặp thẻ . + css liệt kê các stylesheet được sử dụng trong template. index.php index.php là sự kết hợp giữa (x)html và php để xác định các cách trình bày và hình thức của trang web. Bạn không cần phải là một chuyên gia PHP mới viết được template, tất cả những gì bạn cần là học nơi nào đặt các khóa móc (key “hooks”) vào cổ máy template Joomla. Trong khung HTML bạn đặt các “cửa sổ” nhìn vào bên trong cơ sở dữ liệu đằng sau website của bạn, có nhiều cửa sổ nhỏ điển hình được gọi là các module và thông thường một cái mở rộng hơn cho một component. Bạn nên viết các template bằng XHTML mặc dù có tranh luận liệu XHTML có là lối đi của tương lai hay không, nó vẫn còn là một định dạng XML chuẩn rất tốt, trong khi HTML là một chuẩn rời rạc. Các phiên bản tương lai của Joomla sẽ dựa ngày càng nhiều vào XML vì đó là lối đi kế tục kiểu mẫu trong thời điểm hiện tại. Chúng ta sẽ quan sát phần quyết định để đạt được một template hợp lệ, phần đầu của file index.php. " xml:lang="" " /> id) { initEditor(); } ?> <?php mosShowHead(); ?> /css/template_css.css" rel="stylesheet" type="text/css" media="screen" /> Đoạn mã này ngăn cản việc truy nhập trực tiếp vào file index.php. id) { initEditor(); } ?> đây là một biến kịch bản mà giá trị của nó sẽ khác không khi người sử dụng đăng nhập vào website. Khi người dùng đăng nhập vào hệ thống trình soạn thảo WYSIWYG sẽ được chỉ định được tải xuống trước, nếu bạn là người quản trị thì bạn luôn muốn trình soạn thảo sẽ được tải xuống trước nhưng đối với người dùng thông thường thì họ lại thường không thêm nội dung mới cho trang web. Script này sẽ giúp trình duyệt của bạn tải trang web một cách bình thường. mục header là nơi chứa các cấu hình toàn cục cho trang web, nó bao gồm các nhãn sau: A Complete Guide to Creating a Joomla Template /css/template_css.css" rel="stylesheet" type="text/css" media="screen" /> Đoạn mã này sẽ liên kết tới file CSS của template, đoạn mã php sẽ trả lại tên của template hiện thời. Khi tạo một template mới bạn chỉ cần sao chép đoạn mã này mà không cần phải quan tâm đến việc sửa đoạn mã này. Khi thiết kế template người thiết kế phải tạo cho trang web một khung để hiển thị thông tin, sau đó đặt các thành phần của Joomla vào nơi bạn muốn. Các thành phần của Joom la thường được sử dụng như sau: hiển thị tên của trang web. đường dẫn các mục khi người sử dụng duyệt trang web. hiển thị phần menu phía trên của trang web. hiển thị phần menu phía trái của trang web. hiển thị phần nội dung chính của trang web. hiển thị phần nội dung bên trái của trang web. hiển thị phần nội dung cuối của trang web. Mục đích của chúng ta là đặt các thẻ này vào nơi hợp lý trên khung html của file index.php. template_css.css Đây là file xác định cách thức hiển thị nội dung trên trang web như font chữ, cỡ chữ, màu sắc …Sau đây là một số thành phần CSS mặc định của Joomla, khi thết kế template công việc của bạn là thay đổi các thông tin của file này để có một template phù hợp với trang web. Hình 40 : Thành phần CSS mặc định của Joomla xác định cách thức hiển thị tên của trang web, sau đây là ví dụ: .site_name { padding-top: 5px; padding-left: 5px; } xác định cách thức hiển thị phần đường dẫn của trang web, sau đây là ví dụ: .pathway { color: #255B86; } a.pathway, a.pathway:visited { color: #255B86; } a.pathway:hover { color: #98A258; } xác định cách thức hiển thị phần header của mỗi modul khi hiển thị, sau đây là ví dụ: table.moduletable { width: 90%; margin: 0px 0px 0px 7px; border-left: solid 0px #666666; border-right: solid 0px #666666; border-top: solid 0px #666666; border-bottom: solid 0px #666666; } table.moduletable th { background: none; vertical-align: middle; font-size: 11px; font-weight: bold; color: #666666; text-align: center; text-indent: 0px; width: 100%; height: 24px; border-bottom: solid 1px #666666; } table.moduletable td { font-size: 11px; background: none; padding: 5px; font-weight: normal; } xác định cách thức hiển thị phần menu bên trái, sau đây là ví dụ: a.mainlevel:link, a.mainlevel:visited { color: #3D4E6D; background: none; font-weight: bold; text-decoration: none; text-align: left; } a.mainlevel:hover { color: #98A258; width: 100%; font-weight: bold; text-decoration: none; text-align: left; } xác định cách thức hiển thị các ô text nhập dữ liệu, sau đây là ví dụ: .inputbox { font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 12px; color: #343A58; background: #FFFFFF; border: 1px solid; } xác định cách thức hiển thị các nút bấm trên trang web, sau đây là ví dụ: .button { color: #343A58; font-family: Arial, Verdana, Helvetica, sans-serif; margin-top: 4px; font-weight: bold; text-align: center; font-size: 12px; background: #f5f5f5; border: 1px solid #000066; height: 20px; cursor: pointer; } xác định cách thức hiển thị các đường liên kết trên trang web, sau đây là ví dụ: a:link, a:visited { font-size: 11px; color: #98A258; text-decoration: none; font-family: Arial, Verdana, Helvetica, sans-serif; } a:hover { color: #23598d; text-decoration: none; } xác định cách thức hiển thị header của các thành phần mở rộng trên trang web, sau đây là ví dụ: .componentheading { font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 14px; font-weight: bold; color: #53586D; text-align: left; } xác định cách thức hiển thị header của phần nội dung bài viết trên trang web, sau đây là ví dụ: .contentheading { font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 13px; font-weight: bold; color: #53586D; text-align: left; line-height: 16px; height: 15px; } xác định cách thức hiển thị tên tác giả bài viết trên trang web, sau đây là ví dụ: .small { font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 10px; color: #343A58; text-decoration: none; font-weight: normal; } xác định cách thức hiển thị ngày bài viết được đưa lên web trên trang web, sau đây là ví dụ: .createdate { font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 9px; color: #343A58; text-decoration: none; font-weight: normal; } xác định cách thức hiển thị phần nội dung chính của bài viết trên trang web, sau đây là ví dụ: td,tr,p,div { font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 11px; color: #333333; } xác định cách thức hiển thị ngày chỉnh sửa cuối cùng của bài viết trên trang web, sau đây là ví dụ: .modifydate { font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 10px; color: #343A58; text-decoration: none; font-weight: normal; } xác định cách thức hiển thị dòng chữ “read more” trên trang web, sau đây là ví dụ: a.readon:link, a.readon:visited { color: #23598d; text-decoration: none; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 11px; } a.readon:hover { color: #23598d; text-decoration: underline; font-weight: normal; font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 11px; } xác định cách thức hiển thị nút “Back” trên trang web, sau đây là ví dụ: .backbutton { color: #343A58; font-family: Arial, Verdana, Helvetica, sans-serif; margin-top: 4px; font-weight: bold; text-align: center; font-size: 12px; background: #f5f5f5; border: 1px solid #000066; height: 20px; cursor: pointer; } xác định cách thức hiển thị phần thăm dò (poll) trên trang web, sau đây là ví dụ: .poll { font-family: Arial, Verdana, Helvetica, sans-serif; font-size: 11px; font-weight: bold; color: #343A58; line-height: 14px; } .pollstableborder { border: 1px solid #465675; } xác định cách thức hiển thị khác nhau của các dòng trong phần thăm dò trên trang web, sau đây là ví dụ: .sectiontableentry2 { background-color: #f5f5f5; } xác định cách thức hiển thị khác nhau của các dòng trong phần thăm dò trên trang web, sau đây là ví dụ: .sectiontableentry1 { background-color : #D9DCEB; } Cài đặt Template Mở menu Installers -> Templates – Site Hình 41 : Cài đặt Front end template Nhấn lên nút [Browse...], chọn template (được đóng gói trong một file zip hoặg gz) sau đó nhấn lên nút [Upload file & Install] Hình 42 : Cài đặt Front end template 1 Chờ Joomla thông báo việc cài đặt thành công rồi nhấn vào Continue... Thiết lập template mới cài đặt thành template mặc định Mở menu Site -> Templates Manager -> Site Templates, chọn template mới cài đặt rồi nhấn vào nút [Default] Hình 43 : Danh mục các template Component Cấu trúc chung của một component Một component thường có các thành phần cơ bản sau:: Phần hiển thị ở trang chủ, Phần quản lý trong Joomla! Administrator và các bảng dữ liệu trong cơ sở dữ liệu.Các bước cơ bản để làm một component như sau: a. Backend thông thường sẽ gồm những file cơ bản sau: 1 file admin.yourcom.php, 1 file admin.yourcom.html.php, 1 file toolbar.yourcom.php, 1 file toolbar.yourcom.html.php. b. Frontend sẽ gồm 2 file cơ bản (thông thường): 1 file yourcom.php, 1 file yourcom.html.php Chú ý: không nhất thiết một com của bạn phải hoặc chỉ bao gồm các file trên, các file bắt buộc là admin.yourcom.php và yourcom.php (folder chứa com cả trong frontend và backend sẽ là com_yourcom). Ngoài ra bạn có thể có các file khác (vd yourcom.class.php chẳng hạn), các folder, các file .js, file ảnh... tùy thuộc vào mức độ bạn cần ở com này và mức độ bạn hiểu. c. Một file .XML để phục vụ cho việc cài đặt khi bạn đóng gói. File XML này sẽ mang tất cả các thông số về Tên com; tên tác giả, địa chỉ email, license ... (optional). Mục đích chính của file này là khai báo các file trong frontend và backend (đường dãn đầy đủ của các file này) để upload khi cài đặt, khai báo các query tạo và insert database (nếu bạn phải thêm database) và các query uninstall (nếu có).. Một điểm quan trọng là phải hiểu các object, class, function... cơ bản trong joomla thì mới sử dụng được chúng để viết (ví dụ như object về database...). Khi đóng gói thì nhớ đóng gói ở dạng .zip, .tar nếu ở dạng .zar thì joomla ko hiểu đc. Nếu chưa đóng gói được thì làm manual bằng cách insert trong database và copy các file vào các folder tương úng (không khuyến cáo sd cách này). Để đảm bảo khỏi các lộn xộn khi viết mã php và html , thông thường người ta thường phân tách phần hiển thị thành 2 phần : một phần chứa các mã logic php (thường .php) một phần chứa các đoạn mã html được định dạng để hiển thị (thường là .html.php). Để thuận tiện cho việc học hỏi trong quá trình trình bày lý thuyết phần này ta sẽ xét ví dụ cụ thể là module quản lý thời khóa biểu . yourcom.php và yourcom.html.php yourcom.php chứa phần mã logic bằng php như các mã kết nối ,xử lý cơ sở dữ liệu, xử lý chuỗi, mảng …. Thông thường một file này thường có 4 phần: Phần 1: phần này sẽ đảm bảo rằng file này không thể truy nhập trực tiêp được và các lớp html được sử dụng cho việc hiển thị sẽ được load. defined( '_VALID_MOS' ) or die( 'Direct access of this file is prohibited.' ); require_once( $mainframe->getPath( 'front_html' ) ); Phần 2: Xác định thông tin hiển thị trên Title của trình duyệt khi component này được sử dụng. $mainframe->setPageTitle( "Thoi khoa bieu" ); Phần 3: bao gồm các lựa chọn khác nhau, bạn có thể mở các component với các tham số khác nhau và trình diễn chúng ở đây. switch( $task ) { case 'free': // more display possibilities break; default: tkb_shows(); break; } Phần 4: là nơi thực thi các mã logic, ở đây các truy vấn cơ sở dữ liệu được thực hiện, các mảng được tạo, thủ tục hiển thị được gọi và các lớp được tham chiếu, các lớp này được chứa trong file yourcom.html.php function tkb_shows( ) { global $database; /* SQL query of all published entries */ $query="SELECT * FROM #__tkb WHERE published='1'" ; $database->setQuery( $query ); $rows = $database->loadObjectList(); HTML_tkb::showtable($rows ); } yourcom.html.php có chứa các lớp để hiển thị, ở đây các mảng là kết quả của các truy vấn cơ sở dữ liệu được xử lý và hiển thị các bản ghi. Một mảng sẽ được nhận thông qua thủ tục showtable($rows );. Danh sách các bản ghi sẽ được trình diễn thông qua các mã html và để truy xuất chúng một vòng lặp foreach loop được sử dụng đến khi không còn thành phần nào trong mảng. ….. Foreach ($rows as $row) { ….. Theo nguyên tắc các thủ tục được đề nghị được sử dụng trong lớp như việc hiển thị bảng. ví dụ việc sử dụng hàm trong lớp để hiển thị bảng. HTML_tkb::showtable($rows ); Đây là một lớp tĩnh (HTML_tkb) phương thức showtable($rows)có thể được gọi trực tiếp, tên lớp và tên thủ tục được ngăn cách bởi hai đấu hai chấm. admin.yourcom.php và file admin.yourcom.html.php Giống như các file trong phần front-end , file admin.yourcom.php cũng chứa phần logic xử lý còn file admin.yourcom.html.php sẽ chứa các thủ tục dùng để hiển thị dữ liệu, nhập dữ liệu hay sửa dữ liệu đã có. toolbar.yourcom.php và toolbar.yourcom.html.php Đây là nơi thanh công cụ được tập hợp như danh sách dưới, ở đây các hàm cũng được gọi để xử lý các sự kiện. Các biểu tượng của thanh công cụ được cung cấp sẵn của Joomla. Hình 44 : Thanh công cụ của Joomla toolbar.yourcom.php defined( '_VALID_MOS' ) or die( 'Restricted access' ); require_once( $mainframe->getPath( 'toolbar_html' ) ); switch ( $task ) { case "new": case "edit": menuAutolinks::EDIT_MENU(); break; default: menuAutolinks::DEFAULT_MENU(); break; } toolbar.yourcom.html.php defined( '_VALID_MOS' ) or die( 'Restricted access' ); class menuAutolinks { function EDIT_MENU() { mosMenuBar::startTable(); mosMenuBar::save(); mosMenuBar::cancel(); mosMenuBar::spacer(); mosMenuBar::endTable(); } function DEFAULT_MENU() { mosMenuBar::startTable(); mosMenuBar::addNew(); mosMenuBar::editList(); mosMenuBar::publish(); mosMenuBar::unpublish(); mosMenuBar::deleteList(); mosMenuBar::spacer(); mosMenuBar::endTable(); } file.xml Đây là file dùng để cài đặt cho component , nội dung của file là các mã xml xác định các file sẽ được cài đặt, các mã tạo cơ sở dữ liệu ban đầu, các mã cài đặt, gỡ bỏ component. Sau đây là một ví dụ: tkb May 2007 Anh Dai GPL info@nekkarcity.de antirealist.nekkarcity.de 1.0.0 component quan ly thoi khoa bieu tkb.php tkb.html.php DROP TABLE IF EXISTS `#__tkb` CREATE TABLE IF NOT EXISTS `#__tkb` ( `id` int(4) NOT NULL auto_increment, `name` varchar(100) NOT NULL default '', `malop` varchar(10) NOT NULL default '', `ngayhoc` varchar(100) NOT NULL default '', `giohoc` varchar(100) NOT NULL default '', `giaovien` varchar(100) NOT NULL default '', `published` int(1) NOT NULL default 0, PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`) ) TYPE=MyISAM; DROP TABLE IF EXISTS `#__tkb` Thoi khoa bieu admin.tkb.html.php admin.tkb.php tkb.class.php tkb.xml toolbar.tkb.php toolbar.tkb.html.php Thiết kế Modules danh mục sản phẩm 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. 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) List product Tran Van Ve 5/2008 (C) 2008 Tran Van Ve. All rights reserved. GNU/GPL tranvanve84@gmail.com www.tranvanve.vn 1.0.0 Hiển thị sản phẩm má»›i nhất ,sản phẩm khuyến mại, mua nhiá»�u nhất mod_list_product.php dtabs.js tabs-mac3.js Dòng quy định chuẩn định dạng cho file XML Dòng là thẻ khai báo cài đặt module Dòng List product là tên module Dòng Tran Van Ve là tên tác giả Dòng 5/2008 là ngày thực hiện Dòng (C) 2008 Tran Van Ve. All rights reserved. là bản quyền Dòng GNU/GPL là loại giấy phép sử dụng Dòng tranvanve84@gmail.com là địa chỉ email của tác giải Dòng www.tranvanve.vn là trang web của tác giả Dòng 1.0.0 là phiên bản của module Dòng Hiển thị sản phẩm mới, sản phẩm khuyến mãi và sản phẩm mua nhiều nhất là giới thiệu về module Các dòng sau khai báo các file có trong module để cài đặt mod_list_product.php dtabs.js tabs-mac3.js 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ố Dòng kết thúc việc cài đặt module 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'); $number_product = 9; function showproduct($n,$number_product){……………} function getproduct(str,numb) { var c='soluong'+numb; document.adminForm.product_cart.value=str+'|'+document.getElementById(c).value+'^'; } /css/tabpane.css" /> /includes/js/tabs/tabpane_mini.js"> var tabPane1 = new WebFXTabPane( document.getElementById( "modules-cpanel" ), 1 ) Sản phẩm má»›i tabPane1.addTabPage( document.getElementById( "module32" ) ); Sản phẩm khuyến mại tabPane1.addTabPage( document.getElementById( "module19" ) ); San Pham chua biet--> tabPane1.addTabPage( document.getElementById( "module20" ) ); "> Đ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){……………} Đoạn còn lại form HTML trình bày sản phẩm bằng các gọi hàm showproduct(). CHƯƠNG 3 TRIỂN KHAI ỨNG DỤNG Cài đặt website trên web host Sau khi đã cài đặt và cấu hình cho Joomla! tại Localhost, công việc tiếp theo là đưa Website lên Web Host (Host) để bắt đầu hoạt động trong hệ thống mạng toàn cầu. Sau đây là cách tạo Database và đưa Website Joomla! từ Localhost lên Web Host: Tạo Database trên Host: Đăng nhập vào phần quản lý Host (Cpanel) và chọn MySQL Database. Hình 45 : Phần quản lý host Trong phần Create New Database nhập tên cho Database muốn tạo sau đó nhấn Create Database. Hình 46 : Tạo cơ sở dữ liệu mới Trong phần MySQL Users nhập tên người dùng vào Username và mật khẩu vào Password. Đây là tên và mật khẩu dùng để truy cập Database, có thể đặt tùy ý. Nhập mật khẩu giống như trên vào Password (Again) thêm một lần nữa và nhấn Create User. Có thể tạo thêm nhiều tên người dùng khác nếu muốn. Hình 47 : Tạo user mới Trong phần Add User To Database chọn tên người dùng vừa tạo bên trên trong mục User  và chọn tên của Database nào muốn cho phép người dùng này truy cập trong mục Database, sau đó nhấn Submit. Có thể làm thêm nếu muốn cho phép nhiều người dùng truy cập Database. Hình 48 : Add user vào cơ sở dữ liệu Nếu làm đúng các bước như trên thì trong phần Current Database sẽ có tên của Database và tên của người dùng được phép truy cập Database tương ứng. Lưu ý phải nhớ tên của Database, tên người dùng (Username) và mật khẩu (Password) để khai báo khi cài đặt Joomla! hoặc khi muốn truy cập Database. Hình 49 : Database ứng với user Lưu ý: Một số Free Host không cho phép tạo tên người dùng (Username) mà lấy luôn tên người dùng và mật khẩu giống với Username và Password dùng để truy cập vào phần quản lý Host. Cài đặt, đưa Web Site Joomla! lên Host: Bây giờ đã có thể cài đặt mới hoặc đưa Web Site đã được cài đặt từ Loacalhost lên Host. Có 2 cách để đưa Web Site Joomla! lên Host: Copy bộ cài đặt Joomla! lên thư mục gốc (Web Root) của Host, thư mục này thường có tên là htdocs, publish_html, www,... Dùng chương trình quản lý File  (File manager) của Host để giải nén. Tiến hành cài đặt bình thường như trên Localhost. Sử dụng tên Database, tên người dùng và mật khẩu được tạo ở phần trên. Copy các File và Folder của Web Site đã được cài đặt từ Localhost lên Host để thay thế (OverWrite) các File và Folder vừa mới cài đặt Export dữ liệu của Database từ Localhost ra một File sau đó Import File này vào Database trên Host. Import dữ liệu vào Database bằng cách sử dụng phpMyAdmin trong phần quản lý Host (Cpanel). Hình 50 : Phần quản lý host Mở file configuration.php và chỉnh sửa các thông số cho phù hợp với webhost và các thiết lập của bạn. Nếu mọi cấu hình đã chính xác, bạn đã có thể chạy và sử dụng website. Kết quả demo Trang chủ Hình 51 : Trang chủ website Đăng nhập Hình 52 : Thành viên đăng nhập Lựa chọn mục sản phẩm Hình 53 : Danh mục lựa chọn sản phẩm Chọn sản phẩm vào giỏ hàng Hình 54 : Giỏ hàng Gửi đơn hàng Hình 55 : Nội quy mua hàng Hình 56 : Gửi đơn hàng CHƯƠNG 4 KẾT LUẬN Kết quả thu được Bằng sự nỗi lực cố gắng của bản thân và sự hướng dẫn giúp đỡ tận tình của thầy giáo Ks.Trịnh Công Duy, sau thời gian thực hiện đề tài tôi đã thu nhận được những kết quả đáng kể như sau: Hiểu biết cơ bản về các quy trình thương mại điện tử. Xây dựng thành công ứng dụng “Siêu thị sách trực tuyến” dựa trên nền tảng Joomla. Nắm bắt được các kỹ thuật, có kinh nghiệm nhiều hơn trong việc xây dựng ứng dụng trên nền tảng một CMS. Nhận xét Ưu điểm Chương trình với giao diện thân thiện, hình ảnh hài hòa. Xây dựng được những tính năng cơ bản nhất của một siêu thị trực tuyến. Giao diện đa ngôn ngữ, dễ sử dụng. Ứng dụng có khả năng phân loại hàng hóa theo từng chủng loại. Khả năng tìm kiếm thông tin dễ dàng Có các gian hàng trực tuyến với các chức năng như giỏ hàng, đơn hàng… Đăng tải và quản lý các bài viết, tin tức Nhược điểm Hình thức thanh toán chưa đa dạng, không cho phép khách hàng lựa chọn trực tiếp Chưa xây dựng được các chương trình thẻ mua hàng. Chưa kết hợp được với các ngân hàng để thực hiện dịch vụ thanh toán trực tuyến. Chưa có hệ thống hổ trợ khách hàng tốt Phạm vi ứng dụng Ứng dụng đã tạo được một gian hàng trực tuyến cung cấp thông tin về sách báo, lịch, văn phòng phẩm và các sản phẩm khác cho phép khách hàng dễ dàng tra cứu, tìm kiếm, lựa chọn, tính toán giá thành và đặt mua hàng trực tiếp thông qua một hệ thống các trang web thương mại điện tử. Tạo lập một hệ thống quản trị cho phép người quản trị có thể dễ dàng đưa thông tin về sản phẩm, dịch vụ và các thông tin bổ trợ khác lên mạng và quản lý kho hàng trực tuyến, khách hàng cũng như các chức năng bổ trợ khác như đưa tin tức lên mạng, giao dịch với khách hàng, thông báo hàng mới, quảng cáo sản phẩm… Với những tính năng như trên, ứng dụng có thể áp dụng cho những công ty kinh doanh các sản phẩm sách báo, văn phòng phẩm có thể mở rộng hình kinh doanh của mình lên không gian mạng Internet. Hướng phát triển Khắc phục những nhược điểm của hệ thống hiện tại, Website trong tương lai sẽ là trang bán sách trên mạng theo chuẩn thương mại điện tử, cho phép dễ dàng quản trị và thiết lập các kho sách, kết nối với các hệ thống thanh toán trực tuyến giúp cho người dùng dễ dàng tra cứu và mua sách trực tiếp trên mạng Internet. Hệ thống dự tính có các chức năng chính sau: Khả năng phân loại hàng hoá theo các chủng loại, tiêu chí đặt ra Khả năng sắp xếp thông tin theo nhiều tiêu chí khác nhau Khả năng tìm kiếm thông tin dễ dàng Quản lý thông tin liên lạc giữa doanh nghiệp và khách hàng. Tổng hợp, phân tích và thống kê các truy nhập một cách chi tiết. Thiết lập các gian hàng trực tuyến với các chức năng như giỏ hàng, đơn đặt hàng, phiếu nhận xét... Thiết lập phần giao hàng với chức năng cung cấp chi phí vận chuyển hàng theo từng khu vực. Có khả năng kết nối với các nhà cung cấp dịch vụ giao nhận, chuyển phát nhanh. Thiết lập phần thanh toán cho phép khách hàng lựa chọn việc thanh toán trực tiếp khi giao hàng, thanh toán chuyển khoản, chuyển tiền bưu điện hoặc các hình thức thanh toán khác. Có khả năng kết nối với các hệ thống thanh toán trực tuyến. Đăng tải, quản lý các quảng cáo trên site với hệ thống thống kê đi kèm. Đăng tải và quản lý các bài viết, tin tức Thiết lập các hệ thống hỗ trợ khách hàng. Hỗ trợ đa ngôn ngữ cả ở phần nội dung thông tin và phần giao diện sử dụng. Trước mắt khách hàng có thể lựa chọn một trong 2 ngôn ngữ Anh và Việt. Hỗ trợ nhiều loại tiền tệ khác nhau thông qua hệ thống tỉ giá chung. Khách hàng có thể lựa chọn loại tiền thanh toán. Website được xây dựng làm hai phần riêng biệt: Phần hiển thị và tra cứu thông tin, mua bán trực tuyến và phần dành riêng cho người quản trị trang web.Ngoài ra, Website còn cung cấp các tính năng ưu việt nhất của các siêu thị điện tử thông dụng hiện nay, tạo cho khách hàng mua hàng trên mạng cảm giác như đang được mua sắm tại các cửa hàng thực thụ. Tìm kiếm, duyệt theo nhóm, ngành hàng, lựa chọn so sánh và mua hàng trực tuyến (Shopping Cart). Sau khi lựa chọn xong các mặt hàng cần mua, người mua được lựa chọn cách thức giao hàng- đến tận nơi để lấy hàng hay giao hàng tại nhà, tại địa điểm do khách hàng chỉ định, phương thức thanh toán: thanh toán chuyển khoản (qua đường bưu điện, ngân hàng hay các dịch vụ chuyển tiền), thanh toán ngay cho người giao hàng, thanh toán bằng thẻ tín dụng,... Khi khách hàng đặt hàng, thư phúc đáp được gửi tự động tới hòm thư của khách hàng để khẳng định về đơn đặt hàng của khách hàng đã được nhận và đang chờ xử lý. Thời gian giao hàng được ấn định cụ thể có thông báo trước cho khách hàng. Trên trang web bán hàng, cho phép tạo các chương trình khuyến mãi, giảm giá được thực hiện hàng ngày, theo từng nhóm, ngành hàng bám sát vào các chương trình giảm giá khuyến mãi của hãng sản xuất hoặc của công ty. Cho phép xây dựng các chương trình thẻ mua hàng, cho phép các khách hàng có thểđặt mua các loại thẻ mua hàng có mệnh giá nhất định sauđó sử dụngđể mua các mặt hàng có trêntrangweb, hoặc có thể gửitặngthẻ mua hàng này cho người thân, giađình và bạn bèđể sử dụngmua sắm các mặt hàngtuỳ thích trêntrangweb. Rất thích hợp cho người Việt nam ở nước ngoài muốn mua quà tặng cho người thân, bạn bèở Việt nam nhưng muốn để người thân của họ tự lựa chọn mặt hàng tuỳ thích. Hệ thống Newsletter giúp cho việc cập nhật thường xuyên và gửi thông tin mới nhất tới các khách hàng về các sản phẩm mà khách hàng đó quan tâm, về sản phẩm, thị trường - các sản phẩm mới, sản phẩm khuyến mãi, giảm giá cho một hoặc một số mặt hàng; đồng thời khách hàng cũng có thể gửi thư giới thiệu tới bạn bè về những sản phẩm được họ quan tâm. Hệ thống tìm kiếm tiên tiến trên trang web cho phép: tìm kiếm theo các ngành hàng, theo nhà sản xuất, theo giá cả và theo thời gianxuất hiệncủa sản phẩm. Đa ngữ - hỗ trợ Tiếng Anh và Tiếng Việt, đồng tiền sử dụng là VND và USD hoặc nhiều loại tiền tệ khác nhau, có thể sử dụng và chuyển đổi song song khi truy nhập tới từng trang sản phẩm, hệ thống tính thuế linh hoạt theo vùng lãnh thổ, hệ thống tính cướcvận chuyển chuyên nghiệp và hệ thống thanh toán online đa dạng hỗ trợ nhiều cơ chế như thẻ tín dụng, cổng thanh toán điện tử PayPal, 2CO, Authorize.net... Mặt hàng đa dạng, cho phép hàng nghìn mặt hàng bao gồm nhiều ngành hàng khác nhau. Cho phép khách hàng có thể tìm mua nhiều loại mặt hàng cùng một lúc, thông tin về sản phẩm đầy đủ và có cả hình ảnh cho phép người dùng cảm nhận tốt nhất về sản phẩm, khách hàng có đầy đủ thông tin trước khi quyết định mua S/P. Hệ thống thống kê cho phép định hướng mua sắm tiêu dùng cho khách hàng: thống kê sản phẩm mới ra mắt, sản phẩm bán chạy, sản phẩm đang có chương trình giảm giá, khuyến mãi, sản phẩm thườngđược mua kèm với các sản phẩm khác, sản phẩm được bình chọn bởi chính khách hàng tham gia bình chọn, sản phẩm được chúng tôi giới thiệu, quảng cáo, sản phẩm đã được mua trong các đơn đặt hàng lần trước... PHỤ LỤC Thông tin đăng tải : Ứng dụng “Siêu thị sách trực tuyến” có những tính năng chính sau: Mục/Trang Tính năng Ghi chú Giao diện website Hiện tại hệ thống chỉ có duy nhất một Template, nếu có nhu cầu, tôi sẽ thiết kế những template phù hợp với thương hiệu và yêu cầu của quý khách. Trang chủ Là trang đầu tiên nhìn thấy khi truy cập vào website. Hiện thị tin tức nóng nhất hiện có trên hệ thống. Danh mục các sản phẩm mới nhất Dạnh mục các sản phẩm khuyến mãi mới nhất Trang giới thiệu Cung cấp thông tin về doanh nghiệp, lịch sử hình thành, phương châm hoạt động, thành tích đạt được. Nội dung bao gồm cả hình ảnh, âm thanh, video clip. Các trang sản phẩm Liệt kê các sản phẩm mà doanh nghiệp bày bán, sắp xếp theo catalog, có giới thiệu chi tiết sản phẩm, hình chụp và hình phóng lớn sản phẩm. Trang nội quy Đăng các hướng dẫn dành cho khách hàng khi liên hệ mua hàng hóa như địa chỉ thanh toán Trang hỏi/đáp Đăng các thắc mắc và trả lời cho các câu hỏi mà khách hàng của doanh nghiệp thường quan tâm. Hỗ trợ tối đa 10 câu hỏi-trả lời Trang tin tức Đăng tải các tin tức cập nhật về hoạt động doanh nghiệp, các chương trình khuyến mãi, sự kiện mà doanh nghiệp tham gia. Tối đa 3 tin tức Trang liên hệ Form cho phép khách hàng nhập và gửi yêu cầu trực tiếp vào hộp mail của Doanh nghiệp. Các tính năng khác: Có chức năng tìm kiếm toàn bộ nội dung. Có chức năng quản trị: cho phép thay đổi nội dung đăng trên website. Có chức năng quản lý và phân quyền người dùng. Đăng ký với máy tìm kiếm nổi tiếng Google. Thông tin kỹ thuật : Loại website Động - được lập trình để có thể thay đổi bổ sung sau này. Có hiệu ứng javascript, flash. Máy chủ web Windows OS hoặc Linux OS Hệ quản trị cơ sở dữ liệu MySQL 5.0.45 Ngôn ngữ lập trình PHP 5.2.4 Nền tảng Joomla 1.0.x Ngôn ngữ thể hiện nội dung Tiếng Việt mã hóa theo UTF-8 TÀI LIỆU THAM KHẢO Trang web: Trang web: Trang web: Trang web: Trang web: Trang web: Ebook: Andrew Eddie. Joomla Developer Manual2005. 2000-2005, 168tr. Phạm Hữu Khang. Xây dựng ứng dụng web bằng PHP & MySQL. Nhà Xuất Bản Phương Đông 2006.

Các file đính kèm theo tài liệu này:

  • docTìm hiểu CMS JOOMLA úng dụng xây dựng siêu thị sách trực tuyến.doc