Могут ли Wrappers в Orchard CMS иметь альтернативы? - PullRequest
2 голосов
/ 11 августа 2011

Мне любопытно, можно ли как-нибудь сделать форму Widget.Wrapper (или другие оболочки) чередуемой, потому что она содержит большую часть HTML-кода виджетов.Мне не нравятся расширенные операторы IF в файлах cshtml, поэтому я бы предпочел использовать ясное решение с использованием механизма альтернатив - возможность создавать альтернативы, подобные этим:

Widget.Wrapper-[ZoneName].cshtml
Widget.Wrapper-[WidgetId].cshtml
Widget.Wrapper-url-[UrlAlternate].cshtml

и т. Д.

Это возможно?Или обертки - это особый случай - и в таком случае почему?

Спасибо

1 Ответ

0 голосов
/ 26 августа 2011

Да, это возможно. Вы можете сделать это с IShapeTableProvider. Перехватите форму, которую ваш виджет отображает, решите, какую обертку вы хотите, и затем добавьте новую обертку.

builder.Describe("YourShapeHere")
    .OnDisplaying(displaying=>{
        displaying.ShapeMetadata.Wrappers.Add("Widget_Wrapper-" + displaying.Shape.Id);
    }
}
...