2014-03-31 11 views
1

그래서 나는 sitecore에 대해 다소 새로운 것으로, 이는 교육 과정에서 다루지 않았던 주제입니다. 내 질문은 올바른 용어 나 다음을 수행 할 수있는 방법에 대한 설명서를 알려주는 것입니다.Sitecore 조건부 필드 표시

내가 필드 그룹의 톤과, 정의 항목을 가지고있는 내가하고 싶은 것은 같은 :

필드 X의 값이 "예"다음/숨기기 필드 X 또는 필드 그룹 X를 붕괴

의미가 있습니까? 유효성 검사 규칙입니까? 또는 어떤 다른 종류의 규칙이 있다면 첨부해야하는 작업 흐름입니까? 내가 숨기고 싶은 분야, 또는 행동을 촉발시키는 분야에만 놓으십니까?

나는 어떤 지침을 주셔서 감사합니다.

+1

콘텐츠 편집기 인터페이스에있을 때를 의미합니까? 즉 항목의 템플릿 섹션? –

+0

맞습니다. – thematt

+1

콘텐츠 편집기가 작동하는 방식을 바꾸고 싶을 것 같은데, 실제로 가능하지는 않을지 모르겠다. 1 품목에 너무 많은 데이터가있는 것 같습니다. – IvanL

답변

0

Andy Uzick'sblog post에 도달했는지 확실하지 않습니다.

그는 콘텐츠 편집기에서 필드를 숨기는 것에 대해 이야기하고 이라는 Sitecore 모듈을 만들어 Sitecore Marketplace에 호스팅하고 full source code을 확장합니다.

확장 프로그램을 읽은 후 확장 프로그램을 시험해 본 결과 문제가 완전히 해결되지는 않을 것이라고 생각합니다. 그러나 그것은 당신에게 줄 것이다 :

  1. 일부 콘텐츠 편집자 보려는하지 않을 몇 가지 불필요한 필드를 숨길 중기 솔루션입니다.
  2. 관리자 만이 필드를 정리할 필요가있는 필드는 숨길 수 있습니다.

Sitecore 6.5 6.6에서 언급 한 점을 명심해야합니다. Sitecore 7에서 테스트하지 않았습니다. 내가 생각하기에 Sitecore 7을 사용하는 경우 소스 코드를 수정하여 Sitecore 7에서 작동하게 할 수 있습니다.

결과를보고 공유하십시오.

해피 Sitecoring!

+0

고맙습니다. 중기 솔루션이라고 말한 것처럼 고맙겠습니다.하지만 제가 필요하다면 너무 많은 필드가있을 수도 있습니다. 내가 필요로하는 유일한 이유는 사용자 선택에 따라 필요하지 않은 것을 숨기는 것입니다. – thematt

+0

좋아요, 나는 네가 어디에서 오는 지에 대해 책임이있다. 제발, 우리가 이야기하고있는 필드와 필드 섹션의 개수에 대한 아이디어/스크린 샷으로 질문을 업데이트 할 수 있습니까? 얼마나 많은 이들을 숨기고 싶습니까? 이 문제를 해결하기 위해 노력합시다. – Shriroop

1

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을 넣어.