Umbraco虚拟节点

时间:2012-07-24 16:24:33

标签: .net virtual umbraco nodes

我目前的内容结构与此类似:

Content

- Home
  - Articles
    - Article 1
    - Article 2
  - About
  - Contact

- Users
  - User 1
    - Articles
      - Article 3
      - Article 4
  - User 2
    - Articles
      - Article 5

总之,我有一个网站,其中有一个页面,显示其下方文章的链接(1和2)。我想允许用户注册并添加自己的文章。所以我有一个创建umbraco用户的注册脚本,然后在上面的Users文件夹中创建User节点,每个用户在它们下面都有一个文件夹来添加他们自己的文章。该脚本将每个用户的起始节点设置为内容树中相应的用户节点。

为了说明,用户1只看到:

- User 1
  - Articles
    - Article 3
    - Article 4

属于用户的每篇文章都有一个像“/ Users / User 1 / Articles / Article 3”的网址,但是,我希望能够在Content / Articles文件夹下创建一个虚拟节点,以便网址为“/文章/第3条“。可以这样做吗?虚拟节点是正确的方法吗?

我也不喜欢这样的事实,即Users文件夹仍然具有可导航的URL,即使它存在于内容树之外。也许有更好的方法呢?

谢谢,

1 个答案:

答案 0 :(得分:1)

这可以做到(当然 - 它是Umbraco)。

以下是您可以采取的措施:

  • umbracoHideTopLevelNodeFromPath在web.config中设置为true,并略微更改您的结构:

    Site
      Home
      AllArticles
        Article 1
        Article 2
      About
      Contact
    Users
      User 1
        Articles
          Article 3
      User 2
      ...
    
  • Site上使用管理主机名来定义网站的主机名(右键单击节点)。

  • 配置从SiteHome的重定向(有重定向包)
  • Users部分应完全位于通常可导航的节点结构之外,因此不可见。
  • 文档类型AllArticles使用的模板默认显示所有用户的所有文章(按文档类型查询),当使用参数调用(或使用url重写时更漂亮)唯一标识文章时,显示文章。
    • 当然,不同的用户可能会对他们的文章使用相同的名称,因此您无法简单地使用该文章的名称来识别它。