2017-02-14 11 views
0

내 Kentico 사이트에는 Kentico의 소셜 & 커뮤니티 앱을 사용하여 Twitter, LinkedIn 및/또는 Facebook에 게시물을 동기화하는 블로그가 있습니다. 블로그 게시물을 표시하는 변형 (페이지 유형 -> 블로그 게시물 -> 변환 -> 기본값)에서 게시물이 나타나는 해당 소셜 미디어 사이트의 아이콘을 렌더링하고 싶습니다. 아이콘은 해당 사이트의이 게시물에 직접 링크됩니다.
우리가 사용하고있는 변환이 dbo.CONTENT_BlogPost 테이블의 필드를 렌더링 할 수있는 것처럼 보입니다.링크 Kentico 블로그 게시물을 해당 소셜 미디어 게시물

내가이 사용하는 쿼리를 찾을 수 있다면 가정

을 dbo.SM_TwitterPost.TwitterPostExternalID dbo.SM_LinkedInPost.LinkedInPostURL

을 dbo.SM_FaceBookPost.FacebookPostExternalID 그러나, 우리가 필요로하는 정보에 이 변환을 사용하면 필요한 왼쪽 데이터 조인을 추가 할 수 있습니다. 하지만 클래스 이름이 '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 ("")를 수행 할 수 있습니다. 긴 매크로 일 수도 있지만 시스템 -> 매크로 -> 콘솔을 사용하여 테스트를 수행 할 수 있습니다.

ASCX 변환에 대한 사용자 지정 변환 방법을 만들어 API를 사용하여 조회 및 로직을 수행 할 수 있습니다 (또는 CMS.DataEngine.QueryInfoProvider.ExecuteQuery()을 사용하는 API가없는 경우).

많은 옵션을 제공하지만 일부 고급 매크로 나 맞춤 코딩이 필요할 수 있습니다.