使用Orchard CMS构建站点

时间:2012-03-11 06:31:58

标签: asp.net-mvc orchardcms

我正处于尝试学习Orchard的早期阶段,而且我似乎仍在努力学习如何构建包含大量各种内容的页面的基础知识,这些内容可由非技术用户轻松管理

理想情况下,我正在尝试做的是以下内容,我无法弄清楚如何使用内容类型,部件,字段,小部件,区域等将其融入Orchard架构中。此外,因为我'我还在学习,我也试图避免任何自定义模块,或者将内容硬编码到网站中(虽然我对这个想法持开放态度,如果这是完成它的最好方法!)。

目标:创建包含菜单,图片幻灯片和多个功能描述的“主页”布局。对于幻灯片中的每个图像,我需要标题,子标题,描述和图像。为了方便非技术用户管理,我想定义HTML模板(自定义内容类型,部件或其他),并允许作者只指定那些明确定义的属性。我尝试使用内容部件,但不幸的是,我只能在一个内容上有一个特定类型的内容部分。我还看到了使用相同属性集创建多个内容部件的建议,但我不知道将显示多少个图像(我不想指定任意数字)。

我需要为功能描述做类似的事情,允许作者指定图像,标题,描述和要链接的页面。我遇到了与上面相同的问题,我不确定如何允许作者指定有限的内容列表,但是每个内容项都要明确定义。

到目前为止,最好的选择似乎是创建某种自定义小部件来“托管”内容,但出于某种原因,我的直觉告诉我为单个页面创建自定义图层只是为了指定要显示的内容滥用图层的目的,它开始能够根据某些标准(例如,用户是否经过身份验证)自定义特定布局。

我希望这是有道理的,我很抱歉用这么多话来解释我的问题,我真的达到了挫折的顶峰,尽管我认为Orchard的家伙肯定已经弄明白了架构,我只是无法通过这些看似简单的问题来构建一个简单的网站。

我非常感谢这个社区提供的任何提示,建议和建议!

TIA,-Jeremy

3 个答案:

答案 0 :(得分:32)

您在Orchard术语中定义的是名为Feature的内容类型。

  • 转到目录 - >单击“内容类型”,然后单击“创建”。
  • 默认选择这些部分:
    • 标题,因为您希望作者为功能提供一个好的标题/名称
    • Autoroute,它将根据标题创建一个SEO友好的网址(可以自定义)
    • 点击保存
  • 添加特定字段
    • SubTitle,类型为TextField。将其配置为默认值,必需。
    • TextField类型的描述。将其配置为TextArea,必需。
    • 图片,Media Picker类型。将其配置为必需。
  • 您可以为每个字段添加一些提示,这些提示将显示在功能编辑器中,以描述每个字段中要输入的内容。对作者非常有用。

现在,您可以通过单击控制板左上角的链接来创建功能。 下一步是将这些功能放在主页上。我建议创建一个将被设置为主页的Projection。投影只是一个带有网址的网页,它会将查询结果显示为其内容。您的案例中的查询将是“按创建日期命令给我所有功能”。

  • 在信息中心中,点击查询
  • 点击“创建新查询”
  • 输入“所有功能”
  • 点击“添加新过滤器”
  • 选择内容类型,然后选择功能,保存
  • 点击“添加排序标准”
  • 选择“创建日期”,然后选择降序,保存

此时,您已经可以通过单击预览来预览查询结果。但我们想要的是一个前端页面。

点击信息中心“新建”部分中的“投影”(再次左上角),创建一个新的投影 - 给它一个标题,不要忘记选中“设为主页”使其成为主页 - 选择唯一可用的查询,名为“All Featrues” - 保存

在主页上,您应该看到按日期排序的所有功能。但你想要的是一个滑块。此时,您还需要两个步骤: - 集成一个滑块jQuery插件 - 渲染与jQuery插件兼容的HTML

默认情况下,渲染投影时,它将使用标准的“摘要”布局。但是使用投影,您可以准确地确定要应用的布局,以及确切的html标签和类。

  • 编辑名为“所有功能”的查询
  • 添加新布局
  • 选择Html列表
  • 选择“属性”并保存
  • 单击“添加属性”
  • 选择显示文字,保存
  • 做同样的事
    • 特点:字幕
    • 特点:描述
    • 特点:图像
  • 保存您的查询
  • 编辑主页投影并选择此特定布局而不是默认布局。

您将看到每个属性都在一个html容器中呈现。

通过编辑每个属性,您可以决定要应用哪个类,以及要使用的html标记。通过更改它们,您可以准确呈现所需内容,并自定义CSS / HTML以很好地呈现滑块。这纯粹是你的HTML知道必须在这里申请,或者找到一些关于它的文章。

对于您的编辑,他们只需要转到仪表板并添加/更新一些功能内容项目,它将反映在网站上。

可选择Orchard Gallery上有Slider模块。你也可以尝试这个。但是如果你想要处理所发生的事情,我所描述的技术会更好。

答案 1 :(得分:1)

我自己刚刚经历过这个确切的场景。我认为你想要的东西可以用Orchard Lists完成。用户体验对于最终用户而言并不完全直观,但似乎这是在不安装/开发自定义模块的情况下实现此目标的最直接方式。

首先,请确保您使用的是Orchard 1.4,因为您需要内置支持为每个区域生成Container Widgets的替代项。启用Shape tracingUrl alternatesWidget alternates模块。

现在,按照文档中的说明创建项目列表(请参阅http://docs.orchardproject.net/Documentation/Creating-lists)。将“书评”翻译成“幻灯片”,将“书评”翻译成“幻灯片”,即可获得想法。您可以添加自定义字段来表示字幕,说明等。我只是将图片保留为内容本身的一部分,而不是为其创建自定义字段。

如果您已按照文档中的步骤操作,则现在应该会看到呈现为ul/li的幻灯片列表。现在,您需要自定义渲染内容的方式,以便显示自定义字段并通常自定义标记。使用形状跟踪器并根据需要为列表创建替代项。现在您可以自由控制所有渲染。有关提示,请参阅http://weblogs.asp.net/bleroy/archive/2011/03/27/taking-over-list-rendering-in-orchard.aspxhttp://weblogs.asp.net/bleroy/archive/2011/05/23/orchard-list-customization-first-item-template.aspx

从最终用户的角度管理此列表实际上非常简单,但我并不觉得它非常直观。

我花了三天的时间挖掘博客和文档来为自己解决这个问题。

答案 2 :(得分:1)

我还推荐这个名为Featured Item Slider的精彩模块。它具有幻灯片放映的所有基本功能,包括问题中提到的所有功能,以及一些非常棒的附加功能,例如不同的动画。您还可以通过提供额外的CSS来微调布局和样式。获取来源here。而here是幻灯片中的动态效果。如果一个模块已经存在,提供您正在寻找的功能,那么最好使用它而不是重新发明轮子,除非您是出于学习目的而这样做。