Удлинение приборной панели umbraco - PullRequest
23 голосов
/ 09 июня 2009

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

Ответы [ 2 ]

42 голосов
/ 09 июня 2009

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

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

Существует файл конфигурации, который вы можете использовать для определения новых разделов панели. Файл конфигурации находится в следующей папке: /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>

Узел раздела позволяет вам устанавливать разные группы вкладок для разных разделов администратора. В приведенном выше примере вкладки «Последние изменения», «Последние элементы» и «Создать запись в блоге» будут применены к разделам по умолчанию, участникам и содержимому. Defaut - это первое, что пользователь видит при входе в бэкэнд перед выбором раздела.

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

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

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

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

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

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

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

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

2 голосов
/ 13 октября 2016

Вау! 7 лет пост все еще топ в поиске Google.

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

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

Приборная панель

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

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

Компоновка

Как и другие файлы .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 UI, в котором вы хотите, чтобы отображался ваш пользовательский элемент управления (например, контент, медиа, разработчик, настройки, участники или имя пользовательского раздела). Вы можете добавить свои элементы управления в несколько разделов, добавив несколько узлов.

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

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

Tab

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

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

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

Он работает путем добавления узла <access/> в узле <section />, <tab/> или <control />. В качестве детей вы можете добавить

<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 в месте на вашем сайте, к которому Umbraco может получить доступ. Рекомендуется поместить их в каталог / usercontrol, желательно в свою собственную подпапку. Если вы создаете пакет для использования другими, вы должны включить usercontrols в пакет для установки вместе с остальным содержимым пакета. Обновите Dashboard.config

После того, как вы создали пользовательские элементы управления, которые вы хотите загружать при загрузке раздела, вы должны затем обновить Dashboard.config, чтобы сообщить Umbraco о загрузке пользовательских элементов управления, когда пользователь входит в новый раздел. Опять же, если вы делаете это для себя, все, что вам нужно сделать, это отредактировать 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 (разделы находятся в левом нижнем углу экрана), он загружает страницу с тремя вкладками, которые называются «Последние изменения», «Последние элементы» и "Создать запись в блоге". Для каждой вкладки загружается UserControl, чтобы обеспечить функциональность, созданную разработчиком для этих вкладок. Пользовательский интерфейс находит пользовательские элементы управления по указанным путям.

...