2011-09-29 3 views
2

Sitecore의 작업 상자는 사이트/시스템/워크 플로의 워크 플로에있는 항목 만 표시 할 수있는 것 같습니다. 트리의 다른 부분에 워크 플로를 표시 할 수있는 방법이 있습니까? 나는 그 위치에서 워크 플로우를 이동하면서 몇 가지 문제를 해결할 수 있었지만, 이것이 현재의 고집 점이다.작업 표시 줄을 사이트/시스템/워크 플로 외부의 워크 플로로 표시

우리 사이트는 고객에 따라 여러 섹션으로 나뉘어져 있습니다 ("고객"이라는 의미에서). 클라이언트는 각각 고유 한 워크 플로가 필요하며 트리의 컨텐트 부분에서 벗어나 시스템 부분으로 이동하지 않고도 워크 플로를 탐색 할 수 있기를 바랍니다. 이상적으로 우리는 각 클라이언트의 커스텀 항목 (예 : 레이아웃, 렌더링 등을 컨텐트 영역에 넣을 수 있기 때문에 우리는 하나의 노드와 하위 항목을 게시하고 해당 클라이언트와 관련된 모든 것을 라이브로 가져올 수 있습니다. 예를 들어 대부분의 사람들이 "사이트 게시"기능으로하는 것처럼 .

+1

흥미로운 점 ... 왜 워크 플로우를 거기에서 옮기겠습니까? – Bryan

+0

이유를 설명하기 위해 편집했습니다. – fwkb

답변

4

나는 이것을 줄이기 위해 지금까지 무엇을했는지 궁금 할 것입니다. 반사경을 사용하여 Workflow 루트 항목의 GUID 인 {05592656-56D7-4D85-AACF-30919EE494F9}을 검색했습니다. 이것은 Sitecore.ItemIDs.WorkflowRoot에 저장되며, 차례로 Sitecore.Workflows.Simple.WorkflowProvider.GetWorkflows()으로 사용됩니다. 이 메소드는 다른 곳에서 Sitecore.Shell.Applications.Workbox.WorkboxForm에 의해 호출됩니다. 그러나 Context.ContentDatabase.WorkflowProvider을 통해 액세스합니다.이 구성 요소는 /sitecore/databases/database/workflowProvider에 있습니다.

아직 간략히 요약하면 Sitecore.Workflows.Simple.WorkflowProvider으로 확장 된 IWorkflowProvider을 구현하고 Web.config에서 구성해야합니다. GetWorkflows()을 재정 의하여 원하는 위치에서 워크 플로를 찾습니다. 반사경이나 ILSpy와 같은 도구를 사용하여이 방법이 현재 무엇인지 확인하고 필요한 사항을 변경하십시오.

다시 신고하십시오 (가능한 경우 블로그에 올려주세요.). 이것은 많은 사람들이 일반적으로 확장/강화한다고 생각하는 Sitecore 영역이 아닙니다.

+0

우수 답변! 기본 workflowprovider는 서브 클래 싱 및 재정의가 쉬우 며 간단한 워크 플로우를 매우 간단하게 확장합니다. –

관련 문제