intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

LUÂN VĂN:WEBSITE TRƯỜNG ĐH CÔNG NGHỆ PHIÊN BẢN TIẾNG ANH TRÊN THIẾT BỊ DI ĐỘNG

Chia sẻ: Lan Lan | Ngày: | Loại File: PDF | Số trang:64

161
lượt xem
37
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Mục tiêu của đề tài là xây dựng một phiên bản website trường ĐH Công nghệ phiên bản tiếng Anh trên thiết bị di động. Phiên bản này là một bản rút gọn của website, cho phép hiển thị tốt trên thiết bị di động vốn bị hạn chế bởi kích thước màn hình.

Chủ đề:
Lưu

Nội dung Text: LUÂN VĂN:WEBSITE TRƯỜNG ĐH CÔNG NGHỆ PHIÊN BẢN TIẾNG ANH TRÊN THIẾT BỊ DI ĐỘNG

  1. ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Thị Thanh Tâm WEBSITE TRƯỜNG ĐH CÔNG NGHỆ PHIÊN BẢN TIẾNG ANH TRÊN THIẾT BỊ DI ĐỘNG KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin HÀ NỘI - 2010
  2. ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Thị Thanh Tâm WEBSITE TRƯỜNG ĐH CÔNG NGHỆ PHIÊN BẢN TIẾNG ANH TRÊN THIẾT BỊ DI ĐỘNG KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán bộ hướng dẫn: ThS.Phùng Chí Dũng HÀ NỘI - 2010
  3. TÓM TẮT NỘI DUNG Mục tiêu của đề tài là xây dựng một phiên bản website trường ĐH Công nghệ phiên bản tiếng Anh trên thiết bị di động. Phiên bản này là một bản rút gọn của website, cho phép hiển thị tốt trên thiết bị di động vốn bị hạn chế bởi kích thước màn hình. Bắt đầu từ việc nghiên cứu hệ thống website trường ĐH Công nghệ, vốn được xây dựng trên hệ quản trị nội dung Drupal. Sau khi nghiên cứu các thành phần cơ bản, các module quan trọng, hệ thống file giao diện của Drupal thì tiến hành thiết kế template cho phiên bản trên thiết bị di động. Triển khai bằng cách cài đặt một trang Drupal mới với dữ liệu được lấy từ phiên bản gốc và hiển thị lại theo template đã thiết kế. Kết quả, đã xây dựng thành công phiên bản trên thiết bị di động cho website trường ĐH Công nghệ với tên miền riêng. Tuy nhiên, hệ thống chưa có chức năng tự nhận diện thiết bị truy cập để điều hướng sang tên miền đó.
  4. MỤC LỤC Chương 1. Tổng quan về Drupal ............................................................................ 2 1.1. Giới thiệu chung ............................................................................................. 2 1.1.1. Drupal là gì? ......................................................................................... 2 Lịch sử .................................................................................................. 2 1.1.2. Các tầng kỹ thuật .................................................................................. 3 1.1.3. Chức năng............................................................................................. 4 1.1.4. Nguyên tắc ............................................................................................ 7 1.1.5. 1.2. Các khái niệm cơ bản...................................................................................... 7 1.2.1. Nhân ..................................................................................................... 7 1.2.2. Block .................................................................................................... 8 1.2.3. Hook ..................................................................................................... 9 1.2.4. Node ..................................................................................................... 9 1.2.5. Taxonomy........................................................................................... 12 1.2.6. Path .................................................................................................... 14 1.2.7. User .................................................................................................... 16 Hệ thống file ....................................................................................... 17 1.2.8. 1.3. Hệ thống module .......................................................................................... 20 Các module hệ thống .......................................................................... 21 1.3.1. Các module đóng gói quan trọng......................................................... 22 1.3.2. 1.4. Hệ thống giao diện ........................................................................................ 24 Tổng quan về phát triển giao diện ....................................................... 24 1.4.1. 1.4.2. Regions ............................................................................................... 25 Hệ thống file trong giao diện............................................................... 26 1.4.3. 1.4.4. Các file template ................................................................................. 27 1.4.5. Các file CSS ....................................................................................... 35 1.5. Kết luận ........................................................................................................ 36
  5. Chương 2. Phiên bản website dùng Drupal trên thiết bị di động ........................... 37 2.1. Đặt vấn đề .................................................................................................... 37 2.2. Định hướng giải pháp ................................................................................... 37 2.2.1. Multisite ............................................................................................. 37 Thiết kế template ................................................................................ 38 2.2.2. 2.2.3. Module Mobile Plugin ........................................................................ 52 2.3. Kết luận ........................................................................................................ 52 Chương 3. Website trường ĐH Công nghệ phiên bản tiếng Anh trên thiết bị di động…………………………………………………………………………………53 3.1. Giao diện ...................................................................................................... 53 3.2. Cài đặt .......................................................................................................... 54 Cài đặt multisite .................................................................................. 54 3.2.1. Tạo trang chủ ...................................................................................... 55 3.2.2. 3.3. Kết quả ......................................................................................................... 55
  6. LỜI MỞ ĐẦU Ngày nay, điện thoại di động đã trở nên phổ biến, với sự phát triển của mạng 3G thì việc sử dụng thiết bị di động để truy cập web trở nên dễ dàng hơn bao giờ hết. Truy cập web bằng thiết bị di động vừa tiện lợi lại vừa nhanh chóng nên nhiều người đang chọn cách này để truy cập web. Tuy nhiên, các trang web thường được thiết kế phù hợp với việc hiển thị trên máy tính, có màn hình rộng và hỗ trợ tối đa các tiện ích kèm theo. Còn với thiết bị di động, với màn hình nhỏ và hầu hết không hỗ trợ Javascript hay Flash Player thì thường gặp khó khăn trong việc hiển thị. Hơn nữa, với những thông tin quảng cáo kèm theo sẽ khiến cho dung lượng tải về rất lớn, vừa gây độ trễ lớn trong việc tải trang web vừa tốn kém khi mà hầu hết người dùng sử dụng gói cước tính tiền theo dung lượng và tốc độ của mạng 3G cũng không lớn. Tất cả những điều đó đòi hỏi phải có một phiên bản riêng của trang web dành cho thiết bị di động. Không nằm ngoài những trường hợp trên, website trường ĐH Công nghệ phiên bản tiếng Anh cũng chỉ hỗ trợ cho người dùng truy cập từ máy tính. Nhận thấy nhu cầu truy cập web qua thiết bị di động ngày càng tăng, để hỗ trợ tối đa cho người dùng, cần phải có một phiên bản dành riêng cho thiết bị di động. Chính vì vậy em đã lựa chọn và nghiên cứu đề tài “Website trường ĐH Công nghệ phiên bản tiếng Anh trên thiết bị di động”. Website được xây dựng dựa trên phiên bản đầy đủ dành cho desktop, sử dụng hệ quản trị nội dung Drupal. Khoá luận của em sẽ trình bày gồm 3 chương: Chương 1: Tổng quan về Drupal Chương 2: Phiên bản website dùng Drupal trên thiết bị di động Chương 3: Website trường ĐH Công nghệ phiên bản tiếng Anh trên thiết bị di động Em xin chân thành cảm ơn sự giúp đỡ tận tình của ThS.Phùng Chí Dũng trong quá trình thực hiện đề tài. 1
  7. Tổng quan về Drupal Chương 1. 1.1. Giới thiệu chung 1.1.1. Drupal là gì? Drupal là một khung sườn phát triển phần mềm hướng module, một hệ quản trị nội dung miễn phí và mã nguồn mở. Cũng giống như các hệ quản trị nội dung hiện đại khác, Drupal cho phép người quản trị hệ thống tạo và tổ chức dữ liệu, tùy chỉnh cách trình bày, tự động hóa các tác vụ điều hành và quản lý hệ thống những. Drupal có cấu trúc lập trình rất tinh vi, dựa trên đó, hầu hết các tác vụ phức tạp có thể đ ược giải quyết với rất ít đoạn mã được viết, thậm chí không cần. Đôi khi, Drupal cũng được gọi là "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 nó. Drupal được chạy trên rất nhiều môi trường khác nhau, bao gồm Windows, Mac OS X, Linux, FreeBSD, OpenBSD và các môi trường hỗ trợ máy chủ web Apache (phiên bản 1.3+) hoặc IIS (phiên bản 5+) có hỗ trợ ngôn ngữ PHP (phiên bản 4.3.3+). Drupal kết nối với cơ sở dữ liệu MySQL hoặc PostgreSQL để lưu nội dung và các thiết lập. Lịch sử 1.1.2. Năm 2000, các kết nối Internet thường xuyên ở mức cao với các sinh viên trường Đại học Antwerp, do đó, Dries Buytaert và Hans Snijder thiết lập một cầu nối không dây giữa ký túc xá sinh viên của mình để chia sẻ kết nối modem Hans 'ADSL giữa tám sinh viên. Đây là một việc cực kỳ xa xỉ tại thời điểm đó, nhưng vẫn có sự thiếu sót: không có phương tiện để thảo luận hay chia sẻ những điều đơn giản. Nó truyền cảm hứng cho Dries làm việc trên một trang web tin tức nhỏ với một built-in hội đồng quản trị web, cho phép các nhóm bạn bè để lại mỗi ghi chú khác về 2
  8. tình trạng của mạng, thông báo nơi họ đã ăn tối, hay để chia sẻ một số mục tin tức đáng chú ý. Các phần mềm không có tên cho đến ngày sau khi Dries chuyển ra sau khi tốt nghiệp. Nhóm quyết định đưa các tuyến nội bộ trang web để họ có thể giữ liên lạc, tiếp tục chia sẻ những phát hiện thú vị, và những đoạn tường thuật cuộc sống cá nhân của họ. Trong khi tìm kiếm một tên miền phù hợp, Dries đặt tên miền 'drop.org' sau khi ông thực hiện một lỗi đánh máy để xem tên “dorp.org” vẫn còn. Dorp là từ Hà Lan cho 'làng', được coi là một tên phù hợp cho các cộng đồng nhỏ. Một khi drop.org được thành lập trên mạng, khán giả của nó đã thay đổi khi các thành viên bắt đầu nói về các công nghệ web mới, chẳng hạn như kiểm duyệt, cung cấp, đánh giá, và phân phối chứng thực. Drop.org từ từ biến thành một môi trường thử nghiệm cá nhân, thúc đẩy bởi các cuộc thảo luận và dòng chảy của ý tưởng. Các cuộc thảo luận về các công nghệ web đã được thử ra trên drop.org chính nó như là mới bổ sung cho các phần mềm chạy các trang web. Chỉ sau đó, vào tháng 1 năm 2001, mà Dries quyết định phát hành phần mềm phía sau drop.org như "Drupal". Mục đích là để cho phép người khác sử dụng và mở rộng nền tảng thử nghiệm để nhiều người hơn có thể khám phá những con đường mới để phát triển. Cái tên Drupal, phát âm là "droo- puhl," có nguồn gốc từ cách phát âm tiếng Anh của từ tiếng Hà Lan "druppel," có nghĩa là "thả". Các tầng kỹ thuật 1.1.3. Mục tiêu thiết kế của Drupal bao gồm cả việc có thể chạy tốt trên các tài khoản web hosting giá rẻ và có thể mở rộng tới các trang web phân phối lớn. Mục tiêu ban đầu là sử dụng công nghệ phổ biến nhất, và sau này là coding cẩn thận, chặt chẽ. Các tầng kỹ thuật của Drupal được minh họa trong hình 1-1. Hình 1-1. Các tầng kỹ thuật của Drupal 3
  9. Hệ điều hành nằm ở mức thấp trong tầng mà Drupal không quan tâm nhiều. Drupal chạy tốt trên bất kỳ hệ điều hành nào có hỗ trợ PHP. Máy chủ web được sử dụng rộng rãi nhất với Drupal là Apache, mặc dù các máy chủ web khác (bao gồm cả Microsoft IIS) cũng có thể được sử dụng. Bởi vì lịch sử lâu dài của Drupal với Apache, Drupal với file .htaccess được bảo mật khi cài đặt Drupal. Clean URLs-có nghĩa là loại bỏ những dấu hỏi, dấu và, hoặc ký tự đặc biệt khác bằng cách sử dụng thành phần mod_rewrite của Apache. Điều này đặc biệt quan trọng bởi vì khi di chuyển từ một hệ thống quản lý nội dung hoặc từ các tập tin tĩnh, các URL của nội dung không cần phải thay đổi. Clean URL có sẵn trên các máy chủ web khác bằng cách sử dụng khả năng ghi lại URL của web server. Giao diện Drupal với các lớp tiếp theo của stack (cơ sở dữ liệu) thông qua một lớp cơ sở dữ liệu nhỏ. Lớp này xử lý các truy vấn SQL để có thể sử dụng cơ sở dữ liệu các nhà cung cấp khác nhau mà không cần viết lại code. Các cơ sở dữ liệu thử nghiệm rộng rãi nhất là MySQL và PostgreSQL, mặc dù hỗ trợ cho Microsoft SQL Server và Oracle đang tăng lên. Drupal được viết bằng PHP. Vì PHP là một ngôn ngữ dễ học, có rất nhiều chương trình PHP được viết bởi người mới bắt đầu. Chất lượng code của người mới bắt đầu đã khiến cho PHP mất uy tín. Hơn nữa, PHP cũng có thể được sử dụng để viết code. Tất cả code của nhân Drupal đều tuân thủ nghiêm ngặt các tiêu chuẩn code và được xem xét kỹ lưỡng qua quá trình mã nguồn mở. Đối với Drupal, rất dễ dàng học PHP vì có một cộng đồng luôn sẵn sàng giúp đỡ những người mới bắt đầu. Và những người mới bắt đầu nhận được thông tin phản hồi từ cộng đồng giúp nâng cao kỹ năng c ủa h ọ. Chức năng 1.1.4. Chức năng chung 1.1.4.1.  Collaborative Book - Giúp thiết lập một "quyển sách" và cho phép nhiều người cùng đóng gói nội dung, tổ chức dữ liệu.  Clean URL - Drupal dùng mod_rewrite của Apache để tạo các URL thân thiện với cả các bộ máy tìm kiếm và người dùng.  Module - Các module đóng gói từ cộng đồng mở rộng tính năng của nhân Drupal.  Online help - Hệ thống trợ giúp trực tuyến ngay trên trang web. 4
  10.  Open source - Mã nguồn của Drupal hoàn toàn miễn phí dưới giấy phép GNU/GPL 2.  Cá nhân hóa - Có sẵn ngay trong nhân Drupal. Cả nội dung lẫn cách trình bày đều có thể cá nhân hóa theo các tiêu chuẩn được người dùng đặt ra.  Hệ thống phân quyền theo vai trò (role based) - Có thể tạo ra các vai trò mang các quyền hạn khác nhau, sau đó gán những vai trò này cho người dùng.  Tìm kiếm - Mọi nội dung đều được đánh chỉ mục và có thể tìm kiếm bởi module tìm kiếm tích hợp sẵn. Quản lý thành viên 1.1.4.2. Xác thực người dùng - Người dùng có thể đăng kí và xác thực tại trang web, hoặc thông qua các nguồn xác thực khác như Jabber, Blogger, LiveJournal hoặc một site Drupal khác hoặc máy chủ LDAP. Quản trị nội dung 1.1.4.3. Poll - Module bầu chọn của Drupal cho phép người dùng tạo các bầu chọn và  gắn vào các trang khác nhau. Khuôn mẫu (template) - Hệ thống khuôn mẫu của Drupal phân tách nội dung  với cách trình bày. Khuôn mẫu được xây dựng trên PHP và HTML chuẩn, có nghĩa là không cần phải học một ngôn ngữ khuôn mẫu (templating language) nào cả. Bình luận theo luồng - Mô hình bình luận theo luồng mạnh mẽ của Drupal cho  phép bình luận bất cứ nội dung nào. Các bình luận có chia cấp như ở một nhóm tin (newsgroup) hoặc diễn đàn. Điều khiển phiên bản - Hệ thống điều khiển phiên bản của Drupal cho phép lưu  giữ thông tin của các lần cập nhật (ai, cái gì, khi nào). Có thể dễ dàng quay lại (roll-back) một phiên bản trước đó. 1.1.4.4. Blogging Hệ thống blog đa người dùng - Mỗi người dùng đã ghi danh trong hệ thống đều  có thể viết blog. Hỗ trợ Blog API - Cho phép cập nhật nội dung bằng nhiều công cụ khác nhau,  thậm chí không cần dùng đến trình duyệt web. Content syndication - Xuất nội dung theo dạng RDF/RSS.  5
  11. News aggregator - Giúp đọc thông tin từ các website khác.  Permalink - Tất cả các nội dung trong Drupal đều có một URL cố định, giúp  người dùng có thể dễ dàng liên kết đến mà không sợ nó thay đổi về sau. Nền tảng 1.1.4.5. Apache hoặc IIS, Unix/Linux/BSD/Solaris/Windows/Mac OS X đều được hỗ  trợ - Drupal ngay từ đầu đã được xây dựng để tương thích nhiều nền tảng. Độc lập với cơ sở dữ liệu - Mặc dù đa số dùng MySQL, nhưng không phải tất  cả. Drupal được xây dựng trên lớp CSDL trừu tượng (database abstraction layer - DAL), hỗ trợ cả MySQL lẫn PostgreSQL. Để hỗ trợ các CSDL riêng của mình, người dùng chỉ việc viết phần back-end hiện thực hóa 14 hàm của DAL. Đa ngôn ngữ - Nền tảng Drupal sẵn sàng cho việc xây dựng một website đa  ngôn ngữ. Quản trị và phân tích 1.1.4.6. Phân tích, Theo dõi và Thống kê  Ghi nhật kí và báo cáo - Các hoạt động quan trọng trên hệ thống đều được ghi  lại, giúp người quản trị có thể xem lại sau đó. Hệ thống quản trị trên web - Tất cả có thể được quản lí qua trình duyệt web.  Tính năng cộng đồng 1.1.4.7. Diễn đàn - Diễn đàn thảo luận.  Blog - Hệ thống blog đa người dùng.  Hiệu năng và khả năng mở rộng 1.1.4.8. Caching - Cơ chế đệm dữ liệu giúp giảm số truy vấn CSDL, tăng hiệu năng và  giảm tải server. Hệ thống này đã từng được thử nghiệm cho thấy chúng hoạt động rất tốt dưới hiệu ứng "slashdot" (lưu lượng tăng đột biến do trang web được giới thiệu ở một website lớn). Nén CSS - Drupal hỗ trợ chức năng gom nhóm các tập tin CSS lại thành một  tập tin nhất, đồng thời cũng loại bỏ các ghi chú bên trong. Khi trình duyệt thực hiện chỉ cần thực hiện một yêu cầu để lấy về một tập tin CSS duy nhất. Nén Javascript - Từ phiên bản 6.x Drupal còn cho phép gom nhóm và nén các  tập tin Javascript. 6
  12. Nguyên tắc 1.1.5. Modular và extensible. Mục tiêu của Drupal và cung cấp một nhân gọn, mạnh  để sẵn sàng mở rộng thông qua các module tự tạo. Mã nguồn chất lượng. Chất lượng cao, trình bày đẹp, ghi chú đầy dủ.  Tuân thủ chuẩn. Drupal hỗ trợ các chuẩn cũ và mới, trong đó có HTML và  CSS. Đòi hỏi ít tài nguyên. Để đạt hiệu quả cao nhất, Drupal khuyến khích các mã  lệnh tiết kiệm (thí dụ như dùng ít truy vấn CSDL). Drupal cũng chỉ cần rất ít đòi hỏi về server, chỉ yêu cầu những cấu hình phổ biến. Cụ thể là Drupal cần hoạt động trơn tru với Apache, PHP và MySQL hoặc Postgresql. Mã nguồn mở. Drupal dựa trên triết lí mã nguồn mở về sự phát triển cộng tác  của phần mềm tự do. Drupal xây dựng bằng mã mở, bản thân là mã mở và hỗ trợ các dự án mã mở. Cụ thể là Drupal được xây dựng trên ngôn ngữ mở PHP, hỗ trợ các CSDL mã mở là MySQL và Postgresql. Dễ dùng. Dễ dùng đối với nhà phát triển, nhà quản lí và người dùng.  Cộng tác. Hỗ trợ các hệ thống chia sẻ thông tin.  1.2. Các khái niệm cơ bản 1.2.1. Nhân Một framework đơn giản tạo nên nhân Drupal. Đây là những gì nhận được khi tải Drupal về từ drupal.org. Nhân chịu trách nhiệm cung cấp các chức năng cơ bản sẽ được sử dụng để hỗ trợ các bộ phận khác của hệ thống. Nhân bao gồm code cho phép hệ thống Drupal khởi động khi nó nhận được một yêu cầu, một thư viện các chức năng phổ biến thường xuyên được sử dụng với Drupal, và các module cung cấp chức năng cơ bản như quản lý người dùng, phân loại, và templating như thể hiện trong Hình 1-2. 7
  13. Hình 1-2. Tổng quan về nhân Drupal 1.2.2. Block Block là đoạn văn bản hoặc các chức năng thường nằm ngoài khu vực nội dung chính của một trang web, chẳng hạn như trong các sidebar trái hoặc phảis, trong header, footer, vv. Chặn quyền truy cập và vị trí được kiểm soát trong giao diện admin, đơn giản hóa công việc của các nhà phát triển khi tạo block. Các trang chặn cấu được đ ặt ở hình Administer > Site building > Blocks (http://example.com/?q=admin/build/block). Block có một tiêu đề và mô tả và được sử dụng chủ yếu cho việc quảng cáo, code snippet, và các chỉ số trạng thái, không phải cho phần chính thức của nội dung, do đó, khối không phải là node và không tuân theo các quy tắc của node. Các node có quyền kiểm soát sửa đổi, có thể comment cho nó, RSS feed, và các taxonomy term; chúng thường được dành riêng cho các phần nội dung beefier của một trang web. Regions là các phần của trang web nơi các block được đặt. Region được tạo ra và cài đặt bởi giao diện (trong file .info của giao diện) và không được xác định bởi các block API. Block không được gán vào region nào thì không được hiển thị. Block có các tùy chọn để kiểm soát những người có thể nhìn thấy chúng và những trang mà nó được hiển thị. Nếu các module điều tiết được kích hoạt, các block 8
  14. không cần thiết cũng có thể được thiết lập để tắt tự động trong thời kỳ lưu lượng truy cập cao. Block được định nghĩa hoặc thông qua giao diện web của Drupal (các block tùy biến) hoặc lập trình thông qua các block API (module cung cấp block). Block liên quan đến một module tự viết, hoặc bao gồm chủ yếu là mã PHP là những ứng viên xuất sắc để sử dụng block API và được thực hiện trong một module. Block có thể hiển thị bất cứ thứ gì (chúng được viết bằng PHP và do đó không chỉ giới hạn ở những gì chúng có thể làm được), nhưng chúng thường đóng vai trò hỗ trợ cho các nội dung chính của trang web. Ví dụ, có thể tạo ra một khối menu tùy chỉnh cho mỗi vai trò người dùng, hoặc có thể trưng bày một block liệt kê các comment đang chờ phê duyệt. 1.2.3. Hook Hook có thể được coi là sự kiện bên trong Drupal. Chúng cũng được gọi là các hàm callback, vì chúng được xây dựng bằng cách đặt tên hàm theo các chuẩn và không phải bằng cách đăng ký với một listerner, chúng không thực sự được gọi trở lại. Hook cho phép các module "hook into" những gì đang xảy ra trong phần còn lại của Drupal. Giả sử một người dùng đăng nhập vào trang web Drupal. Tại thời điểm người dùng đăng nhập, Drupal gọi hook user. Điều đó có nghĩa là bất kỳ hàm nào cũng được đặt tên theo quy ước tên module cộng với tên hook sẽ được gọi. Ví dụ, comment_user() trong module Comment, locale_user() trong module Locale, node_user() trong module Node, và bất kỳ chức năng khác có tên tương tự sẽ được gọi. Nếu viết một module tùy biến gọi là spammy.module và bao gồm một hàm được gọi là spammy_user() gửi một e-mail cho người dùng, hàm này cũng sẽ được gọi, và người dùng không may sẽ nhận được một e-mail không mong muốn mỗi khi đăng nhập. Cách phổ biến nhất để khai thác các hàm nhân của Drupal là thông qua việc thực hiện của hook trong các module. 1.2.4. Node Mọi thứ đều là node, đó là triết lý của Drupal. Node là kiểu dữ liệu nhỏ nhất với hai trường dữ liệu cơ bản nhất đó là title và body để lưu thông tin. Ngoài ra còn có các trường thông tin khác như: ngày tháng tạo bài, ngày cập nhật, …. Hãy tưởng tượng node là một cái chung nhất trong việc lưu nội dung, với hai cái này cơ bản đã lưu đủ thông tin rồi. Node giống như là dàn bài cho một bài viết vậy. 9
  15. Hình 1-3. Mô hình dữ liệu của node Các kiểu nội dung trong Drupal đều có nguồn gốc từ một loại cơ sở duy nhất được gọi là node. Cho dù đó là một entry blog, một công thức, hoặc thậm chí một nhiệm vụ dự án, các cấu trúc dữ liệu cơ bản là như nhau. Cái hay đằng sau phương pháp này chính là khả năng mở rộng của nó. Những người phát triển module có thể thêm các tính năng giống như xếp hạng, comment, tập tin đính kèm, thông tin định vị, v.v. cho các nút nói chung mà không cần lo lắng về việc liệu các loại nút là blog, công thức, v.v. Người quản trị trang web sau đó có thể trộn và kết hợp các chức năng theo loại nội dung. Ví dụ, các quản trị viên có thể chọn để cho phép các ý kiến trên blog nhưng không phải công thức nấu ăn hoặc chỉ cho phép tải lên tập tin cho các công việc dự án. Các node cũng chứa một cơ sở tập hợp các thuộc tính hành vi mà tất cả các loại nội dung khác kế thừa. Bất kỳ node nào cũng có thể đặt ở trang chủ của trang web, publish hoặc chưa được publish. Và vì cấu trúc đồng bộ này, các giao diện quản trị có thể cung cấp một màn hình chỉnh sửa hàng loạt để làm việc với các node. Một trang web có thể chứa nhiều loại nội dung, chẳng hạn như các trang thông tin, các mục tin tức, các cuộc thăm dò, bài đăng trên blog, danh sách bất động sản, vv Trong Drupal, mỗi hạng mục của nội dung được gọi là một node, và mỗi node thuộc về một kiểu nội dung duy nhất, trong đó xác định các thiết lập mặc định khác nhau cho các node của kiểu, như liệu được công bố node tự động và ở đâu cho phép 10
  16. comment. (Lưu ý rằng trong các phiên bản trước của Drupal, kiểu nội dung đã được biết đến như là các loại node.) Khi cài đặt Drupal lần đầu với thông tin cài đặt mặc định, sẽ có hai loại nội dung được định nghĩa: "Page" và "Story". Khi kích hoạt nhân hay module đóng gói khác (bằng cách truy cập Administer >> Site building >> Module), sẽ thấy có các loại nội dung khác, cũng có thể tạo các loại nội dung tùy biến. Đây là danh sách các loại nội dung liên kết với các module nhân Drupal:  Blog Entry Một blog (viết tắt của weblog) là một tạp chí trực tuyến hoặc nhật ký, và các module blog nhân cho phép người dùng đăng ký trên trang web để tạo blog riêng của họ. Mỗi entry trong một blog của người dùng thuộc kiểu Blog Entry.  Trang Sách Dác trang sách được thiết kế để là một phần của một cuốn sách hợp tác, kích hoạt bởi module Book nhân. Một ví dụ về một cuốn sách hợp tác là tài liệu hướng dẫn nhà phát triển Drupal. Trong các phiên bản cũ của Drupal, chỉ các node thuộc kiểu nội dung sách mới có thể được thêm vào một cuốn sách, nhưng bây giờ các node thuộc bất kỳ kiểu nội dung nào cũng có thể là một phần của một cuốn sách.  Comment Comment thực sự không phải là node, do đó, comment về mặt kỹ thuật không phải là một "kiểu nội dung". Bật module Comment cho phép khách truy cập trang web thêm comment (thường là ghi chú ngắn và trả lời các ý kiến khác) vào các node trên trang web.  Diễn đàn Một node Diễn đàn xác định một chủ đề cho một cuộc thảo luận diễn đàn, mọi người có thể trả lời chủ đề này bằng cách sử dụng coment. Node Diễn đàn được tổ chức thành các chủ để thông qua một Taxonomy (danh sách các loại).  Page Kiểu nội dung page được kích hoạt trong Drupal trong cấu hình cài đặt mặc định. Các page thường được sử dụng cho nội dung tĩnh, có thể (nhưng không bắt buộc phải) được liên kết vào thanh menu chính. 11
  17.  Thăm dò ý kiến Một cuộc thăm dò là nơi mà một câu hỏi nhiều lựa chọn được hỏi, và người dùng có thể trả lời và xem câu trả lời của người khác cho các câu hỏi.  Story Kiểu nội dung Story được kích hoạt trong Drupal trong cấu hình cài đặt mặc định. Các Story thường được sử dụng cho thông tin có liên quan giảm như thời gian qua (như các mục tin tức), từ đó các Story mới hơn thường sẽ được đặt cao hơn các Story cũ trong trang. Ngoài các loại cơ bản, các loại nội dung tuỳ chỉnh cũng có thể được tạo ra bằng cách vào Administer > Content > Content types > Add content type. Có thể làm điều này như một cách để tổ chức nội dung - ví dụ, có thể có "Articles" và "News flash" như hai kiểu nội dung đơn giản trên trang web, thay vì chỉ sử dụng “Story" cho cả hai. Nếu muốn thêm các lĩnh vực cho các kiểu nội dung tuỳ chỉnh, cài đặt module đóng gói Content Construction Kit (CCK). Tuỳ chỉnh lĩnh vực được sử dụng để lưu trữ thông tin bổ sung vượt quá giá trị mặc định Drupal (tiêu đề, body, thông tin tác giả, thời gian tạo/cập nhật, và tình trạng xuất bản), ví dụ, trên một trang web bất động sản, một kiểu nội dung bất động sản niêm yết có thể có các lĩnh vực cho thông tin bổ sung loại tài sản, diện tích đất, vv. Cuối cùng, một số module đóng gói định nghĩa kiểu nội dung riêng của nó. 1.2.5. Taxonomy Taxonomy là cách phân loại của sự vật. Drupal đi kèm với một module taxonomy cho phép phân loại các nút. Taxonomy phân loại mọi thứ vào category. Sự chính xác khi sử dụng các từ có liên quan đến hệ thống taxonomy của Drupal là rất quan trọng. 12
  18. Hình 1-4. Mô hình dữ liệu của taxonomy 1.2.5.1. Term Một term là nhãn thực tế sẽ được áp dụng cho node. Ví dụ, giả sử có một trang web có chứa các đánh giá sản phẩm. Có thể xem lại từng nhãn với các term "Bad", "OK," hoặc "Excellent". Term đôi khi cũng được gọi là tag, và hành động của các term gán cho một đối tượng (như một node xem lại sản phẩm) đôi khi được gọi là tagging. Khi nhìn vào cấu trúc dữ liệu, Drupal cho biết thêm một mức độ trừu tượng cho tất cả các term được nhập vào, và đề cập đến chúng trong nội bộ bởi một số ID, không theo tên. Ví dụ, nếu nhập vào các term trước đó, nhưng người quản lý quyết định rằng từ "Poor" là một từ tốt hơn so với "Bad", không vấn đề gì. Bạn chỉ cần chỉnh sửa term số 1, và thay đổi "Bad" thành "Poor", mọi thứ bên trong Drupal sẽ tiếp tục làm việc. Khi xác định một term, có thể nhập từ đồng nghĩa của term, từ đồng nghĩa là một term khác cùng ý nghĩa. Các chức năng phân loại bao gồm trong Drupal cho phép nhập từ đồng nghĩa và cung cấp các bảng cơ sở dữ liệu cho việc lưu trữ và một số tiện ích như taxonomy_get_synonyms ($tid) và taxonomy_get_synonym_root ($synonym). 13
  19. 1.2.5.2. Vocabulary Một vocabulary gồm một tập hợp các term. Drupal cho phép kết hợp một vocabulary với một hoặc nhiều loại node. Sự liên hệ lỏng lẻo là rất hữu ích cho các loại qua các biên giới loại nút. Ví dụ, nếu đã có một trang web mà người sử dụng có thể gửi các câu chuyện và hình ảnh về du lịch, có thể có một vocabulary chứa tên nước như các term, điều này sẽ cho phép xem tất cả các câu chuyện và hình ảnh được gắn thẻ với "Bỉ" dễ dàng. Vocabulary có thể yêu cầu hoặc không. Nếu một vocabulary được yêu cầu, người dùng phải gán một term cho một node trước khi node được phép submit. Nếu một vocabulary không được yêu cầu, người dùng có thể chọn term mặc định “None selected” khi submit một node. Khi một vocabulary có một số hữu hạn các term (có nghĩa là, người dùng không thể thêm term mới) nó được gọi là một vocabulary được kiểm soát. Trong một vocabulary được kiểm soát, term thường được trình bày cho người sử dụng bên trong một vùng lựa chọn thả xuống. Tất nhiên, người quản trị hoặc người dùng đã được phân loại quản lý có thể cho phép thêm, xóa, hoặc sửa đổi các term. Một tag là một thứ giống như term. Tuy nhiên, từ "tagging" thường ngụ ý rằng người dùng của trang web tạo ra các thẻ. Trái ngược với một vocabulary được kiể m soát. Thay vào đó, người dùng có thể nhập các term riêng của họ khi submit một node.Nếu một term chưa nằm trong vocabulary, nó sẽ được thêm vào. Khi check box Tags trên giao diện chỉnh sửa vocabulary được check, giao diện người dùng cho vocabulary được trình bày như là một trường văn bản (với JavaScript tự động hoàn chỉnh được kích hoạt), chứ không phải là vùng lựa chọn thả xuống của một vocabulary được kiểm soát. 1.2.6. Path Trong Drupal, một đường dẫn là phần cuối của URL duy nhất cho một chức năng cụ thể hoặc một phần của nội dung. Ví dụ, một trang có đầy đủ URL là http://example.com/?q=node/7, đường dẫn là node/7. Nếu trang web sử dụng Clean URL, URL đầy đủ trong ví dụ này sẽ là http://example.com/node/7; đường dẫn vẫn là node/7. Vì bí danh URL hoàn toàn có thể thay thế những gì mà người dùng nhìn thấy như là URL, các đường dẫn được thảo luận tại đây (vẫn là cách mà Drupal quyết định nội dung nào để hiển thị) đôi khi được gọi là đường dẫn nội bộ. 14
  20. Đường dẫn trong Drupal quan trọng vì nhiều màn hình configure trong khu vực admin sử dụng chúng. Ví dụ, khi đang thêm một mục mới cho một menu, cho Drupal biết trang nào mục menu phải trỏ đến bằng cách nhập đường dẫn đến trang. Đây là một số ví dụ về đường dẫn có thể tìm thấy trong một trang web Drupal: node/7  taxonomy/term/6  admin/content/comment  user/login  user/3  Có một số cách để tìm đường dẫn đến một trang cụ thể trên một trang web Drupal. Bước đầu tiên là tìm URL của trang quan tâm:  Nếu đã biết làm thế nào để điều hướng đến các trang web, có thể đến đó và tìm các URL trong thanh URL của trình duyệt.  Cũng có thể di chuột qua một liên kết đến trang (như trong màn hình Administer hoặc màn hình Content ở Administer >> Content manager >> Content), và hầu hết các trình duyệt sẽ cho thấy URL trong phần status ở dưới cùng của cửa sổ trình duyệt.  Đối với các trang Taxonomy, có thể tìm thấy những URL trong trang quản lý Taxonomy. Nếu đang xem một danh sách term cho một vocabulary đặc biệt, mỗi term nên được liên kết đến một trang phân loại của nó. Di chuột qua liên kết hoặc thực hiện theo các liên kết để tìm URL của nó. URL tìm thấy có thể có nhiều hình thức:  http://example.com/?q=[something] -- Trong trường hợp này, các [something] sau q=? là đường dẫn. Ví dụ, nếu URL là http://example.com/?q=node/7, đường dẫn là node/7.  http://example.com/[something] hay http://example.com/[Drupal subdirectory] /[something] -- Trong trường hợp này, các [something] sau đường dẫn cơ bản của trang web Drupal là đường dẫn . Ví dụ, URL có thể là http://example.com/node/7 hoặc http://example.com/mysubdir/node/7, đường dẫn ở cả hai trường hợp đều là node/7. 15
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
10=>1