Làm cách nào để tạo một cây lồng nhau với các điều khoản & nút với Lượt xem 3?


22

Tôi cần tạo ra một cái gì đó tương tự như thế này:

Màu sắc (Từ vựng)

  • Màu đỏ (hạn)
    • Tối (hạn)
      • Nút 1
      • Nút 2
    • Ánh sáng (hạn)
      • Nút 3
      • Nút 4
  • Màu xanh (hạn)
    • Nút 5
    • Nút 6
  • Màu xanh lá cây
    • Nút 7
    • Nút 8

(Điểm Bullet là thụt lề.)
Có cách nào để làm điều này với Drupal 7 và lượt xem 3 không? Nếu không, có cách nào khác để làm điều này?


Để làm rõ - có lẽ tôi đã hiểu nhầm câu hỏi của bạn - bạn muốn hiển thị một cấu trúc như thế này trên một trang?
Maciej Zgadzaj

Có chỉ trên 1 trang
iStryker

Câu trả lời:


15

Nhờ refino, tôi đã tìm thấy một giải pháp hay bằng cách sử dụng các mô-đun sau:

Dưới đây bạn tìm thấy lời giải thích:

  1. Trước tiên hãy tạo một Phân loại mới (hãy gọi nó là "Thư mục")
  2. Sau đó, tạo một loại nội dung mới (hãy gọi nó là "Phần tử") với trường tham chiếu thuật ngữ cho phân loại "Thư mục"
  3. Tạo Chế độ xem "Nội dung" mới (hãy gọi nó là "Chế độ xem phần tử")
  4. Chọn hiển thị trường
  5. Thêm Bộ lọc theo ngữ cảnh vào trường tham chiếu thuật ngữ của bạn
  6. Tạo Chế độ xem "Phân loại" mới (hãy gọi nó là "Cây thư mục")
  7. Thêm 2 trường (tên thuật ngữ và id thuật ngữ). Trường thứ hai có thể được loại trừ khỏi màn hình
  8. Trong Relation: thêm "thuật ngữ cha mẹ"
  9. Thêm trường thứ ba (id thuật ngữ) và gán nó cho mối quan hệ cha mẹ của bạn. Trường này có thể được loại trừ khỏi màn hình
  10. Chọn định dạng "Cây (mô hình điều chỉnh)" và chọn trong các tham số: Danh sách được sắp xếp + Trường chính (tid đầu tiên của bạn), trường Parent (tid của bạn được gán cho quan hệ cha mẹ). Bây giờ bạn nên có một cây đẹp với tất cả các điều khoản của bạn lồng nhau
  11. Thêm trường thứ 4 "Toàn cầu: Chế độ xem" (điều này đi kèm với Chế độ xem trường xem) và chọn "Chế độ xem thành phần" của bạn, hiển thị Master add [tid] trong trường văn bản Đối số

Hy vọng điều này giúp đỡ

Chúc mừng

Chỉnh sửa bởi iStryker : Đây là những gì tôi nhận được. Điều duy nhất tôi đã thay đổi là làm cho Chế độ xem phần tử thành chế độ xem bảng và xóa các lớp (hàng & dải) mặc định.

Hình ảnh của sản phẩm cuối cùng của iStryker


Một sự trợ giúp tuyệt vời từ bình luận này. Chỉ cần một lưu ý nhỏ: bạn có thể muốn đổi tên các trường (Tiêu đề quản trị) vì trong cài đặt VT thả xuống, cả hai trường "ID hạn" sẽ không thể phân biệt được.
Artur

Câu trả lời này đã cho tôi 90% đó. Tôi cần phải loại bỏ các lớp mặc định trên mỗi lĩnh vực; Xóa các lớp bảng trên dạng xem 'Phần tử'; Chủ đề một chút
iStryker

Tôi đã thêm một bước để giảm trùng lặp trong chế độ xem Nội dung. Ngoài ra, trường "Đối số" trong Toàn cầu: Chế độ xem hiện được gắn nhãn "Bộ lọc theo ngữ cảnh" và mã thông báo sẽ sử dụng là "[! Tid]".
othermachines 22/08/2015

Có thể làm điều này nhưng với Nhóm hữu cơ thay vì phân loại?
IamOnStage 20/03/2017

14

Tôi đã tạo ba chế độ xem trong Drupal 7.8 và Trường xem 3 + Lượt xem, lồng một chế độ xem vào một chế độ xem khác bằng Chế độ xem bao gồm và tôi đã nhận được kết quả như vậy (đính kèm). nhập mô tả hình ảnh ở đây

Từng bước làm thế nào để làm điều đó:

  1. Tạo từ vựng "Màu sắc" và điền nó vào thẻ.

  2. Tạo một cái nhìn mới về các nút phân loại Màu sắc - Tôi gọi nó là "Nút màu"

2.1 Bảng định dạng, Cài đặt: Trường nhóm: Thuật ngữ phân loại: Tên

2.2 Bộ lọc ngữ cảnh nâng cao: Thuật ngữ phân loại: Thuật ngữ phụ huynh

2.3 Mối quan hệ nâng cao: Thuật ngữ phân loại: Nội dung sử dụng màu sắc

2.4 Đặt trường: Thuật ngữ phân loại: ID hạn, Thuật ngữ phân loại: Tên, (field_color) Nội dung: Tiêu đề

2.5 Tiêu chí lọc: Thuật ngữ phân loại: Từ vựng (= Màu sắc)

2.6 Nếu bạn muốn, bạn cũng có thể đặt "Loại trừ khỏi màn hình" cho ID hạn, thuật ngữ phân loại: Tên

2.7 Đặt đường dẫn: / nút màu /%

2.8 Đặt hành vi không có kết quả: Toàn cầu: Khu vực xem (chúng tôi sẽ quay lại vấn đề này sau) 2.9 lưu

3. Tạo một cái nhìn mới về các nút phân loại Màu sắc - Tôi gọi nó là "Nút màu 2"

3.1 Bảng định dạng, Cài đặt: Trường nhóm: không có

3.2 Bộ lọc ngữ cảnh nâng cao: Thuật ngữ phân loại: ID hạn

3.3 Mối quan hệ nâng cao: Thuật ngữ phân loại: Nội dung sử dụng màu sắc

3.4 Đặt trường: Thuật ngữ phân loại: ID hạn, Thuật ngữ phân loại: Tên, (field_color) Nội dung: Tiêu đề

3.5 Tiêu chí lọc: Thuật ngữ phân loại: Từ vựng (= Màu sắc)

3.6 Nếu bạn muốn, bạn cũng có thể đặt "Loại trừ khỏi màn hình" cho ID hạn, thuật ngữ phân loại: Tên

3.7 Đặt đường dẫn: / nút-màu-2 /%

3.8 Đặt hành vi không có kết quả: Toàn cầu: không có

3.9 Lưu

Quay lại và chỉnh sửa "Nút màu" một lần nữa

4.1 đi tới Đặt hành vi không có kết quả: Toàn cầu: Khu vực xem

4.2 Đặt Chế độ xem để chèn: Xem: odes_of_colors2 Hiển thị: trang

4.3 thiết lập Kế thừa bộ lọc theo ngữ cảnh

4,4 tiết kiệm

5 Quay lại Lượt xem một lần nữa (Loại hạn)

5.1 Tạo chế độ xem mới cho các nút phân loại Màu sắc - Tôi gọi nó là "Cây màu"

5.1 Bảng định dạng, Cài đặt: Trường nhóm: không có

5.2 Bộ lọc theo ngữ cảnh nâng cao: không có

5.3 Mối quan hệ nâng cao: Thuật ngữ phân loại: Thuật ngữ phụ huynh

5.4 Đặt trường: Thuật ngữ phân loại: ID hạn, Thuật ngữ phân loại: ID hạn, Thuật ngữ phân loại: Tên, Chế độ xem: Bao gồm chế độ xem (Bao gồm chế độ xem)

5.5 Tiêu chí lọc (1): Thuật ngữ phân loại: Từ vựng (= Màu sắc)

5.6 Tiêu chí lọc (2): (Phụ huynh) Thuật ngữ phân loại: Thời hạn

5.7 Nếu bạn muốn, bạn cũng có thể đặt "Loại trừ khỏi màn hình" cho ID hạn và nhãn của Chế độ xem bao gồm

5,8 Đặt đường dẫn: / colors-tree

5.9 Đặt hành vi không có kết quả: không có

Lưu 5.10

... Và điều này nên là nó, cuối cùng.


bạn có thể làm rõ "5,4 trường thiết lập ... chế độ xem: bao gồm chế độ xem" thêm một chút. Tôi không thấy một lựa chọn cho bất cứ nơi nào. Cảm ơn
uwe

Tôi xin lỗi tôi đã không viết Tôi đã sử dụng Lượt xem 7.x-3.0-rc1 + Lượt xem Trường 7.x-1.0-rc1
Refineo

được rồi, cảm ơn bạn Tôi đã làm theo một số hướng dẫn về hàng đợi vấn đề của họ cũng như drupal.org/node/1171604
uwe

Wow, câu trả lời này đã nhận được một upvote lớn trong 7 ngày qua. Có ai đã thử nghiệm điều này chưa, hoặc bạn / họ chỉ nâng cấp vì @Refineo đã đưa ra câu trả lời chi tiết nhất?
iStryker

Tôi đã thử hướng dẫn này một lần nữa và không hiệu quả. Tôi ghét tất cả những người ủng hộ câu hỏi này là tuần trước mà không cần kiểm tra
iStryker


3

Nếu bạn muốn lấy vid từ URL thì hãy sử dụng đoạn mã sau.

$vid = $_GET['vid'];
$tid = 0;
$level = 0;
print taxonomy_tree($vid, $tid, $level);
function taxonomy_tree($vid, $tid = 0, $level) {
  $children = taxonomy_get_children($tid, $vid);
  $output = '';
  if ($children) {
    $output .= '<ul>'; 
    foreach ($children as $child) {
      $level++;
      $output .= '<li class="taxonomy-tree-lvl' . $level . ' ">'; 
print $level;
      $output .= l($child->name, 'taxonomy/term/'. $child->tid) . '(' . taxonomy_term_count_nodes($child->tid) . ')'; 
      $output .= taxonomy_tree($vid, $child->tid, $level);
      $output .= '</li>';

      $level--; 
    }
    $output .= '</ul>'; 
  }

  return $output;

}

Hoặc sử dụng mã sau đây.

$vocabulary = taxonomy_vocabulary_load(2);//Here pass the vid
print $vocabulary->name;
$vid1 = $_GET['vid'];
if(!$vid1) {
$vid1 = 2;
print 'empty';
}
$vid = 2;
$parent = 0;
print get_child_terms($parent, $vid1);
 function get_child_terms($parent, $vid) {
      $sql = "SELECT td.tid, td.vid, td.name"
         . "  FROM {term_data} td"
         . "  JOIN {term_hierarchy} th on th.tid = td.tid"
         . " WHERE th.parent = %d"
         . "   AND td.vid = %d"
         . " ORDER BY td.weight, td.name";
    $terms = db_query($sql, $parent, $vid);
    $output = "";
    while ($aterm = db_fetch_object($terms)) {
        $output .= "<li>";
        $output .= l("$aterm->name", "taxonomy/term/$aterm->tid/all") . " ("
                .  taxonomy_term_count_nodes($aterm->tid) . ")</li>\n"
                .  get_child_terms($aterm->tid, $vid);
    }
    return ($output != "") ? "<ul style='list-style-type: none;
  margin: 0px 0px 0px 20px;
  padding: 0px;'>\n". $output ."</ul>\n" : "";
  }

2

Tất nhiên là có:

  1. Thiết lập từ vựng phân cấp của bạn,
  2. Thêm nó vào bất kỳ loại nội dung được chọn,
  3. Tạo chế độ xem liệt kê các nút từ loại nội dung đó, với bộ lọc theo ngữ cảnh :

    • "Nội dung: Có ID thuật ngữ phân loại" - nếu bạn chỉ muốn liệt kê các nút được gán cho thuật ngữ cụ thể,
    • hoặc "Nội dung: Có ID thuật ngữ phân loại (có độ sâu)" - nếu bạn muốn liệt kê các nút được gán cho một thuật ngữ cụ thể cũng như các thuật ngữ con của nó.

      Trong trường hợp này, trong cấu hình bộ lọc, bạn cần đặt độ sâu - có bao nhiêu cấp dưới (hoặc cao hơn) mà bạn muốn bộ lọc này hoạt động.

Sau đó, giả sử URL của chế độ xem của bạn là http://mysite.com/myview và 'Red' tid = 1, nếu bạn truy cập http://mysite.com/myview/1, nó sẽ liệt kê cho bạn tất cả các nút được gán cho một trong hai thuật ngữ 'đỏ', 'tối' và / hoặc 'sáng'.


Tôi không tìm kiếm một câu trả lời cho một thuật ngữ cụ thể. Tôi đang tìm kiếm một cái nhìn cho toàn bộ từ vựng
iStryker

Và đó chính xác là những gì tôi đã mô tả.
Maciej Zgadzaj

2

Bạn có thể sử dụng mô-đun menu Taxonomy . Đây là một trích dẫn về nó (từ trang dự án của mô-đun):

Chuyển đổi từ vựng phân loại của bạn thành các menu dễ dàng!

Tính năng, đặc điểm:

  • Menu tùy chỉnh cho mỗi từ vựng
  • Sử dụng đường dẫn thuật ngữ phân loại mặc định hoặc đường dẫn tùy chỉnh
  • Tích hợp với Lượt xem
  • Tích hợp với Pathauto: sử dụng bí danh URL / đường dẫn
  • Không can thiệp vào các mô-đun menu khác

Chào mừng đến với Drupal SE! taxonomy_menu là một dự án tuyệt vời và nó có thể làm điều này độc đáo. OP muốn làm điều đó trong Lượt xem mặc dù.
AyeshK


0

Tôi tin rằng tôi đã tìm ra một cách khác để giải quyết vấn đề này và tôi nghĩ nó đơn giản hơn các giải pháp còn lại. Nó không liên quan đến bất kỳ mô-đun bổ sung nào và bạn chỉ cần một chế độ xem.

Giả sử bạn đã tạo từ vựng phân cấp hai cấp (Màu sắc) và loại nội dung có tham chiếu thuật ngữ cho từ đó, hãy làm như sau:

  1. Tạo chế độ xem và bộ lọc mới theo "Từ vựng phân loại: Tên máy (= Màu sắc)"
  2. Thêm mối quan hệ: (1) Taxonomy term: Content using Colorvà (2)Taxonomy term: Parent term
  3. Thêm các trường vào Chế độ xem: (1) Title(chọn field_colortrong "Mối quan hệ" và yêu cầu mối quan hệ này ), (2) Taxonomy term name(không sử dụng mối quan hệ và loại trừ khỏi hiển thị) (3) Taxonomy term name(lần nữa, lần này chọn Parentcho mối quan hệ và loại trừ từ màn hình).
  4. Bây giờ nhóm nó bằng cách nhấp vào Cài đặt định dạng: (1) nhóm 1 : (Parent) Taxonomy term: Name, (2)Taxonomy term: Name

Làm xong. Nếu bạn có nhiều hơn hai cấp, chỉ cần thêm Mối quan hệ của Cha mẹ bằng cách sử dụng Cha mẹ làm mối quan hệ.

EDIT: nếu bạn không yêu cầu mối quan hệ, bạn sẽ kết thúc bằng bản sao. Phụ huynh sẽ được liệt kê hai lần nếu họ có các thuật ngữ con được tham chiếu bởi các nút. Vì vậy, điều này giới hạn câu trả lời một chút trong các thuật ngữ cấp cao nhất mà không có các nút tham chiếu mà nó sẽ không hiển thị. Ngoài ra, vì việc sắp xếp có thể rất quan trọng, việc có bất kỳ nội dung nào đề cập đến thuật ngữ cấp cao nhất có thể gây ra sự cố cho bạn tùy thuộc vào nhu cầu hiển thị.


Không có bộ lọc "Từ vựng phân loại: Tên máy (= Màu sắc)" cho đến khi thêm mối quan hệ. Tôi nghi ngờ bước đầu tiên là thứ hai. Ngoài ra, tôi không thể hiểu cách thêm Tiêu đề trường khi chọn trường_color trong "Mối quan hệ".
Kích thước
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.