Làm cách nào để kiểm tra nếu một hộp kiểm tra bật / tắt được chọn?


8

Dường như không có cách nào để kiểm tra giá trị của hộp kiểm bật / tắt (boolean) trong bộ chọn dữ liệu cho mô-đun Quy tắc. Nếu "trường-MyField" = đã chọn hoặc "trường-MyField" = 1, thì hãy làm 'blah'. Nội quy có thể làm điều này? Chắc chắn là tôi đang thiếu gì đó


Sử dụng PHP tùy chỉnh không hoạt động khi tôi làm điều này: echo ([node: field-MyField] == 1);. PHP đang hoạt động vì nếu tôi chỉ trả về true;, thì nó hoạt động. Vậy chuyện gì đang xảy ra thế???!?
user785179

Chà, hóa ra bạn không thể sử dụng mã thông báo trong PHP tùy chỉnh.
user785179

Câu trả lời:


6

Có sự pha trộn giữa các chi tiết chính xác và không chính xác ở đây, vì vậy tôi sẽ cố gắng sắp xếp chúng ra. Đây là Quy tắc trên Drupal 7 và áp dụng để làm việc với trường Boolean.

Để tạo điều kiện kiểm tra trạng thái Boolean của trường (đúng / sai, có / không, đã chọn / không được kiểm tra), trước tiên hãy đảm bảo rằng bạn có thể truy cập vào trường trong bộ chọn dữ liệu. Như Bojan đã đề cập ở trên và như đã đề cập trên chính trang quản trị,

Để làm cho các trường thực thể xuất hiện trong bộ chọn dữ liệu, bạn có thể phải sử dụng điều kiện 'thực thể có trường' (hoặc 'nội dung thuộc loại').

Toán tử bạn muốn chọn là "bằng".

Đối với trường "Giá trị dữ liệu", bạn có thể nhập giá trị ở hai chế độ, đảm bảo bạn đang sử dụng "chế độ nhập trực tiếp". Sau đó, bạn có thể kiểm tra hộp kiểm đại diện cho TRUE cho trường đó.

Đã dịch, điều bạn đang nói là "Trường này có bằng TRUE không?" Bạn cũng có thể phủ nhận nó bằng cách bỏ chọn nó hoặc sử dụng tùy chọn "phủ định" bên dưới.


Tôi đánh giá cao bạn dành thời gian để giải thích điều này. Tôi đã không phải chạm vào một cái gì đó như thế này một lần nữa, nhưng lời giải thích của bạn có ý nghĩa. Tôi hy vọng nó sẽ giúp người khác.
dùng785179

3

Bạn chỉ cần thêm một điều kiện "So sánh dữ liệu", chỉ định tên trường và nhập "1" làm giá trị. Nếu trường không xuất hiện trong danh sách các trường, trước tiên hãy thêm điều kiện "Thực thể có trường" và chọn trường ở đó. Sau đó thêm "So sánh dữ liệu" tiếp theo.


Tôi đặt 1 vào giá trị dữ liệu và tôi nhận được: Bộ chọn dữ liệu 1 cho giá trị tham số không hợp lệ. Còn ý tưởng nào khác không? Để làm rõ, dữ liệu của tôi để so sánh trường là nút: trường-MyField. So sánh được đặt thành THIẾT BỊ. Giá trị dữ liệu được đặt thành 1.
user785179

2

Sau nhiều giờ thử và sai, cuối cùng tôi đã giải quyết được vấn đề. Đừng yêu cầu tôi giải thích điều này bởi vì nó không có ý nghĩa với tôi. Nếu bất cứ ai có thể giải thích, thì điều đó sẽ được đánh giá rất cao!

Tôi đặt một điều kiện mới bằng cách sử dụng DATA COMPARISON. Sau đó tôi chọn "nút: trường-MyField: 0" (thực tế có tới 4 trong số này - nút: trường-MyField: 1, nút: trường-MyField: 2, v.v.). Sau đó, tôi đặt SO SÁNH thành THIẾT BỊ. Sau đó, ở phần bộ chọn dữ liệu thứ 2, nó không còn là bộ chọn dữ liệu hộp nhập văn bản, mà bây giờ xuất hiện dưới dạng bộ dữ liệu hộp kiểm. Khi tôi nhấp vào bộ chọn dữ liệu hộp kiểm đó và nhấn lưu, bây giờ mô-đun quy tắc hoạt động chính xác.

đập đầu vào tường


0

Trong phiên bản Quy tắc (đã sửa?) Đã cập nhật, để thực hiện việc này, hãy thêm điều kiện So sánh dữ liệu, chọn trường thích hợp trong bộ chọn dữ liệu node:field-to-check, sau đó ở bước tiếp theo, hãy bỏ toán tử so sánh như equals. Trong nhóm Giá trị dữ liệu, sẽ có một hộp kiểm có tên hữu ích Quy tắc "Giá trị dữ liệu" sẽ so sánh với giá trị của hộp kiểm như được gửi trên trang này.


0

Nhiều khả năng bạn phải sử dụng Hỗ trợ biểu mẫu quy tắc .

Khi bạn kích hoạt quy tắc biểu mẫu cho biểu mẫu cụ thể, bạn có thể sử dụng điều kiện như: Phần tử biểu mẫu có giá trị . Điều kiện này có thể được sử dụng khi biểu mẫu đang được xây dựng hoặc xác nhận .

Các mô-đun khác để xem xét là Quy tắc thực thể .

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.