it-swarm-ko.tech

Views 3을 사용하여 용어 및 노드가 포함 된 중첩 트리를 작성하는 방법

나는 이와 비슷한 것을 만들어야합니다 :

색상 (어휘)

  • 빨간색 (용어)
    • 어두운 (용어)
      • 노드 1
      • 노드 2
    • 빛 (용어)
      • 노드 3
      • 노드 4
  • 파란색 (용어)
    • 노드 5
    • 노드 6
  • 녹색 (용어)
    • 노드 7
    • 노드 8

(글 머리 기호는 들여 쓰기입니다.)
Drupal 7 및 조회수 3으로이 작업을 수행하는 방법이 있습니까? 그렇지 않은 경우 다른 방법이 있습니까?

22
iStryker

Refino 덕분에 다음 모듈을 사용하여 멋진 솔루션을 찾았습니다.

아래에서 설명을 찾을 수 있습니다.

  1. 먼저 새 분류 체계를 작성하십시오 ( "폴더"라고 함).
  2. 그런 다음 "폴더"분류법에 대한 용어 참조 필드를 사용하여 새 컨텐츠 유형 ( "요소"라고 함)을 작성하십시오.
  3. 새로운 "콘텐츠"보기를 작성하십시오 ( "요소보기"라고 함).
  4. 필드 표시를 선택하십시오
  5. 용어 참조 필드에 상황 별 필터 추가
  6. 새로운 "Taxonomy"보기를 작성하십시오 ( "폴더 트리"라고 함).
  7. 2 개의 필드를 추가하십시오 (용어 이름 및 용어 ID). 두 번째 필드는 표시에서 제외 할 수 있습니다
  8. 관계 : "부모"추가
  9. 세 번째 필드 (용어 ID)를 추가하여 상위 관계에 지정하십시오. 이 필드는 표시에서 제외 할 수 있습니다
  10. "트리 (인접 모델)"형식을 선택하고 매개 변수에서 정렬 된 목록 + 메인 필드 (첫 번째 티드), 상위 필드 (상위 관계에 할당 된 티드)를 선택하십시오. 이제 모든 용어가 중첩 된 멋진 나무가 있어야합니다.
  11. 네 번째 필드 인 "Global : View"(Views Field View와 함께 제공)를 추가하고 "Element view"를 선택한 다음 Arguments 텍스트 필드에 Master add [tid]를 표시하십시오.

이 도움을 바랍니다

건배

iStryker 에 의해 편집 : 이것은 내가 가진 것입니다. 내가 변경 한 유일한 것은 make Element View 테이블 뷰 였고 기본 (행 및 스트립) 클래스를 제거했습니다.

Image of the final product by iStryker

15
Fred

Drupal 7.8 및 Views 3 + Views Field)에서 Include View를 사용하여 하나의보기를 다른보기에 중첩시키는 세 가지보기를 만들었으며 그러한 결과를 얻었습니다 (첨부). enter image description here

단계별 방법 :

  1. 어휘 "색상"을 작성하고 태그로 채 웁니다.

  2. 분류 노드의 색상을 새로 만듭니다. 색상- "노드 색상"이라고합니다.

2.1 형식 테이블, 설정 : 그룹화 필드 : 분류 용어 : 이름

2.2 고급 상황 별 필터 : 분류 용어 : 상위 용어

2.3 고급 관계 : 분류 용어 : 색상을 사용하는 컨텐츠

2.4 필드 설정 : 분류 용어 : 용어 ID, 분류 용어 : 이름, (field_color) 내용 : 제목

2.5 필터 기준 : 분류 용어 : 어휘 (= 색상)

2.6 용어 ID, 분류 용어에 대해 "표시에서 제외"를 설정할 수도 있습니다. 이름

2.7 경로 설정 :/색상/%

2.8 결과 없음 동작 설정 : 전체 :보기 영역 (나중에 다시옵니다) 2.9 저장

3. 분류 노드의 색상을 새로 만듭니다. 색상- "노드 색상 2"라고 부릅니다.

3.1 형식 테이블, 설정 : 그룹화 필드 : 없음

3.2 고급 상황 별 필터 : 분류 용어 : 용어 ID

3.3 고급 관계 : 분류 용어 : 색상을 사용하는 컨텐츠

3.4 필드 설정 : 분류 용어 : 용어 ID, 분류 용어 : 이름, (field_color) 내용 : 제목

3.5 필터 기준 : 분류 용어 : 어휘 (= 색상)

3.6 용어 ID, 분류 용어에 대해 "표시에서 제외"를 설정할 수도 있습니다. 이름

3.7 경로 설정 :/색상 노드 -2/%

3.8 결과 없음 동작 설정 : 전역 : 없음

3.9 저장

돌아가서 "색상 노드"를 다시 편집하십시오.

4.1 결과 없음 동작 설정 : 전역 :보기 영역으로 이동하십시오.

4.2 삽입 할보기 설정 :보기 : nodes_of_colors2 표시 : 페이지

4.3 컨텍스트 필터 상속 설정

4.4 저장

5 다시보기로 이동 (Type Term)

5.1 분류 노드의 새로운 뷰 생성 색상- "컬러 트리"라고 부릅니다.

5.1 형식 표, 설정 : 그룹화 필드 : 없음

5.2 고급 상황 별 필터 : 없음

5.3 고급 관계 : 분류 용어 : 상위 용어

5.4 필드 설정 : 분류 용어 : 용어 ID, 분류 용어 : 용어 ID, 분류 용어 : 이름,보기 :보기 포함 (보기 포함)

5.5 필터 기준 (1) : 분류 용어 : 어휘 (= 색상)

5.6 필터 기준 (2) : (부모) 분류 용어 : 용어

5.7 원하는 경우 용어 ID 및 포함보기 레이블에 대해 "표시에서 제외"를 설정할 수도 있습니다.

5.8 경로 설정 :/색상 트리

5.9 결과 없음 동작 설정 : 없음

5.10 저장

... 그리고 이것이 마지막이되어야합니다.

14
Refineo

나는 이것의 D6 또는 D7 버전을 직접 시도하지 않았지만 당신이 찾고있는 것이라면 언급 할 것이라고 생각했다. Views Tree Module-D7 progress

편집 : 이제 D7 버전이 있습니다. 모듈 홈페이지를 확인하십시오 Views Tree

4
nmc

URL에서 vid를 얻으려면 다음 코드를 사용하십시오.

$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;

}

또는 다음 코드를 사용하십시오.

$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" : "";
  }
3
Ahmad

Taxonomy 메뉴 모듈을 사용할 수 있습니다. 다음은 모듈의 프로젝트 페이지에서 이에 대한 인용입니다.

분류 어휘를 메뉴로 쉽게 변환합니다!

풍모:

  • 어휘 당 사용자 정의 메뉴
  • 기본 분류 용어 경로 또는 사용자 정의 경로를 사용합니다.
  • 뷰와 통합
  • Pathauto와 통합 : URL/경로 별명 사용
  • 다른 메뉴 모듈을 방해하지 않습니다
2
dilari

물론 있습니다 :

  1. 계층 구조 어휘를 설정하십시오.
  2. 선택한 컨텐츠 유형에 추가하십시오.
  3. 컨텍스트 필터 를 사용하여 해당 컨텐츠 유형에서 노드를 나열하는보기를 작성하십시오.

    • "컨텐츠 : 분류 용어 ID가 있음"-특정 용어에 지정된 노드 만 나열하려는 경우,
    • 또는 "컨텐츠 : 분류 용어 ID (깊이 포함)"-특정 용어 및 하위 용어에 지정된 노드를 나열하려는 경우.

      이 경우 필터 구성에서 깊이를 설정해야합니다.이 필터를 작동시키려는 레벨의 수 (또는 그 이상).

그런 다음 뷰의 URL이 http://mysite.com/myview 이고 'Red'tid = 1이라고 가정하면 http://mysite.com/myview/1 'red', 'dark'및/또는 'light'라는 용어 중 하나에 지정된 모든 노드를 나열합니다.

2
Maciej Zgadzaj

나는이 문제를 해결할 수있는 또 다른 방법을 찾았으며 다른 솔루션보다 간단하다고 생각합니다. 추가 모듈은 필요하지 않으며 하나의보기 만 필요합니다.

2 레벨 계층 적 어휘 (색상)와 해당 어휘에 대한 용어 참조가있는 컨텐츠 유형을 작성했다고 가정하면 다음을 수행하십시오.

  1. "Taxonomy 어휘 : 기계 이름 (= 색상)"으로 새보기 및 필터 작성
  2. 관계 추가 : (1) Taxonomy term: Content using Color 및 (2) Taxonomy term: Parent term
  3. 보기에 필드를 추가하십시오 : (1) Title ( "관계"에서 field_color를 선택하십시오 그리고이 관계가 필요합니다), (2) Taxonomy term name (관계를 사용하지 않고 표시에서 제외) (3) Taxonomy term name (예, 이번에는 관계로 Parent를 선택하고 표시에서 제외).
  4. 이제 형식 설정을 클릭하여 그룹화하십시오. (1) 그룹화 1 : (Parent) Taxonomy term: Name, (2) Taxonomy term: Name

끝난. 레벨이 두 개 이상인 경우 부모를 관계의 관계로 사용하여 다른 부모 관계를 추가하십시오.

편집 : 관계가 필요하지 않으면 속임수로 끝납니다. 노드에서 참조하는 하위 용어가있는 경우 상위 항목이 두 번 나열됩니다. 따라서 이것은 참조하지 않는 노드가없는 최상위 용어의 답변을 약간 제한합니다. 또한 정렬이 중요 할 수 있으므로 최상위 용어를 참조하는 콘텐츠가 있으면 디스플레이 요구에 따라 잠재적으로 문제가 발생할 수 있습니다.

0
cdmo

나는 같은 것을 성취하려고 노력하고 있지만 D7에서 많은 것을 사용할 수는 없습니다. Taxonomy Blocks 모듈은 블록이 아닌 뷰에서 수행합니다.

0
uwe