当前位置:首页>产品动态

数据表与组件的实体对

作者:admin    时间:2021-07-22 11:00:08
public override IEnumerable<WidgetTemplateEntity> WidgetServiceTypes() {     yield return new WidgetTemplateEntity<CommentsWidgetService>     {         Title = "评论箱",         GroupName = "5.消息",         PartialView = "Widget.Comments",         Thumbnail = "~/Plugins/开源CMS.Message/Content/Image/Widget.Comments.png",         Order = 1     }; }public override void ConfigureServices(IServiceCollection serviceCollection){    serviceCollection.ConfigureMetaData<CommentsWidget, CommentsWidgetMetaData>();}

普通组件

普通组件,要求要创建一个数据表与组件的实体对应,数据库表必需包含一个ID字段(NVARCHAR(100))与CMS_WidgetBase表中的ID字段关联,并且是一一对应关系。其它字段应跟据组件情况添加。组件要继承自BasicWidgetWidgetService<T>。其它地方与简单组件一致。

CommonMethodsRuleProvider提供了以下可用的方法:

在Razor在使用时,如果有指定Model的类型,则要通过Get方法来获取,或者将类型转换成动态类型后直接获取

public ove

public override IEnumerable<PermissionDescriptor> RegistPermission(){ yield return new PermissionDescriptor(PermissionKeys.ViewArticle, "文章", "查看文章", ""); yield return new PermissionDescriptor(PermissionKeys.ManageArticle, "文章", "管理文章", ""); yield return new PermissionDescriptor(PermissionKeys.PublishArticle, "文章", "发布文章", ""); yield return new PermissionDescriptor(PermissionKeys.ViewArticleType, "文章", "查看文章类别", ""); yield return new PermissionDescriptor(PermissionKeys.ManageArticleType, "文章", "管理文章类别", "");}

应用权限

权限申明了以后,就可以在代码里面应用了。

IsTrue和Val

IsTrueValue两个方法都有同样一个重载,即可传入一个&ldquo;WorkContext&rdquo;。这个WorkContext可以理解为表达式的应用上下文,即表达式的工作&ldquo;环境&rdquo;,表达式可以在该&ldquo;WorkContext&rdquo;中取对应的值进行计算。

namespace

namespace 开源CMS.Article.Controllers{    public class ArticleInfoController : Controller    {        private readonly IArticleService _articleService;        public ArticleInfoController(IArticleService articleService)        {            _articleService = articleService;        }        public IActionResult GetArticles()        {            return Json(_articleService.Get());        }    }}

接下来我们需要创建一个路由,如果不创建路由,将会使用后端路由(admin/{controller}/{action}/{id?})来处理请求,这显然不是我们所期望的。

KEY的组成格式为ClassName@PropertyName,例如产品的标题是:Product@Title

您可以下载企业版免费使用,如果您需要定制二次开发,则可以通过购买企业版授权来获取完整的源代码进行二次开发。

@using (Script.AtFoot()){    <script type="text/javascript">    </script>}

定义样式:

注意:编辑模板时,程序会优先查找当前主题目录下的liquid模板,所以也可以只在主题目录下建liquid模板。

所以当访问~/index时,就到了PageController -> Main进行处理。

如果是.Net Core版本,建意不要使用IIS Express而是使用控制台来运行程序,以免插件生成失败。设置使用开源CMS.WebHost来运行程序:

文章概览组件,其实于文章并没有直接的关系,您可用于其它做用,显示一个标题,一个 &ldquo;More&rdquo; 链接,然后是内容。


每一个网站都会有一个导航,方便用户进入相关的页面。导航的内容并不直接来源于导航组件,而是导航组件从导航模块抓出导航的内容,然后再在前端显示。

返回顶部