扩展umbraco仪表板

时间:2009-06-08 23:04:57

标签: umbraco

我想将自己的部分添加到umbraco仪表板中,以便我可以将自己的管理部分集成到现有的登录/管理结构中。如果没有编辑和重新编译umbraco源本身,这是否可行?推荐吗?如果是这样,有没有人有资源开始这样做?

2 个答案:

答案 0 :(得分:42)

是的,这是可能的。

后端可以在数据板,部分和内容树方面进行扩展。

您可以使用配置文件来定义新的信息中心部分。 配置文件可以在以下文件夹中找到:/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表中定义应用程序。

然后为管理员用户(0)添加umbracoUsers2App的条目。

然后,您需要定义新的内容树并创建支持的用户控件。

有关于在此设置此内容的更多信息:http://www.geckonewmedia.com/blog/2009/8/3/how-to-create-a-custom-section-in-umbraco-4

第一种方法(仅定义一些新选项卡)比添加新部分容易得多,因此我建议您从此开始。然后,当您感觉更舒服时,您可以直接潜入并创建全新的部分和内容树!

答案 1 :(得分:2)

哇! 7岁的帖子仍然在谷歌搜索上排名第一。

让我们更新答案:

您可以在此处找到扩展仪表板的文档: Dashboards

控制台

与/ config目录中的其他.config文件一样,Dashboard.config文件允许您自定义Umbraco体验的一部分。在这种情况下,Dashboard.config文件控制在网站的一部分加载时在UI的“仪表板”部分中显示的内容。仪表板是UI右侧的区域,用于进行大部分数据输入和功能交互。

默认情况下,Umbraco在新部分加载时显示空白控制台,并且只在您在部分内执行操作时显示表单(即,当您单击“内容”部分中的节点时,控制板会显示更新该节点的表单数据)。但是,如果您希望在用户点击节点之前向UI用户提供一些选项,该怎么办?那就是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的哪些部分应用仪表板信息的子集。 area - 总是小写!

您希望显示用户控件的Umbraco UI部分的名称*(例如内容,媒体,开发人员,设置,成员或自定义部分名称)。您可以通过添加多个节点将控件添加到多个部分。

名称为“default”的区域是用户登录时显示的第一个仪表板,无论用户有权访问哪个部分!

有点问题,请确保以小写字母包含应用名称!

标签

定义您希望将用户控件添加到的页面选项卡。属性“caption”定义选项卡上显示的文本。每个仪表板“页面”控件可以有多个选项卡

定义要在选项卡上显示的用户控件的路径。

该元素可以对部分,选项卡和控件设置权限,您可以授予或拒绝某些usertypes访问权限。

它的工作原理是在<access/><section /><tab/>节点下添加<control />节点。你们的孩子可以添加

<grant />授予这些类型的用户权限(并自动拒绝访问那些不在那里的用户!)

<grantBySection />向有权访问特定部分的用户授予权限。这对于更精细的权限非常有用

<deny />拒绝对这些类型的用户授予权限(AND自动授予其他所有用户)

无论设置如何,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并在一系列选项卡上显示它们。因此,为了自定义控件,首先需要创建要在页面上显示的UserControl。如果这些仅供您个人使用,您可以将UserControl放置在您的站点上可由Umbraco访问的位置。建议您将它们放在/ usercontrol目录中,最好放在您自己的子文件夹中。如果要创建一个供其他人使用的包,则应在包中包含usercontrol,以便与其他包内容一起安装。更新Dashboard.config

在部分加载后创建了要加载的UserControl后,必须更新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 UI的内容部分(这些部分位于屏幕的左下方)时,它会加载一个页面,其中包含三个选项卡,称为“最后编辑”,“最新项目”和“创建博客帖子”。对于每个选项卡,都会加载UserControl以提供开发人员为这些选项卡创建的功能。 UI通过提供的路径找到UserControl。