2014-03-04 11 views

답변

1

LogOn이 콘텐츠로 렌더링되므로 배치를 통해 변경할 수 있다고 생각하지 않습니다. 왜 다른 곳으로 렌더링하고 싶습니까?

다른 콘텐츠가 로그온 양식과 함께 표시되도록 하시겠습니까? 이를 위해 위젯을 만들어야합니다. 솔직히 말해서 모듈을 많이 만들었지 만 실제로 많이 테스트하지는 않았고 믿을 수 있을지 잘 모르겠다.^_^그러나 코드를 사용할 수 있으며 올바른 방향으로 가리켜 야합니다.

https://modaccountwidgets.codeplex.com/

당신은 용감 느낌이있는 경우 또는, 갤러리에 설치 될 준비가)

https://gallery.orchardproject.net/List/Modules/Orchard.Module.Contrib.Mod.AccountWidgets

편집

로그온 단지 모양입니다 그래서 이론 상으로는 로그온 URL을 덮어 쓸 수 있습니다.

yield return new RouteDescriptor 
      { 
       Priority = 1000, 
       Route = new Route("Users/Account/LogOn", 
        new RouteValueDictionary { 
              {"area", Area}, 
              {"controller", "MyController"}, 
              {"action", "LogOn"}, 
        }, 
        new RouteValueDictionary(), 
        new RouteValueDictionary { { "area", Area } }, 
        new MvcRouteHandler()) 
      }; 

그리고 여기에서 로그온 모양을 만들고이를 IWorkContextAccessor를 사용하려는 영역으로 보냅니다 (예 : 새 컨트롤러에 삽입).

var logon = _orchardServices.New.LogOn().Title(T("Log On").Text); 
contextAccessor.GetContext().Layout.Zones["MobileContent"].Add(logon, 1); 

그러나 나는 이것이 상당히 지저분 해지는 것을 상상할 수 있습니다. 당신이 어떻게하고 있는지 다시 생각해 볼 수 있습니다. 누군가가 당신을 위해 더 좋은 해결책을 가지고 있을지도 모르지만 :)

+0

우리는 사이트의 데스크톱 버전과 모바일 용으로 2 개의 사용자 정의 테마를 가지고 있습니다. 데스크톱 테마는 콘텐츠 영역을 포함하지만 의도적으로 모바일 테마에서 제외 시켰으므로 데스크톱 사이트 용 위젯은 출력되지 않습니다. 따라서 MobileContent 영역은 모바일 테마의 주요 컨텐츠 영역입니다. –

+0

편집 : 콘텐츠 영역을 유지하는 것이 좋습니다.) – Hazza

+0

콘텐츠 영역을 보관하면 이전 주석에 문제가 있습니다. 당신이 그것을 피할 수있는 방법을 알고 있습니까? 예를 들어 CSS로 위젯을 숨김으로써 작업을 수행 할 수 있지만 위젯이 대역폭상의 이유로 브라우저로 전송되는 것을 피하기를 원합니다. –