2016-10-24 2 views
1

셰이프가 Account_UserDetails인데, 래퍼의 일종을 추가하려고합니다. 단지 LI의 무리로 표시되기 때문입니다. 모양을 감싸는 래퍼가 있어야 UL을 더 잘 제어 할 수 있습니다. 다음과 같은 시도했지만 브라우저에서 전혀 보이지 않는 것 같습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?오차드 : ShapeTableProvider 셰이프에 래퍼 추가 ShapeTableBuilder

builder.Describe("Account_UserDetails").OnDisplaying(context => { 
    context.Shape.Metadata.Wrappers.Add("Account_UserDetails_Wrapper"); 
}); 

그런 다음 Account_UserDetails_Wrapper.cshtml으로 래퍼 모양을 추가해야합니다 :

<div> 
    @DisplayChildren(Model) 
</div> 

당신이 더 필요한 경우 과수원

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using Orchard.DisplayManagement.Descriptors; 

namespace Onestop.Themes.LOEH 
{ 
    public class ShapeDataProvider : IShapeTableProvider 
    { 
     public void Discover(ShapeTableBuilder builder) 
     { 
      builder.Describe("Account_UserDetails").OnDisplaying(context => { 
      context.Shape.Wrappers.Add("ul"); 
      }); 
     } 
    } 
} 
+1

UL 태그에 모든 것을 포함하는 래퍼를 만드는 이유에 대해 의아하게 생각합니다. 셰이프 자체의 템플릿에 태그를 추가하는 것이 더 간단하지 않습니까? –

+0

테마 레벨의 Placement.info 만 모양 자체에 액세스 할 수 없습니다. –

+0

왜 당신은'placement.info'에 접근 할 수 있었을지라도 셰이프에 템플릿 오버라이드를 추가 할 수 없습니까? –

답변

1

래퍼는 다음과 같은 추가 할 수 있습니다, 모양입니다 래퍼에 관한 정보는 이쪽을 참조하십시오 link

+0

이것은 내가하고 싶은 것이지만,이 모양을 전혀 생성하지 않습니다. 실제로 Placement.info 파일에 다음을 추가하면 작동합니다 : –

+0

Account_UserDetails = "/ Header_Solo_Secondary : 2; Wrapper = ListWrapper"/> –

+0

ShapeTableProvider 또는 placement.info에 추가하면 래퍼 셰이프를 만들어야합니다 자체 – mdameer