나는 이와 비슷한 것을 만들어야합니다 :
색상 (어휘)
- 레드 (용어)
- 어두운 (용어)
- 노드 1
- 노드 2
- 빛 (용어)
- 노드 3
- 노드 4
- 어두운 (용어)
- 파란색 (용어)
- 노드 5
- 노드 6
- 녹색 (용어)
- 노드 7
- 노드 8
(글 머리 기호는 들여 쓰기입니다.)
Drupal 7 및보기 3에서이를 수행 할 수있는 방법이 있습니까? 그렇지 않은 경우 다른 방법이 있습니까?
나는 이와 비슷한 것을 만들어야합니다 :
색상 (어휘)
(글 머리 기호는 들여 쓰기입니다.)
Drupal 7 및보기 3에서이를 수행 할 수있는 방법이 있습니까? 그렇지 않은 경우 다른 방법이 있습니까?
답변:
refino 덕분에 다음 모듈을 사용하여 멋진 솔루션을 찾았습니다.
아래에 설명이 있습니다.
이 도움을 바랍니다
건배
iStryker 편집 : 이것이 내가 얻은 것입니다. 내가 변경 한 유일한 것은 Element View 를 테이블 뷰로 만들고 기본 (행 및 스트립) 클래스를 제거하는 것입니다.
Drupal 7.8 및 Views 3 + Views Field에서 Include View를 사용하여 하나의 뷰를 다른 뷰에 중첩하여 세 개의 뷰를 만들었으며 결과가 첨부되었습니다.
단계별 방법 :
어휘 "색상"을 작성하고 태그로 채 웁니다.
분류 노드의 색상을 새로 만듭니다. 색상- "노드 색상"이라고합니다.
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 저장
... 그리고 이것이 마지막이되어야합니다.
나는 이것의 D6 또는 D7 버전을 시도하지 않았지만 당신이 찾고있는 경우를 대비하여 언급 할 것이라고 생각했다. Views Tree Module-D7 progress
편집 : 이제 D7 버전이 있습니다. 모듈 홈페이지 뷰 트리를 확인하십시오.
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" : "";
}
물론 있습니다 :
컨텍스트 필터를 사용 하여 해당 컨텐츠 유형에서 노드를 나열하는보기를 작성하십시오 .
또는 "컨텐츠 : 분류 용어 ID (깊이 포함)"-특정 용어 및 하위 용어에 지정된 노드를 나열하려는 경우.
이 경우 필터 구성에서 깊이를 설정해야합니다.이 필터를 작동시키려는 레벨의 수 (또는 그 이상).
그런 다음 뷰의 URL을 가정 것은 http://mysite.com/myview 당신이 갈 경우 '레드'TID = 1, http://mysite.com/myview/1 그것은 당신에게 중 하나에 할당 된 모든 노드를 나열합니다 '빨간색', '어두운'및 / 또는 '빛'이라는 용어.
나는이 문제를 해결할 수있는 또 다른 방법을 찾았으며 다른 솔루션보다 간단하다고 생각합니다. 추가 모듈은 필요하지 않으며 하나의보기 만 필요합니다.
두 레벨의 계층 적 어휘 (색상)와 해당 어휘에 대한 용어 참조가있는 컨텐츠 유형을 작성했다고 가정하면 다음을 수행하십시오.
Taxonomy term: Content using Color
및 (2)Taxonomy term: Parent term
Title
( field_color
"관계"에서 선택 하고이 관계가 필요합니다. ), (2) Taxonomy term name
(관계를 사용하지 않고 표시에서 제외) (3) Taxonomy term name
(예, 이번에 Parent
는 관계를 선택 하고 제외하십시오. 디스플레이에서).(Parent) Taxonomy term: Name
, (2)Taxonomy term: Name
끝난. 레벨이 두 개 이상인 경우 부모를 관계의 관계로 사용하여 다른 부모 관계를 추가하십시오.
편집 : 관계가 필요하지 않으면 속임수로 끝납니다. 노드에 의해 참조되는 하위 용어가있는 경우 상위가 두 번 나열됩니다. 따라서 이것은 참조하지 않는 노드가없는 최상위 용어의 답변을 약간 제한합니다. 또한 정렬이 중요 할 수 있으므로 최상위 용어를 참조하는 콘텐츠가 있으면 디스플레이 요구에 따라 잠재적으로 문제가 발생할 수 있습니다.