사용 권한을 부여 할 수 있습니까? 예,하지만 불행히도 실제로 더러워지기 때문에 개발하고 테스트하는 데 다소 시간이 걸릴 것입니다.
문제점
사용자 지정 매크로를 만들하기로 결정 때마다주의해야 할 첫번째 일은 당신의 매크로 실행하면 아이템 컨텍스트를 가지고하지 않을 경우 귀하의 사이트 컨텍스트가 shell
을 될 것입니다 것입니다.
Sitecore.Context.Site
: shell
Sitecore.Context.Item
: 다른 말로하면 null
이것은 당신이 무엇을 당신의 컨텍스트 실제로 항목, 또는 사이트를 확인 할 수있는 방법이 없다는 것을 의미하는 그것을 에 속한다.
컨텍스트 데이터베이스가 core
이 될 것입니다.
Sitecore.Context.Database
: 즉 core
이렇게하면 상황에 맞는 데이터베이스, 사이트 및 항목을 해결하고 그 다음에 당신을 위해 Session
에 항목을 저장하는 사용자 정의 프로세서를 필요로가는 것을 의미한다 용도.
솔루션 개념
당신은이 작업을 얻기 위해 두 가지를 수행해야합니다
- 가 해결됩니다 커스텀 프로세서를 생성하고
은 "컨텍스트"항목을 저장
- Sitecore 쿼리를 허용하는 대체
root
매개 변수를 지원하는 사용자 지정 트리 매크로 만들기
콘텐츠 편집기 솔루션
콘텐츠 편집기에서이 기능을 사용하려면 항목 필드가 표시 될 때 실행되는 파이프 라인을 사용해야합니다. 나는 이것에 대한 연구를했으며 파이프 라인 <getContentEditorFields>
에 가장 쉬운 시간을 추가 할 것이라고 생각합니다.
콘텐츠 작성자가 콘텐츠 편집기에서 항목을 탐색 할 때이 파이프 라인이 실행되어 모든 필드가 표시되도록하는 아이디어가 있습니다. 이 파이프 라인이 실행되는 동안 프로세서는 항목을 가져 와서 매크로에 사용할 수 있도록 세션에 저장합니다.
아직 테스트하지 않았지만 개념이 작동해야합니다. 그러나이 솔루션의 가장 큰 결함은 Experience Editor에서 작동하지 않는다는 것입니다.
경험 편집기 솔루션
영업의 기술을 바탕으로,이 솔루션은 당신을 위해 작동합니다 생각하지 않습니다,하지만 난 그냥 케이스에 포함 시켰습니다.
콘텐츠 제작자가 개인 설정이나 경험 편집기의 규칙과 같이이 규칙을 사용한다는 사실을 알고있는 경우 환경 편집기의 콘텐츠 제작 흐름을 탭하여 상황을 해결할 수 있습니다.
콘텐츠 작성자가 환경 편집기에서 해당 페이지로 이동하면 일반적인 Sitecore 파이프 라인이 실행되고 해당 항목, 특히 <httpRequestProcessed>
파이프 라인을 사용하여 컨텍스트 항목을 확인하고 저장하는 것이 좋습니다. sc_itemid
쿼리 문자열 매개 변수 I는 상기 시험하지 않았다 및 I는 original source에서이 용액을 채택했다고
참고. 논리는 확실하지만 가장 큰 결점은 콘텐츠 편집기에서 작동하지 않는다는 것입니다.
결론
현실이 작품의 톤이 트리의 상황에 맞는 항목 아래로 통과 할 필요가 콘텐츠 제작자를 저장하기 위해 수행하는 것입니다. 자신의 경험이 더 좋을 것이라는 점과 특정 제한 사항을 적용하는 데 도움이 될 수 있음을 알고 있습니다. 선택한 항목은 하위/하위 항목이어야하지만 비용은 상당히 높습니다. 당신이 정말로 구현이 뭔가를해야하는 경우
것은, 나의 추천 대신 아이/당신의 상태/행동으로 후손 체크 통합하는 것입니다. 선택한 항목이 하위/하위 항목이 아닌 경우 규칙을 중단하고 오류를 기록하고 오류 팝업을 사용자에게 표시합니다. 그것은 같은 UX는 아니지만 더러운 해킹과 많은 시간을 필요로하지 않습니다.