Tìm hiểu mã nguồn mở PHP CMS Drupal hướng dẫn tìm hiểu Views, sức mạnh kinh khủng của Drupal - bài 9
Tiếp theo loạt bài viết về Drupal : Loạt bài đều nói về Drupal 8 nhé các bạn. Bài 1 Bài 2 Bài 3 Bài 4 Bài 5 Bài 6 Bài 7 Bài 8 Tổng quan Những ai sử dụng Drupal và muốn hợp tác trường kỳ với Drupal có thể nói chỉ vì 1 lý do: Views của Drupal. Không ai mà sử dụng Drupal lại ...
Tiếp theo loạt bài viết về Drupal:
Loạt bài đều nói về Drupal 8 nhé các bạn.
- Bài 1
- Bài 2
- Bài 3
- Bài 4
- Bài 5
- Bài 6
- Bài 7
- Bài 8
Tổng quan
Những ai sử dụng Drupal và muốn hợp tác trường kỳ với Drupal có thể nói chỉ vì 1 lý do: Views của Drupal. Không ai mà sử dụng Drupal lại không dùng Views. Views của Drupal mang một sức mạnh kinh khủng, nó linh hoạt vô cùng. Views tạo ra vô số các chức năng mà chúng ta không cần phải đụng tới Code, trong khi các CMS khác phải đụng tới Code.
Sự linh động của Views có thể nói là vô cực, chúng ta có thể tạo ra hàng trăm ngàn - nhắc lại là hàng trăm ngàn nhé - chức năng khác nhau cho website của chúng ta khi dùng Views. Bản thân người viết bài này cũng không dám nói mình có thể làm việc với hết tất cả chức năng do views tạo ra.
Tạo 1 view mới
Để có thể sử dụng views, chúng ta trước tiên phải cài đặt modules này. Nếu bạn chưa biết cách cài đặt module trong Drupal, vui lòng xem lại bài 3 Modules. Để tạo 1 views mới, ta vào admin/structure/views, giaio diện tổng quản lý views sẽ hiển thị.
Tại đây có sẵn 1 số chức năng views mặc định hệ thống tạo sẵn, nhưng thường chúng ta sẽ không sử dụng. Có những module sẽ tạo ra những views mới cho chúng ta nhưng chúng ta cũng rất ít can thiệp vào những views do modules tạo ra. để tạo views theo đúng ý của chúng ta, ta vào Add new view như hình trên. Hệ thống quản trị sẽ hiển thị như hình dướng.
View name: Tên hay còn gọi là label của views này. Machine name: machine name này quan trọng, đừng nên đặt tùm lum. Description: Mô tả tác dụng của views này, hay mô tả chức năng của views này để làm gì. Show: Phần này quan trọng nhất, chúng ta phải xác định views này sẽ hiển thị gì là chính? Hiển thị Content là hiển thị nội dung, hiển thị các field của content type là chính. Ví dụ như chúng ta muốn hiển thị các field của content type sản phẩm Hiển thị Taxonomy Terms là hiển thị danh mục/ terms, hiển thị các field của taxonomy/terms là chính. Ví dụ như chúng ta muốn hiển thị các danh mục sản phẩm (tems) Hiển thị Users là hiển thị thành viên, thông tin người dùng, hiển thị các field của user là chính. Ví dụ như chúng ta muốn hiển thị các thông tin khác của thành viên như avatar, signature .... Hiển thị Files là hiển thị các file được upload lên website, hiển thị thông tin các file là chính. Hiển thị Comments là hiển thị comment, hiển thị các field của comment là chính. Create a page: Là 1 trong 2 loại hiển thị chính của Views trong Drupal. Hiển thị theo loại "page" này buộc chúng ta phải nhập đường link (path), và page luôn luôn được hiển thị ở block "main content", cũng tức là nơi hiển thị nội dung chính của chúng ta. Create a block: Là 1 trong 2 loại hiển thị chính của Views trong Drupal. Hiển thị theo loại "block" này không bắt buộc chúng ta phải nhập đường link (path), và block muốn được hiển thị ở vị trí nào thì vào trang quản trị của block điều khiển. Vậy chúng ta muốn views các nội dung, field của content type sản phẩm nên ta sẽ nhập 1 số thông tin như hình bên dưới.
Click vào Save and edit để tiếp tục. Giao diện thiết lập views chính sẽ xuất hiện như hình bên dưới. Trước hết chúng ta sẽ xem tổng quan các vấn đề phụ của trang views này. Hiện tại chúng ta đang tạo 1** page view**, (không phải block view nên buộc phải nhập path). Nếu chúng ta muốn tạo thêm những page khác hoặc những block khác ta click vào Add, rồi chọn loại views mà chúng ta muốn. Attachment là loại view đính kèm vào views khác. rất hữu dụng trong trường hợp chúng ta cùng hiển thị 2 page views cùng 1 lúc. Muốn edit lại view name thì chúng ta click vào "edit view name/description", hoặc ta có thể clone views hiện tại, delete views hiện tại ngay tại mục này, ở mũi tên trỏ xuống. Trường hợp ta chỉ muốn thao tác trên các page view hay block view, chúng ta click vào "view Page", trong đó ta có thể xóa Page (delete page), clone page, disable page. Tương tự block view cũng vậy.
Các thành phần chính của view (quan trọng)
Dưới đây là các thành phần chính của views mà bất kỳ lúc nào ta tạo view, chỉnh sửa view đều phải kiểm tra tổng thể xem có đúng ý mình không.
Title: tiêu đề của views. Format: định dạng của views. Hay còn gọi là cách hiển thị trang view này. Unformatted list, đây là kiểu hiển thị nội dung mặc định, chưa được định dạng. Cực kỳ quan trong nếu chúng ta muốn hiển thị views theo ý riêng của chúng ta. Table: Nội dung được hiển thị theo dạng bảng. Grid: Nội dung được hiển thị theo dạng từng ô. Jump menu: nội dung được hiển thị theo dạng combo box. HTML list: nội dung được hiển thị theo dạng danh sách List (ul, li) trong HTML. Lưu ý: Tất cả các kiểu hiển thị trên đều có những cấu hình, config riêng. Show: cũng là 1 kiểu hiển thị khác, mặc định là "Content". nếu chọn kiểu content này thì khi sử dụng format "Grid" hoặc "Unformatted List", chúng ta không được phép can thiệp vào Fields (phần quan trọng bậc nhất của Views trong Drupal). Nội dung hiển thị sẽ được lấy từ mục "Manage display (teaser)" của content type. Xem lại bài 5 - content type để nhớ rõ hơn về mục Manage display. Nhưng mục Show này thường thì chúng ta sử dụng "Fields" để hiển thị các fields theo yêu cầu chúng ta muốn. Fields (Cực kỳ quan trọng): Click vào Add để thêm các fields mà chúng ta muốn hiển thị. (Mục Show chúng ta phải chuyển sang Fields mới được phép Add fields vào đây).
Theo hình bên trên thì mục Show đã chuyển sang Field, ta có thể add thêm fields như hình trên gồm: Title, Image, Total views. Lưu ý mỗi field như vậy đều có những config khác nhau, cũng khá quan trọng khi ta cần hiển thị theo yêu cầu của chúng ta. Filter criteria (Cực kỳ quan trọng): điều kiện hiển thị nội dung của chúng ta. Click vào Add để thêm điều kiện lọc, arrange để sắp xếp điều kiện Or / And. Theo hình ảnh bên trên thì hiện tại ta đang lọc là: Điều kiện 1 là bài viết phải ở trạng thái "Publish", điều kiện 2 là bài viết phải thuộc loại "Truyện" Sort: Sắp xếp kết quả hiển thị. Click vào Add để thêm điều kiện sắp xếp, arrange để sắp xếp điều kiện ưu tiên cái nào trước. Theo hình ảnh ví dụ bên trên thì hiện tại điều kiện sắp xếp là: sắp xếp theo "ngày đăng mới nhất". Page settings: Đối với page view thì path là quan trọng nhất. chúng ta chắc chắn sẽ nhập path của view để sau này dễ dàng truy cập. Theo hình ảnh ví dụ bên trên thì hiện tại path của chúng ta là "san-pham". khi khách hàng vào tenmien.com/san-pham sẽ vào trang views này. Block settings: Đối với block view thì block name là cái tên sẽ hiển thị ra trong mục block. Header, Footer: Là 2 khu vực đầu và chân của page view. Click vào Add để thêm field vào Header hay Footer của views. Theo hình ảnh ví dụ bên trên thì hiện tại Header và Footer ta đang để trống, vì không cần thiết nên không add thêm vào. Pager: Đây là phần phân trang. Có những page views chúng ta cần phân trang như trang sản phẩm. chúng ta có cả ngàn sản phẩm, vậy 1 trang bao nhiêu sản phẩm? chúng ta set tại đây. Display a specified number of items: Hiển thị 1 số lượng item nhất định. Ví dụ như block này chỉ hiển thị đúng 5 sản phẩm mới nhất. (không phân trang gì cả). Display all items: Hiển thị tất cả item hiện có. Paged output, full pager: Phân trang theo thứ tự như: First << Previous << 3 4 5 >> Next >> Last Paged output, mini pager: Phân trang nhưng bố cục đơn giản hơn như: Previous << 2 of 20 >> Next More link: Cho phép ta tạo ra 1 nút như "Read more" của block, khi người lướt website click vào sẽ dẫn đến link chúng ta đặt sẵn. Theo hình ảnh ví dụ bên trên thì hiện tại pager đang set là hiển thị đúng 10 sản phẩm, không phân trang gì cả. kết hợp với sắp xếp theo ngày đăng mới nhất ở mục Sort thì page view này đang lấy ra 10 sản phẩm có ngày đăng gần đây nhất. Ngoài ra còn có 1 mục cực kỳ quan trọng là Advance. Trong mục Advance này chứa những phần quan trọng giúp ta làm nên 1 website có cấu trúc và chức năng cực kỳ đa dạng. 2 phần quan trọng nhất của nó là Relationships và Contextual filters
Cuối cùng là save lại, và ta đã có 1 trang Danh sách Truyện. Bạn thử vào trang /danh-sach-truyen sẽ thấy kết quả của page views.
Tổng kết
Views là 1 thành phần cực kỳ quan trọng mà bất kỳ ai sử dụng drupal cũng sử dùng. Có thể nói gần như 100% views được sử dụng trong các dự án website sử dụng drupal. Thật chất của views trong drupal là truy vấn cơ sở dữ liệu. Bài này mình chỉ hướng dẫn bạn các vấn đề cơ bản của views thôi, còn lại các bạn phải tự tìm hiểu lấy hoặc trong các chức năng cụ thể của những bài học sau, mình sẽ hướng dẫn và giải thích, sử dụng luôn, kể cả phần Advance của views mình sẽ hướng dẫn ở các tình huống cụ thể, làm các chức năng cụ thể bằng views mà sử dụng relashionship và contextual filter.
Tham khảo
- Drupal 8 docs
- squallphu