在Orchard中写一个Widget案例

移动开发
在Orchard中写一个Widget案例是本文要介绍的内容,主要是来了解并学习Widget应用方法,具体内容的实现来看本文详解。

在Orchard中写一个Widget案例是本文要介绍的内容,本文在以前所创建的产品模块基础上,扩展了一个可以显示***发布产品的Widget。通过此示例讲解Widget的一些相关概念和开发Widget的基本步骤。关于产品模块示例的介绍请点击这里。

什么是Widget

Widget就是小部件的意思。是一个可重用的UI块,它可以部署到网站的任意区域(Zone)中。如网页上常见的标签云、快速搜索,***博文,博文日历等等这些都可以做成小部件的形式来丰富页面的布局。

需求分析

本例要实现一个能在首页显示***发布的N条产品的功能。根据这个需求,我们至少需要有两个画面来完成这个功能,一是在添加Widget的时候可以设置显示***的条数的画面,另外一个就是显示***N条产品的画面。

创建内容部件

首先我们需要创建一个内容部件。因为在Orchard中内容的组织都是以内容部件为单位的,Widget也不例外。这个内容部件需要完成以下功能:

1、存取***显示条数的设置;

2、显示***N条数据。

和以前创建产品内容部件一样,我们需要创建一个数据模型(RecentProductsPartRecord),用于存储***显示条数的设置。还需要创建一个RecentProductsPart,同时还需要创建这个part的处理器(RecentProductsPartHandler)和驱动器(RecentProductsPartDriver),也当然需要创建这个Part的编辑视图和显示视图,同时我们也需要在Placement.info文件中注册新添加部件的一些信息。

这些步骤和代码都类似于创建产品部件时的代码,大家可以在本示例代码下载中查看。有一点需要注意的是这个部件的显示并不是显示***N条的设置,而是需要显示***N条产品。

将内容部件转成一个Widget

要将内容部件定义为一个Widget,需要在数据库安装文件中指定相应的代码来实现。我们打Migrations.cs文件,在原有的基础上添加一个UpateFrom1的方法表示这个模块需要升级,输入以下代码:

  1. public int UpdateFrom1()  
  2.         {  
  3.             //创建一个表存储设置***多少条数据  
  4.             SchemaBuilder.CreateTable("RecentProductsPartRecord", table => table  
  5.                 .ContentPartRecord()                              
  6.                 .Column<int>("Count")                        //产品价格  
  7.             );  
  8.  
  9.             //定义一个Widget  
  10.             ContentDefinitionManager.AlterTypeDefinition("RecentProducts", cfg => cfg  
  11.                 .WithPart("RecentProductsPart")  
  12.                 .WithPart("WidgetPart")  
  13.                 .WithPart("CommonPart")  
  14.                 .WithSetting("Stereotype", "Widget"));  
  15.  
  16.             return 2; 

在定义一个Widget的时候需要结合需要变成Widget的部件和WidgetPart部件以及CommonPart部件,并且需要设置此类型的属性为Widget。

部署Widget

通过上面几个简单的步骤,一个Widget就完成了。首先我们用管理登录管理后台,一进入后台我们就可以看见有模块需要升级的提醒。

点击升级产品模块

升级完成后进入控制后台的Widgets菜单,并选择当前层为TheHomePage(表示只在首页显示),然后在AsideFirst上点击添加。选择我们刚刚创建的RecentProducts小部件。

Title属性是小部件的标题,我们可以输入RecentProducts,Count属性就是需要显示的记数了,我们输入2。保存后回到前台网站的首页就能看见效果了。

 

 

小结:在Orchard中写一个Widget案例的内容介绍完了,希望通过Widget应用内容的学习能对你有所帮助!

责任编辑:zhaolei 来源: 博客园
相关推荐

2011-09-08 13:41:53

Widget

2021-06-26 16:24:21

Linux命令系统

2011-09-07 14:20:42

Android Wid组件

2021-09-08 08:36:50

ncursesLinux猜谜游戏

2023-03-15 09:00:43

SwiftUISlider

2010-09-16 15:57:00

PPPoA配置

2015-06-02 04:13:23

Python乒乓球类游戏

2011-09-07 16:43:38

Qt Widget

2015-08-06 13:44:21

swiftcocoapods

2022-02-10 22:34:51

对象JVM收集器

2021-01-04 09:12:31

集合变量

2023-02-07 10:40:30

gRPC系统Mac

2023-04-10 14:20:47

ChatGPTRESTAPI

2017-08-17 14:38:39

JavaAbstract抽象

2020-09-29 07:24:14

Python字典数据

2014-05-26 09:13:46

DockerPython

2011-03-15 16:07:33

Windows AzuWCF

2017-06-20 12:48:55

React Nativ自定义模块Note.js

2014-07-21 10:25:12

ENode开发论坛

2016-03-03 14:29:15

点赞
收藏

51CTO技术栈公众号