- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想在 Orchard 中创建一个已经内置在 ASP.NET MVC5 中的网站主题。
我是否需要将我的标记从以前的 Layout.cshtml 页面复制到 orchard themes/MyTheme/Views/Layout.cshtml 页面或是否需要其他任何内容?
最佳答案
基本上,是的:将您的 MVC5 布局内容复制到您的 Orchard 主题的 Layout.cshtml 文件。
但还有其他一些东西:您的源 MVC5 Layout.cshtml 文件可能包含类似 <doctype>
的内容, <head>
和 <body>
元素。
这些元素需要放入一个名为 Document.cshtml 的新文件中(也在主题的 Views 文件夹中)。
最终结果是您的 Document.cshtml 文件包含外部 HTML 结构,包括 <body>
元素,但 <body>
的内容元素位于 Layout.cshtml 文件中。
虽然您在开始时不一定要理解这一点才能创建 Orchard 主题,但我发现最终它会让您成为一个更有效的主题。因此,这里是 Orchard 模板和形状的简要介绍。
Orchard 的模板引擎使用 shapes 的层次结构,它们是动态对象。每个形状都使用形状模板呈现(通常采用 Razor View 的形式)。
每个页面的根是 Layout
形状,由 Layout.cshtml 形状模板呈现。
形状可以有“包装”。对于布局形状,定义了一个名为 Document
的包装器.这实际上意味着在您的主题中,您可以有一个 Document.cshtml 文件和一个 Layout.cshtml 文件(如果您的主题中没有 Document.cshtml 文件,将使用默认文件)。
Document.cshtml View 通常定义文档类型,<head>
元素和 <body>
元素。 <Layout>
的内容形状将在 <body>
内呈现元素。
因此,根据 MVC5 Layout.cshtml 文件中的内容,您可能需要也可能不需要在主题的 Views 文件夹中创建 Document.cshtml 文件。就我个人而言,我通常会这样做,以便在需要时轻松进行更改。
页眉和页脚等内容通常会放入主题的 Layout.cshtml 文件中,因此您只需从 MVC5 Layout.cshtml 文件中复制它们即可。
最终您会希望用来自 CMS 的内容替换“硬编码”HTML。然后是时候开始向您的 Layout.cshtml 文件声明区域了。
要定义一个区域,您需要做的就是将以下内容添加到您的 Layout.cshtml:
@Display(Model.MyZoneName)
您可以根据需要随意使用任何区域名称(您不需要在其他任何地方定义它们;除了在主题的 list 文件 (Theme.txt) 中,以防您希望允许 CMS 用户将小部件添加到这些区域)。
有许多 Orchard 知道的预定义区域。在 Layout.cshtml 文件中,最重要的是 Content 区域:
@Display(Model.Content)
内容区是插入当前页面内容等内容的地方。还有其他 View ,例如在 CMS 的登录页面上的登录表单。
形状和区域还有很多内容,但我希望这至少能让您入门。
有关形状、区域和主题的更多信息,这里有一些有用的资源:
关于c# - Orchard CMS 如何在 Orchard CMS 中传输我的 ASP.NET MVC 布局(页眉、页脚等)/主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47378234/
Episerver CMS,我想使用 CMS 发布一个简单的通知模式。我不熟悉 CMS。是否有一些网站可以指导我了解 Episerver CMS 的工作原理。向移动网站发布新内容和新模式 最佳答案 您
我喜欢 Drupal 中的分类法,并考虑在其上为一个已经上线多年的网站构建一个 CMS。我想保留数据库原样(它是 mySQL),以确保旧的 CMS 也能正常工作 - 一些使用它的人不愿意学习新东西。相
我正在使用 DjnagoCMS 3,但所有编辑弹出窗口都有烦人的问题。当页面内容大于(高于)浏览器窗口时会发生这种情况。当我尝试编辑文本或任何 cms 插件(双击内容)时,它会显示弹出窗口,但它的高度
我正在按照官方 Introductory Tutorial 创建一个带有 Django-Cms 的网站。我在前端的编辑模式上遇到了一些问题。首先,顶部横幅没有显示,占位符上的编辑菜单全部损坏。 我做的
我按照说明在我的 Mac 上安装了 Django CMS。当我运行“manage.py cms check”时,一切正常,只是它说找不到 template_1.html。当我进入管理员创建页面时,模板
我是 Django 的新手....经过几个小时的努力,我设法在虚拟环境中安装了 django cms。创建一些模板并将一些页面添加到我的 cms。现在我正在尝试添加一些 css....我已经创建了一个
运行 django-cms 2.4.0-RC1、django 1.5.1 和 python 2.7 的全新安装。我正在尝试使用单个字段创建一个非常简单的自定义插件。该插件在管理员中注册并且工作正常。它
我意识到 django-cms 的重点是没有内容类型并将所有内容都视为页面,但暂时忽略这一点,我将如何将它们添加到 django-cms 中?通过“内容类型”,我的意思是一些行为很像 Page 对象的
我按照说明在我的 Mac 上安装了 Django CMS。当我运行“manage.py cms check”时,一切正常,只是它说找不到 template_1.html。当我进入管理员创建页面时,模板
我正在为客户创建一个 django-cms 站点。我想做类似的事情: 想要的效果是有一个地方,CMS 的用户可以为页面选择背景图像。理想情况下,他们会选择使用类似 Filer 的现有图片。 . 有没
我们在 Django-CMS 中构建了一个网站,并开发了一个带有替代 CSS 的移动版本以适应较小的查看区域。除了通常的导航栏外,我们还希望在每个页面的底部包含下一页和上一页链接。 我知道如何使用这段
这是我在管理模式下尝试更改页面的高级设置时遇到的错误: TypeError at /admin/cms/page/5/advanced-settings/ __str__ returned non-s
我有一个 Orchard CMS 应用程序。我想在主页之外创建多个页面。我想在其他页面上显示一个菜单。用户登录时,应根据其角色显示菜单。有人可以给我解决方案吗? 最佳答案 您可以通过选择 在管理仪表板
如何在 Bolt 中列出分类法中的所有术语?不是应用于记录的术语而是所有现有术语(如标签云或类别列表侧边菜单)? 最佳答案 直接在模板中,可以这样做: {% for category in app.c
我正在构建一个非常简单的网络托管服务,以满足 ma 和 pa 类型的小型企业的需求。 现在我的两难选择是我应该从头开始构建它还是使用现有的 CMS。 CMS 需要可定制,因为我希望构建自己的客户端。我
我有文档类型产品,字段为:图像和文本。我想使用 CMS 转发器将 webpart 添加到 kentico,显示所有文档产品,但我想只显示包含图像的文档(不需要字段图像)。我添加了一行 WhereCon
我目前正在为我的个人项目开发一个非常基础的 CMS。这对我自己的教育和任何事情一样重要。我的一个问题是如何在没有文件扩展名的情况下实现 url/永久链接。我了解使用获取变量从数据库中提取数据,但是如何
Piranha 和 Vue 非常新,但不是 .Net Core。试图让我了解如何创建自定义块。我创建了一个新块,试图将 HtmlBlock 和 ImageBlock 结合起来: using Piran
我有两对不同的 CMS 和 CDS。一个在本地网络上,一个在公共(public)域上。我正在向本地网络上的 CMS 添加新的目标类型。此新目标类型的属性包含位于公共(public)域中的 CDS 的
我想使用一些基于 ASP.NET 的 CMS 来创建我的网站,但不知道该选择哪个... 我在 Sitefinity 中开始它,但是很难按照您想要的方式管理代码...并且它会生成 ASP.NET Web
我是一名优秀的程序员,十分优秀!