Подтвердить что ты не робот

Расширение панели приборов umbraco

Я хотел бы добавить свой собственный раздел в панель управления umbraco, чтобы я мог интегрировать свой собственный элемент администрирования в существующую структуру login/admin. Возможно ли это без редактирования и перекомпиляции самого источника umbraco? Рекомендуется ли это? Если да, у кого есть ресурсы, чтобы начать это делать?

4b9b3361

Ответ 1

Да, это возможно.

Бэкэнд может быть расширен как с точки зрения панели, разделов, так и с помощью деревьев контента.

Имеется файл конфигурации, который вы можете использовать для определения новых разделов панели мониторинга. Файл конфигурации можно найти в следующей папке: /config/dashboard.config

Обычно файл dashboard.config имеет некоторый пример XML того, как он должен быть структурирован, что выглядит примерно так (я немного расширил его, чтобы показать больше возможностей).

<dashBoard>
    <section>
        <areas>
            <area>default</area>
            <area>content</area>
            <area>member</area>
        </areas>

        <tab caption="Last Edits">
            <control>/usercontrols/dashboard/latestEdits.ascx</control>
        </tab>
        <tab caption="Latest Items">
            <control>/usercontrols/dashboard/newestItems.ascx</control>
        </tab>
        <tab caption="Create blog post">
            <control>/usercontrols/umbracoBlog/dashboardBlogPostCreate.ascx</control>
        </tab>
    </section>
    <section>
        <areas>
            <area>media</area>
        </areas>

        <tab caption="Last Edits">
            <control>/usercontrols/dashboard/latestEdits.ascx</control>
        </tab>
    </section>
</dashBoard>

Раздел node позволяет вам настроить разные группы вкладок для разных разделов администратора. В приведенном выше примере вкладки "Последние изменения", "Последние элементы" и "Создать запись в блоге" будут применены к разделам по умолчанию, члену и контенту. Defaut - это первое, что видит пользователь при входе в задний конец перед выбором раздела.

Чтобы контролировать то, что видно в разных разделах, вы настраиваете новый раздел node и определяете, к какой области он относится, и вкладку для отображения. В приведенном выше примере второй раздел применяется только к разделу мультимедиа.

То, что отображается на вкладке, является обычным пользовательским элементом .NET. Это может быть полностью отделено от Umbraco или может содержать специальный код умбрако, в зависимости от того, насколько вы интегрируете устаревшее приложение или просто расширяете umbraco.

Если вы хотите создать новый раздел (один из значков, который появляется в нижнем левом углу бэкэнда umbraco), вам нужно будет немного разобраться в ваших руках.

Чтобы добавить раздел, вам нужно добавить пару записей в базу данных. Сначала вам нужно определить приложение в таблице umbracoApp.

Затем добавьте запись в umbracoUsers2App для пользователя admin (0).

Затем вам необходимо определить новое дерево данных и создать поддерживающие пользовательские элементы управления.

Дополнительную информацию об установке здесь можно найти здесь: http://www.geckonewmedia.com/blog/2009/8/3/how-to-create-a-custom-section-in-umbraco-4

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

Ответ 2

Ничего себе! 7-летняя почта по-прежнему сверху на google search.

Итак, давайте обновим ответ:

Здесь вы найдете документацию по расширению панели мониторинга: Dashboards

Панель управления

Как и в других файлах .config в каталоге /config, файл Dashboard.config позволяет вам настроить часть опыта Umbraco. В этом случае файл Dashboard.config управляет тем, что отображается в разделе панели инструментов пользовательского интерфейса при загрузке раздела сайта. Панель мониторинга - это область с правой стороны пользовательского интерфейса, где происходит большая часть ввода данных и функционального взаимодействия.

По умолчанию Umbraco показывает пустую панель мониторинга, когда новый раздел загружается и отображает только форму, когда вы предпринимаете действия в этом разделе (т.е. когда вы нажимаете на node в разделе "Содержимое", панель инструментов показывает форму для обновления данные node). Но что, если вы хотите представить своим пользователям пользовательских интерфейсов некоторые параметры еще до того, как они нажмут на node? Это то, что позволяет Dashboard.config.

Layout

Как и другие .config файлы, Dashboard.config - это простой XML файл с довольно прямолинейным расположением, как показано ниже.

<?xml version="1.0" encoding="utf-8" ?> 
<dashBoard> <!-- root of the dashboard xml tree -->
   <section>  <!-- defines a dashboard layout for a group of sections -->
        <areas> <!-- Declares which sections (i.e. content,media,users,[your own]-->
            <area>[area name]</area> <!-- A section to apply this to -->
            ...
        </areas>

        <tab caption="[caption]"> <!-- Creates a tab in the Dashboard with the assigned Caption -->
            <control>[path]</control> <!-- What control to load in that tab -->
        </tab>
        ...
   </section>
   ...
</dashBoard>

Раздел (отличный от раздела Umbraco UI) Отбрасывает информацию панели мониторинга для применения к одному или нескольким разделам. Dashboard.config может включать несколько разделов.

Области

Определяет, какие разделы пользовательского интерфейса Umbraco применяют подмножество информации панели мониторинга. область - всегда в нижнем регистре!

Имя * раздела UI Umbraco, где вы хотите, чтобы ваш пользовательский элемент управления отображался (например, контент, медиа, разработчик, настройки, члены или имя пользовательского раздела). Вы можете добавить свои элементы управления в несколько разделов, добавив несколько узлов.

Область с именем "по умолчанию" является первой информационной панелью, отображаемой при входе пользователя в систему, независимо от того, к каким разделам имеет доступ пользователь!

Немного получилось, убедитесь, что вы указали название своего приложения в нижнем регистре!

Tab

Определяет вкладку страницы, к которой вы хотите добавить свой пользовательский элемент управления. Атрибут "caption" определяет текст, отображаемый на вкладке. Для каждого элемента управления страницы "Панель" может быть несколько вкладок

Определяет путь к пользовательскому элементу управления, который вы хотите отображать на вкладке.

Этот элемент позволяет устанавливать разрешения для разделов, вкладок и элементов управления, а также вы можете предоставить или запретить доступ к определенным типам пользователей.

Он работает, добавляя <access/> node либо из <section />, <tab/>, либо <control /> node. Как дети из вас могут либо добавить

<grant />, который предоставляет разрешения для этих типов пользователей (И автоматически запрещает доступ к тем, кто их там нет)

<grantBySection />, который предоставляет разрешения тем пользователям, которые получили доступ к определенным разделам. Это может быть полезно для более гранулированных разрешений

<deny />, который запрещает доступ к этим типам пользователей (И автоматически предоставляет всех остальных)

Независимо от настроек, пользователь root (id: 0) может видеть все, поэтому не стоит паниковать, если вы устанавливаете права доступа для администраторов и все еще можете видеть все; -)

Пример разрешений:

<tab caption="Last Edits">
    <access>
        <grant>writer</grant>
        <grant>editor</grant>
        <grantBySection>content</grantBySection>
    </access>
    <control>/usercontrols/dashboard/latestEdits.ascx</control>
</tab>

Настройка

Чтобы настроить панель управления в Umbraco, нужно сделать пару вещей. Создайте один или несколько UserControls

Панель инструментов загружает один или несколько UserControl и отображает их на нескольких вкладках. Поэтому, чтобы настроить элемент управления, необходимо сначала создать UserControls, которые должны отображаться на странице. Если это для вашего личного использования, вы можете просто разместить UserControls в месте на вашем сайте, к которому может получить доступ Umbraco. Рекомендуется поместить их в каталог /usercontrol, предпочтительно в свою собственную подпапку. Если вы создаете пакет для использования другими пользователями, вы должны включить в комплект пакета usercontrols для установки с остальной частью содержимого пакета. Обновите Dashboard.config

После создания UserControls, который вы хотите загрузить при загрузке раздела, вы должны затем обновить Dashboard.config, чтобы сообщить Umbraco о загрузке UserControls при входе пользователя в новый раздел. Опять же, если вы делаете это для себя все, что вам нужно сделать, это отредактировать Dashboard.config на вашем сайте, чтобы добавить элементы управления. Однако, если вы добавляете раздел для работы с пакетом, вы захотите включить действие пакета для обновления Dashboard.config во время установки. Нажмите здесь, чтобы получить дополнительную информацию о действиях пакета. Пример

Ниже приведен пример допустимого Dashboard.config:

<?xml version="1.0" encoding="utf-8" ?> 
<dashBoard>
    <section>
        <areas>
            <area>content</area>
        </areas>        
        <tab caption="Last Edits">
            <access>
                <deny>editor</deny>
            </access>
            <control>/usercontrols/dashboard/latestEdits.ascx</control>
        </tab>
        <tab caption="Latest Items">
            <control>/usercontrols/dashboard/newestItems.ascx</control>
        </tab>
        <tab caption="Create blog post">
            <control>/usercontrols/umbracoBlog/dashboardBlogPostCreate.ascx</control>
        </tab>
    </section>
</dashBoard>

Это делается каждый раз, когда пользователь нажимает на раздел "Содержимое" пользовательского интерфейса Umbraco (разделы находятся в левом нижнем углу экрана) загружает страницу с тремя вкладками "Последние изменения", "Последние элементы" и Msgstr "Создать запись в блоге". Для каждой вкладки UserControl загружается для обеспечения функциональности, созданной разработчиком для этих вкладок. Пользовательский интерфейс находит UserControls через предоставленные пути.