@if (Authorizer.Authorize(PermissionKeys.ManagePage)){ <div class="panel-footer"> <a href="@Url.Action("Create", new {ParentID = "#"})" class="btn btn-link btn-xs"> <i class="glyphicon glyphicon-plus"></i> @L("添加页面") </a> <i class="glyphicon glyphicon-question-sign" style="cursor:help" data-toggle="modal" data-target="#help"></i> </div>}
翻译
使用@L("")来使用翻译功能
一个自定义组件,可以由多个分组构成,每个分组都有自己的显示模板。组之前可以垂直排列,或者水平删格排列(Bootstrap列),如下图:
缓存是用于提升程序性能的重要手段之一,接下来我们一起来看看如何在在开源CMS(开源CMSCMS)中的缓存机制,以级如何使用缓存。
尝试访问一下 /admin/page,如果可以正常访问,用 admin 登录看看是否有页面。如果不能登录或者登录以后页面树没有显现出页面列表,说明是您的数据库初始化不完整。请重新初始化数据库。
日志文件按天记录,一天一个文件。当异常发生时才会生成文件。异常的信息始终追加到最后,最新的异常信息,在最末尾。
添加好页面之后,接下来就是往页面添加内容了,可以通过以下方式添加页面内容。
2. 安装Microsoft Visual C++ 2015 Redistributable(已安装可跳过)
KEY的组成格式为ClassName@PropertyName,例如产品的标题是:Product@Title
工具栏中显示“布局”说明该内容块来自布局,修改该内容,会影响所有使用该布局的页面。
名称输入NotFound.cshtml
,如果是企业版也可以输入NotFound.liquid
,然后输入页面代码后保存即可:
打包好以后,在设计页面,或者在自定义组件的选择模板页面进行上传安装:
开源CMSCMS对服务器的硬件配要求非常低,当然这个跟访问量有关系。开源CMSCMS基于.Net 5性能卓越,使用一个最低配的服务器(512M内存)即可满足一个小中型网站的需求。
namespace 开源CMS.Article.Service{ public class ArticleService : LocalizeService<ArticleEntity>, IArticleService { private readonly ILocalize _localize; public ArticleService(IApplicationContext applicationContext, ILocalize localize, CMSDbContext dbContext) : base(applicationContext, dbContext) { _localize = localize; } ... }}
请视具体情况来确定是否使用LocalizeService<T>
,如果业务比较特殊,也可自己做实现,或者重载基类方法。
企业版可以更方便的使用自定义组件,直接在设计页面上添加内容,查看视频演示。
开源CMSCMS企业版支持多语言,并且有一套完整的多语言体系来支持不同语言的响应,开发多语言内容模块也很便捷,接下来跟我们一步一步的让现有内容支持多语言。
ValueOfRuleProvider
用于获取“WorkContext”中的值:
表明以“CMS_”开头的,为开源CMS的核心表,CMS_Layout,CMS_LayoutHtml,CMS_Media,CMS_Page,CMS_Theme,CMS_WidgetBase,CMS_WidgetTemplate,CMS_Zone。
[HttpPost, ValidateAntiForgeryToken, RenderRefererPage]public IActionResult PostMessage(MessageEntity entity){ if (ModelState.IsValid) { entity.Status = (int)RecordStatus.InActive; var result = _messageService.Add(entity); ModelState.Merge(result); if (!result.HasViolation) { TempData["Message"] = _localize.Get("Thank You for your submit!"); } } return View(entity);}
参考:MessageHandleController.cs
new RouteDescriptor{ RouteName = "pageRoute", Template = "{*path}", Defaults = new { controller = "Page", action = "PreView" }, Constraints = new { path = new PageRouteConstraint() }, Priority = -1}
注意:.NET Core版本为
PageController -> Main
开源CMS主题的官方下载地址是在下载好主题以后,请不要尝试使用任何工具打开它。
如果您使用的是发行版本,请确认一下你的.Net版本是不是正确(需.Net 4.0)。如果您使用的是IIS 6,请查看《IIS6.0中布署MVC站点》。
页面中的内容需通过组件添加,不同的组件可以添加不同的内容,从而得到一个完整的,内容丰富的页面。
如果是.Net Core版本,建意不要使用IIS Express而是使用控制台来运行程序,以免插件生成失败。设置使用开源CMS.WebHost来运行程序: