【问题标题】:Extending the umbraco dashboard扩展 umbraco 仪表板
【发布时间】:2009-06-08 23:04:57
【问题描述】:

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

【问题讨论】:

    标签: umbraco


    【解决方案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>
    

    部分节点允许您为不同的管理部分设置不同的选项卡组。在上面的示例中,最新编辑、最新项目和创建博客文章选项卡将应用于默认、成员和内容部分。默认值是用户在选择部分之前登录后端时首先看到的内容。

    要控制在不同部分中看到的内容,您可以设置一个新的部分节点并定义它适用于哪个区域以及要显示的选项卡。在上面的示例中,第二部分仅适用于媒体部分。

    选项卡中显示的是普通的 .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

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

    【讨论】:

    • 非常感谢。你的回答很透彻。我要补充一点:如果将“成员”部分添加为区域,则实际上将其命名为“成员”。当我之前尝试过这个时,这让我绊倒了。
    • 好的,我已在示例 XML 中添加了成员​​,因此遇到此问题的人们有望避免陷入困境!
    • 上面给出的链接现在已经过期 - 如果有人在截屏后查看该过程,请查看geckonewmedia.com/blog/2009/8/3/… 最后的评论肯定是正确的 - 添加标签比添加新标签容易得多部分...
    • 这适用于哪个版本的 Umbraco?
    • @Vinny V5 已经完全重新架构,几乎所有东西都是可插拔的。所以是的,你将能够做到。但是实现它的方式会有很大的不同。
    【解决方案2】:

    哇! 7 年前的帖子仍然在谷歌搜索中名列前茅。

    让我们更新答案:

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

    仪表板

    与 /config 目录中的其他 .config 文件一样,Dashboard.config 文件允许您自定义 Umbraco 体验的一部分。在这种情况下,Dashboard.config 文件控制加载网站的某个部分时 UI 的 Dashboard 部分中显示的内容。 Dashboard 是 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”的区域是用户登录时显示的第一个仪表板,无论用户有权访问哪些部分!

    一个小问题,请确保您的应用名称以小写形式包含在内!

    标签

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

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

    该元素可以设置部分、选项卡和控件的权限,您可以授予或拒绝某些用户类型的访问权限。

    它通过在&lt;section /&gt;&lt;tab/&gt;&lt;control /&gt; 节点下添加&lt;access/&gt; 节点来工作。作为您的孩子,您可以添加

    &lt;grant /&gt; 向这些类型的用户授予权限(并自动拒绝那些不在那里的用户访问!)

    &lt;grantBySection /&gt; 授予那些有权访问特定部分的用户权限。这对于更精细的权限很有用

    &lt;deny /&gt; 拒绝授予这些类型的用户权限(并自动授予其他所有人)

    无论设置如何,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 中自定义仪表板,需要做几件事。创建一个或多个用户控件

    仪表板加载一个或多个用户控件并将它们显示在一系列选项卡上。因此,为了自定义控件,首先需要创建要在页面上显示的 UserControl。如果这些是供您个人使用的,您只需将 UserControls 放置在您网站上可由 Umbraco 访问的位置。建议您将它们放在 /usercontrol 目录中,最好放在您自己的子文件夹中。如果您正在创建一个包供其他人使用,您应该在包中包含用户控件以与包的其余内容一起安装。更新 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 UI 的内容部分(这些部分位于屏幕的左下方)时,它都会加载一个包含三个选项卡的页面,分别称为“上次编辑”、“最新项目”和“创建博客文章”。对于每个选项卡,都会加载一个 UserControl,以提供开发人员为这些选项卡创建的功能。 UI 通过提供的路径找到 UserControls。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多