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