2017-02-14 129 views
0

我的Kentico網站有一個使用Kentico的社交社區應用程序將其帖子同步到Twitter,LinkedIn和/或Facebook的博客。在顯示博客文章的轉換(頁面類型 - >博客文章 - >轉換 - >默認)中,我希望爲帖子也出現的相應社交媒體網站呈現圖標。圖標將直接鏈接到相應網站上的這篇文章。
看來我們正在使用的轉換能夠呈現dbo.CONTENT_BlogPost表中的字段。但是,我們需要的信息是:將Kentico博客文章鏈接到相應的社交媒體文章

dbo.SM_FaceBookPost.FacebookPostExternalID

dbo.SM_LinkedInPost.LinkedInPostURL

dbo.SM_TwitterPost.TwitterPostExternalID

我想如果我能找到所使用的查詢這個轉換,我可以添加一些左連接來獲得我需要的數據。但儘管我看到它的類名是'cms.blogpost',但我無法通過Modules應用程序找到該類。我在哪裏可以找到查詢,並且可以修改它?或者我應該採取另一種方法?

回答

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 
1

不確定您是否能夠找到可能隱藏的查詢。 BlogPost只是一個頁面類型,因此不存在具有該類的模塊,它包含在CMS_Document,CMS_Tree和CONTENT_BlogPost表中。因此,如果查詢可用,它可能位於BlogPost頁面類型或CMS.Core頁面類型下。

你有幾個選項來獲取信息。您可以在文本/ XML轉換中使用宏(或使用CMS.MacroEngine.MacroContext.Current.ResolveMacros(""))來獲取SM_FacebookPost項目並在其上執行.Where(「」)。它可能是一個很長的宏,但是你可以使用System - > Macros - > Console來做一些測試。

您可以爲ASCX轉換創建自定義轉換方法,以使用API​​執行查找和邏輯(或者如果沒有API,則使用CMS.DataEngine.QueryInfoProvider.ExecuteQuery())。

大量的選項來獲取它,但可能需要至少一些高級的宏或自定義編碼。