Drupal framework xanh

25
Drupal Framework Sinh viên : Nguyễn Văn Xanh MSSV: 1011440

Transcript of Drupal framework xanh

Page 1: Drupal framework xanh

Drupal FrameworkSinh viên : Nguyễn Văn Xanh

MSSV: 1011440

Page 2: Drupal framework xanh

NộiDung Trình Bày

• 1. Giới Thiệu Drupal Framework

• 2. Hệ Thống Tập Tin Và Thư Mục Trong Drupal

• 3. Kiến Trúc Drupal

• 4. Các Khái Niệm Cơ Bản

• 5. Xây Dựng Giao Diện Và Kết Nối Cơ Sở Dữ Liệu

• 6. Cách Viết Một Module

Page 3: Drupal framework xanh

Giới ThiệuDrupal Framework

• Drupal là phần mềm phát triển theo hướng mô – đun, một hệthống quản trị miễn phí và mã nguồn mở

• 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ềuhành và quản lý hệ thống.

• Drupal chạy được trên nhiều môi trường khác nhau, bao gồmWindows, Mac OS X, linus, FreeBSD, và các môi trường hỗ trợmáy phục vụ Web Apache( phiên bản 1.3+) hoặc IIS( phiên bản4.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.

Page 4: Drupal framework xanh

HệThốngTậpTin VàThưMụcTrong Drupal

Page 5: Drupal framework xanh

HệThốngTậpTin VàThưMụcTrong Drupal

• Thư mục includes chứa thư viện các hàm thường dùng.

• Thư mục misc lưu trữ các biểu tưởng và hình ảnh dùng choJavascript và một số tài nguyên khác.

• Thư mục profiles chứa các profile khác nhau dùng cho cài đặtvà thiết lập Drupal.

Page 6: Drupal framework xanh

HệThốngTậpTin VàThưMụcTrong Drupal

• Thư mục scripts chứa các tập lệnh dùng để phân tích cúpháp, dọn dẹp mã nguồn và xử lý các tác vụ đặc biệt với cron. Những tập lệnh tiện ích này được viết bằng ngôn ngữ shell vàPerl.

• Thư mục themes chứa các công cụ tạo khuôn mẫu và giaodiện mặc định cho Drupal.

• Thư mục sites chứa các thay đổi đối với Drupal dưới dạngthiết lập, module và giao diện. Các module được thêm vào sẽnằm trong sites/all/modules. Trong thư mục sites có thư mụcđược đặt tên là default chứa các thiết lập mặc định cho hệthống Drupal, được ghi lại trong file settings.php.

Page 7: Drupal framework xanh

HệThốngTậpTin VàThưMụcTrong Drupal

• Dưới đây là cấu trúc bên trong thư mục sites

Page 8: Drupal framework xanh

Kiến Trúc Drupal

• Kiến Trúc Module

• Cơ Chế Hook

Page 9: Drupal framework xanh

Kiến Trúc Module

• Module là một bộ gồm mã PHP và các file hỗ trợ sử dụng API và kiến trúc của Drupal tích hợp các thành phần mới vào trongframework của Drupal.

• Cơ chế module của Drupal được thiết kế để cung cấp mộtcách thức đồng nhất giúp người phát triển mở rộng khả năngcủa hệ thống.

• Để một module sử dụng được thì nó phải được bật bởi ngườiquản trị trang web. Drupal sẽ chuyển các yêu cầu của ngườidùng đến module đó nếu cần thiết.

Page 10: Drupal framework xanh

Cơ Chế Hook

• Cơ chế hook là một khái niệm rất quan trọng trong việc pháttriển module cho Drupal. Cơ chế này giúp Drupal biết đượcphải gọi module nào khi xử lý các yêu cầu khác nhau từ ngườidùng

• Một yêu cầu của người dùng sẽ được Drupal xử lý qua mộtchuỗi các bước khác nhau. Đầu tiên, phần lõi khởi động ứngdụng, định nghĩa các các biến và các hàm thường dùng. Tiếptheo, hệ thống sẽ nạp các thư viện, giao diện và module cầnthiết và ánh xạ URI được yêu cầu tới đoạn mã điều khiểntương ứng. Sau đó, dữ liệu sẽ được định dạng và đặt vào giaodiện để đưa ra trình duyệt của người dùng.

Page 11: Drupal framework xanh

CơChếHook

• Trong một thời điểm xác định trước, Drupal thực thi các hook. Hệ thống sẽ dựa vào hook để kiểm tra một số hoặc tất cả cácmodule đang được bật, tìm kiếm các hàm theo khuôn mẫuđược định nghĩa trước. Một số mẫu liên kết quá trình này vớiphương thức "callback" thường được sử dụng trong mô hìnhxử lý sự kiện. Cơ chế hook cũng tương tự như thế.

Page 12: Drupal framework xanh

CácKháiNiệmCơBản:

• Node

• User

• Block

• Menu

• Form

Page 13: Drupal framework xanh

Node

• Node la một mẫu nội dung dạng văn bản tổng quát trongDrupal được gọi bằng thuật ngữ. Một node, hiểu theo cáchcủa Drupal, là một đối tượng tổng quát dùng để biểu diễn nộidung dạng văn bản. Tuy nhiên, với khả năng tùy biến củaDrupal, người phát triển có thể tạo ra các module mở rộngkhả năng trình bày của node để có thể hiển thị các nội dung ngoài văn bản thuần túy, như hình ảnh, video hay các file âmthanh.

Page 14: Drupal framework xanh

User

• Một kiểu đối tượng quan trọng khác trong Drupal là đốitượng User. Giống như comment và node, dữ liệu người dùngcũng được lưu trữ trong cơ sở dữ liệu và được lấy ra trong quátrình xử lý. Thông tin về người dùng được sử dụng trong việcxác thực, định nghĩa các thiết lập cá nhân và quyền hạn, và tạocác bản log.

Page 15: Drupal framework xanh

Block

• Một khái niệm quan trọng trong Drupal là Khối (block). Nếumột node được sử dụng để lưu trữ và trình bày các bài viết vàmẫu tin lớn thì khối được dùng để biểu diễn các nội dung nhỏhơn. Ví dụ, menu điều hướng, đoạn trích dẫn, khung bầu chọnhay ô tìm kiếm thường được thể hiện dưới dạng các khối.

Page 16: Drupal framework xanh

Menu

• Một khái niệm liên quan chặt chẽ đến khối là menu. Drupal cómột hệ thống menu phức tạp được sử dụng với mục đíchchính là xây dựng điều hướng cho trang web.

• Hệ thống này còn thực hiện chức năng như một công cụ dùngđể ánh xạ các URL tới chương trình điều khiển riêng. Bằngcách sử dụng API menu, người phát triển có thể liên kết cácđường dẫn tới hàm định nghĩa trước.

Page 17: Drupal framework xanh

Form

• Cách chủ yếu để đưa thông tin, nội dung lên Web là thông qua các form HTML.

Page 18: Drupal framework xanh

XâyDựngGiaoDiện

• Giao diện bao gồm một bộ tài nguyên bao gồm các mẫu PHP, CSS, Javascript và hình ảnh, tạo nên bố cục và cách trình bàycho nội dung trong Drupal.

• Để xây dựng một giao diện mới, ta đăng nhập vào admin (quyền cao nhất), sau đó nhấp vào Appearance:

Page 19: Drupal framework xanh

XâyDựngGiaoDiện

• Có 2 cách cài đặt, 1 là ta sẽ chọn install new theme, Và nhấnvào nút Browse để tải file nén để cài đặt.

• Hoặc với cách 2, ta sẽ giải nén file đó và đặt file đã được giảinén vào đường dẫn sau: drupal 7.x\themes.

Page 20: Drupal framework xanh

Kết Nối Cơ SởDữ Liệu

• Drupal xác định được CSDL, tài khoản và mật khẩu của ngườidùng khi thiết lập kết nối bằng cách phân tích file settings.php. nằm trong thư mục sites/default. Dòng thông tin định nghĩakết nối tới CSDL có dạng: $db_url= 'mysql://username:password@localhost/databasename';

• Phương thức định nghĩa kết nối là mysql hoặc pgsql phụ thuộcvào CSDL được sử dụng là MySQL hay PostgreSQL.

• Một đoạn mã bên ngoài muốn truy cập vào CSDL của Drupal sẽ phải gọi include_once(‘includes/bootstrap.inc’)sau đó gọidrupal_bootstrap(DRUPAL_BOOTSTRAP_DATABASE) để tạo kếtnối, sau đó thực hiện truy vấn bằng hàm db_query().

Page 21: Drupal framework xanh

Kết Nối Cơ SởDữ Liệu

Page 22: Drupal framework xanh

TruyVấnĐơnGiản

• Drupal cung cấp hàm db_query() để thực thi một truy vấn tớikết nối đang hoạt động. Những truy vấn được hỗ trợ bao gồmSELECT, INSERT, UPDATE và DELETE.

• Ví dụ: Lấy tất cả các hàng của một trường từ bảng joke có vid là số nguyên, có giá trị bằng $node->vid:

db_query('SELECT * FROM {joke} WHERE vid = %d', $node->vid);

Page 23: Drupal framework xanh

CáchViếtMộtModule

• Một module gồm hai file chính: một file.info và mộtfile.module.

• File dạng info sẽ chứa thông tin của module đó. File này baogồm các thành phần chính sau:

Name = <tên của module>

Description = <mô tả>

Core = 7.x

Page 24: Drupal framework xanh

CáchViếtMộtModule

• File.module là file quan trong nhất. Ở đây quyết định các thaotác của module. File này được bắt đầu bằng <?php.

Page 25: Drupal framework xanh

File module• Ở đây ta demo một module đơn giản đó là xuất ra hello word:• File.module của nó như sau:• <?php• function hello_menu() {• return array(• 'hello' => array(• 'title' => 'Hello',• 'page callback' => 'hello_page',• 'access callback' => 'user_access', • 'access arguments' => array('access content'),• ), • ); • } •

• function hello_page() { • return array( • '#type' => 'markup', • '#markup' => t('Hello.'), • ); • }