2014-10-20 6 views
0

식당, 메뉴 및 메뉴 항목의 3 가지 유형이 있습니다.Drupal 7 - 엔티티 참조 - 다른 노드와 관련된 노드에만 관련된 항목 표시

'레스토랑'이 만들어 질 때 엔터티 참조 및 인라인 엔터티 폼 모듈을 사용하여 메뉴 항목이있는 메뉴를 만들 수 있도록 레스토랑 콘텐츠 형식을 설정했습니다. 이것은 모두 잘 작동합니다.

내가 할 수없는 부분은 메뉴 항목을 '레스토랑'페이지에 올바르게 표시하는 것입니다. 메뉴 항목을 추가 한 메뉴보기 블록을 만들고 콘텐츠 유형 '메뉴 항목'으로 필터링했습니다. 내 레스토랑 페이지에이 블록을 배치 할 때

, 나는 ... 모든 메뉴 항목이 표시되는 것을 볼

나는 레스토랑에 관련된 메뉴 콘텐츠 형식에 관련된에만 메뉴 항목을 표시 할 수있는 방법

보입니까?

편집 : 내 '레스토랑'콘텐츠 형식에서 나는 메뉴 콘텐츠 형식에 엔티티 참조입니다 field_menu을 만들어, 나는 내에서 '메뉴'엔티티의 생성을 허용하는 인라인 법인 형태의 모듈을 사용하는 ' 식당 '만들기 페이지.

마찬가지로 '내 메뉴'콘텐츠 유형에는 메뉴 항목 콘텐츠 유형에 대한 엔터티 참조 인 field_menu_item이 있습니다.

+0

어떻게 엔티티를 설정 했습니까? 메뉴 내용 유형에 대한 엔티티 참조 인 레스토랑 내용 유형의 필드 메뉴와 메뉴 항목 내용 유형에 대한 엔티티 참조 인 메뉴 내용 유형의 필드 메뉴 항목이 있습니까? – geoandri

+0

내 질문을 편집하고 더 자세한 내용을 추가했습니다. 감사! – barrakuda

+0

엔티티 참조를 통해 엔티티 참조로 인해 상당히 복잡합니다. 나는 시도했지만 운동하지 못했습니다. 다시 시도하고 희망을 되 찾을 것입니다. – geoandri

답변

0

이 경우 메뉴 항목보기의 필드 메뉴에 액세스하려면 메뉴 항목과 레스토랑 간의 관계를 추가해야합니다. 고급 영역 관계에서이 작업을 수행하고 필요한 엔티티 참조를 추가 할 수 있습니다. 귀하의 경우에는 메뉴 참조 필드 및 레스토랑 참조 필드를 추가해야합니다. 그들은 비슷하게 보일 것입니다.

Entity Reference: Referencing entity 
A bridge to the Content entity that is referencing Content via menu_item_field 

위의 모든 내용은보기의 필터에 메뉴 필드가 나타납니다. 블록 뷰의 필터에서 메뉴 필드에 액세스 할 수 있으면 해당 필드에 대한 상황 별 필터를 추가해야합니다.

"필터 값이 URL에 없을 때"영역의 컨텍스트 필터에서 "기본값 제공"을 선택하고 "PHP 코드"를 입력하십시오 (이 경우 PHP 필터를 활성화해야합니다). PHP 코드 영역에서 다음 코드를 내가 당신을 혼동하지 않았다

$node=menu_get_object(); 
return $node->field_your_machine_field_name['und'][0]['target_id']; // this is the field you will use for filttering.It should be the menu field in the restaurant content type 

희망을 가져야한다. 그것은 간단한 작업이 아니지만.

+0

관계 추가 팝업에서 restaurant_field에 대한 옵션이 표시되지 않습니다. field_menu 및 field_menu_item에 대한 옵션 만 볼 수 있습니다. – barrakuda

+0

첫 번째 관계를 추가 한 후 두 번째 관계를 사용할 수 있어야합니다. – geoandri

+0

내 메뉴 콘텐츠 형식에 restaurant_field가 없으므로보기를 만들 때 "엔터티 참조 : 참조 된 엔터티"를 선택하는 옵션이 표시되지 않습니다. . via restaurant_field "콘텐츠 유형을 함께 연결하는 방법은 식당> 메뉴> 메뉴 항목입니다. 그래서 레스토랑 콘텐츠 유형에서 메뉴를 참조하고 메뉴에서 메뉴 항목을 참조합니다. 이것은 그것이 설정되어야하는 것처럼 보이지만 나는 다른 것을해야만하는지 잘 모르겠습니다. – barrakuda