Tên thuật ngữ phân loại như bộ lọc theo ngữ cảnh để xem


18

Trong D7, tôi có thể lọc chế độ xem theo tên thuật ngữ phân loại được lấy từ URL. Một ví dụ sẽ là URL này

http://www.gbyte.co/tags/drupal-planet/rss.xml

"hành tinh drupal" sẽ được chuyển đổi thành ID thuật ngữ phân loại mà sau đó sẽ lọc kết quả xem tương ứng.

Bây giờ tôi đã thiết lập chế độ xem D8 tương ứng với bộ lọc theo ngữ cảnh "Nội dung: Thẻ (field_tags)", field_tags là trường phân loại. Tuy nhiên, chế độ xem D8 sẽ chỉ hiển thị kết quả khi tôi chuyển ID thuật ngữ thực tế vào URL như thế này:

http://www.gbyte.co/tags/9/rss.xml

Tôi muốn nó cũng hoạt động với tên hạn như D7 đã làm. Là chức năng bị thiếu, hoặc tôi cần phải cấu hình chế độ xem khác nhau?


Bất kỳ tin tức về điều này? Tôi có cùng một vấn đề
jeroen

Câu trả lời:


20

Tên Thuật ngữ được chuyển đổi thành bộ lọc ID hạn có vẻ bị thiếu cho Chế độ xem D8.

Một cách giải quyết của người xây dựng trang web là thêm các thuật ngữ Mối quan hệ , Phân loại trên nút sau đó để thêm Thuật ngữ phân loại: Bộ lọc tên vào Bộ lọc theo ngữ cảnh bằng cách sử dụng mối quan hệ đã nói ở trên. Chọn hộp kiểm Chỉ định tiêu chí xác thực , đặt Trình xác thực của bạn thành tên thuật ngữ Phân loại & kiểm tra Phân loại thích hợp để lọc.


12
Cạm bẫy của người xây dựng trang web trong D8 thêm UI bộ lọc theo ngữ cảnh: tiêu đề của bộ lọc theo ngữ cảnh là 'Tên' và danh mục là 'Thuật ngữ phân loại'. Tìm kiếm 'phân loại' sẽ không liệt kê bộ lọc này, vì chỉ tiêu đề và mô tả được tìm kiếm, không phải danh mục.
keithm

1
Ngoài ra, bạn có thể ghi đè tiêu đề bằng {{ arguments.name }}trong cài đặt của bộ lọc theo ngữ cảnh.
cptstarling


3

Chỉ vì mục đích hoàn thành, tại thời điểm viết câu hỏi tôi đã xoay sở để giải quyết vấn đề này bằng cách chuyển đổi tên thuật ngữ phân loại từ URL thành ID thuật ngữ trong Views_hook_pre_view () và sau đó sử dụng nó làm đầu vào cho bộ lọc theo ngữ cảnh chấp nhận ID phân loại.

Đây là mã cho hook view:

/**
 * Implements hook_views_pre_view().
 */
function my_module_views_pre_view(\Drupal\views\ViewExecutable $view, $display_id, array &$args) {
  if ($view->id() == 'blog' && $display_id == 'feed') {
    if (isset($args[0])) {
      $term = taxonomy_term_load_multiple_by_name($args[0], 'tags');
      if (empty($term)) {
        $term = taxonomy_term_load_multiple_by_name(str_replace("-", " ", $args[0]), 'tags');
      }
      if (!empty($term)) {
        $tid = key($term);
        $args[0] = $tid;
      }
    }
  }
}

2

Để mở rộng câu trả lời của Shawn Conn:

  • Trong cấu hình chế độ xem, bên dưới Nâng cao -> Mối quan hệ, nhấp vào 'Thêm'
  • Bây giờ chọn 'Thuật ngữ phân loại trên nút'
  • Trên màn hình tiếp theo, chọn từ vựng 'thẻ' và yêu cầu mối quan hệ.
  • Bây giờ trong Nâng cao -> Bộ lọc theo ngữ cảnh, nhấp vào 'Thêm'
  • Trong 'Khi Bộ lọc KHÔNG khả dụng', chọn 'Cung cấp giá trị mặc định', 'Giá trị thô từ URL'. Chọn bất kỳ tùy chọn khác phù hợp với nhu cầu của bạn.
  • Trong 'Khi Bộ lọc IS khả dụng hoặc giá trị mặc định được cung cấp' chọn 'Chỉ định Tiêu chí xác thực' và chọn Name Tên thuật ngữ phân loại 'cho trình xác nhận. Chọn từ vựng 'tags' và sau đó nhấp vào áp dụng.

Mong rằng sẽ giúp!


1

Tôi không biết liệu bạn có còn gặp vấn đề này không nhưng tôi đã có thể tạo mối quan hệ cho "thuật ngữ phân loại trên nút" bằng cách sử dụng từ vựng phân loại mong muốn và sau đó tạo bộ lọc theo ngữ cảnh bằng cách sử dụng mối quan hệ đó cho "Thuật ngữ phân loại: Tên" cho phép bạn để xác nhận dựa trên tên chứ không phải TID.


2
Tôi có cùng một vấn đề được mô tả trong câu hỏi này, bạn có thể rõ ràng hơn. Tôi đã thiết lập một mối quan hệ nhưng bộ lọc theo ngữ cảnh chỉ hoạt động với tên thuật ngữ thay vì. Tất nhiên chúng ta đang nói về D8. Cảm ơn trước.
Vagner

1

@kiethm Đã cung cấp cách chính xác để tiếp cận điều này - Trong Bộ lọc theo ngữ cảnh, bạn cần chọn 'Tên' chứ không phải 'ID thuật ngữ phân loại' sau đó đặt tiêu chí xác thực của bạn để sử dụng Name Tên thuật ngữ phân loại ' .


1

Này, tôi đã tìm kiếm câu trả lời này trong một thời gian. Đối với bất kỳ ai khác như tôi đang tìm cách làm cho nó hoạt động, tôi đã gặt hái thành công một phần từ đây và kết quả của drupal.org và sau đó cũng như sau: http://redcrackle.com/blog/adding-contextual-filter -view-drupal-8

Tôi đang sử dụng Drupal 8 và Zircon. Tôi là thương hiệu mới vì vậy tôi có thể sử dụng các thuật ngữ sai. Tôi muốn tạo các liên kết hình ảnh theo ngữ cảnh trong "Bảng điều khiển col 1" dựa trên Danh mục của trang mà ai đó đang truy cập. Những gì tôi đã làm là vào Cấu trúc> Chế độ xem> Carousel (chế độ xem có hình ảnh trong khu vực khối đó)> Nâng cao> Thêm theo Bộ lọc theo ngữ cảnh> Có ID thuật ngữ phân loại> chọn trong Cung cấp giá trị mặc định: ID thuật ngữ phân loại từ URL (được tạo không có ý nghĩa gì với tôi nhưng dù sao đi nữa)> sau đó tôi đã kiểm tra cả ba hộp: Tải bộ lọc mặc định từ trang thuật ngữ, Tải bộ lọc mặc định từ trang nút, điều đó tốt cho các khối phân loại liên quan, Giới hạn thuật ngữ theo từ vựng. Sau đó, đối với Từ vựng tôi đã kiểm tra Danh mục.

HÃY THỬ! Cuối cùng! Cảm ơn tất cả các bạn ở đây đã chỉ cho tôi đi đúng hướng! Tôi không thể giải thích tại sao nó hoạt động, hoàn toàn, nhưng bất cứ điều gì, nó làm và tôi sẽ tiếp tục được tuyển dụng.


1

Tôi đã viết một mô-đun nhỏ để khôi phục chức năng còn thiếu và làm cho nó hoạt động bình thường trở lại:

https://www.drupal.org/project/view_taxonomy_term_name_into_id

Nó thêm lại trình xác thực đối số 'Chuyển đổi tên thuật ngữ thành ID' cho các thuật ngữ phân loại được sử dụng trong 'bộ lọc theo ngữ cảnh' trong Chế độ xem. Xem trang dự án để biết thêm thông tin và hướng dẫn.

Thưởng thức, -Derek (dww)


0

Bạn có thể làm điều đó bằng cách thêm nội dung: có ID thuật ngữ phân loại trong bộ lọc theo ngữ cảnh, sau đó bạn có thể sử dụng phân loại theo ngữ cảnh bằng cách điều chỉnh tiêu chí bộ lọc

nhập mô tả hình ảnh ở đây


Bạn đã chụp ảnh màn hình từ bản cài đặt D7. Trong D8, không có trình xác nhận "Thuật ngữ phân loại". Thay vào đó, có "ID thuật ngữ phân loại" hoặc "Tên thuật ngữ phân loại" cả hai đều không chấp nhận tên phân loại từ URL. Họ chỉ chấp nhận ID.
gbyte.co

0

Tôi đã đạt được điều này trong Drupal-8 bằng cách sử dụng bộ lọc theo ngữ cảnh: của "Thuật ngữ phân loại: Tên"

Sau đó, Cung cấp giá trị mặc định Loại ID thuật ngữ phân loại từ Url

Sau đó chỉ định các tiêu chí xác nhận sau:

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.