【问题标题】:Link Kentico blog posts to corresponding social media post将 Kentico 博客帖子链接到相应的社交媒体帖子
【发布时间】:2017-07-02 05:56:49
【问题描述】:

我的 Kentico 网站有一个博客,该博客使用 Kentico 的社交和社区应用程序将其帖子同步到 Twitter、LinkedIn 和/或 Facebook。在显示博客文章的转换(页面类型->博客文章->转换-​​>默认)中,我希望为相应的社交媒体网站呈现一个图标,该网站也出现了该文章。图标将直接链接到相应网站上的此帖子。
看来我们正在使用的转换能够呈现 dbo.CONTENT_BlogPost 表中的字段。但是,我们需要的信息在:

dbo.SM_FaceBookPost.FacebookPostExternalID

dbo.SM_LinkedInPost.LinkedInPostURL

dbo.SM_TwitterPost.TwitterPostExternalID

我假设如果我能找到这个转换使用的查询,我可以添加一些左连接来获取我需要的数据。但是,虽然我看到它的类名是“cms.blogpost”,但我无法通过 Modules 应用程序找到该类。我在哪里可以找到查询,我可以修改它吗?或者我应该采取其他方法吗?

【问题讨论】:

    标签: sql blogs kentico social-media


    【解决方案1】:

    不确定您是否能够找到该查询,因为它可能被隐藏了。 BlogPost 只是一个页面类型,因此没有一个模块具有该类,它包含在 CMS_Document、CMS_Tree 和 CONTENT_BlogPost 表中。因此,如果查询可用,它可能位于 BlogPost 页面类型或 CMS.Core 页面类型下。

    您确实有几个选择来获取信息。您可以在文本/XML 转换中使用宏(或使用 CMS.MacroEngine.MacroContext.Current.ResolveMacros("") )来获取 SM_FacebookPost 项目并对其执行 .Where("") 。它可能是一个冗长的宏,但您可以使用系统 -> 宏 -> 控制台进行一些测试。

    您可以为 ASCX 转换创建自定义转换方法,以使用 API 执行查找和逻辑(如果没有 API,则使用 CMS.DataEngine.QueryInfoProvider.ExecuteQuery())。

    获得它的选项很多,但可能至少需要一些高级宏或自定义编码。

    【讨论】:

      【解决方案2】:

      您不会在模块应用程序中找到cms.blogpost 类,因为它是一种页面类型,而不是来自模块的自定义类。您可以在 Page Types 应用程序中找到博客文章的实际定义,并在数据库的 content_blogpost 表中找到博客文章的内容。

      要找到您需要的数据,您可以像这样在 SQL 查询中加入数据:

      SELECT TwitterPostID
      FROM View_CMS_Tree_Joined
          INNER JOIN SM_TwitterPost ON DocumentGuid = TwitterPostDocumentGuid
      

      或者你可以像这样使用对象查询:

      int twitterPostID = CMS.SocialMarketing.TwitterPostInfoProvider.GetTwitterPostInfosByDocumentGuid(Eval<Guid>("DocumentGUID"), CMS.SiteProvider.SiteContext.CurrentSiteID).FirstObject.TwitterPostID
      

      【讨论】:

        猜你喜欢
        • 2019-06-10
        • 2020-09-05
        • 2018-02-27
        • 2013-12-18
        • 2021-08-04
        • 2015-09-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多