Thuật ngữ phân loại bối cảnh


6

Tôi có một bối cảnh được thiết lập:

Condition > taxonomy term > vocabulary.

Reaction > some blocks displayed somewhere

Điều này hoạt động tốt cho đường dẫn như taxonomy/term/term_idnhưng nó không hoạt động cho một cái gì đó nhưtaxonomy/term/term_id_1+term_id_2

Có ý kiến ​​gì không? Cảm ơn


2
Tôi đoán bạn có thể sử dụng chế độ xem với các bộ lọc theo ngữ cảnh.
jantimon

Điều này không có gì để làm với lượt xem. Tôi muốn một số khối tĩnh được hiển thị trên một số trang, bao gồm một cái gì đó như taxonomy/term/term_id_1+term_id_2. Đó là một số lỗi với mô-đun ngữ cảnh
Marius Ilie

Trên trang web thử nghiệm của tôi, một URL như tero.local / dr72 / taxonomy / term / 20 + 21 trả về cho tôi một lỗi 404, ngay cả khi tero.local / dr72 / taxonomy / term / 20tero.local / dr72 / taxonomy / hạn / 21 trả lại không có lỗi. Có thể đó là lý do nó không làm việc cho bạn?
kiamlaluno

Câu trả lời:


1

Đây là một chút mã có thể giúp bạn Tôi hy vọng,

 <?php
   check_vocabulary = FALSE;
     $path = drupal_get_path_alias($_GET['q']); 
     $pathnew = explode('/', $path);
     if ($pathnew[2]) {
        $vocabulary = explode('+', $pathnew[2]);
     }
    if ($vocabulary[0] == "your taxonomy") {
       check_vocabulary = TRUE;
    }
  return check_vocabulary;
?>

Bạn nên đặt nó trong khối dưới tab Page specificy visibility setting, nhấp vàoShow if the following PHP code returns TRUE (PHP-mode, experts only).

Bây giờ tôi không chắc nó sẽ hoạt động với cài đặt và tên của bạn nhưng nó có thể là một cách để giải pháp.

 check_vocabulary = FALSE;

Như chúng ta đã biết, hệ thống muốn bạn trả về TRUE để in khối để chúng ta đặt nó sai ngay từ đầu để không phải in nó và sau đó xóa nó.

$path = drupal_get_path_alias($_GET['q']); 
$pathnew = explode('/', $path);

Trong phần này, chúng tôi đi theo con đường và chúng tôi phát nổ nó để chúng tôi có được một mảng như thế này.

$pathnew[0]; Taxonomy
$pathnew[1]; Term
$pathnew[2]; Term_id_1+term_id_2

if ($pathnew[2]) {
    $vocabulary = explode('+', $pathnew[2]);
  }

Chúng tôi kiểm tra đầu tiên $pathnew[2]tồn tại và sau đó chúng tôi phát nổ nó để có được tất cả các từ vựng (nếu bạn muốn nó tách ra). Chúng tôi chia nó cho + vì vậy bạn sẽ nhận được

$vocabulary[0]; Term_id_1
$vocabulary[1]; term_id_2

Bây giờ chúng ta tạo điều kiện;

if ($vocabulary[0] == "your taxonomy") {
   check_vocabulary = TRUE;
}

Bạn có thể so sánh những gì bạn muốn, đó chỉ là một ví dụ.

check_vocabulary = TRUE;

Đây là những gì hệ thống muốn in khối.

return check_vocabulary;

Điều này sẽ trả về biến FALSE hoặc TRUE .

Cho tôi biết nếu nó hoạt động.


Tôi biết cách tự làm với mã tùy chỉnh nhưng tôi cần làm điều đó với mô-đun Ngữ cảnh.
Marius Ilie

0

Bạn có thể không thay đổi điều kiện để chỉ là từ vựng và không phải là thuật ngữ? Bằng cách đó, nó sẽ làm việc với bất kỳ thuật ngữ trong từ vựng đó?

Ngoài ra, bạn có thể sử dụng đường dẫn như một điều kiện:

taxonomy/term/*
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.