Tham khảo sách ''thiết kế web với joomla và một số thủ thuật trong joomla'', công nghệ thông tin, đồ họa - thiết kế - flash phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Part Thiết Kế Web Với JoomlaJoomla! hệ quản trị nội dung mã nguồn mở (tiếng Anh: Open Source Content Management Systems) Joomla! viết ngôn ngữ PHP kết nối tới sở liệu MySQL , cho phép người sử dụng dễ dàng xuất nội dung họ lên Internet Intranet Joomla có đặc tính là: đệm trang (page caching) để tăng tốc độ hiển thị, lập mục, đọc tin RSS (RSS feeds), trang dùng để in, tin nhanh, blog, diễn đàn, bình chọn, lịch biểu, tìm kiếm Site hỗ trợ đa ngôn ngữ Joomla phát âm theo tiếng Swahili 'jumla' nghĩa "đồng tâm hiệp lực" Joomla! sử dụng khắp nơi giới, từ website cá nhân hệ thống website doanh nghiệp có tính phức tạp cao, cung cấp nhiều dịch vụ ứng dụng Joomla dễ dàng cài đặt, dễ dàng quản lý có độ tin cậy cao Joomla có mã nguồn mở việc sử dụng Joomla hồn tồn miễn phí cho tất người giới Tham khảo thêm: WikiPedia-Joomla, Wikipedia-Hệ quản trị nội dung Các khái niệm thuật ngữ Module gì? Module thành phần mở rộng Joomla! Đó đoạn mã nhỏ thường dùng để truy vấn thông tin từ sở liệu Collection by traibingo hiển thị kết tìm Nó nạp vào vị trí template (vị trí left, right, top, bottom vị trí người dùng định nghĩa); tất trang Website hay số trang ấn định Khả tương tác người sử dụng hệ thống thông qua module hạn chế (chúng ta thường nhận thông tin trả về) Module có tên bắt đầu mod_ Chúng ta có module thông dụng: Lastest News (mod_latestnews): Module hiển thị tin Popular News (mod_mostreads): Module hiển thị quan tâm nhiều Related Items (mod_related_items): Module hiển thị viết liên quan Random Image (mod_random_image): Module hiển thị ảnh ngẫu nhiên Search Module (mod_search): Module cơng cụ tìm kiếm Login Module (mod_login): Module hiển thị form đăng nhập hệ thống Stats Module (mod_stats): Module hiển thị thông tin thống kê hệ thống Menu Module (mod_mainmenu): Module hiển thị menu website Banners Module (mod_banners): Moudule hiển thị banner quảng cáo Khái niệm Front-end Back-end Front-end (tiền sảnh) Front-end (tiền sảnh), biết với tên gọi Public Front-end: phần giao diện phía ngồi, nơi tiếp xúc với người sử dụng Bất trơng thấy gõ đường dẫn URL vào trình duyệt Front-end chứa trang đặc biệt FrontPage (homepage) - trang chủ Back-end (hậu sảnh) Back-end, biết với tên gọi Public Back-end, Administrator, Control Pane: phần dành cho người quản trị Những người bình thường Collection by traibingo đường dẫn để truy cập, có biết phải qua bước kiểm tra tài khoản Phần back-end truy cập http://your_domain/administrator thông qua đường dẫn: Các khái niệm Section, Category Content gì? Trước vào xây dựng Website Joomla cần nắm rõ khái niệm quan trọng: Section, Category Content Vậy Section gì? Category gì? Content gì? Chúng ta xem "Cấu trúc nội dung Website Joomla" thể thông qua hình vẽ đây: Section |Category |Category |Category Section |Category |Category |Content |Content 2b2 1a 1c 1b 2a 2b 2b1 Section gì? Collection by traibingo Section: Các mục, lĩnh vực, dòng sản phẩm, dịch vụ mà Website muốn đề cập tới VD1: Một Website bán sách trực tuyến bao gồm Section: "Sách Văn học", "Sách Tin học", "Sách Toán học" VD2: Một Website tin tức bao gồm Section: "Thể thao", "Văn hóa", "Pháp luật" Category gì? Category: Các chuyên mục, loại sản phẩm, loại dịch vụ đề cập cách cụ thể hơn, chi tiết VD1: Trong Section "Văn học" có Category: "Tiểu thuyết", "Truyện ngắn", "Hồi ký" VD2: Trong Section "Thể thao" có Category: "Bóng đá", "Quần vợt", "Các môn thể thao khác" Content gì? Content: Tồn nội dung viết thường gồm phần: Phần giới thiệu (Intro Text): Phần nêu ngắn gọn, tóm tắt ý mở đầu cho toàn viết Phần chi tiết (Description Text): Phần lại viết Như để tạo viết cần qua tối đa bước tối thiểu bước co Section Category: Bước 1: Tạo Section: Vào Content > Section Manager Bước 2: Tạo Category: Vào Content > Category Manager Bước 3: Tạo Content: Vào Content > Article Manager > New Collection by traibingo Lựa chọn phiên Joomla! Một thắc mắc thường gặp người làm quen với Joomla là: Đâu phiên Joomla Joomla 1.5 ??? hay Joomla 1.0.12 ??? Cái cung cấp nhiều tính hơn, ổn định hơn, hỗ trợ nhiều hơn, đẹp hơn, đáng dùng Xin giải thích Hiện Joomla có dịng phiên chính: Joomla 1.0.x Joomla 1.5.x Dòng phiên Joomla 1.0.x Là phiên phát hành ổn định Được sử dụng rộng rãi, có nhiều thành phần mở rộng (component, module, mambot) Có thể sử dụng cho website bạn Joomla 1.0.0: Phiên phát hành (15-09-2005) Joomla 1.0.12: Phiên phát hành (25-12-2006) Dòng phiên Joomla 1.5 Là phiên phát triển giai đoạn Beta (chưa ổn định) Phiên Joomla! 1.5 phiên cải tiến từ Joomla 1.0.x (phần mã viết lại hoàn toàn, nhiên giữ cách hành xử cũ) coi Mambo 4.6 Ban đầu cịn gọi Joomla 1.1, sau nhận thấy cải tiến nhiều mặt kỹ thuật, tính nên nhóm phát triển định lấy tên Joomla 1.5 Có nhiều tính hay Chỉ nên sử dụng cho mục đích thử nghiệm Joomla 1.5 hỗ trợ đa ngôn ngữ Joomla 1.5 dùng charset mặc định UTF-8 (thay ISO-8859-1 Joomla 1.0.x) Collection by traibingo Lựa chọn phiên để cài đặt Cài đặt lần đầu, cài Bạn nên chọn phiên Joomla 1.0.x, chọn nhất: Joomla 1.0.12 - Bước 1: Mở http://joomlacode.org/gf/project/joomla/frs/ - Bước 2: Chọn Joomla_1.0.12-Stable-Full_Package.zip (Stable: Ổn định, Full: Đầy đủ) Cài đặt chế độ nâng cấp Nếu bạn dùng Joomla 1.0.x VD: Joomla! 1.0.7 muốn nâng cấp lên Joomla! 1.0.12 - Bước 1: Mở http://joomlacode.org/gf/project/joomla/frs/ - Bước 2: Chọn Joomla_1.0.7_to_1.0.12-Stable-Patch_Package.zip (1.0.7 to 1.0.12) - Bước 3: Giải nén copy đè vào thư mục Joomla cũ Cài đặt chế độ phát triển, kiểm tra tính Hiện Joomla phát triển dòng phiên Joomla! 1.5 Download link Joomla 1.5: http://dev.joomla.org/content/view/17/60/ Collection by traibingo Part Web Server gì? HTML gì? PHP gì? HTML gì? HTML (tiếng Anh, viết tắt cho HyperText Markup Language, tức "Ngôn ngữ Đánh dấu Siêu văn bản") ngôn ngữ đánh dấu thiết kế để tạo nên trang web, nghĩa mẩu thông tin trình bày World Wide Web Được định nghĩa ứng dụng đơn giản SGML, vốn sử dụng tổ chức cần đến yêu cầu xuất phức tạp, HTML trở thành chuẩn Internet tổ chức World Wide Web Consortium (W3C) trì Phiên HTML 4.01 Tuy nhiên, HTML khơng cịn phát triển tiếp Người ta thay XHTML Web Programming Language gì? Web Programming Language (Ngơn ngữ lập trình Web): Ngơn ngữ viết theo phong cách lập trình (khác so với HTML - ngơn ngữ đánh dấu) để hỗ trợ tăng cường khả Web Cho phép điều khiển phần tử trang Web dễ dàng Chúng ta có số ngơn ngữ lập trình Web là: ASP, ASP.Net, PHP, JSP Web Server gì? Web Server (máy phục vụ Web): máy tính mà cài đặt phần mềm phục vụ Web, người ta gọi phần mềm Web Server Tất Web Server hiểu chạy file *.htm *.html, nhiên Web Server lại phục vụ số kiểu file chuyên biệt chẳng hạn IIS Microsoft dành cho *.asp, *.aspx ; Apache dành cho *.php ; Sun Java System Web Server SUN dành cho *.jsp Collection by traibingo Database Server gì? Database server (máy phục vụ Cơ sở liệu): Máy tính mà có cài đặt phần mềm Hệ quản trị Cơ sở liệu (HQTCSDL) Chúng ta có số HQTCSDL chẳng hạn như: SQL Server, MySQL, Oracle Cài đặt Web Server WAMP Windows Một khó khăn ban đầu người làm quen với Joomla hay người thiết kế Web nói chung cài đặt Web Server Đa phần cảm thấy chật vật việc cài đặt Apache (Web Server) + MySQL (Database Server) + PHP cấu hình cho chúng làm việc tốt với Tuy nhiên có giải pháp đơn giản tiện lợi, sử dụng gói cài đặt tích hợp gồm Apache + MySQL + PHP + PHPMyAdmin (một công cụ quản trị CSDL) Mọi việc cần làm download cài đặt tiến hành cài đặt bước theo dẫn Chúng ta có sản phẩm tiếng XAMPP WAMP Tuy nhiên với mục đích cài đặt localhost để chạy thử WAMP lựa chọn dễ dàng WAMP gì? WAMP: Một gói phần mềm Web Server tất (All-in-One) gồm: Apache, MySQL, PHP chạy Windows Collection by traibingo Giao diện quản trị Webserver WAMP (Windows + Apache + MySQL + PHP) Các đặc điểm trội WAMP Có thể cài đặt WAMP dễ dàng WAMP cập nhật đặn Cho phép lựa chọn phiên PHP, MySQL khác Collection by traibingo Rất tốt cho việc tạo máy chủ Web để chạy thử, thiết kế Website PHP Hỗ trợ tốt cho Joomla 1.5, Joomla 1.0 Hỗ trợ phiên PHP5 Tương thích Windows XP / Windows Vista / Windows Hồn tồn miễn phí Download cài đặt WAMP Download WAMP http://www.wampserver.com/en/download.php địa Các bước cài đặt WAMP Nếu trước bạn cài đặt WAMP 5.1.x tốt gỡ sau cài WAMP Server 2.0 Collection by traibingo 10 Khi cài đặt website, Joomla sử dụng tiền tố mặc định cho bảng sở liệu: 'jos_' Tuy nhiên để tránh nhịm ngó haker bạn nên đổi tiền tố Không dùng tài khoản mặc định 'admin' Tạo tài khoản quản trị (Super Administrator) thay dùng tài khoản mặc định có tên 'admin' Đổi tên vơ hiệu hóa tài khoản mặc định 'admin' mà Joomla tạo cài đặt cách: Mở bảng _users, tìm ghi có id=62, đổi username khác 'admin' thay block '1') Đối với người lập trình (developer) ý vấn đề sau: Ép kiểu liệu Luôn ép kiểu liệu cho chuỗi đưa vào câu lệnh truy vấn SQL Thí dụ: Nếu muốn kiểu liệu kiểu nguyên (integer) sử dụng câu lệnh SQL: Collection by traibingo 122 $sql = 'UPDATE # mytable SET `id` = ' (int) $int; Nếu muốn kiểu liệu kiểu ngày/tháng (date) sử dụng câu lệnh SQL: $date = & JFactory::getDate($mydate); $sql = 'UPDATE # mytable SET `date` = ' $db->quote( $date>toMySQL(), false); Luôn gỡ bỏ ý nghĩa ký tự đặc biệt Bạn cần gỡ bỏ ý nghĩa ký tự đặc biệt (những ký tự có khả gây nguy hiểm cho câu lệnh SQL) nằm chuỗi liệu đưa vào câu lệnh SQL câu lệnh: $sql = 'UPDATE # mytable SET `string` = ' $db->quote( $db>getEscaped( $string ), false ); Chống công DOS Trong mệnh đề WHERE, bạn có sử dụng lệnh LIKE, đảm bảo bạn lọc ký tự đặc biệt "%" "_" sử dụng câu lệnh SQL: $sql = 'UPDATE # mytable SET WHERE `string` LIKE ' $db->quote( $db->getEscaped( $string, true ), false ) Chống công XSS Rất nhiều người có thói quen lấy liệu nhập vào từ người dùng câu lệnh JRequest::getVar() Tuy nhiên thói quen khơng tốt Thay vào bạn nên sử dụng phương thức ép kiểu Thí dụ: Nếu muốn kiểu số nguyên, dùng câu lệnh: $int = JRequest::getInt( $name, $default ); Nếu muốn kiểu số thực, dùng câu lệnh: $float = JRequest::getFloat( $name, $default ); Nếu muốn kiểu logic (đúng/sai), dùng câu lệnh: Collection by traibingo 123 $bool = JRequest::getBool( $name, $default ); Nếu muốn kiểu từ (word): có ký tự chữ ký tự gạch "_", dùng câu lệnh: $word = JRequest::getWord( $name, $default ); Nếu muốn kiểu câu lệnh (command): có ký tự chữ cái, ký tự số, ký tự "." "_", dùng câu lệnh: $cmd = JRequest::getCMD( $name, $default ); Nếu muốn kiểu văn HTML (văn lọc bỏ thẻ HTML), dùng câu lệnh: $string = JRequest::getString( $name, $default ); Kiểm tra Website Joomla Joomla! HISA Joomla HISA công cụ kiểm tra - bảo mật cho phép: Kiểm tra HOSTING có đáp ứng yêu cầu cần thiết để cài đặt Joomla hay không Thông báo thông số HOST (tên host, địa IP ); thông số PHP, MYSQL Cảnh báo thiết lập khơng an tồn Cảnh báo thư mục chưa thiết lập quyền hạn Cũng giống "Joomla Diagnostics", đơn giản bạn cần tải cơng cụ có tên Joomla! HISA (Joomla! Health, Installation and Security Audit) Sau upload file (joomla_hisa_en.php) lên Hosting định cài đặt Joomla xem kết Phiên Joomla HISA cho phép kiểm tra dòng Joomla! 1.0.x (từ Joomla 1.0.10 trở đi) Collection by traibingo 124 Quy trình kiểm tra Download Joomla HISA: >> Joomla HISA