2009-10-11 29 views
3

我正在构建一个ecms的前端。前端的主要目的是根据存储在数据库中的内容来呈现html页面。如何在CMS中的页面之间存储链接

我每页有一个表,每个表由一个带有页面内容和一些元数据的xml字段组成。 (我选择在数据库中存储xml以利用SQL Server 2008提供的功能,如xquery或xsd验证)

我想如何存储页面之间的链接,以便可以在将来更改url模式(我不完全确定它是必需的)。

目前,我确定了两种类型的内部链接:

  • 普通链接 - 就像一个<a>标签的文本包围。与嵌入式内容链接
  • 列表 - 像相关的新闻项目的列表(每个项目,我需要显示与链接和摘要标题)

目前我看到了以下解决方案:

一个正常的链接:

  • 商店通过它像一个令牌包围:$PAGE_LINK[unique identifier of the content] ,并在呈现阶段正确的链接替换该标记。 (此方法取自Livesite,与我一起工作的ECMS)
  • 将其存储为<a href="local://unique identifier of the content">,并用适当的链接替换href属性 的内容。
  • 假设url的模式是静态的。

并与嵌入内容的链接:

  • 存储它尽可能多的在数据库中的许多关系(利用我的ORM)。
  • 将它作为xml内容的唯一标识符列表存储,作为页面的xml内容的一部分(这可以免费订购,并且更灵活一点)。例如:

    <related_articles> 
        <resource type="news" content_id="233"/> 
        <resource type="news" content_id="231"/> 
        <resource type="blog_post" content_id="233"/> 
    </related_articles> 
    

的问题: 你知道任何其他办法解决这个问题?它是如何在领先的CMS系统中完成的,如:Drupal,Joomla,N2,Wordpress等等?你会选择哪种解决方案?

回答

1

我想它很大程度上取决于您期望链接的功能。过去我使用过一些CMS,其中一些我喜欢的内容是,您可以阻止删除或停用与他们链接的页面。这样我避开了很多帮助台电话。如果您确实允许人们打破链接,另一个重要功能是报告中断链接。

他们所做的是有一个默认的链接方案,您可以配置,然后它会模式匹配内容中的链接来查找相关的内容。这将在内容保存/发布时完成。 对于由系统生成的链接,内部代码会将链接注册到与其生成的索引相同的索引中。

尝试避免的陷阱是缓存。如果您缓存呈现的页面,那么如果链接以任何方式更改,则应该使该缓存无效。

HTH。

相关问题