Cho mình hỏi trong Drupal 7 làm thế nào để khi xem một bài viết chi tiết thì xuất hiện Bài cùng chuyên mục giống như thongtincongnghe.com.

Mình tạo View cho các bài trong một chuyên mục nhưng không biết cách đưa vào như thế nào để khi xem một bài viết chi tiết thì Bài cùng chuyên mục mới xuất hiện.

Thank !

Bình luận

  • TTCN (6)
Hải Nam  30903

Có 2 cách để làm. Bạn dùng argument và relationship trong Views. Khi bạn xem 1 bài thì lấy argument chính là NID, rồi thêm relationship từ NID -> TID, thêm 1 relationship nữa từ TID -> NID (của bài liên quan). Cách này thì mình không rõ có thể bỏ NID của bài hiện tại khỏi danh sách bài liên quan được không.

Cách thứ hai, mà TTCN làm, là dùng Panels để chuyển argument sang Views. Khi đó Views có 2 argument là NID và TID.

Ly Phuong  25

Trong Views mình dùng Relationship và Argument với NID và TID.

Mình dùng MiniPanels chèn Views vào để hiển thị, khi truyền Argument cho Views. Trong trường hợp này khi mình xem một bài viết chi tiết thì nó mới phát sinh NID và TID vậy tại mục Argument mình truyền như thế nào.

Hải Nam  30903

Hình như bạn đang dùng lẫn lộn giữa 2 cách ở trên rồi. Trong Views bạn không cần relationship, chỉ cần khai báo là có 2 arg là NID, TID. Sau đó vào phần Settings của Views trong cái panel đó để chọn cái nào ứng với arg nào.

Ly Phuong  25

Khi mình xem một link bài viết chi tiết thì nó mới nhận giá trị NID và TID qua url (ví dụ link url của một bài node/8 có NID là 8), thì làm sao để mình nhận giá trị NID là 8 và cả TID để truyền argument cho View từ Panel. Để khi xem chi tiết một bài viết thì nó mới xuất hiện Các bài viết cùng chuyên mục với bài viết đó. Giá trị NID và TID luôn thay đổi khi người dùng xem các bài khác nhau, mình chưa biết cách nhận giá trị NID và TID để đưa tham số vào argument mà phần Settings của Views, Panel truyền cho View theo cách này.

Còn trường hợp sử dụng Panel chèn các View đưa argument TID để hiển thị các bài theo từng chuyên mục thì giá trị TID là mình biết trước là của chuyên mục nào mình muốn hiển thị. (ví dụ có 2 chuyên mục Thể thao có TID=1, Kinh tế có TID=2 thì mình biết trước giá trị là 1 hoặc 2 để truyền argument cho View từ Panel).

Hải Nam  30903

Nó kiểu thế này (Views settings trong 1 pane). Bạn đọc tài liệu về Views và Panels là rõ ngay. Trong Panels khi ở 1 trang, nó có sẵn rất nhiều context (tự nó chuyển NID thành các context), bạn chỉ việc chọn context và chuyển cho Views.

Ly Phuong  25

Panel truyền taxonomy term từ node context đến argument cho views thấy nó tùm lum wá trời, để mình tìm hiểu tiếp.

Thank Hải Nam đã giúp mình!