Могу ли я использовать условные выражения для отображения виджета сетки? - PullRequest
2 голосов
/ 07 января 2020

Я работаю на новом сайте Sitefinity 12.2. Я отображаю верхний и нижний колонтитулы сайта с помощью пользовательских виджетов сетки с местозаполнителями, определенными для таких виджетов, как навигация по сайту. В заголовке есть всплывающее меню с заполнителями, которые я хотел бы заполнить виджетами на моем шаблоне страницы. К сожалению, мне нужно отключить пользовательский сайт JavaScript в режиме дизайнера, чтобы избежать проблем с инструментами редактирования, поэтому я не могу получить доступ к всплывающему меню обычным способом, так как он переключается с помощью пользовательского JavaScript.

В идеале я хотел бы условно отобразить альтернативное представление всплывающего меню в режиме конструктора страниц, чтобы позволить авторам изменять содержимое этих заполнителей. В файле Razor это возможно с чем-то вроде

@if (SystemManager.IsDesignMode)

, но виджеты сетки используют файлы. html, поэтому синтаксис Razor недоступен. Могу ли я применить какой-либо атрибут к тегу в шаблоне виджета сетки, чтобы сказать Sitefinity отображать разметку только в режиме конструктора? Если нет, есть ли другие рекомендации, которым я должен следовать, чтобы избежать такой ситуации?

1 Ответ

3 голосов
/ 10 января 2020

Я последовал совету Веселина и добавил собственный стиль в свой файл макета только в режиме дизайна. Я всегда мог видеть всплывающее меню, которое соответствует моим потребностям. Я также получил совет от кого-то из Sitefinity, что можно обнаружить редактор страниц в Javascript, ища класс 'sfPageEditorWrp', который может быть полезен, если один CSS не обрезает его.

Это простой дисплей: блок для моего всплывающего меню, он выглядит немного уродливо в редакторе, но он показывает заполнители, которые меня волнуют. В моем файле макета:

@if (SystemManager.IsDesignMode)
    {
        <style>
            .mobile-menu {
                display: block !important;
            }
        </style>
    }
...