Saturday, September 21, 2019

Hướng dẫn tạo một kiểu nội dung mới trong Website drupal 8

Mặc định khi tạo website, Drupal tự động tạo ra 1 cấu trúc tin bài gồm các trường tiêu đề tin, nội dung tin, thẻ, hình ảnh đại diện tin. Với cấu trúc mặc định này, chúng ta hoàn toàn có thể sử dụng cho các website blog hay website tin tức. Chúng ta cũng có thể thiết kế thêm hoặc bớt các trường trong cấu trúc này, Ví dụ như thêm 1 trường bình luận, thêm 1 trường tác giả bài viết .... Tuy nhiên, trong 1 số trường hợp chúng ta muốn thiết kế riêng 1 cấu trúc cơ sở dữ liệu khác mà không muốn thay đổi cấu trúc tin mặc định của website drupal. Trường hợp này ta phải tạo mới 1 kiểu nội dung và thêm các trường mà chúng ta muốn vào.

Để làm ví dụ cho bài viết này mình sẽ hướng dẫn mọi người thiết kế 1 kiểu nội dung về phim (có thừa kế 2 trường Thể loại phim và Đạo diễn ở bài trước).

Trước tin ta phải suy nghĩ xem kiểu nội dung phim mà ta muốn tạo ra có bao nhiêu trường khóa, ở đây để đơn giản mình chỉ làm 1 số trường cơ bản như:
1. Tittle - Tiêu đề phim
2. Short content - Nội dung giới thiệu phim
3. Image - Hình ảnh đại diện phim
4. Director - Đạo diễn phim
5. Kind of film - Thể loại Phim

Sau khi đã xác định các trường và kiểu nội dung, ta bắt đầu thực hiện tạo nó trên website drupal.

Bước 1: chọn Structure (cấu trúc) --> Content Types (Kiểu nội dung)

Trong cửa sổ Content Types chúng ta nhìn thấy hiện tại mặc định Drupal tạo ra 2 kiểu nội dung. 1 là Article (tin bài) và Basic Page (trang). Nếu muốn tạo mới 1 kiểu nội dung (ở đây ta sẽ thực hành kiểu nội dung phim), Ta bấm vào nút lệnh Add Content Type


Ở trong cửa sổ Add content type:
Name (bắt buộc): gõ vào tên của kiểu nội dung mà ta muốn tạo mới (có thể gõ Tiếng Việt hoặc Tiếng Anh miễn sao dể nhớ là được)
- Title Field Lable (bắt buộc): Là cái nhãn của trường tiêu đề, vì Kiểu nội dung là Phim nên ta đặt là Tiêu đề phim cho dể nhớ
- Ở trong cửa số này còn thêm 3 mục:
1: Publishing Options: Phần này người dùng có thể nhập các tùy chọn liên quan đến việc công khai tin sau khi lưu.
2. Display Settings: Tùy chọn hiển thị thông tin về tác giả và người giờ tạo tin
3: Menu Settings: Các tùy chọn về menu liên quan đến kiểu nội dung này.
3 phần này mọi người tự nghiên cứu thêm, có gì ko hiểu cứ comment mình giải thích
Bấm Save and Manage Fields để lưu và chuyển sang phần quản lý các trường của Kiểu nội dung vừa tạo

Ở Phần cửa sổ Manage Fields - Quản lý trường có 5 phần cần chú ý:

1: Manage Fields: Quản lý các trường của kiểu nội dung: Phần này cho phép ta thêm mới, xóa, sửa các trường trong kiểu nội dung.
2: Manage Form Display: Phần này cho phép chúng ta thiết lập việc hiển thị các trường của kiểu nội dung trong Form nhập liệu. (tý vào phần chi tiết sẽ dể hình dung hơn)\
3: Manage Display: Cho phép người dùng thiết lập việc hiển thị các trường của kiểu nội dung trong phần hiển thị tin.
4. Danh sách các trường của kiểu nội dung: mặc định khi tạo ra 1 kiểu nội dung thì sẽ có 2 trường. Title (Tiêu đề)Body (nội dung)
5. Add Field: Thêm mới 1 trường vào kiểu nội dung

Bước 2: Thêm 1 trường mới cho kiểu nội dung Phim.
- Thêm trường hình ảnh:
Bấm chọn Add Field, giao diện Add field mới xuất hiện, Có 2 giá trị cần chọn cho 1 trường dữ liệu. Thứ nhất là kiểu dữ liệu của trường (ở đây vì là hình ảnh nên ta chọn kiểu Image), thứ 2 là Lable (nhãn) cho trường dữ liệu (chúng ta gõ vào nhãn cho dễ nhớ). Bấm Save and Continue để lưu lại thông tin trường vừa tạo mới

Cửa sổ tiếp theo cho phép chúng ta thiết lập giá trị cho trường dữ liệu. 
- DEFAULT IMAGE: là các thông tin về hình ảnh mặc định, có nghĩa là nếu chúng ta không nhập giá trị cho trường hình ảnh này, Website sẽ tự động lấy các giá trị mặc định này gán cho trường.
- Allowed number of values: Là cho phép bao nhiêu giá trị cho trường hình ảnh này. (Limited 1 có nghĩa là tối đa 1 hình ảnh, ta có thể thay đổi thành Limited 2,3,4 hoặc Unlimited là không giới hạn về giá trị nhập vào)


Bấm Save Field Settings để lưu các thiết lập.

Trường dữ liệu đã được tạo thành công, bấm Add Field để thêm 1 trường khác

- Ở bước tiếp theo, ta sẽ tạo ra trường Đạo diễn, Dữ liệu của trường đạo diễn lấy từ danh mục Đạo diễn đã cập nhật trước đó (xem bài Tạo mới 1 danh mục trong website drupal)
- Ở phần Add a new Filed - Kiểu dữ liệu ta chọn Taxonomy Term (Vì Danh mục đạo diễn là 1 Taxonomy)
- Lable: ta gõ nhãn của trường vào (Đạo diễn hoặc Đạo diễn phim hoặc .... tuỳ các bạn)
- Bấm Save and Continue để lưu và tiếp tục phần thiết lập giá trị cho trường

Trong phần Field Settings:
- Allowed number of values: Cho phép trường này nhận tối đa bao nhiêu giá trị (ở đây mình chọn 2 tương ứng với việc được cập nhật 2 đạo diễn cho 1 phim)
- Bấm Save Field Settings để lưu lại và qua bước tiếp theo


Ở phần tiếp theo, tiếp tục với các thiết đặt cho giá trị trường Đạo diễn
- Required Filed: Nếu được đánh dấu thì trường này bắt buộc phải nhập giá trị khi cập nhật 1 thông tin phim.
- Default value: Gía trị mặc định cho trường. bỏ qua nếu ko có giá trị mặc định
- Create referenced entities if they don't already exist: Nếu đánh chọn tuỳ chọn này có nghĩa là trường hợp có 1 đạo diễn mà người dùng nhập vào chưa có trong danh mục đạo diễn trước đó, thì sẽ tự động cập nhật vào danh mục đạo diễn để sử dụng cho các lần sau.
- Vocabulary: Cuối cùng là chọn danh mục tương ứng với trường dữ liệu.
Bấm Save Settings để lưu thông tin c



Tương tự tạo 1 trường dữ liệu Thể loại Phim và lấy dữ liệu từ danh mục Thể loại Phim đã tạo trước đó.

Chổ này mình chọn Unlimited - Không giới hạn giá trị nhập vào cho trường dữ liệu. Nghĩa là 1 phim có thể thuộc rất nhiều thể loại như Hành đồng, Tình Báo, Viễn Tưởng, Tình cảm ...

Ở bước này thì mình lại không cho người dùng tự động thêm các Thể loại mới. Đồng nghĩa với việc chỉ được chọn trong danh mục Thể Loại Phim do mình đã định nghĩa sẵn.


Sau khi Lưu lại ta được 4 trường dữ liệu trong Kiểu nội dung phim

Bước 3: Chuyển sang Thẻ Manage Form Display:
Như giới thiệu ở trên, Thẻ này quy định việc hiển thị các trường dữ liệu trong Form nhập dữ liệu phim. Chúng ta có thể bấm vào biểu tượng có hình mủi tên 4 phía giữ và kéo trường dữ liệu lên, xuống để duy định trường dữ liệu đó nằm trước hay sau các trường khác.
- Nếu chúng ta muốn trường đó ko xuất hiện trong Form nhập dữ liệu, chỉ cần kéo xuống phần Disabled.
- Hình ảnh bên dưới ta có thể thấy đối với trường Đạo diễn, ta quy định việc nhập bằng cách gõ dữ liệu vào và tự động hiện lên các tên đạo diễn tương ứng trong danh sách. Còn đối với Thể loại phim, ta chọn hình thức nhập dữ liệu là liệt kê ra các danh sách đạo diễn và đánh chọn đạo diễn phù hợp.
Việc quy định này là do chúng ta quy định, các bạn có thể thử các phương thức khác trong danh sách để chọn phương thức nào phù hợp nhất.


Bước 4: Cấu hình phần hiển thị tin - Manage Display
Tương tự như bước 3.
Cột LABLE quy định nhãn của trường dữ liệu có được hiển thị trong phần hiển thị tin hay ko, nếu không muốn LABLE hiện ra, có thể chọn giá trị hidden cho trường tương ứng.


Sau khi bấm SAVE, chúng ta đã hoàn tất việc tạo mới 1 kiểu nội dung và các trường tương ứng.

Bước 5: Nhập dữ liệu vào kiểu nội dung phim.
Bấm vào mục Content --> Add Content để thêm bài viết cho 1 kiểu nội dung


Có 3 kiểu nội dung trong hệ thống (2 kiểu mặc định, 1 kiểu chúng ta vừa mới tạo ra)
Ta chọn nhập bài viết mới cho kiểu nội dung phim

Giao diện nhập nội dung cho kiểu nội dung Phim xuất hiện, Thứ tự các trường xuất hiện giống như ta đã bố trí ở phần Manage Form Display

Tuần tự nhập giá trị vào cho các trường nội dung


Bấm Save để lưu tin, sau khi Lưu, tin tự động được hiển thị (public) trên website


Phần hiển thị giống như ta đã thiết lập ở Tab Manage Display trước đó

Trên là bài hướng dẫn chi tiết cách tạo 1 kiểu nội dung mới, so với việc thiết kế CSDL từ MYSQL rồi dùng lệnh kết nối vào để tạo ra các Form nhập liệu, hiển thị nội dung thì Drupal cho chúng ta 1 cách làm cực kỳ dễ dàng và nhanh chóng. Hy vọng các bạn có thể thực hiện thành công và sớm tạo cho mình 1 website ưng ý.


Nếu thấy hữu ích hảy chia sẻ bài viết này trên:  

0 nhận xét:

Post a Comment