管理后台-第一部分:Creating custom sections in Umbraco 7(翻译文档)

在Umbraco上每个部分都可以被称为一个应用程序,所以这些部分和应用程序基本上是一样的。我们首先要做的事情是需要创建应用程序。在这个例子中,我不会去摆弄xml文件或是数据库——我将使用类来创建我的内容。

我需要做的第一件事就是创建一个类,实现Application接口,这样我们的Umbraco将会初始化这个类。

  1. [Application("CustomSection", "CustomSection","icon-car", 15)]
  2. public class CustomSectionApplication : IApplication {}

对于V7,这不是新的东西,这个Application属性主要是告诉Umbraco来创建一个新的应用程序。

Name:CustomSection

Alias: CustomSection

Icon:icon-car(css类的图标将显示在左侧栏backoffice)

Sort order: 15

下次Umbraco运行的时候将会在/config/application.config文件中添加一个xml元素,也将会添加一个新的section应用程序。

创建树

在添加树之前,Umbraco是不是在意你新建的应用程序的。一个应用程序没有树它是没有意义的,对吗?

这部分包含了一些V7的新概念。我们开始创建一个新的类,从Umbraco.Web.Trees来继承,确保这个类名称的后缀名是Controller。CustomSectionTreeController。

  1. public class CustomSectionTreeController : TreeController
  2. {
  3. }

现在我们需要给Umbraco关于我们的树的一些额外信息。让我们添加两个属性类,Tree和PluginController。

  1. [PluginController("CustomSection")]
  2. [Umbraco.Web.Trees.Tree("CustomSection", "CustomSectionTree", "My custom section", iconClosed: "icon-doc")]
  3. public class CustomSectionTreeController : TreeController
  4. {
  5. }

 PluginController

这个属性告诉Umbraco,这个类是一个插件的一部分。而且它也告诉Umbraco这个插件的名称。这将会使Umbraco在/app_plugin/{NameOfApplication}/文件夹中寻找视图,而不是在默认的核心视图的文件夹中查找。

Tree

这个属性是以前Umbraco中就有的,我认为大约是4.7以上的版本。它告诉Umbraco一个tree类,Umbraco会将它添加在/config/trees.config文件中。在V7中这个属性是一个强制性的树,在TreeController类中继承了一些潜在的逻辑来查看属性值确定树的名称。

这些属性有:

Application: CustomSection(在匹配应用程序之前我们必须添加的名称)

Alisa: CustomSectionTree(这是树的名字)

Title: The title of the tree(作为根节点的名称)

Icon:图标(作为类的图标)

现在我们需要添加一些代码使得在树上显示一些内容。

 1 [PluginController("CustomSection")]
 2 [Umbraco.Web.Trees.Tree("CustomSection", "CustomSectionTree","My custom section", iconClosed: "icon-doc")]
 3 public class CustomSectionTreeController : TreeController
 4 {
 5     protected override TreeNodeCollection GetTreeNodes(string id, FormDataCollection queryStrings)
 6     {
 7         var nodes = new TreeNodeCollection();
 8         var item = this.CreateTreeNode("dashboard", id, queryStrings, "My item", "icon-truck", true);
 9         nodes.Add(item);
10         return nodes;
11     }
12
13     protected override MenuItemCollection GetMenuForNode(string id, FormDataCollection queryStrings)
14     {
15        var menu = new MenuItemCollection();
16        menu.DefaultMenuAlias = ActionNew.Instance.Alias;
17         menu.Items.Add<ActionNew>("Create");
18         return menu;
19     }
20 }

我们将会看到:

我们创建一个新的内容至少血药两个方法。

GetTreeNodes (TreeNodeCollection)

这将返回树项目的集合,在我们的例子中我们只返回了一个项目,但是我们可以将更多的项目添加到集合中。我们使用创建TreeNode方法,从基类中创建一个新的id为“dashboard”名称为“My item"的节点。Umbraco将节点的id附加在URL之后,以便我们可以从AngularJS-controllers处理路由。

GetMenuForNode (MenuItemCollection)

这个方法处理右边的选择”DefaultMenuAlias“配置当我们点击触点的时候应该被解雇。

有很多的action来供你使用,你也可以建立自己的。

显示我们新的内容

为了显示我们新添加的内容,我们需要给当前用户对它的访问。现在去users部分,打开edit-view为当前登录用户。在底部,选择复选框[customSection],然后保存。现在你可能会需要使用F5刷新页面,左边栏中便可以显示出新的内容。

使我们的[customSection]变得更好看

因为Umbraco找不到任何语言为我们的内容翻译,它将会使用括号和应用程序名称。为了使其显示的更好,打开/umbraco/config/lang/en.xml文件,查看<area alias=”sections”>元素,插入一下元素,仅仅添加:

你可能需要接触根目录web.config文件,来重新启动应用程序,使翻译变得可见。

【原文:http://www.enkelmedia.se/blogg/2013/11/22/creating-custom-sections-in-umbraco-7-part-1.aspx

时间: 2024-10-02 20:58:50

管理后台-第一部分:Creating custom sections in Umbraco 7(翻译文档)的相关文章

Umbraco(5)-Creating Master Template Part 1(翻译文档)

原文地址:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/umbraco5-creating-master-template-part-1/ 创建更多的页面 使用可维护的模板结构 我们已经了解了如何创建一个Document Type,我们可以创建一个只有三个页面的简单网站:Home,News,Contact us.方法就是创建三种(Document Types)文档类型和它们相关联的模板(Create matching temp

Umbraco(2) - Creating Your First Template and Content Node(翻译文档)

创建(编辑)你的第一个模板(Template) 展开 Settings > Templates文件夹 - 然后你应该看到子节点名为"Homepage" - 这是我们在创建Document Type时自动创建的(还记得之前的复选框"Create matching template"吗?) 注意 - 在早期版本7.1的树下不会自动更新显示,如果你没有看到,请尝试刷新Umbraco(Ctrl + F5). 点击Homepage节点将会加载这个模板 - 这里是空的,除

Umbraco(6)-Creating More Pages Using the Master - Part 2(翻译文档)

创建一个Contact Us页面 我们将创建一个新的”联系我们“页面,在该页面我们将放置简单的联系信息.对于添加这个功能你可能想替换为一个完全成熟的形式. 一些有效的解决方案: 使用表面控制器构建自己的接触形式: http://our.umbraco.org/documentation/Reference/Templating/Mvc/forms或者是 http://umbraco.tv/videos/developer/fundamentals/surface-controllers/ 如果你

FreeRTOS官方翻译文档——第二章 队列管理

2.1 概览基于 FreeRTOS 的应用程序由一组独立的任务构成--每个任务都是具有独立权限的小程序.这些独立的任务之间很可能会通过相互通信以提供有用的系统功能.FreeRTOS 中所有的通信与同步机制都是基于队列实现的. 2.2队列的特性数据存储队列可以保存有限个具有确定长度的数据单元.队列可以保存的最大单元数目被称为队列的"深度".在队列创建时需要设定其深度和每个单元的大小.通常情况下,队列被作为 FIFO(先进先出)使用,即数据由队列尾写入,从队列首读出.当然,由队列首写入也是

Django学习小组出品:一起来做一个简单的Blog第一周文档(教程)

本节是 django blog 项目的开篇,是 django 学习小组的集体学习成果.django学习小组是由我发起的一个促进 django 新手互相学习.互相帮助的组织.小组在一边学习 django 的同时将一起完成三个项目: 一个简单django blog,用于发布小组每周的学习和开发文档 django中国社区,为国内的 django 开发者们提供一个长期维护的 django 社区,聚集全国的 django 开发者到这个社区上来 django 问答社区, 类似于segmentfault 和

GIT+云盘作 做 文档管理工具

GIT+云盘作 做 文档管理工具 在工作中, 会遇到公司的文档 和 自己家里的 文档进行同步的问题, 通常我们使用U盘作为传输节制, 但是不是非常好,文档的改动都不能发现, 导致回家同步的时候, 出各种问题. 这时候我们 就可以 考虑使用GIT了,  外加一个百度云盘 则就顺利的完成了 文档同步和历史文档管理 1.  下载必要的工具msysgit+git tortoise + 百度同步盘. 2.  安装三个工具, 并且在初次使用git tortoise 的时候需要指向msysgit的bin目录

API文档管理工具折射出的技术视野

# 什么是技术视野 网上看到不少关于如何提升技术视野的讨论,但却没有人给出定义,到底什么是技术视野? **所谓技术视野,就是看问题时所能切换的不同角(维)度.** 下面就以API管理工具(以下简称"管理工具")为例,来探讨背后隐藏的技术视野. # API管理工具 ## 零视角 曾经在一个小型创业公司用到过最简单的管理工具,就是一个开源的文档管理工具,界面功能类似wiki(维基百科). 这样的工具确实能满足核心需求--API在线文档化,并支持用户管理. 可是深想一层,对于管理工具的使用者

【IOS笔记】Creating Custom Content View Controllers

Creating Custom Content View Controllers 自定义内容视图控制器 Custom content view controllers are the heart of your app. You use them to present your app’s unique content. All apps need at least one custom content view controller. Complex apps divide the workl

基于H.ui.Admin UI模板的网站管理后台

最近接手一个跨境电商平台开发,客户侧重电商网站UI设计,对管理后台要求不高,由我们决定选哪一款后台模板.找来找去,感觉还是H.ui靠谱一些,主要是这个模板清爽,不需要过多选择.其他的流行后台模板也看了,但功能繁杂,选择起来很费劲,要花很多时间拆解. 所以,考虑到是外包项目,速度和效率第一,越快上手越好. 现在把几个效果图贴出来,与大家分享,欢迎指正: