如何在CMS中的页面之间存储链接

时间:2009-10-11 19:48:57

标签: architecture content-management-system

我正在建立一个退伍军人的前端。前端的主要目的是基于存储在数据库中的内容呈现html页面。

每页有一个表,每个表都包含一个带有页面内容和一些元数据的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属性的内容 有适当的链接。
  • 假设网址架构是静态的。

以及包含嵌入内容的链接列表:

  • 将其存储在数据库中的多个关系中(以利用我的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 个答案:

答案 0 :(得分:1)

我想这在很大程度上取决于您对链接的期望。我过去曾经使用过几个CMS,其中一个我喜欢的东西是你可以阻止删除或停用链接到它们的页面。这样我就躲过了很多帮助台电话。另一个很棒的功能是报告断开的链接,如果你允许人们打破链接。

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

试图避免的陷阱是缓存。如果缓存渲染页面,则如果链接以任何方式发生更改,则应使该缓存无效。

HTH。