1. Trang chủ
  2. » Luận Văn - Báo Cáo

0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin

176 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Website Học Tập Trực Tuyến Ngành Công Nghệ Thông Tin
Tác giả Trần Văn Nghiệp, Phạm Ngọc Huy
Người hướng dẫn GVHD: Ninh Xuân Hằng
Trường học Trường Đại Học M
Chuyên ngành Công Nghệ Thông Tin
Thể loại Khóa Luận Tốt Nghiệp
Năm xuất bản 2011
Thành phố TPHCM
Định dạng
Số trang 176
Dung lượng 4,92 MB

Cấu trúc

  • I. T NG QUAN V DRUPAL (17)
    • I.1. Khái ni m (17)
    • I.2. L ch s (17)
    • I.3. N n t ng (17)
    • I.4. ng d ng (17)
    • I.5. u đ i m (17)
    • I.6. Nh c đ i m (18)
  • II. CÁCH HO T NG C A DRUPAL (18)
    • II.1. Technology Stack (18)
    • II.2. Core (19)
    • II.3. Module (19)
    • II.4. Hooks (20)
    • II.5. Themes (20)
    • II.6. Nodes (20)
    • II.7. Blocks (21)
  • III. MODULE CHU N C A DRUPAL (21)
    • III.1. Aggregator (21)
    • III.2. Blog (21)
    • III.3. Blog API (21)
    • III.4. Book (21)
    • III.5. Comment (22)
    • III.6. Contact (22)
    • III.7. Filter (22)
    • III.8. Forum (22)
    • III.9. Help (22)
    • III.10. Legacy (22)
    • III.11. Node (23)
  • IV. CÁC MODULE H TR THÊM (23)
    • IV.1. Views (23)
    • IV.2. Panels (23)
    • IV.3. Content Construction Kit (CCK) (24)
    • IV.4. Ckeditor (24)
  • V. XÂY D NG MODULE CHO DRUPAL (24)
    • V.1. File .info và .module (24)
      • V.1.1. File .info (24)
      • V.1.2. File .module (25)
    • V.2. M t s hook c b n (25)
    • V.3. nh ngh a m t hook m i (28)
      • V.3.1. Cách t o m t hook (28)
      • V.3.2. S d ng hook vào các module khác (28)
    • V.4. jQuery trong Drupal (28)
    • V.5. Form API (29)
      • V.5.1. T o form (29)
      • V.5.2. Giao di n hóa form (30)
      • V.5.3. Ki m tra d li u (30)
      • V.5.4. G i form lên trang web (30)
  • VI. T CH C L U TR C A DRUPAL (31)
  • VII. TÍNH AN TOÀN C A DRUPAL (33)
    • VII.1. An toàn đ i v i ng i dùng (33)
    • VII.2. An toàn đ i v i mã ngu n (33)
    • VII.3. Tính an toàn đ i v i d li u (34)
  • I. T NG QUAN V MOODLE (35)
    • I.1. Khái Ni m (35)
    • I.3. u đ i m (35)
  • II. TÀI NGUYÊN MOODLE H TR (35)
    • II.1. Nhãn (Label) (35)
    • II.2. Trang v n b n (Text Page) (35)
    • II.3. Trang web (Web Page) (36)
    • II.4. Liên k t m t file hay website (URL) (36)
    • II.5. Th m c (Folder) (36)
    • II.6. Gói n i dung (IMS Content Package) (36)
  • III. CÁC HO T NG MOODLE H TR (36)
    • III.1. Nhi m v (Assignments) (36)
      • III.1.1. Tùy ch n cách upload file (Advance uploading of file) (37)
      • III.1.2. Ki m tra tr c tuy n (Online Text) (37)
      • III.1.3. Upload m t file (Upload a single file) (38)
      • III.1.4. Ho t đ ng offline (Offline Activity) (38)
    • III.2. Tán g u (Chat) (38)
    • III.3. Di n đ àn (Forum) (38)
    • III.4. Bài h c (Lesson) (39)
    • III.5. Câu h i (Quiz) (40)
      • III.5.1. T o danh m c (41)
      • III.5.2. T o câu h i (42)
    • III.6. B ng thu t ng (Glossary) (42)
    • III.7. Wiki (43)
    • III.8. L a ch n (Choice) (44)
    • III.9. Kh o sát (Survey) (45)
    • III.10. Gói SCORM (SCORM Package) (46)
  • IV. XÂY D NG MODULE CHO MOODLE (46)
    • IV.1. C u trúc module (46)
    • IV.2. Vi t module m i d a trên NEWMODULE Template (46)
  • V. QU N TR (47)
    • V.1. Thông báo (Notification) (47)
    • V.2. Ng i dùng (Users) (47)
      • V.2.1. Ch ng th c (Authentication) (47)
      • V.2.2. Tài kho n (Accounts) (49)
      • V.2.3. Quy n (Permissions) (49)
    • V.3. Khóa h c (Course) (50)
    • V.4. nh v (Location) (53)
    • V.5. Ngôn ng (Languages) (53)
    • V.6. Modules (54)
    • V.7. B o m t (Security) (55)
    • V.8. Giao di n (Apperance) (56)
    • V.9. Trang chính (Front Page) (58)
    • V.10. Server (59)
  • I. KHÁI QUÁT V SCORM (60)
    • I.1. Quá trình phát tri n c a SCORM (60)
    • I.2. L i ích kinh doanh c a SCORM (60)
  • II. CÁC KHÁI NI M C B N LIÊN QUAN N SCORM (61)
    • II.1. Asset (61)
    • II.2. SCO (Sharable Content Object) (61)
    • II.3. S khác nhau gi a Asset và SCO (61)
  • III. C U TRÚC SCORM (62)
    • III.1. CAM (Content Aggregation Model) (62)
      • III.1.1. Content Model (62)
      • III.1.2. Meta-data (63)
      • III.1.3. Content Package (65)
    • III.2. RTE (Run time Environment) (66)
      • III.2.1. Launch (66)
      • III.2.2. Application Program Interface (API) (66)
      • III.2.3. Data Model (66)
  • I. PHÂN TÍCH (71)
    • I.1. Mô t bài toán (71)
    • I.2. Yêu c u ch c n ng (71)
      • I.2.1. Yêu c u l u tr (71)
      • I.2.2. Yêu c u nghi p v (71)
    • I.3. Yêu c u phi ch c n ng (72)
      • I.3.1. Tính ti n hoá (72)
      • I.3.2. Tính b o m t (72)
      • I.3.3. Tính t ng thích (72)
    • I.4. Ph ng pháp (72)
  • II. THI T K (72)
    • II.1. Thi t k t ng th (73)
      • II.1.1. Thi t k vi c trình bày tin t c (73)
      • II.1.2. Thi t k khóa h c (73)
      • II.1.3. Bài thi (73)
      • II.1.4. N p bài t p (73)
      • II.1.5. Di n đ àn th o lu n (73)
      • II.1.6. Ch m đ i m (74)
      • II.1.7. Thông báo (74)
      • II.1.8. Qu n lý ng i dùng (74)
      • II.1.9. ng nh p (74)
    • II.2. S đ website (74)
  • III. Tri n khai (80)
    • III.1. Chu n b (80)
    • III.2. Cài đ t (80)
      • III.2.1. Cài đ t Xampp (80)
      • III.2.2. Cài đ t Drupal (82)
      • III.2.3. Cài đ t Moodle (86)
      • III.2.4. Cài đ t module h tr thêm trong Drupal (89)
    • III.3. Xây d ng h th ng website (90)
      • III.3.1. Drupal (90)
        • III.3.1.1. Xây d ng trang “Gi i thi u” (90)
        • III.3.1.2. Xây d ng trang “Tin t c – Thông báo” (95)
        • III.3.1.3. Hi n th tin t website Moodle (99)
        • III.3.1.4. Xây d ng trang “ nh ho t đ ng” (101)
        • III.3.1.5. T o trang “Liên h ” (104)
        • III.3.1.6. Xây d ng trang ch (105)
        • III.3.1.7. Xây d ng menu cho user qu n tr (112)
      • III.3.2. Moodle (116)
        • III.3.2.1. Xây d ng khóa h c (116)
  • III. 3.2.1.1. Tài nguyên khóa h c (125)
  • III. 3.2.1.2. Ho t đ ng khóa h c (127)
  • III. 3.2.1.3. Các block c a khóa h c (132)
    • III.3.2.2. Xây d ng đ thi (133)
  • III. 3.2.2.1. T o câu h i (133)
  • III. 3.2.2.2. Làm bài thi (136)
    • III.3.2.3. i m s (137)
  • III. 3.2.3.1. Ch m đ i m (137)
  • III. 3.2.3.2. Xem đ i m (140)
  • IV. ÁNH GIÁ VÀ H NG PHÁT TRI N (143)
    • IV.1. ánh giá (143)
    • IV.2. H ng phát tri n (143)
  • I. Xây d ng bài gi ng (145)
    • I.1. eXe (145)
      • I.1.1. Cài đ t (145)
      • I.1.2. Th c hành (145)
        • I.1.2.1. Kh i đ ng m t d án bài gi ng (145)
        • I.1.2.2. nh ngh a thu c tính ( Defining Properties) (145)
        • I.1.2.3. Xác đ nh c u trúc bài gi ng (Defining an outline) (147)
        • I.1.2.4. Ý ngh a các thành ph n iDevices (148)
      • I.1.3. Minh ho s d ng m t s công c iDevice (150)
    • I.2. PPT2Flash Professional (155)
      • I.2.1. Cài đ t (155)
      • I.2.2. Th c hành (155)
  • II. T o câu h i tr c nghi m (161)
    • II.1. HotPotato (161)
      • II.1.1. T ng quan (161)
      • II.1.2. Jquiz (162)
      • II.1.3. M t s c u hình c n thi t chung c a HotPot6 (164)
    • II.2. QuizCreator (165)
      • II.2.1. Cài đ t (165)
      • II.2.2. T o câu h i (165)
      • II.2.3. Thi t l p (169)

Nội dung

T NG QUAN V DRUPAL

Khái ni m

Drupal là một khung phát triển phần mềm mã nguồn mở, cho phép người dùng quản lý và tổ chức nội dung một cách linh hoạt Khác với các hệ thống quản trị nội dung hiện đại khác, Drupal cung cấp khả năng tùy chỉnh cao về cách trình bày và quản lý dữ liệu Với cấu trúc lập trình tinh vi, Drupal hỗ trợ các tác vụ phức tạp mà không cần phải viết mã từ đầu, giúp người dùng dễ dàng tùy chỉnh và mở rộng hệ thống của mình.

"khung s n phát tri n ng d ng web", vì ki n trúc thông minh và uy n chuy n c a Drupal

Drupal đ c ch y trên r t nhi u môi tr ng khác nhau, bao g m Windows, Mac

Hệ điều hành như OS X, Linux, FreeBSD và OpenBSD, cùng với các máy chủ web như Apache (phiên bản 1.3+) và IIS (phiên bản 5+), đều hỗ trợ ngôn ngữ lập trình PHP (phiên bản 4.3.3+) Drupal kết nối với cơ sở dữ liệu MySQL hoặc PostgreSQL để quản lý nội dung và các thiết lập.

L ch s

Drupal được sáng lập bởi Dries Buytaert và Hans Snijder tại Đại học Antwerp, ban đầu được phát triển dưới dạng một hệ thống bảng tin (Bulletin board system) Đến năm 2001, Drupal đã trở thành một dự án mã nguồn mở quan trọng.

"druppel" c a ti ng Hà Lan, ngh a là "gi t n c" Hi n nay, có m t c ng đ ng r ng l n đang giúp đ phát tri n Drupal.

N n t ng

ng d ng

Drupal cho phép xây dựng nhiều ứng dụng mà không cần tốn quá nhiều thời gian phát triển, nhờ vào các module phong phú Các ứng dụng này có thể được phát triển dựa trên nền tảng Drupal một cách dễ dàng và hiệu quả.

− H ng cá nhân/ t ch c: Blog, Calendar, Dicussing forum,…

− H ng c ng đ ng: Multi blog site, Organic Groups, Voting,…

− H ng doanh nghi p: Webservice, Brochure, Newsletter, News site,…

u đ i m

14 ơ H th ng module linh ho t

Drupal phát triển theo hướng mô-đun, cho phép người dùng dễ dàng thêm hoặc gỡ bỏ các mô-đun tùy theo nhu cầu Điều này giúp tích hợp với các mô-đun khác để tạo thành một hệ thống linh hoạt và đa dạng Ngoài ra, việc tùy chỉnh giao diện (theme) cũng rất đơn giản, giúp người dùng cá nhân hóa trang web của mình một cách hiệu quả.

Drupal h tr PHPTemplate cho phép t o ra giao di n phong phú, linh đ ng ơ T o n i dung m r ng

Drupal cho phép tạo ra nhiều loại nội dung phong phú như Page, Story, Forum và Blog Ngoài ra, người dùng có thể mở rộng hệ thống bằng cách thêm các kiểu nội dung mới thông qua Taxonomy hoặc tích hợp các module tùy chỉnh để đáp ứng nhu cầu tìm kiếm.

Drupal qu n lý trang b ng s node và có th thay th sao cho URLs tr nên thân thi n v i ng i dùng khi tìm ki m ơ Quy n truy c p theo vai trũ

H th ng phân quy n, c b n d a trên b ba: module + thao tác + vai trò Do đó d dàng m r ng thêm.

Nh c đ i m

Do không tương thích ngược, các module phải được phát triển riêng cho từng phiên bản 4.x, 5.x, 6.x và 7.x của Drupal, vì hệ thống chỉ hỗ trợ hai phiên bản mới nhất Điều này khiến người dùng gặp khó khăn khi phải nâng cấp liên tục.

CÁCH HO T NG C A DRUPAL

Technology Stack

M c đích thi t k c a Drupal có th ch y t t trên các máy ch web và có th đ m b o v hi u n ng và đ an toàn b ng vi c s d ng các công ngh ph bi n

Drupal là một hệ điều hành linh hoạt, có thể chạy trên nhiều nền tảng như Linux, BSD, Mac OS X, Windows và Solaris Về máy chủ web, Drupal hỗ trợ nhiều máy chủ khác nhau, trong đó phổ biến nhất là Apache, cùng với sự hỗ trợ cho IIS Đối với cơ sở dữ liệu, Drupal tương thích với MySQL và PostgreSQL, cho phép người dùng lựa chọn giải pháp phù hợp với nhu cầu của họ.

PostgreSQL là h qu n tr c s d li u) L p trên cùng là Language (l p ngôn ng ): Drupal s d ng ngôn ng PHP có h tr l p c s d li u tr u t ng (Database

Abstraction Layer) Nh l p này, làm cho PHP có th k t n i và truy v n đ n c s d li u d dàng và an toàn h n.

Core

Mô hình khung sản phẩm được tích hợp thành nhân của Drupal cung cấp các chức năng quản lý người dùng, quản lý nội dung với hỗ trợ phân loại kiểu nội dung (taxonomy) và các template (mẫu giao diện) Hệ thống thực hiện các yêu cầu của người dùng và một thư viện dùng chung sẽ được sử dụng cùng với các thành phần.

Hình 1-2 T ng quan v Drupal core (không bao g m t t c ch c n ng)

Module

Module là phần mềm mở rộng có thể cài đặt vào Drupal để bổ sung các tính năng hoặc chức năng mới cho nền tảng này Người dùng có thể dễ dàng bật hoặc tắt các module đã có sẵn trong Drupal Ngoài ra, họ cũng có thể tìm kiếm các module mở rộng tích hợp vào Drupal tại http://api.drupal.org/ hoặc phát triển các module mới cho trang web của mình.

Hình 1-3 Module có th đ c thêm vào đ t ng c ng các ch c n ng.

Hooks

Hook trong Drupal được coi là các sự kiện (event) hoặc các hàm gọi lại (callbacks) cho phép lập trình viên can thiệp vào mọi hoạt động mà không cần sửa đổi mã nguồn của nhân hoặc các phần khác Hệ thống hook đa dạng giúp tối ưu hóa và tùy chỉnh chức năng của trang web một cách linh hoạt và hiệu quả.

Themes

Khi tạo ra một trang web để trình duyệt, có hai phần chính: một nhóm dữ liệu tĩnh (nội dung) và đánh dấu dữ liệu trên web Trong Drupal, lập trình viên chịu trách nhiệm tạo ra HTML cung cấp cho trình duyệt web Drupal khuyến khích việc tách biệt giữa nội dung và đánh dấu nội dung.

Drupal cho phép người quản trị giao diện tùy chỉnh và thay đổi giao diện cho trang web Một cách đơn giản để thực hiện điều này là sử dụng CSS (Cascading Style Sheet) để thay đổi các mẫu giao diện có sẵn.

Nodes

Trong Drupal, các kiểu nội dung cơ bản được gọi là node, và có thể nói rằng toàn bộ cấu trúc của Drupal xoay quanh node với thiết kế đơn giản Việc phát triển các kiểu nội dung phức tạp cho phép mỗi node được liên kết với nhiều nội dung khác nhau Node được quản lý thông qua hệ thống phân loại kiểu nội dung (taxonomy), đây cũng là đặc trưng nổi bật của Drupal Node chứa đựng tất cả các mục đích, nội dung, ngày tháng, và nhiều thông tin khác.

Cách t ng tác v i node là m r ng chúng Có th thêm vào các node các ch c n ng m r ng nh : đánh giá bài vi t, bình lu n, đính kèm file, …

M i node có m t đa ch URL xác đ nh, d a vào node_id, c u trúc nh sau:

?q=node/node_id N u node_id không đ c xác đ nh thì h th ng s chuy n v trang ch

Blocks

Block là thông tin có thể được kích hoạt hoặc vô hiệu hóa tại các vị trí xác định trên giao diện của trang web Các vị trí thường gặp của Block bao gồm: left sidebar, right sidebar, header và footer.

Các block trên trang web thường được sử dụng để mô tả thông tin và điều chỉnh trải nghiệm người dùng hiện hành Ví dụ, block điều hướng chứa các liên kết tới các phần quan trọng mà người dùng có thể truy cập Sắp xếp và hiển thị các block được quản lý thông qua giao diện quản trị của trang web.

MODULE CHU N C A DRUPAL

Aggregator

RSS là một định dạng dữ liệu dựa trên XML, được sử dụng để chia sẻ nội dung trên web (Web syndication), phổ biến trong các website tin tức và weblog Định dạng RSS cho phép cung cấp nội dung web và tóm lược nội dung cùng với các liên kết đến phiên bản gốc của thông tin, cũng như các siêu dữ liệu khác Thông tin này được cung cấp dưới dạng một tệp tin XML gọi là RSS feed, webfeed, RSS stream, hoặc RSS channel Aggregator có khả năng thu thập tin RSS từ các website khác và lưu trữ chúng.

CSDL, r i trình bày ra giao di n ng i dùng Các ngu n tin RSS có th đ c phân m c theo 'Category'.

Blog

Drupal là hệ thống tiên phong trong lĩnh vực blog đa người dùng, cho phép mỗi người dùng tạo blog riêng với URL cá nhân Tính năng này biến Drupal thành lựa chọn tuyệt vời cho blog cá nhân và cộng đồng trực tuyến Người quản trị có thể thiết lập quyền cho từng người dùng, đồng thời có khả năng tạo danh mục cho blog thông qua Taxonomy Module Ngoài ra, người dùng còn có thể tải lên file, lưu trữ nội dung và bình luận trên blog.

M i blog có th tùy ch nh theme khác nhau b ng cách cài đ t thêm module Blog Theme t i đa ch http://drupal.org/node/19248.

Blog API

Ng i dùng website có th dùng m t công c nào đó đ t o m t blog entry t xa (qua Google Docs ch ng h n) BlogAPI s đ ng ra đ m nh n vai trò trung gian nh n d li u, l u vào CSDL

Blog API h tr nhi u XML-RPC d a trên blogging APIs nh là new Blogger Data API, Meta Weblog API và Movable Type API

Book

Trong module này, người dùng có thể tạo các trang nội dung với đánh dấu mục rõ ràng, rất phù hợp cho việc làm brochure và tài liệu hướng dẫn Hiện tại, module này đã được cải tiến để đáp ứng nhiều nhu cầu thực tế, giúp người dùng đóng góp hiệu quả vào việc xây dựng các trang sách Tuy nhiên, cần đảm bảo rằng các đóng góp mang mục đích đúng và tích cực để tránh những vấn đề không mong muốn.

18 hành vi ch nh s a, xóa b , vi t sai n i dung, các trang ph i thông qua s ch p thu n c a ng i qu n tr m i đ c bi u di n trên website

Module cung c p ba quy n sau: Create Book Pages, Edit Own Book Pages,

Maintain Books o Create Book Pages: Cho phép t o trang o Edit Own Book Pages: Cho phép ch nh s a các trang do b n thân s h u o Maintain Books: Cho phép ch nh s a toàn b

Comment

Khi xem m t trang n i dung (node, nh m t blog entry, m t article ch ng h n), ng i xem có th g i ý ki n ph n h i c a mình Module này r t c n cho các website c n t ng tác t phía ng i dùng.

Contact

Ng i dùng có th g i mail cho ng i qu n lý website hay cho m t thành viên nào đó c a website nh ch c n ng mà module này cung c p

Module này cung c p 2 hình th c liên h : Personal Contact Form, Sitewide

Biểu mẫu liên hệ cá nhân cho phép người dùng chia sẻ email của mình và gửi mail qua tab Liên hệ Trong khi đó, biểu mẫu liên hệ toàn trang cho phép tạo các nhóm người liên hệ, giúp gửi email đến nhiều người cùng lúc.

Filter

Module này cung cấp nhiều phương thức trình bày khác nhau trên cùng một môi trường dữ liệu, giúp người dùng nhận diện các đoạn code, script nguy hiểm, lỗi cú pháp và các thẻ HTML một cách hiệu quả.

Module này đ c b t m t cách t đ ng và có th c u hình b ng cách truy c p Administer / Input format

Forum

Module cho phép t o di n đàn th o lu n Ng òi qu n tr c n t o các Container tr c khi t o các ch đ i u này giúp cho vi c t ch c và qu n lý d dàng h n.

Help

Các module có ph n tr giúp ng i dùng, tuy nhiên ch khi b t module Help lên thì ng i dùng m i có th xem đ c ph n này

Chú ý rằng module Help không cung cấp thông tin chính xác và chi tiết về hướng dẫn người dùng Do đó, cần thực hiện các chỉnh sửa cần thiết để cải thiện nội dung của module này Tham khảo thêm thông tin tại http://drupal.org/node/18031.

Legacy

Module Legacy cung c p cho vi c nâng c p t b n cài đ t c Nh ng x lý giúp các tham chi u t đ ng chuy n h ng đ n các trang t b n cài đ t c và ng n ch n trang không tìm th y l i trang web

Module legacy phân loại xử lý kiểu cách trang taxonomy, nguồn cấp dữ liệu phân loại, và định danh nguồn cấp dữ liệu cho blog Nó cũng xử lý nâng cấp URL từ Drupal 4.1 và ghi đè URL kiểu cũ sang các URL kiểu mới, rõ ràng.

Node

Các n i dung mà ng i l u tr đa s đ c l u d i d ng node (blog entry, book page, forum topic, page content, article, ) M i m t node có các thu c tính c b n:

− Ki u n i dung (content type): Thu c tính này nh m phân bi t node nào là 'forum topic', node nào là 'book page',

− Quy n h n: ng v i m i ki u n i dung, webmaster có th gi i h n 'quy n t o ra', 'quy n ch nh s a' cho m t s nhóm ng i dùng nh t đnh

− Tác gi : M i m t node s có m t và ch m t tác gi

− Th i đi m t o: Th i đi m mà node đ c t o ra

− Th i đi m ch nh s a cu i cùng

− Tiêu đ : Tiêu đ c a node Thí d , tiêu đ c a m t forum node c ng là tiêu đ c a 'lu ng th o lu n' đó

Workflow của node là một dòng chảy quan trọng, giúp hệ thống xác định trạng thái của node, cho biết node đã được xuất bản hay chưa Khi node đã được xuất bản, nó có thể được hiển thị trên trang chính và xác định vị trí so với các node khác.

CÁC MODULE H TR THÊM

Views

Views là m t b l c có vai trò l c và trình bày n i dung

− L c n i dung: View giúp l c các ki u n i dung c n theo m t s đi u ki n đ t ra

Ví d : c n l y ra 6 bài vi t m i nh t ho c l y ra các bài vi t thu c ch đ “tin th gi i’ ó là vai trò chính c a Views Views giúp l y ra các n i dung mà ng i dùng c n

Sau khi lọc các nội dung, người dùng có thể tạo danh sách các nội dung cần hiển thị Họ có thể trình bày chúng theo nhiều cách khác nhau, chẳng hạn như dạng bảng hoặc danh sách Ngoài ra, việc trình bày theo kiểu slide cũng là một lựa chọn, cho phép nội dung xuất hiện lần lượt thay vì hiển thị cùng lúc Vai trò chính của Views là giúp người dùng trình bày các nội dung đã được lọc một cách hiệu quả.

Panels

Các panel trong Drupal giúp chia nhỏ nội dung thành các vùng nhất định, với giao diện được tổ chức thành các vùng chứa block - các phần nội dung Thông thường, một theme của Drupal có các vùng cơ bản như header, footer, content, sidebar trái và sidebar phải, bao quanh vùng nội dung chính Người dùng có thể tùy ý thêm nhiều vùng vào theme, thể hiện sự linh hoạt của Drupal Các trang báo thường chia vùng nội dung thành các phần nhỏ để trình bày một cách hiệu quả.

Việc sử dụng layout trong Word để chia nội dung thành các phần giúp trình bày thông tin một cách rõ ràng và mạch lạc Các block bài viết được phân loại và sắp xếp theo từng khối, tạo nên sự dễ dàng trong việc tiếp cận thông tin nóng Panels đóng vai trò quan trọng trong việc tổ chức nội dung của theme, giúp chia nhỏ phần nội dung thành các phần nhỏ hơn, mỗi phần chứa các block nội dung riêng biệt, từ đó nâng cao trải nghiệm đọc cho người dùng.

Content Construction Kit (CCK)

Drupal hỗ trợ hai loại nội dung cơ bản là Page và Story, nhưng chúng chỉ có hai trường: Title và Body, không đáp ứng đủ cho việc phát triển nội dung website Do đó, CCK đã ra đời để giúp mở rộng nội dung một cách dễ dàng hơn Người quản trị có thể thêm các trường mới vào kiểu nội dung như Text field, Image field, File field, và Radio button Để sử dụng File field và Image field, cần phải cài đặt thêm module File Field và Image Field để sử dụng chung với CCK.

Sau khi đã t o thêm field m i, CCK t đ ng l u tr nh ng thông tin vào c s d li u và bi u di n trong nh ng cách khác nhau.

Ckeditor

Ckeditor là trình so n th o mã ngu n m theo ki u WYSIWYG (“What You See

CCK là một công cụ dễ sử dụng, không yêu cầu người dùng có kiến thức về HTML để thực hiện các thao tác cần thiết Giao diện của CCK thân thiện, cho phép người dùng thao tác như trên trình soạn thảo Word Tuy nhiên, người quản trị cần phải kích hoạt chức năng Filter HTML để người dùng thông thường có thể chọn các mã được phép sử dụng.

Ngoài ra c n ph i tích h p module IMCE vào Ckeditor đ có th s d ng ch c n ng tìm và chèn hình nh m t cách d dàng h n.

XÂY D NG MODULE CHO DRUPAL

File info và module

Cấu trúc của module cam kết có thể chứa nhiều tập tin khác nhau, nhưng tối thiểu phải có hai tập tin: .info và .module, trong đó là tên của module được tạo ra Tên này không được trùng với các module đã tồn tại trong hệ thống.

Trước khi thực hiện cài đặt cho một module, cần tạo ra một file văn bản chứa các thông tin cần thiết về module đó Một số thành phần của Drupal sẽ sử dụng thông tin trong file này để quản lý module hiệu quả.

File info được viết theo cấu trúc của file PHP ini, với định danh file được xác định cho việc thiết lập Nội dung của một file info bao gồm các thông tin như: name = “Xem điểm”, description = “Xem điểm sinh viên”, core = 6.x, php = 5.1.

Tr ng name khai báo tên c a module, tên này s hi n th trong danh sách các module có khu v c ng i qu n tr Tr ng description ch a thông tin v module, mô

21 t ch c n ng nhi m v mà module s th c hi n name và description là hai tr ng b t bu c ph i có trong file info

Trạng thái ba là core, và module này hoạt động trên tất cả các phiên bản của Drupal Giá trị 6.x yêu cầu phiên bản Drupal 6, bao gồm cả các phiên bản nâng cấp từ 6 Trong nhiều trường hợp, Drupal sẽ tự động đặt giá trị này một cách hợp lý, nhưng các nhà phát triển làm việc với CVS (Hệ thống quản lý phiên bản đồng thời) được khuyến cáo nên tự mình đặt giá trị cho trạng thái core.

Ch d n cu i cùng trong file info trên là php cho bi t phiên b n t i thi u c a PHP mà module yêu c u

Các module phụ thuộc không chỉ chứa các chức năng chính mà còn đi kèm với thông tin quan trọng trong file info Trong đó, trường "Package" xác định nhóm chức năng của module; nếu không khai báo, module sẽ thuộc nhóm "other" Ngoài ra, trường "Dependencies" liệt kê các module phụ thuộc, cách nhau bằng khoảng trắng; nếu module yêu cầu một phụ thuộc không có sẵn trong hệ thống, nó sẽ không thể hoạt động.

File module là tệp quan trọng trong một module, chứa các đoạn mã PHP thực hiện chức năng của module đó Tệp này thường sẽ định nghĩa một số hàm hook mà Drupal gọi tại các thời điểm nhất định để đáp ứng các yêu cầu.

C ng gi ng nh file info, file module đ c đ t tên theo quy t c

.module, trong đó là tên th m c ch a module

File module trong Drupal bắt đầu bằng Điều này giúp ngăn chặn việc in những ký tự lạ trong đầu ra của mã khi gặp một số trường hợp Ví dụ, nếu các ký tự này được xuất ra trước khi phần thông tin header của HTML được gửi đi, trình duyệt máy khách sẽ hiển thị thông báo lỗi ở đầu trang web.

M t s hook c b n

Hook này đ c s d ng đ t o m t block hi n th thông tin Khi hook_block đ c g i, Drupal s truy n 3 tham s vào hàm: $op, $delta, $edit

Tham số $op chứa thông tin về loại thao tác mà module sẽ thực hiện, có thể nhận một trong bốn giá trị sau: "list" được sử dụng khi module cung cấp thông tin về chính nó; "view" được truyền vào khi Drupal muốn hook block cung cấp thông tin hiển thị cho người dùng; "configure" dùng để điều chỉnh các thiết lập cho block; và "save" được sử dụng khi thông tin và thiết lập của block lấy từ form dữ liệu sinh ra bởi configure cần được lưu lại.

Tham s $delta đ c đ t ph thu c vào các thao tác nh t đnh c a module Khi

$op có tr là view thì $delta s đ c đ t Tham s này ch a các thông tin thêm v n i

Hàm hook_block() cho phép hiển thị nhiều block khác nhau trong hệ thống, với nội dung của mỗi block được xác định dựa trên giá trị của biến $delta được truyền vào.

Cuối cùng, tham số $edit được sử dụng trong quá trình điều chỉnh các thiết lập của block, khi thao tác lưu được thực hiện Tham số $edit thực chất là một mảng các thay đổi mà người quản trị thực hiện lên các thiết lập của block.

Giá tr tr v c a hàm này ph thu c vào thao tác mà nó th c hi n Thông th ng, hàm s tr v m t m ng thông tin c a block (info), tiêu đ (subject) và n i dung

Hàm hook_help() được sử dụng để cung cấp thông tin hữu ích cho người sử dụng Hàm này nhận hai tham số: $path chứa đường dẫn URL để xác định trang trợ giúp nào sẽ được hiển thị và $arg chứa các thông tin bổ sung cần thiết.

Trong lập trình viên, việc sử dụng biểu thức switch để xử lý giá trị của $path giúp phân biệt các vấn đề khác nhau liên quan đến module Giá trị này tuân theo định danh admin/help#, trong đó được thay thế bằng tên của module tương ứng Kết quả của hàm này được hiển thị trong mục Administer.

Mọi người dùng đã đăng ký có thể truy cập trang "Tài khoản của tôi" để xem thông tin tài khoản của họ Địa chỉ URL của trang này như sau: http://example.com/drupal/?q=user/3.

Trang thông tin người dùng có thể truy cập bởi một module quản trị có quyền tự động Phần lớn nội dung của trang này được tạo ra bởi hook_user() Bằng cách triển khai hook này trong module, nhà phát triển có thể liên kết với giao diện quản lý người dùng.

Hook ng là một công cụ quan trọng trong Drupal 6, cho phép người dùng thực hiện nhiều thao tác khác nhau liên quan đến trang tài khoản Cụ thể, hook này hỗ trợ 13 thao tác, bao gồm thêm, sửa chữa và xóa bản ghi nh đ ng nh p.

M t b n tri n khai c a hook_user() s nh n 4 tham s sau: o $op: Tên c a thao tác mà ng i dùng th c hi n Tham s này nh n 1 trong

Trong bài viết này, chúng tôi sẽ trình bày 13 giá trị quan trọng liên quan đến 13 thao tác như xem, đăng nhập, xóa, và các thao tác khác Đầu tiên, biến `$edit` chứa các giá trị được gán từ một form và được truyền vào qua tham chiếu `&$edit`, sử dụng cho các thao tác xử lý dữ liệu như chèn Tiếp theo, biến `$account` được sử dụng để đại diện cho thông tin tài khoản của người dùng, cũng được truyền qua tham chiếu `&$account` Cuối cùng, biến `$category` được sử dụng trong một số thao tác để xác định phần thông tin người dùng sẽ được trích xuất theo yêu cầu.

Chi ti t v hook này xem t i đ a ch http://api.drupal.org/api/function/hook_user/6 ơ Hook mail

Ph n l n các yêu c u v vi c g i mail trong Drupal đ u đ c h tr b i các hàm có trong Mail API nên ng i phát tri n không c n ph i vi t mã cho nh ng thao tác này

Tùy theo yêu cầu, người phát triển có thể tùy chỉnh định dạng của thông điệp thông qua hook_mail() Việc triển khai hook này cho phép điều chỉnh các phần đầu và thân của thông điệp trước khi gửi đi.

Khi hàm triển khai hook mail được thực thi, nó sẽ truyền ba tham số sau: $key, là một khóa dạng chuỗi dùng để xác định thông tin và việc thông điệp sẽ được định danh như thế nào; $message, là cấu trúc dữ liệu thể hiện thông điệp mà Drupal đã khởi tạo trước đó, tham số này phải được truyền dưới dạng tham chiếu &$message nếu muốn thay đổi giá trị; và $params, là một tập hợp các tham số được truyền vào từ lệnh gọi hàm drupal_mail() của module trong Hook view.

Trước khi một node được hiển thị đến người dùng, thông tin của nó có thể được cập nhật bằng cách sử dụng hook_view() Hook này được gọi khi hệ thống nhận một đòi hỏi từ node, ngay vào thời điểm trước khi node được hiển thị Hàm này sẽ cần thiết trong một số trường hợp mà nội dung của node có thêm một số trường thông tin Drupal chưa xử lý Đồng thời, hook này cung cấp thêm thông tin cho hệ thống giao diện để có thể biểu diễn nội dung như mong muốn của người dùng.

Hàm triển khai của hook này nhận 3 tham số: $node, chứa đối tượng node cần hiển thị; $teaser, xác định xem bài viết sẽ được hiển thị đầy đủ hay chỉ có bản tóm tắt, với giá trị logic True hoặc False; và $page, cho biết node này sẽ hiển thị trên trang riêng hay không Nếu $page có giá trị True, tiêu đề của node sẽ không được hiển thị.

Giá trị trả về của hàm khai triền hook_view() là $node, tham số này sẽ được thay đổi nhằm thể hiện nội dung một cách chính xác Các node được chuẩn bị cho việc hiển thị bằng cách tập hợp một mảng có cấu trúc trong $node→content, thay vì thao tác với từng thành phần riêng lẻ như $node→body và $node→teaser.

Chi ti t c a hook này xem thêm t i đa ch http://api.drupal.org/api/function/hook_view/6 ơ Hook menu

Hook_menu() cho phép người phát triển module đăng ký một URI tự định (hoặc chi tiết hơn là một đường dẫn URL tùy chỉnh) và ánh xạ URI đó với một hàm xử lý Hook này thường được sử dụng để tạo các thực thể cho trang quản lý của module.

nh ngh a m t hook m i

M c đích c a vi c đnh ngh a hook riêng là giúp ng i phát tri n module có th ch đ nh n i dung s đ c đ a vào b n tin và cách hi n th chúng

Việc định nghĩa một hook mới rất đơn giản, thậm chí chỉ cần một dòng mã Tuy nhiên, điều này cần được thực hiện một cách chi tiết để đảm bảo rằng các nhà phát triển sử dụng sau này có thể hiểu rõ và áp dụng hiệu quả.

Có nhiều cách để làm cho hook được sử dụng hiệu quả và triển khai Cách đầu tiên là thêm các thông tin chi tiết về hook vào trong khi tài liệu của đoạn mã Cách thứ hai là tạo ra một hàm hook trong mã nguồn, hàm này sẽ không được gọi đến mà chỉ đóng vai trò làm mẫu.

V.3.2 S d ng hook vào các module khác

Vi c s d ng hàm hook t đ nh ngh a vào trong module c ng gi ng nh đ i v i các hook có s n c a Drupal B n tri n khai c a m t hook ph i đ c đ t theo quy t c

_( ) và có các tham s trùng v i ph n khai báo c a hook

Các hook đ c đnh ngh a trong m t module có th đ c tri n khai trong module khác và module ch a khai báo hook ph i đ c b t.

jQuery trong Drupal

jQuery là một trong những thư viện JavaScript phổ biến hiện nay, sử dụng mô hình thiết kế giao diện mượt mà (Fluent Interface) Thư viện này cho phép kết nối các lệnh hàm với nhau, giúp thực hiện các truy vấn phức tạp một cách dễ dàng và hiệu quả.

Thông th ng, jQuery truy v n t i cây DOM (Document Object Model) là m t c u trúc d li u đnh ngh a nên c u trúc c a m t v n b n, th ng là HTML ho c XML

V n b n này s đ c bi u di n d i d ng cây v i thành ph n đ u tiên là g c DOM đ c bi t đ n là m t mô hình đ i t ng ph c t p jQuery cung c p m t API nh h n và d s d ng h n cho ng i l p trình

Tuy nhiên, jQuery đ c s d ng trong nhi u tr ng h p không ch riêng truy v n

Nó có m t b công c AJAX, công c x lý s ki n, hi u ng o và m t s hàm ti n ích khác

Thông tin thêm v jQuery có t i đa ch http://jquery.com

M c đnh jQuery s cài đ t cùng v i Drupal vì th vi c s d ng là khá d dàng

Mã nguồn của jQuery được chứa trong file jQuery.js nằm trong thư mục misc File này sẽ được nạp khi có lệnh gọi hàm drupal_add_js() Hàm này có nhiệm vụ nhúng mã JavaScript và thêm vào mã nguồn của trang web.

Tham s đ u tiên c a hàm drupal_add_js( ) là đo n mã JavaScript s đ c th c thi Tham s th hai (inline) cho bi t Drupal s ghi đo n mã vào gi a hai th

trong th c a trang HTML

Để đảm bảo module hoạt động như mong đợi, cần sử dụng các truy vấn jQuery chạy trên trình duyệt hỗ trợ JavaScript và AJAX Nếu trình duyệt không hỗ trợ, các thay đổi đối với HTML phía máy khách sẽ không được thực hiện.

Th vi n JavaScript c a Drupal có hàm Drupal.jsEnabled( ) s ki m tra đi u ki n này Giá tr tr v c a hàm này là TRUE ho c FALSE t ng ng v i k t qu ki m tra.

Form API

Drupal phiên bản 4.7 cung cấp API hỗ trợ việc tạo, xác thực và xử lý form trong HTML API này biểu diễn các form dưới dạng một mảng chứa các thuộc tính và giá trị Một số ưu điểm nổi bật bao gồm khả năng tùy biến cao và dễ dàng tích hợp vào các ứng dụng web.

− Không c n ph i vi t mã HTML mà ch c n khai báo các thu c tính và giá tr c a form

− D dàng thêm, xóa, đ o th t và thay đ i các form i u này thu n ti n khi mu n ch nh s a m t form đ c t o b i module khác

− M t thành ph n trong m t form có th đ c liên k t v i m t hàm giao di n riêng

− Có th thêm các b c xác th c và x lý riêng cho t ng form

− Các thao tác liên quan đ c b o v tránh vi c t n công b ng cách th c hi n nh ng thay đ i nh h ng x u đ n h th ng

Các thành phần của form được khai báo trong một mạng có cấu trúc phân cấp và có thể ghép lồng nhau Mỗi thành phần gồm có các cấp thuộc tính/giá trị Ví dụ, sau đây định nghĩa một thành phần textfield:

'#type' => 'textfield', '#title' => t('bar'), '#default_value' => $object['foo'], '#size' => 60,

− Thu c tính name c a thành ph n đ c khai báo trong m ng $form và n m cu i m ng

− Ki u c a thành ph n form đ c khai báo qua thu c tính #type

− Các khóa thu c tính đ c khai báo trong d u [], giá tr c a khóa có ki u xâu

− Th t khai báo các thu c tính không quan tr ng M t s thu c tính có giá tr m c đnh

− Không nên s d ng thu c tính #value cho các thành ph n có th thay đ i b i ng i dùng thay vào đó nên s d ng thu c tính #default_value

Form API cho phép tùy chỉnh giao diện của từng form, bao gồm cả việc thay đổi riêng lẻ các thành phần trong form Việc tùy chỉnh này có thể được thực hiện bằng cách nhập các thành phần giao diện tại thời điểm tạo form.

Thêm thu tính #theme vào form nhằm tạo thành phần cho form đó Các th đánh dấu có thể là #prefix, #suffix hoặc #markup Điều này được sử dụng để xác định vị trí các đoạn mã thiết lập giao diện trong form.

'#type' => 'fieldset', '#title' => t('Access log settings'), '#prefix' => '', '#suffix' => '',

Ghép các đo n mã c a t ng thành ph n trong form đ hi n th ra trang web b c này hàm drupal_render( ) đ c g i

API Form có chức năng kiểm tra dữ liệu đầu vào và thực hiện trên tất cả các form đã được định nghĩa Ngoài các hàm có sẵn, nhà phát triển còn có thể tạo ra các hàm kiểm tra theo ý muốn Tên hàm cần được đặt theo nguyên tắc _validate, với hai tham số là $form và $form_state Trong đó, $form là mảng chứa khai báo của form.

$form_state[‘value’] ch a giá tr c n ki m tra Ví d : function test_form_validate($form, &$form_state) { if ($form_state['values']['name'] == '') { form_set_error('', t('You must select a name.'));

To process a form in Drupal, you utilize a function A form is submitted via a submit button with the attribute type set to 'submit', which triggers the associated function For example, the function `test_form_submit($form, &$form_state)` can be used to execute a database query that inserts data into a specified table.

$form_state['values']['access']['log'],

$form_state['values']['hidden']); drupal_set_message(t('Your form has been saved.'));

Hàm g i d li u ch đ c g i khi nh n l nh t nút b m submit có ph ng th c POST và d li u đ c ki m tra h p l

T CH C L U TR C A DRUPAL

Trong Drupal, một node được xem là một đơn vị nội dung, và mỗi node riêng lẻ được coi là một thể hiện của đơn vị nội dung đó Node cũng được xem như một điểm đến dữ liệu, vì vậy mọi thông tin đều được lưu trữ trong node (ngoài trừ users, blocks, comments) Có nhiều loại node khác nhau, bao gồm các loại phổ biến như blog, poll, page, story và book Mặc dù mỗi loại nội dung được sử dụng là một loại node, nhưng thực chất, mỗi loại node đều là một kiểu trừu tượng của đơn vị nội dung.

T t c ki u n i dung đ u là node, chúng d a trên cùng ki n trúc d li u Do v y, giúp d dàng thao tác nh tìm ki m, t o m i, đi u ch nh, xóa và qu n lý n i dung trên node

Hình 1-4 Ki u node đ c b t ngu n t m t node c b n và có th thêm các tr ng

Các kiểu node được mở rộng trên một node cơ bản, cho phép thêm các thuộc tính dữ liệu riêng biệt Cụ thể, một node kiểu poll chứa các thuộc tính như số lượng phiếu bầu và ngày hết hạn của cuộc thăm dò Trong khi đó, một node kiểu book bao gồm thuộc tính parent, với node ID để xác định nội dung phù hợp cho mỗi node.

Mạng xã hội khác với blog ở chỗ không bổ sung thêm thuộc tính nào khác Thay vào đó, nó cung cấp các khung nhìn khác nhau cho dữ liệu bằng cách tạo ra các blog cho từng người dùng và cung cấp nguồn cấp dữ liệu RSS cho mỗi blog.

Hình 1-5 M i quan h gi a các b ng trong c s d li u c a Drupal

T t c các node có các thu c tính bên d i đ c ch a trong b ng c s d li u node và node_revisions:

− “nid”: Là unique ID (duy nh t) cho m t node

− “vid”: Là thu c tính khóa duy nh t cho m t node, giúp xác đ nh n i dung c a node_revisions vid là unique cho c node và node_revisions

− “type”: M i node có m t ki u node Ví d : blog, story, article, image, …

− “title”: Tiêu đ c a m t node cho phép chu i dài 128 ký t

− “uid”: Thu c tính khóa cho tác gi (author) M c đnh, m t tác gi có nhi u node

Giá trị bằng 0 có nghĩa là nội dung chưa được công bố và không thể truy cập bởi người dùng Trong khi đó, giá trị bằng 1 cho biết node đã được công bố và nội dung đó có thể được hiển thị và truy cập bởi người dùng.

− “created”: Cho bi t th i gian khi m t node đ c t o

− “changed”: Ghi nh n th i gian khi có s đi u ch nh cu i cùng

− “comment”: Có ki u integer, mô t tr ng thái các comment c a node, có 3 giá tr :

+ 0: Các comment b vô hi u hóa cho node hi n hành ây là giá tr m c đnh khi module comment đ c kích ho t

+ 1: Không cho phép thêm comment vào node hi n hành

+ 2: Các comment đ c hi n th và có th t o ra comment m i

− “promote”: M t tr ng ki u integer, xác đnh cho phép mô t node trên trang đ u hay không, v i 2 giá tr :

+ 1: Cho phép node hi n th trên trang đ u c a trang web Trang s ch a t t c các node mà có tr ng promote b ng 1, http:// example.com/?q=node là trang đ u m c đ nh

+ 0: Node s không đ c hi n th trang http://example.com/?q=node

− “moderate”: Có ki u integer, n u giá tr b ng 0 là moderate b vô hi u hóa và giá tr b ng 1 là cho phép moderate

Trong Drupal, tính năng "sticky" cho phép các node được đánh dấu xuất hiện đầu tiên trong danh sách trên trang hành vi Các node này sẽ được hiển thị trước, trong khi những node không được đánh dấu (unsticky) sẽ được sắp xếp theo ngày tạo ra.

1 là sticky và b ng 0 là unsticky Có th có nhi u node sticky v i m t danh sách gi ng nhau.

TÍNH AN TOÀN C A DRUPAL

An toàn đ i v i ng i dùng

Quản trị có thể quản lý người dùng thông qua việc cài đặt vai trò và quản lý tài khoản Vai trò cho phép điều chỉnh, bảo mật và quản trị hệ thống Mỗi vai trò có thể xác định một nhóm người dùng với các đặc quyền cụ thể, giúp định nghĩa trang điều khiển khi truy cập.

M c đnh h th ng có hai vai trò ng i dùng:

− Ng i dùng n c danh: Vai trò này đ c s d ng cho nh ng ng i dùng không có tài kho n ng i dùng ho c ch a đ c xác th c

− Ng i dùng đã xác th c: Vai trò này đ c t đ ng gán cho t t c nh ng ng i dùng đã đ ng nh p

Vim đóng vai trò quan trọng trong việc điều khiển truy cập tạng ngữ, cho phép quản lý các quyền hạn mà người dùng có thể thực hiện trong hệ thống Mỗi vai trò người dùng sẽ có một tập hợp các quyền hạn riêng biệt.

An toàn đ i v i mã ngu n

M c dù mã ngu n c a Drupal hoàn toàn có th xem và ch nh s a m t cách d dàng nh ng c ng có nh ng cách riêng đ ng n ch n nh ng m i nguy h i chính:

− Vi t đo n mã t n công b ng cách ki m tra d li u xu t h p l

− a câu truy v n SQL đ t n công b ng cách s d ng l p tr u t ng (database abstraction layer)

− Gi i h n truy c p node b lo i b b ng cách s d ng db_rewrite_sql

Cần sử dụng lớp trừu tượng cơ sở dữ liệu để bảo vệ mã SQL Không bao giờ nên trực tiếp sử dụng dữ liệu người dùng trong câu lệnh SQL Ví dụ, câu lệnh SQL không an toàn như: db_query('SELECT foo FROM {table} t WHERE t.name = ' $_GET['user']); cần được thay thế bằng phương pháp an toàn hơn.

30 db_query("SELECT foo FROM {table} t WHERE t.name = '%s' ", $_GET['user']);

Tính an toàn đ i v i d li u

Khi xử lý và xuất dữ liệu trong HTML, cần chú ý đến việc sàng lọc dữ liệu đầu vào Việc này rất quan trọng vì nếu không, người dùng có thể sử dụng các ký tự đặc biệt như nid;$result = db_query(db_rewrite_sql($sql)); while($linkfetch_array($result))

{ print "" $link['title']

B c 3: Ch n Style hi n th là Bulk Operations

111 Hình 4-57 Hi n th theo Bulk Operations

B c 4: T o Menu qu n tr (Site building / Menus / Navigation / Add item)

III.3.2.1 Xây d ng khóa h c ơ T o khúa h c

− B c 1: T i ph n qu n tr h th ng Click ch n Khóa h c → Thêm/s a các khóa h c

− B c 2: T o chuyên m c m i Click ch n Thêm m c m i T o khóa h c m i

114Hình 4-61 Khai báo và mô t m c m i

Khóa học B c 3 tại ĐH D ng được thiết kế theo chương trình học tập có hệ thống, cho phép sinh viên tiếp tục học các môn học nâng cao sau khi hoàn thành các môn học trước đó.

Hình 4-63 mô tả cách thiết lập khóa học theo điều kiện tiên quyết: Chương 2 chỉ có thể được truy cập khi Chương 1 đã hoàn tất Để thực hiện điều này, cần chỉnh sửa Restrict Access và điều kiện hoàn thành hoạt động, yêu cầu Chương 1 phải được đánh dấu là đã hoàn thành.

117 Hình 4-64 Activity completion condition o D ng theo tu n h c: Ch đ ng th i gian h c theo quy đnh c a giáo viên

Hình 4-65 cho thấy cách thiết lập khóa học theo tuần, cho phép các học viên tiếp cận nội dung học tập dựa trên ngày quy định Việc này được thực hiện thông qua việc chỉnh sửa trong phần Restrict Access với tùy chọn Allow Access From: Ngày quy định.

Hình 4-66 Allow access form o D ng theo chu n SCORM: H tr h c theo gói SCORM

Hình 4-67 M t khóa h c theo chu n SCORM

120 thêm các tài nguyên c ng nh ho t đ ng cho khóa h c tr c tiên ph i bât ch đ ch nh s a

Hình 4-69 Sau khi b t ch đ ch nh s a ơ T o n i dung khúa h c

3.2.1.1 Tài nguyên khóa h c

Bao g m các hình th c th hi n n i dung d i đây:

− Label: Dùng đ so n th o tiêu đ c a m t ch ng, m t bài h c, hay m t n i dung nào đó…

− Page: Cho phép t o ra m t trang v i đnh d ng màu ch , font, b ng,…dùng đ ch ng trình khóa h c, th i gian h c, h ng d n h c t p, m c tiêu,…

− File: Cho phép upload file lên khóa h c

− URL: Cho phép t o các liên k t đ n m t file nào đó trong h th ng ho c liên k t t i m t đ a ch web

− Folder: Cho phép hi n th th m c tài nguyên

− IMS Content Package: Cho phép upload các gói h c chu n SCORM,… ơ Page: Gi i thi u v khúa h c, c ng, L ch h c

Hình 4-70 Tài nguyên d ng Page ơ Folder: Tài li u tham kh o, Nhi m v cho sinh viờn

Hình 4-71 Tài nguyên d ng Folder

Th m c s ch a các file dành cho sinh viên download

Hình 4-72 Bài t p cho sinh viên ơ IMS Content Package (gúi SCORM)

3.2.1.2 Ho t đ ng khóa h c

N i trao đ i, th o lu n các v n đ h c t p, gi i đáp các th c m c c a sinh viên và nh m t o môi tr ng h c t p n ng đ ng cho sinh viên

Hình 4-74 Di n đàn th o lu n thêm m t ch đ m i, Click ch n Thêm m t ch đ m i và cung c p thông tin ch đ c n th o lu n: Tiêu đ , n i dung, file đính kèm

Hình 4-75 T o ch đ th o lu n m i ơ H i đỏp tr c tuy n

Vi c t ng tác gi a ng i dùng v i nhau trong m t th i gian th c

T o m t ho t đ ng th m dò ý ki n ng i dùng đ giáo viên có th thu th p thông tin và làm cho khóa h c hoàn thi n h n

Hình 4-79 K t qu th m dò ơ N p bài

Giáo viên t o m c N p bài cho sinh viên và thi t l p các thông s sau: T i gian n p, Có cho phép n p tr hay không, i m cho bài t p, Dung l ng upload file…

127Hình 4-80 Thi t l p thông tin n p bài t p Sinh viên n p bài t p b ng cách Click ch n n p bài Sau đó Upload file bài t p

3.2.1.3 Các block c a khóa h c

3.2.2.1 T o câu h i

− Giáo viên có th t ch c thi c b ng cách thêm m t ho t đ ng “ thi”

− Sau đó s xu t hi n màn hình sau, giáo viên có th thêm câu h i b ng cách “Add a question” ho c có th thêm câu h i t “Ngân hàng câu h i” vào “đ thi”

− thêm câu h i vào đ thi ta nh n bi u t ng “

Ngày đăng: 20/10/2022, 03:39

HÌNH ẢNH LIÊN QUAN

cu hoc có th kt hp vi module khác hình thành mt ng d ngl nh n, đa ch cn ng - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
cu hoc có th kt hp vi module khác hình thành mt ng d ngl nh n, đa ch cn ng (Trang 18)
Hình 4-5. Thi tk khóa c - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 5. Thi tk khóa c (Trang 79)
Hình 4-6. Start Apache và MySql - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 6. Start Apache và MySql (Trang 80)
Hình 4-8. Màn hình web server - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 8. Màn hình web server (Trang 82)
Hình 4-11. in thông tin Database - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 11. in thông tin Database (Trang 84)
Hình 4-15. La chn gói ngơn ng cài t - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 15. La chn gói ngơn ng cài t (Trang 86)
Hình 4-20. Màn hình cài đt thành công Moodle - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 20. Màn hình cài đt thành công Moodle (Trang 89)
Hình 4-22. To mt Content Type - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 22. To mt Content Type (Trang 91)
Hình 4-28. Menu Gi i thi u - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 28. Menu Gi i thi u (Trang 94)
− Ly các field cn hin th: Node:Title, Content: Image ( nu có hình nh), Note: - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
y các field cn hin th: Node:Title, Content: Image ( nu có hình nh), Note: (Trang 98)
Hình 4-43. Field cn Rewrite - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 43. Field cn Rewrite (Trang 103)
Hình 4-56. Style Bulk Operation - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 56. Style Bulk Operation (Trang 114)
Hình 4-60. Thê mm cmi - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 60. Thê mm cmi (Trang 117)
Hình 4-69. Sau kh ib tch đ ch nh sa ¬ T o n i dung khóa h c  - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 69. Sau kh ib tch đ ch nh sa ¬ T o n i dung khóa h c (Trang 125)
Hình 4-74. Din đàn tho l un - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 74. Din đàn tho l un (Trang 127)
Hình 4-77. Chat - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 77. Chat (Trang 129)
Hình 4-78. T hm dò ý kin - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 78. T hm dò ý kin (Trang 130)
Hình 4-89 .a câu hi vào thi - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 89 .a câu hi vào thi (Trang 135)
Hình 4-92. Thi cu ik - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 92. Thi cu ik (Trang 137)
Hình 4-96. Chu yn thành bn nháp - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 96. Chu yn thành bn nháp (Trang 139)
Hình 4-99. User Report (Giáo viên) - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 99. User Report (Giáo viên) (Trang 140)
Hình 4-100. Grader Report ¬ Sinh viên xem  đi m  - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 100. Grader Report ¬ Sinh viên xem đi m (Trang 141)
Hình 4-102. User report (Sinh viên) - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 4 102. User report (Sinh viên) (Trang 142)
Hình 5-14. PPT2Flash Professional - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 5 14. PPT2Flash Professional (Trang 155)
Hình 5-16. Thay đi giao din - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 5 16. Thay đi giao din (Trang 156)
Hình 5-17. Tùy ch nh chung cho gói hc (Basic) - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 5 17. Tùy ch nh chung cho gói hc (Basic) (Trang 157)
Hình 5-18. Tùy ch nh x ut file (Output) - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 5 18. Tùy ch nh x ut file (Output) (Trang 157)
Hình 5-20. Tùy ch nh âm thanh (Audio) - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 5 20. Tùy ch nh âm thanh (Audio) (Trang 158)
Hình 5-23. Xu tr ad ng Email - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 5 23. Xu tr ad ng Email (Trang 160)
Hình 5-26. Thi t lp Auto-Response - 0798Xây dựng Website học tập trực tuyến ngành công nghệ thông tin
Hình 5 26. Thi t lp Auto-Response (Trang 163)