【问题标题】:Umbraco Virtual NodesUmbraco 虚拟节点
【发布时间】:2012-07-23 00:40:40
【问题描述】:

我目前有一个类似这样的内容结构:

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 条”。这可以做到吗?虚拟节点是正确的方法吗?

我也不喜欢用户文件夹仍然有一个可导航的 URL,即使它存在于内容树之外。也许有更好的方法?

谢谢,

【问题讨论】:

    标签: .net virtual umbraco nodes


    【解决方案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重写时更漂亮)调用时,显示文章。
      • 当然,不同的用户可能会为他们的文章使用相同的名称,因此您将无法简单地使用文章的名称来识别它。

    【讨论】:

    • 您好 Marapet,感谢您的回复!看起来这是我需要的。我将完成您提到的步骤并报告。我也很好奇的一件事是尝试多个级别。例如,如果 User1/Articles/Article1 在下面有一个 /Comments/ 文件夹。我假设我可以在主要部分创建一个文章/评论/页面,并传入一个参数来定义要显示哪些文章 cmets?但这会变得很混乱吗?再次感谢!
    • 是的,这可能会变得混乱,保持简单总是好的......另外:谁是cmets?他们可以访问 Umbraco UI 吗?或者您是否有一个可公开访问的表单来添加和发布节点?预览用户文章可能是另一个需要解决的问题。
    • 啊,是的,也在预览。为此,文章需要一个可导航的 URL?至于cmets,只是为了说明,如果每篇文章都有子文件夹,可能会变得难以管理。我会尝试一下您的解决方案,因为我想我仍然想转向一个可以创建不可导航内容的解决方案,但我认为我可能需要为这些“虚拟”节点提供更可扩展的解决方案。 (但是,由于您的回答确实解决了原始问题,我很乐意将其标记为解决方案,或更新我的问题 :))再次感谢!
    • 不可导航的内容是什么意思?您可以简单地不为这些文档类型分配模板。或者一个 NullTemplate (空模板,我记得在某些版本的 Umbraco 中没有分配模板的节点有一些发布问题),或者 NotFoundTemplate (如果 url 是返回 404称为)。
    • 我的意思是用户无法从前端导航到的内容。是的,不应用模板可以实现这一点,但根据我在您的回答中的理解,前 3 个步骤无需使用空/无模板即可实现这一目标。除非我误会了?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 2014-03-08
    • 1970-01-01
    • 1970-01-01
    • 2020-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多