【问题标题】:Kentico - Display List of related articles based on categories/subcategoriesKentico - 根据类别/子类别显示相关文章列表
【发布时间】:2016-09-23 17:49:35
【问题描述】:

我有很多文章,每一篇都被分配到不同的类别/子类别下。 我想做的是在单篇文章的末尾,我将根据当前文章所在的类别显示相关文章的列表。我添加了一个中继器,但真的不知道在内容过滤器/类别名称中放入什么来实现这一点。希望它不是那么复杂。感谢您的意见!

【问题讨论】:

    标签: kentico


    【解决方案1】:

    如果需要,您可以在 Portal 中实现此目的而无需接触代码。以下步骤是实现它的方法(尽管它们很粗略且准备就绪!)

    1. 在您的文章页面类型中,创建一个新查询。这个查询工作将把现有的 Document 链接到任何其他共享完全相同的类别。您的查询应如下所示:
    选择 ##TOPN## ##COLUMNS## FROM View_CMS_Tree_Joined rel INNER JOIN CMS_DocumentCategory relcat ON relcat.DocumentID=rel.DocumentID INNER JOIN CMS_DocumentCategory doccat ON relcat.CategoryID=doccat.CategoryID 哪里哪里## AND rel.DocumentID doccat.DocumentID 订购方式##订购方式##
    1. 现在,将 Repeater 替换为 Repeater with custom query。在设置中,使用选择器控件为 Query name 字段选择新创建的查询。
    2. WHERE子句设置为doccat.DocumentID={% CurrentDocument.DocumentID #%}
    3. 选择适当的转换,您应该一切顺利。

    此方法需要精确的类别匹配,因此 Categories > Cars > Mazda 不会匹配到 Categories > Cars

    希望这有点用:)

    【讨论】:

    • 这确实有帮助!谢谢!
    【解决方案2】:

    This article 可能会给你一些关于创建过滤器的想法,但我不认为这正是你想要的。它确实表明您必须通过 API 获取文档。

    你可以做一个自定义查询,像这样

        SELECT *
    FROM dbo.View_CMS_Tree_Joined vctj
    WHERE vctj.DocumentID IN
    (
        SELECT DocumentID
        FROM CMS_DocumentCategory
        WHERE CategoryID IN
        (
            SELECT CategoryID
            FROM CMS_Category
            WHERE dbo.CMS_Category.CategoryName = 'Name Here'
        )
    );
    

    【讨论】:

      猜你喜欢
      • 2021-11-28
      • 2014-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-07
      • 1970-01-01
      • 2023-03-16
      • 2014-07-23
      相关资源
      最近更新 更多