it-swarm-ko.tech

보기 3 관계 처리기

Drupal 7)에서 Views 3에 대한 관계 처리기를 작성하려고하지만 시작조차 실패합니다.

기본적으로 동일한 유형의 필드가 연결된 다양한 유형의 노드가 있습니다. 이 필드는 Civicrm 컨택에 연결되는 참조 필드입니다. 그러나이 필드는 본질적으로 정수만 포함하므로 중요하지 않습니다.

이제 컨텐츠 유형 'story'의 노드가 있고 참조 필드에 정수가 포함되어 있다고 가정 해 봅시다. 55라고 말하십시오. 또한 컨텐츠 유형 'news'의 노드에는 참조 ID 55도 포함되어 있습니다.

스토리 페이지에 앉아 노드의 nid를 인수로 읽는 블록 뷰를 작성하고 관계를 통해 자신과 동일한 참조 정수를 포함하는 다른 모든 노드를 발견하려고합니다.

(제 머리에서 SQL은 다음과 같습니다. SELECT n.nid FROM node n INNER JOIN node n2 ON n.reference = n2.reference [단순화를 위해 필드 데이터가 노드 테이블에 유지된다고 가정]).

이 관계를 충족시키는 Views 핸들러를 작성하는 방법 내가 찾을 수있는 유일한 문서는 뷰 api입니다. 버전 2는 3이 아니며, 그 외에는 전혀 도움이되지 않습니다. 다양한 모듈의 뷰 핸들러를 읽는 것도 도움이되지 않으며 웹의 뷰 자습서는 거의 존재하지 않습니다.

5
Torrance

정말로 관계 핸들러가 필요합니까?

일반적으로 기본 관계 핸들러는 실제로 강력한 기본 조인 클래스를 사용하기 때문에 이미 매우 유연합니다.

관계 처리기 (예 : 관계 모듈)에 대한 사용 사례가 있지만이 모듈은 일부 부두 기능을 수행합니다.

다시 문제로 돌아가십시오. 올바른 필드와 기본 필드로 '관계'를 정의하면 충분할 수 있습니다.

추신 : api = 2와의 차이가 크지 않기 때문에 api = 3에 대한 문서가없는 큰 이유가 있습니다.

다음은 관계를 정의하는 방법에 대한 예입니다.

  $data['node_revision']['vid'] = array(
    'relationship' => array(
      'handler' => 'views_handler_relationship',
      'base' => 'node',
      'base field' => 'nid',
      'title' => t('Content'),
      'label' => t('Get the actual content from a content revision.'),
    ),
  );
9
Daniel Wehner