보기에 대한 컨텍스트 필터로서 분류 용어 이름


18

D7에서는 URL에서 가져온 분류 용어 이름 에 따라보기를 필터링 할 수있었습니다 . 예를 들면이 URL입니다

http://www.gbyte.co/tags/drupal-planet/rss.xml

"drupal-planet"은 분류 용어 ID로 변환되어 뷰 결과를 적절히 필터링합니다.

이제 컨텍스트 필터 "Content : Tags (field_tags)", field_tags가 분류 필드 인 해당 D8보기를 설정했습니다. 그러나 D8보기는 실제 용어 ID를 다음과 같이 URL에 전달할 때만 결과를 표시합니다.

http://www.gbyte.co/tags/9/rss.xml

D7과 같은 이름 으로도 작업하고 싶습니다. 기능이 누락되었거나보기를 다르게 구성해야합니까?


이것에 대한 뉴스가 있습니까? 저도 같은 문제가
제론

답변:


20

D8보기 에서 용어 ID 필터 로 변환용어 이름 이 누락 된 것으로 보입니다 .

사이트 작성기의 한 가지 해결 방법은 노드에 Relationship , Taxonomy 용어 를 추가 한 다음 위에서 언급 한 관계를 사용하여 Contextual Filters에 Taxonomy Term : Name 필터를 추가하는 것 입니다. 당좌 지정 검증 기준 체크 박스를, 당신의 설정 검사기분류 용어의 이름 및 해당 검사 분류를 필터링 할.


12
D8에서 상황 별 필터 UI 추가의 사이트 빌더 함정 : 상황 별 필터의 제목은 '이름'이며 카테고리는 '택시 노미 용어'입니다. 'taxonomy'를 검색하면 제목이 아닌 설명과 제목 만 검색되므로이 필터를 나열하지 못합니다.
keithm

1
또한 상황 별 필터 설정에서 제목덮어 쓸 수 있습니다 {{ arguments.name }}.
cptstarling

3

Drupal 8에서이 모듈 확인 분류 용어 이름 깊이

이 모듈은 다음 이미지와 같이 상황 별 필터를위한 플러그인을 제공합니다. 여기에 이미지 설명을 입력하십시오


3

완료를 위해 질문을 작성할 때 분류 용어 용어 이름을 URL에서 views_hook_pre_view ()의 용어 ID로 변환 한 다음 컨텍스트 필터의 입력으로 사용 하여이 문제를 해결할 수있었습니다. 분류 ID를 허용합니다.

뷰 훅의 코드는 다음과 같습니다.

/**
 * Implements hook_views_pre_view().
 */
function my_module_views_pre_view(\Drupal\views\ViewExecutable $view, $display_id, array &$args) {
  if ($view->id() == 'blog' && $display_id == 'feed') {
    if (isset($args[0])) {
      $term = taxonomy_term_load_multiple_by_name($args[0], 'tags');
      if (empty($term)) {
        $term = taxonomy_term_load_multiple_by_name(str_replace("-", " ", $args[0]), 'tags');
      }
      if (!empty($term)) {
        $tid = key($term);
        $args[0] = $tid;
      }
    }
  }
}

2

Shawn Conn의 답변을 확장하려면 다음을 수행하십시오.

  • 보기 구성의 고급-> 관계에서 '추가'를 클릭하십시오.
  • 이제 '노드에 대한 택 소노 미 용어'를 선택하십시오.
  • 다음 화면에서 '태그'어휘를 선택하고 관계가 필요합니다.
  • 이제 고급-> 상황 별 필터에서 '추가'를 클릭하십시오.
  • '필터를 사용할 수없는 경우'아래에서 '기본 값 제공', 'URL의 원시 값'을 선택하십시오. 필요에 따라 다른 옵션을 선택하십시오.
  • '필터가 사용 가능하거나 기본값이 제공되는 경우'에서 '유효 검증 기준 지정'을 선택하고 유효성 검증기의 '택시 노미 용어 이름'을 선택하십시오. '태그'어휘를 선택한 다음 적용을 클릭하십시오.

희망이 도움이됩니다!


1

여전히이 문제가 있는지 모르겠지만 원하는 분류 용어를 사용하여 "노드의 택 소노 미 용어"에 대한 관계를 작성한 다음 "택시 노미 용어 : 이름"에 대한 해당 관계를 사용하여 컨텍스트 필터를 작성할 수 있습니다. TID가 아닌 이름을 기준으로 유효성을 검사합니다.


2
이 질문에 설명 된 것과 동일한 문제가 있습니다. 더 명확 할 수 있습니까? 이미 관계를 설정했지만 상황 별 필터는 용어 이름 대신 tid로만 작동합니다. 물론 우리는 D8에 대해 이야기하고 있습니다. 미리 감사드립니다.
Vagner

1

@kiethm은 이에 접근하는 올바른 방법을 제공했습니다. 상황 별 필터에서 'Taxonomy Term ID'가 아닌 ' Name' 을 선택한 다음 'Taxonomy Term Name' 을 사용하도록 유효성 검증 기준을 설정해야합니다 .


1

이 답변을 한동안 찾고 있습니다. 나 같은 다른 사람이 다음에서도 여기에에서 부분적으로 내에 성공으로 작업, I Gumped 내 길을 만드는 방법을 찾고 drupal.org의 결과를 들어 : http://redcrackle.com/blog/adding-contextual-filter -view-drupal-8

Drupal 8과 Zircon을 사용하고 있습니다. 나는 새로운 브랜드이므로 잘못된 용어를 사용할 수 있습니다. 누군가가있는 페이지의 카테고리를 기반으로 한 "Panel first col 1"에서 상황에 맞는 이미지 링크를 만들고 싶었습니다. 내가 한 것은 구조>보기> 회전 목마 (해당 블록 영역에 그림이있는보기)> 고급> 상황 별 필터로 추가> 분류 용어 ID가 있음> URL에서 분류 용어 ID를 선택하십시오. 나에게 의미가 없지만 무엇이든)> 그런 다음 세 상자를 모두 선택했습니다. 용어 페이지에서 기본 필터로드, 노드 페이지에서 기본 필터로드, 관련 분류 블록에 적합, 어휘로 용어 제한. 그런 다음 어휘에 대해 카테고리를 확인했습니다.

휴! 드디어! 올바른 방향으로 나를 가리켜 주신 모든 분들께 감사드립니다! 나는 그것이 왜 효과가 있는지 전혀 설명 할 수 없었지만 그것이 무엇을 하든지 계속해서 고용 될 것입니다.


1

누락 된 기능을 복원하고 다시 제대로 작동하도록 작은 모듈을 작성했습니다.

https://www.drupal.org/project/views_taxonomy_term_name_into_id

뷰의 '컨텍스트 필터'에 사용 된 분류 용어에 대해 '용어 이름을 ID로 변환'인수 유효성 검증기를 다시 추가합니다. 자세한 정보 및 지침은 프로젝트 페이지를 참조하십시오.

즐기세요 -Derek (dww)


0

콘텐츠 를 추가하여 수행 할 수 있습니다 . 컨텍스트 필터에 분류 용어 ID가 있는 경우 필터 기준을 조정하여 컨텍스트에서 분류를 사용할 수 있습니다.

여기에 이미지 설명을 입력하십시오


D7 설치에서 스크린 샷을 찍었습니다. D8에는 "Taxonomy Term"유효성 검사기가 없습니다. 대신 "Taxonomy 용어 ID"또는 "Taxonomy 용어 이름"이 둘 다 URL에서 분류 이름을 허용하지 않습니다. 그들은 ID 만 받아들입니다.
gbyte.co

0

나는 문맥 상 필터를 취함으로써 Drupal-8에서 이것을 달성했다 : "Taxonomy term : Name"

그런 다음 기본값을 입력하십시오. URL에서 분류 용어 ID

그런 다음 다음 유효성 검사 기준을 지정하십시오.

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.