Orchard CMS - 主题设计

5

我有关于主题化Orchard CMS的一些问题。让我们开始吧...我有一个网站,将有5个页面,其中一些具有不同的布局。

页面和其中的区域:

首页 - 内容、TripelFirst、TripelSecond、TripelThird
概念租赁页面 - 内容、AsideFirst、AsideSecond
新闻服务部门页面 - 内容、AsideFirst、AsideSecond(与前两个页面不同的布局)

注意:尽管所有页面都有内容区域,但除首页外,其他页面都没有使用它。其他页面只在其中一个区域中放置HTML小部件。

1)我读到过可以为特定ID创建布局,但问题是我找不到那个ID来创建特定ID的布局。

2)正如您所看到的,一些页面具有相同的布局,如何为它们分配特定的布局?例如,如果我为概念租赁页面创建布局,如何将特定布局分配给它们,以及如何将布局分配给新闻服务部门页面?

3)如何向body添加class标签?问题在于Orchard CMS在其他所有内容之前创建body,因此它不包含在layout cshtml文件中。

提前感谢您!

3个回答

10
  1. 在管理员中编辑页面时,URL看起来像是这样的http://localhost:30320/OrchardLocal/Admin/Contents/Edit/16

    16 在这里是ID。

  2. 有几种方法可以做到这一点。最简单的方法是使用此模块:http://orchardproject.net/gallery/List/Modules/Orchard.Module.Downplay.Orchard.LayoutSelector

    或者,您可以根据任意条件以编程方式创建可替代项:http://weblogs.asp.net/bleroy/archive/2010/12/14/switching-the-layout-in-orchard-cms.aspx

    最后,您可以通过改变小部件的位置,使用层来避免创建实际的分离布局。

  3. body标签位于document.cshtml中,您可以在自己的主题中覆盖它。


非常感谢!我明天会尝试一下,但由于你是Orchard开发人员之一,答案的质量是毋庸置疑的。我可以建议在Orchard专门的论坛上询问,因为社区正在壮大。当我在主题方面获得一些经验后,我会写一个教程。 - wegelagerer
2
@Hrvach 嗯,我真的认为stackoverflow是讨论orchard的完美场所,codeplex论坛不好玩,邮件列表很好,但是像那样向人们的收件箱发送支持电子邮件可能会变得很烦人。在orchardproject.net上有一个指向SO的小链接会很好。 - gideon
@giddy:信不信由你,两年多前,当这个项目还处于起步阶段时,我们联系了Jeff并询问他是否可以/应该这样做,但他强烈反对我们这样做。简而言之,我希望我没有误解他的意思,他认为SO不适合作为任何产品的“官方”论坛。不过,如果您愿意,仍然可以在这里提问,我们会监控orchardcms标签以及CodePlex上的讨论。 - Bertrand Le Roy

1

1. 不确定您所说的 ID 是什么意思?如果您在 DashBoard 上单击 Widgets,那里有图层。一个图层是一组小部件,当特定条件满足时将激活,例如认证图层将显示您定义的小部件,当用户通过身份验证时。

扩展(1)和(2),您将能够通过向图层添加小部件来创建新布局。

请查看:
Tagged Layer Rule - 允许您根据标签添加小部件。现在,您可以为概念租赁添加页面,然后指定这些标签的图层,在该图层中,您可以添加任何喜欢的小部件。只有遇到该标签时,它们才会出现。

还要查看:
Content Type Layer Rule - 我没有尝试过这个,但它与上述类似。

3. 要自定义外观,有一些称为 Shapes 的东西。我认为每个区域都有相应的cshtml文件。您甚至可以使用 ShaperBuilder 在代码中呈现 html,但我对此并不了解太多,但我可以告诉您,您需要查看这些文章。

希望对您有所帮助,我会尝试联系一些在 SO 上的 Orchard 专家。


1

为了帮助你,这里有一些提示:

  1. 新安装的主页ID始终为11,但我想你可以删除主页并创建一个新的页面并给它另一个ID。要查找其他页面的ID,请打开数据库并查看内容项。

  2. 我不知道除了通过ID之外还有其他应用布局的方法,所以只需复制布局页面,因为你只有很少的页面。

  3. 我会使用一个小的jQuery脚本

    $(document).ready(function{ $('body').addClass('SomeClass'); });


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接