Điểm:-2

Xem Toán tử OR của Bộ lọc không được áp dụng

lá cờ br

Tôi đã tạo chế độ xem nội dung có nhóm bộ lọc bằng toán tử AND được AND với một nhóm bộ lọc khác bằng toán tử OR (xem hình ảnh bên dưới)

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

Tuy nhiên, truy vấn được xây dựng là tất cả toán tử AND và nhóm thậm chí không được áp dụng. Đây là mệnh đề WHERE của truy vấn:

Ở ĐÂU 
(
  (
    // Nội dung: Loại (= Theo yêu cầu)
    node__field_format.field_format_target_id = '29'
  )
) 
VÀ 
(
  (
    (
      // Nội dung: Đã xuất bản (= Có)
      "node_field_data","trạng thái" = '1'
    )
    VÀ 
    (
      // Nội dung: Loại nội dung (trong Sự kiện, Đào tạo)
      "node_field_data".."type" IN ('sự kiện', 'khóa đào tạo')
    )
  ) 
  VÀ
  (
    (
      // (trường_ngày_và_vị_trí: Đoạn) Đoạn: Phạm vi ngày (>= + 0 phút)
      DATE_FORMAT((paragraphs_item_field_data_node__field_date_and_location__paragraph__field_date_range.field_date_range_value + INTERVAL -21600 SECOND), '%Y-%m-%d\T%H:%i:%s') >= DATE_FORMAT(('2021-10-19T18:53:48' + INTERVAL -21600 GIÂY), '%Y-%m-%d\T%H:%i:%s')
    )
  )
)

Truy vấn này thậm chí không gần với những gì tôi đã định cấu hình là... Theo cấu hình của tôi, tôi mong muốn mệnh đề WHERE sẽ là

Ở ĐÂU 
(
  (
    // Nội dung: Đã xuất bản (= Có)
    "node_field_data","trạng thái" = '1'
  )
  VÀ 
  (
    // Nội dung: Loại nội dung (trong Sự kiện, Đào tạo)
    "node_field_data".."type" IN ('sự kiện', 'khóa đào tạo')
  )
) 
VÀ 
(
  (
    // Nội dung: Loại (= Theo yêu cầu)
    node__field_format.field_format_target_id = '29'
  ) 
  HOẶC
  (
    // (trường_ngày_và_vị_trí: Đoạn) Đoạn: Phạm vi ngày (>= + 0 phút)
    DATE_FORMAT((paragraphs_item_field_data_node__field_date_and_location__paragraph__field_date_range.field_date_range_value + INTERVAL -21600 SECOND), '%Y-%m-%d\T%H:%i:%s') >= DATE_FORMAT(('2021-10-19T18:53:48' + INTERVAL -21600 GIÂY), '%Y-%m-%d\T%H:%i:%s')
  )
)

Có vấn đề gì với cấu hình của tôi? Tôi cảm thấy đây sẽ là một triển khai khá đơn giản nhưng mức độ truy vấn không chính xác dường như không còn nữa..

Điểm:0
lá cờ br

Có vẻ như Drupal có lỗi trong mã của họ. Loại nội dung chúng tôi đang hiển thị có một vài các loại đó là một thuật ngữ phân loại. Nếu một bản ghi có một theo yêu cầu loại phân loại, nó không có Ngày. Tuy nhiên, khi hiển thị danh sách này, chúng tôi cần hiển thị tất cả nội dung có ngày trong tương lai HOẶC có loại phân loại 'Theo yêu cầu'.

Ngoài ra, chúng tôi có một bộ lọc tiếp xúc cho phép người dùng lọc theo loại thuật ngữ phân loại này. Do đó, có hai bộ lọc riêng biệt trên cùng một trường, một bộ lọc được hiển thị còn bộ lọc kia thì không.

Trong nhóm điều kiện đầu tiên, tồn tại một điều kiện bộ lọc tiếp xúc được gọi là Có thuật ngữ phân loại đó là nhìn vào Đề tài thuật ngữ phân loại.

Trong nhóm điều kiện thứ hai, tồn tại một điều kiện bộ lọc không tiếp xúc được gọi là Nội dung: Loại đó cũng là nhìn vào Đề tài thuật ngữ phân loại.

Tuy nhiên, khi Drupal xây dựng mệnh đề where này. nó đặt Loại nội dung == Theo yêu cầu điều kiện vào nhóm điều kiện tồn tại bộ lọc tiếp xúc tương tự.

Bạn PHẢI sửa lỗi này trong hook_views_query_alter. Tôi đã báo cáo đây là một lỗi trên Drupal.org

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.