Sitecore - 基于网址的动态值

时间:2011-01-27 16:20:25

标签: sitecore sitecore6

我正在寻找一个只有一个页面的网站,但无论网址是什么都会显示,并且根据网址的不同,会有不同的信息变更。

例如:电话号码。

site.com/url1 - 显示800-123-4567

site.com/url2 - 显示800-456-1234

site.com/url3 - 显示800-987-6543

SiteCore 6可以直接执行此操作,还是需要构建自定义控件?

有人能指出我在一些好教程的正确方向吗?

4 个答案:

答案 0 :(得分:2)

这些不同的URL中的每一个实际上都是Sitecore中树中的不同页面和唯一项目。每个都将基于相同的模板(填充数据的字段),并且它们都具有相同的布局(.aspx网络表单),它们只是在字段中填充了不同的值。这是Sitecore的基本功能。

答案 1 :(得分:1)

在我们的文档中搜索共享内容和通配符项。 你会在那里找到解决方案。

答案 2 :(得分:1)

根据您的描述和评论,您可能会尝试做几件不同的事情。实质上,您希望提供一种机制来处理存储在Sitecore中的数据,并以与其他类似数据位相同的方式呈现/处理它。正如迈克尔上面所说,这不仅仅是Sitecore的开箱即用功能,它还是该软件的基本前提。例如,如果您有电话簿,则创建一个PhoneBookEntry模板,使用__Standard值将其与布局和控件相关联,然后从中创建PhoneBookEntry项。每个都可以直接寻址,而无需使用查询字符串。

如果您的电话号码只是您希望呈现的更广泛数据集的一部分(例如,联系人详细信息),那么您可以构建一个ContactDetails模板,该模板同时使用Address模板和PhoneBookEntry模板作为基本模板,然后创建ContactDetails来自它的项目 - 它们将包含Address和PhoneBookEntry中的所有字段。同样,这些将在没有查询字符串的情况下直接寻址。

为了呈现您的内容,您将始终必须创建某种形式的表示组件 - 无论是XSLT还是.Net - 如果您只是使用标准的Sitecore工具(例如FieldRenderer),这将非常简单。

如果您的ContactDetails希望允许多个电话号码并且您希望选择要显示的电话号码,那么您可能希望使用查询字符串来执行此操作(例如show = mobile | office | home)。这是一个条件渲染,您必须将查询字符串测试插入到演示组件中。同样,这并不困难。

如果您使用查询字符串查找在Sitecore外部保存和维护的数据(例如,ContactDetails数据库),那么使用查询字符串可能是非常有利的,尽管在这里您仍然需要自定义组件。

请记住,您的数据架构在Sitecore中非常重要。它不是关系数据库,因此设计您的架构以应对例如多对多的关系需要一点思考。

值得注意的是,使用查询字符串会对搜索引擎优化产生负面影响,因此最好将它们保持在最低限度,并且在使用它们的地方尽可能少地保留参数。值得注意的是,如果您开始在Sitecores外部操纵链接构建开箱即用API,您可能会更改web.config中有关如何构建和解释链接的设置可能会破坏您的链接。 Sitecore中有很多功能可用于确定,例如如果您手工缝制链接,则需要复制的项目的语言。

我建议您花一些时间阅读产品文档,有很多食谱there

除了演示文稿的食谱this之外,也可能会感兴趣:

答案 3 :(得分:0)

听起来你需要使用一些URL重写。这样就可以了:

http://site.com/?code=url1

成:

http://site.com/url1

然后将使用带有#lookups网址的简单数据库表来显示正确的电话号码。

Google快速搜索显示,您可能需要安装Helicon Tech的ISAPI_Rewrite模块(http://www.isapirewrite.com/)等网址重写功能才能在Sitecore中运行。

以下是为无扩展网址执行此操作的人的博客

http://thebackshop.posterous.com/extensionless-urls-with-sitecore-using-the-he