아, 다시 만나겠습니다.
위젯이 빌드되어 Orchard.Widgets.Filters.WidgetFilter
클래스의 레이아웃에 삽입됩니다. 위젯에 사용되는 디스플레이 유형을 수정하는 방법은 없습니다 (기본값 : WidgetFilter
은 기본값 "Detail"을 사용함).
이 문제를 해결하려면 자신의 구현 인 WidgetFilter
을 사용할 수 있습니다. 기존 코드를 자신의 클래스에 복사하고 클래스에 [OrchardSuppressDependency("Orchard.Widgets.Filters.WidgetFilter")]
속성을 추가하십시오. 이렇게하면 기존 WidgetFilter
이 사용되고 있지 않은지 확인합니다.
OnResultExecuting
메서드를 통해 읽으면 마지막 부분 근처에 BuildDisplay
이 호출되어 있음을 알 수 있습니다. 이 메소드의 두 번째 인수는 표시 유형이 될 수 있습니다. widgetPart.Record.Zone
을 검사하여 위젯이 배치 된 위치를 확인하고 이에 따라 displayType 매개 변수에 다른 값을 전달할 수 있습니다.
이것이 가장 우아한 방법인지는 확실하지 않지만 시작해야 할 부분입니다. 아마도 다른 누군가가 깔끔한 해결책을 가지고있을 수도 있습니다.
출처
2013-02-06 15:11:02
mdm
정확히 무엇을 하려는지는 확실치 않지만 표시 유형을 변경하지 않고 위젯 대체품을 찾는 것처럼 보입니다. –
나는 대체 displaytype로 그것을하기를 바랬지 만 위젯은 매번 디스플레이 타입을 세부적으로 렌더링하므로별로 갈 길이 없다. 위젯을 생성하면 해당 뷰 또는 유사한 것을 지정할 수 있습니다. 나는 틀렸지 만 대체 할 수는 없다. – Jonnymaboy
@BertrandLeRoy, 나는 모양을 많이 덮어 썼다. 그러나 그들은 단지 : display (model.content)라는 제목이나 다른 부분에 접근 할 수 없다. 위젯의 제목을 변경하는 것, 즉 h2 대신 h3으로 변경하는 것과 같은 간단한 것을 변경하는 방법을 찾을 수 없기 때문에 여기에 트릭이 없습니다. – Jonnymaboy