链接Kentico博客帖子到相应的社交媒体帖子

时间:2017-02-14 04:15:51

标签: sql blogs kentico social-media

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

dbo.SM_FaceBookPost.FacebookPostExternalID

dbo.SM_LinkedInPost.LinkedInPostURL

dbo.SM_TwitterPost.TwitterPostExternalID

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

2 个答案:

答案 0 :(得分:1)

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

您可以通过几种方式获取相关信息。您可以在文本/ XML转换中使用宏(或使用CMS.MacroEngine.MacroContext.Current.ResolveMacros(""))来获取SM_FacebookPost项目并在其上执行。("")。它可能是一个冗长的宏,但你可以使用系统 - >宏 - >控制台做一些测试。

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

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

答案 1 :(得分:1)

您不会在模块应用程序中找到cms.blogpost类,因为它是页面类型而不是模块中的自定义类。您可以在“页面类型”应用程序中找到博客文章的实际定义,并在数据库的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