我想将我自己的部分添加到 umbraco 仪表板,以便我可以将我自己的管理部分集成到现有的登录/管理结构中。如果不编辑和重新编译 umbraco 源本身,这是否可能?推荐吗?如果是这样,是否有人有资源开始这样做?
2 回答
是的,这是可能的。
后端可以在仪表板、部分和内容树方面进行扩展。
有一个配置文件可用于定义新的仪表板部分。配置文件可以在以下文件夹中找到:/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
第一种方法(仅定义一些新选项卡)比添加新部分要容易得多,所以我建议您从它开始。然后,当您感觉更舒服时,您可以直接潜入并创建全新的部分和内容树!
哇!7 年前的帖子仍然在谷歌搜索中名列前茅。
所以让我们更新答案:
在这里您可以找到扩展仪表板的文档: 仪表板
仪表盘
与 /config 目录中的其他 .config 文件一样,Dashboard.config 文件允许您自定义 Umbraco 体验的一部分。在这种情况下,Dashboard.config 文件控制加载网站的某个部分时 UI 的 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 部分的名称*(例如内容、媒体、开发人员、设置、成员或自定义部分名称)。您可以通过添加多个节点将控件添加到多个部分。
名称为“默认”的区域是用户登录时显示的第一个仪表板,无论用户有权访问哪些部分!
一个小问题,确保你的应用程序的名字是小写的!
标签
定义您希望将用户控件添加到的页面选项卡。属性“标题”定义选项卡上显示的文本。每个仪表板“页面”控件可以有多个选项卡
定义您希望在选项卡上显示的用户控件的路径。
该元素可以设置部分、选项卡和控件的权限,您可以授予或拒绝某些用户类型的访问权限。
它通过<access/>
在 a或节点<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 中自定义仪表板,需要做几件事。创建一个或多个用户控件
仪表板加载一个或多个用户控件并将它们显示在一系列选项卡上。因此,为了自定义控件,首先需要创建要在页面上显示的 UserControl。如果这些是供您个人使用的,您只需将 UserControls 放置在您网站上可由 Umbraco 访问的位置。建议您将它们放在 /usercontrol 目录中,最好放在您自己的子文件夹中。如果您正在创建一个包供其他人使用,您应该在包中包含用户控件以与包的其余内容一起安装。更新 Dashboard.config
一旦创建了要在加载部分时加载的 UserControl,您必须更新 Dashboard.config 以告诉 Umbraco 在用户进入新部分时加载您的 UserControl。同样,如果您自己这样做,您需要做的就是在您的站点上编辑 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 通过提供的路径找到用户控件。