Cấu trúc giao diện và thông tin ở Drupal

Cấu trúc giao diện Drupal

Theme

1, page.tpl.php về cơ bản là nơi bố trí chính, chứa toàn bộ website (bạn không nên thêm các thẻ body trong trang này). Nếu bạn đang bắt đầu từ một tập tin HTML, bạn có thể đổi tên nó page.tpl.php và bắt đầu gõ vào các yếu tố cần thiết.

2, trong Drupal 7 tất cả mọi thứ chứa nội dung là một khu vực (region), ngay cả những khu vực chứa block "content".

3, node.tpl.php là đại diện theo chủ đề của một mục nội dung.

4, block.tpl là một phần của nội dung có thể được viết bằng HTML hoặc được tạo ra từ một mô-đun. (Giống như các khối chức năng đăng nhập hay tin mới nhận, ...)

5, region.tpl là những khu vực chứa trong đó nhiều khối block. Chúng được quy định tại các tập tin .info. Và được gọi trong page.tpl.php

- Khi tạo ra các tập tin theme.info, bắt đầu từ Drupal 7, bạn cần một khu vực được gọi là "content" hoặc các chủ đề sẽ hiển thị.

- Dưới đây là một danh sách các tập tin nhân tpl:

  • html.tpl.php
  • page.tpl.php
  • region.tpl.php
  • block.tpl.php
  • node.tpl.php
  • comment-wrapper.tpl.php
  • comment.tpl.php
  • field.tpl.php

Sơ lượt cấu trúc thông tin ở Drupal

1.Quá khứ (Drupal 6)

  • Các loại dữ liệu chính: Node, User, Comment, Taxonomy term (mỗi loại dữ liệu này đều có key (hay còn gọi là property - thuộc tính) và data).
  • Dữ liệu quản lý theo cách khác nhau, ví dụ Node có cách tương tác của node (hook_nodeapi), User có cách tương tác của user (hook_user).
  • Truy xuất theo cách khác nhau.
  • Lưu trữ theo cách khác nhau.
  • Dẫn đến truy xuất/mở rộng/chia sẽ khó khăn.
  • Hầu như dữ liệu mở rộng đều phụ thuộc vào node (vậy có loại dữ liệu mới phải phụ thuộc rất nhiều vào workflow cũng như cách tương tác của node).
  • Hầu như coi dữ liệu trên Drupal là liên quan tới content trên web là chính.

2. Hiện tại và tương lai (Drupal 7 trở về sau)

  • Quản lý dữ liệu chung một chổ dựa trên ý tưởng của CCK với tên gọi mới là Field API.
  • Đưa ra khái niệm Entity (tập hợp những loại dữ liệu giống nhau) giải quyết được vấn đề mở rộng kiểu dữ liệu không phải phụ thuộc vào Node như xưa nữa.
  • Kế thừa và phát triển khái niệm Field ở CCK.
  • Mỗi Field đều có một Info (thông tin của Field), Schema (cấu trúc dữ liệu của field), Widget (cách nhập liệu hay gọi là Form), Formatter (cách hiển thị của Field hay còn gọi là Display) và Storage (cách lưu trữ dữ liệu của Field).
  • Phát triển và mở rộng khái niệm content type ở Drupal 6 lên thành Bundle của một Entity type.
  • Xây dựng cơ chế gắn một Field vào một Bundle tạo thành một Instance và được gọi chung Field, Instance và Bundle là Data Structures.
  • Xây dựng cơ chế lưu trữ liệu liệu cho một Field gọi là Field Storage API.
  • Xây dựng cơ chế truy xuất quản lý dữ liệu cho Field (CRUD) được gọi là Field CRUD API.
  • Node, User, Comment, Taxonomy term thành Entity hết và content type của node bây giờ gọi là Bundle.