Sitecore에는 사용자가 원하는 것을 달성하기위한 기본 기능이 없지만이를 수행하기 위해 복합 사용자 정의 필드 유형을 만들 수있는 이유가 없습니다. 다음 기사는이 달성하는 데 도움이됩니다 :
이 Droplist에서 중 상속, 새로운 컨트롤을 만들기을 (텍스트 기반으로하는 값의 비교 경우) 또는 Droplink (ID 비교). 컨트롤의 소스 필드에 매개 변수를 추가하여 숨기기를 트리거하는 값을 지정해야합니다.
콘텐츠 편집기의 기본 컨트롤은 표준 HTML select
요소입니다. onchange
이벤트를 컨트롤에 추가하고 Javascript 핸들러를 추가하여 다른 컨트롤을 숨 깁니다. Sitecore 컨트롤에 추가 사용자 정의 css 클래스를 추가하는 방법을 찾을 수 없으므로 제어 후 같은 축소 가능 그룹의 다른 모든 컨트롤을 숨기는 것이 가장 쉽습니다.이것은 당신이 더 나은 (또는 논리적으로 적어도) 컨트롤을 그룹화해야 할 것을 의미합니다.
가
은 자바 스크립트가이 같은 것 (컨텐츠 편집기를 사용하여 Prototype JS framework 사용) :
이
if ($(this).getValue() == 'no') {
// find the parent container of this control and then hide all the next siblings in the same group
$(this).up('.scEditorFieldMarker').nextSiblings('.scEditorFieldMarker').invoke('hide');
}
당신은 콘솔에서 위를 실행하여 테스트 할 수 있습니다, 자신의 분야의 ID와 키워드 this
을 변경 , 예. $('FIELD2292054')
.
초기로드에서 숨기기를 트리거하는 방법에 대해 잘 모르겠지만 누군가가 기존 항목으로 돌아 왔을 때 파이프 라인 중 하나에 추가하면 가능하지만 JS 솔루션을 사용하면 더 좋을 것입니다. 가능하다면. 나는 이것을 생각하고 앞으로 며칠 동안 적절한 코드 샘플을 얻을 것이다.
EDIT : sc:contenteditorupdated
에 이벤트 핸들러를 추가하여 컨텐츠 편집기가 재실행되는 것을 처리 할 수 있습니다.
document.observe("sc:contenteditorupdated", myFunction);
나는 blog post을 쓴 당신이 관심이 있다면 code on GitHub을 넣어.
콘텐츠 편집기 인터페이스에있을 때를 의미합니까? 즉 항목의 템플릿 섹션? –
맞습니다. – thematt
콘텐츠 편집기가 작동하는 방식을 바꾸고 싶을 것 같은데, 실제로 가능하지는 않을지 모르겠다. 1 품목에 너무 많은 데이터가있는 것 같습니다. – IvanL