开发部件
部件,是页面上可以重用的块,他能够附加到页面上的任意位置。
首先,我们需要创建元件。请查看创建元件那一章,创建Map元件。
在Migrations.cs文件中,我们添加UpdateFrom1方法,加入部件的定义:
using System.Data;
using Maps.Models;
using Orchard.ContentManagement.MetaData;
using Orchard.Core.Contents.Extensions;
using Orchard.Data.Migration;
namespace Maps
{
public class Migrations : DataMigrationImpl
{
public int Create()
{
// Creating table MapRecord
SchemaBuilder.CreateTable("MapRecord", table => table
.ContentPartRecord()
.Column("Latitude", DbType.Single)
.Column("Longitude", DbType.Single)
);
ContentDefinitionManager.AlterPartDefinition(typeof(MapPart).Name, cfg => cfg
.Attachable());
return 1;
}
public int UpdateFrom1()
{
// Create a new widget content type with our map
ContentDefinitionManager.AlterTypeDefinition("MapWidget", cfg => cfg
.WithPart("MapPart")
.WithPart("WidgetPart")
.WithPart("CommonPart")
.WithSetting("Stereotype", "Widget"));
return 2;
}
}
}
我们定义了MapWidget部件,包含了MapPart元件、WidgetPart元件和CommonPart元件,将stereotype属性设置为widget。
创建部件有两点要注意:
-
要附加WidgetPart元件。
-
将stereotype属性设置为widget。
显示部件
创建新的部件以后,我们在后台的部件管理页面,就可以添加了: