basic views drupal 7
DESCRIPTION
cơ bản về views drupal 7 cho người mới học newbieTRANSCRIPT
Chuẩn bị
Cơ bản về dữ liệu
Views UI
Định dạng dữ liệu
Lọc dữ liệu
Sắp xếp dữ liệu
Bài tập cơ bản
Overview
Cài đặt drupal 7 trên localhost và cài đặt module Views (cần cài them module Ctools)
Sử dụng module Devel để tự động tạo node và term
Chuẩn bị
Tạo content type là tin tức (tin_tuc) gồm các trường như hình dưới
Chuẩn bị
Cơ bản về dữ liệu
Data primer
Chúng ta thường nhầm lẫn giữa hai thuật ngữ “dữ liệu” (data) và “thông tin” (information). Nhưng thực tế, chúng là hai khái niệm khác nhau.
“Dữ liệu” chỉ là một phần của thông tin.
Để biểu lưu trữ và sử dụng dữ liệu một cách hiệu quả, người ta sử dụng các cách thức lưu trữ gọi là Cơ Sở Dữ Liệu (database).
Mô hình được sử dụng nhiều nhất là mô hình CSDL quan hệ (relational database)
Phần mềm dùng để quản lý dữ liệu gọi là Hệ Quản Trị CSDL (database management system)
Các DMS thường gặp: Mysql, Oracle, PostgreSQL, SQL Server, DB2, Infomix
Drupal hỗ trợ nhiều DMS, thậm chí hỗ trợ cả NoSQL (MongoDB)
Drupal data
Các thao tác trên dữ liệu
• Lọc – filtering (lấy trực tiếp và lọc theo điều kiện)
• Sắp xếp – sorting
..và cách mà dữ liệu hiển thị
• Dạng bảng – tables
• Dạng ô lưới – grids
• Dạng danh sách - lists
Data views
Để thao tác với dữ liệu, người ta dùng ngôn ngữ SQL, tuy nhiên nó khó sử dụng và phức tạp.
Để giải quyết điều đó, module Views ra đời.
“view” chỉ là một khái niệm của Drupal, thực chất nó có nghĩa là “quản lý dữ liệu”
Module views cung cấp khả năng lọc, sắp xếp và trình bày dữ liệu sử dụng giao diện đồ họa mà không cần phải viết các câu lệnh SQL phức tạp.
Data views
Module Views là một trong những module phổ biến nhất, được tích hợp chặt chẽ và có sự hỗ trợ tốt với Drupal
Views cung cấp một những truy vấn thông minh cho phép lọc nội dung từ content type, user, taxonomy và cả theo từng field.
Nhiều module con được tạo ra để mở rộng và cung cấp thêm nhiều tính năng mạnh mẽ cho Views như các module filed type (node reference…), module cung cấp kiểu format (views slideshow, jcarousel…)
Views UI
Views control panel
Đi tới Administration » Structure » Views
Trên tab list liệt kê tất cả các view
Các tùy chọn:
Add new view: them một view mới
Đối với một view đã lưu, có các tùy chọn:
• Edit: chỉnh sửa view• Disable: tắt, không sử dụng view• Delete: xóa view• Clone: tạo một bản sao của view• Export: xuất view
Add new viewTạo một view mới
Machine-radable name: tên dùng trong code
Discription: mô tả chi tiết về view
Create a page & create a block: Một display view có thể xuất ra dạng page hoặc block. Đối với page cần thêm đường dẫn (path) cho nó.
Display format:: dạng hiển thị cho dữ liệu xuất ra, gồm:
• Grid• Unformatted list• jump menu• Table• html list
Ngoài ra có thể mở rộng bằng các module tích hợp khác.
Tùy thuộc vào loại dữ liệu ta chọn ở mục show là content hay filed… mà build mode sẽ có các tùy chọn là teaser, full posts.. Hoặc field. Về build mode sẽ nói kỹ trong phần sau.
Xong nhấp continue & edit
View UI
1. Các display
2. Tên display
3. Các thao tác chọn lọc, sắp xếp và dạng hiển thị dữ liệu
4. Thiết lập cho display
5. Tùy chọn nâng cao
View Displays
Một View có thể có nhiều Display
Mỗi display mặc định sẽ kế thừa thuộc tính của display Master
Mỗi view có tên riêng, tên này hiển thị trên thanh tab trên cùng.
Mỗi display có nhiều dạng kết xuât là
Page
Block
Feed
Attachment
Ngoài ra có thể có thêm các dạng khác do các module tích hợp với view cung cấp
Định dạng dữ liệu
FORMAT
Field là đơn vị dữ liệu nhỏ nhất mà view có thể “lấy” được.
Ngoài ra view có thể lấy được các thực thể phức hợp khác như content, taxonomy term, users, comments…hoặc các dữ liệu cho module khác cung cấp.
Tùy mục đích mà ta chọn dữ liệu phù hợp.
Để lấy ra từng field trong nhóm FORMAT chọn show fields sau đó add thêm từng field trong nhóm FIELDS.
Dữ liệu sau khi được lấy ra, có thể được hiển thị theo định dạng mong muốn. Để chọn định dang xuất ra, trong nhóm FORMAT chọn format nhấp vào liên kết đầu tiên (ở đây là HTML list)
Format
Có các dạng hiển thị mặc định như sau
Grid: ô lưới
HTML list: danh sách
Jump menu: menu dạng select list
Table: dạng bảng
Unformatted list: không định dạng
Ngoài ra, có thể bổ sung thêm các kiểu định dạng khác bằng module tích hợp với view như views slide show, jcarousel…
Lọc dữ liệu
FILTER CRITERIA
Chúng ta thường yêu cầu lọc dữ liệu theo một yêu cầu nào đó. Ví dụ, chỉ lấy ra những bài viết đã được xuất bản và thuộc loại content type = news, lấy ra các bài viết thuộc chủ đề biển đảo, hay lấy ra một node có id cho trước.
Views cung cấp một bộ lọc (tương ứng với câu lệnh where trong bộ ba select from where trong SQL) để lấy ra dữ liệu theo điều kiện cho trước.
Trong nhóm FILTER CRITERIA chọn add để thêm điều kiện lọc mới.
Tương ứng với mỗi điều kiện lọc sẽ có các tùy chọn khác nhau, các toán tử thường gặp là:
Is one of: tồn tại Is all of: bằng Is none of: không tồn tại Is empty (NULL): rỗng Is not empty (NOT NULL): không rỗng
Filter example
Ví dụ: lọc ra tất cả các bài viết có term là clo
1. Trong nhóm FILTER CRITERIA chọn add, sau đó chọn content: has taxonomy term
Filter example
Ví dụ: lọc ra tất cả các bài viết có term là clo
2. chọn toán tử is one of
Chọn clo trong danh sách term bên phải
Tùy chọn: reduce duplicates dùng để loại bỏ những kết quả trùng nhau.
Xong nhấp Apply
Click Save và xem kết quả.
Sắp xếp dữ liệu
SORT CRITERIA
Thường gặp các yêu cầu lọc dữ liệu như: lấy ra 10 bài viết mới nhất. Lấy ra các bài viết mới được cập nhật…
Trong nhóm SORT CRITERIA chọn add sau đó chọn trường để sắp xếp.
Tương ứng với mỗi điều kiện lọc sẽ có các tùy chọn khác nhau, các tùy chọn thường gặp là:
Ascending: tăng dần
Descending: giảm dần
Sorting example
Ví dụ: lọc ra 10 bài viết xem nhiều nhất
1. Trong nhóm SORT CRITERIA, add thêm trường content statistics: most recent view (cần bật module statistics)
Example
Ví dụ: lọc ra 10 bài viết xem nhiều nhất
2. chọn Sort Descending
Administrative title là tiêu đề cho điều kiện hiện tại thay thế cho tiêu đề mặc định, sử dụng trong trường hợp bạn có nhiều mục trùng lặp hoặc muốn tiêu đề mang tính chất gợi ý hơn.
Bài tập
Exercises
1. Tạo view lọc ra 10 bài viết mới nhất
2. Tạo view lọc ra 10 tin tức mới nhất
3. Tạo view lọc ra tất cả bài viết thuộc chuyên mục kinh tế