2012-08-22 2 views
6

Sitecore의 __Renderings 필드를 공유하지 않은 경험이 있습니까? 우리는 다중 사이트 - 다중 언어 솔루션을 구축 중이며 다른 언어로 다른 (하위) 레이아웃이 필요합니다. 예를 들어, 영어 사이트에는 동일한 항목의 스웨덴어 버전에는 없으며 모든 프리젠 테이션 구성 요소가 항상 다른 언어에 대해 동일한 데이터 소스를 갖는 것은 아닌 하위 레이아웃이있을 수 있습니다.Sitecore 결과에서 __Renderings 필드를 설정하지 않았습니까?

다소 쉬운 해결책은 /sitecore/templates/System/Templates/Sections/Layout template에있는 __Renderings 필드의 '공유'를 선택 취소하는 것일 수 있지만 다른 결과가 있습니까? 아니면이 요구 사항을 처리하는 더 좋은 방법이 있습니까?

+1

하나의 큰 단점은 지원되지 않는 사이트 코어 시스템 템플릿을 수정하고 있다는 것입니다. 이렇게하면 향후 업그레이드가 더 어려워집니다. –

+0

언어 예제 외에도 항목 버전간에 다양한 프리젠 테이션을위한 유스 케이스가 있습니다. 예를 들어, 버전 1과 2 사이의 렌더링에서 데이터 소스를 변경하거나 단순히 렌더링 순서를 변경합니다. "공유"가 선택되어 있으면 불가능합니다. –

답변

2

이러한 방식으로 Sitecore의 기본 동작을 수정하는 것은 일반적으로 좋지 않습니다. 앞으로 시스템에서 작동 할 수있는 사람들에게는 투명하지 않으므로 예기치 않은 결과가 발생할 수 있습니다.

이모, 현재 언어를 기반으로 다른 파일을로드하도록 (하위) 레이아웃 내부에서 전환하는 것이 좋습니다.

그 결과. _Renderings 필드를 공유하지 않을 때 예상대로 작동합니다. 각 언어 버전마다 다른 프레젠테이션 세부 정보를 설정할 수 있습니다. 결과적으로 각 언어 버전에 맞게 설정해야하므로 관리하기가 쉽지 않습니다.

+0

이 코드는 Sitecore에서 관리하는 것이 좋으며 코드에서는 관리하지 않는 것이 좋습니다. 하나의 항목을 언어에 따라 다른 하위 레이아웃으로 만들거나 언어별로 다르게 정렬하는 것입니다. 각 하위 레이아웃은 언어에 따라 다른 데이터 소스를 가질 수도 있습니다. 영어에는 스웨덴어와 동일한 하위 레이아웃이 없을 수 있습니다. 또한 페이지 편집기를 사용하여 편집 할 수 있어야합니다. – andreasordell

1

나는 대신에 Devices of sitecore를 사용할 것입니다. 각 언어에 대해 사이트를 정의 할 수 있으며 각 사이트는 자체적 인 장치를 가질 수 있습니다. 각 언어에 대해 하나의 도메인 이름 (www.site.com, www.site.de, www.site.fr 등)이있는 경우 즉시 사용 가능합니다.

모든 언어에 대해 사이트 (하나의 호스트 이름)가 있으면 httpRequestBegin 파이프 라인 프로세서로 장치를 전환 할 수 있습니다.

이 문서 (http://briancaos.wordpress.com/2012/04/12/identifying-mobile-devices-in-sitecore/)는 모바일 장치를 식별하는 방법을 설명합니다. 언어에 따라 장치를 전환하는 논리를 다시 쓰는 것이 어렵지 않습니다.

각 언어에 다른 장치를 정의한 경우 언어에 맞는 장치에 렌더링을 배치하기 만하면됩니다. 그리고 모든 렌더링이 동일한 모든 페이지에 대해 대체 장치를 사용할 수 있습니다.

Sitecore 기본 동작 수정은 당장은 가능하지만 Sitecore 플랫폼을 사용하고 확장하는 것이 더 나은 방법입니다.

+0

이것은 흥미 롭습니다! Sitecore Page Editor를 사용하여 웹 편집기가 얼마나 쉬운 지 확신 할 수는 없지만. 나는 이것에 대해 더 살펴볼 것이다! – andreasordell

+0

5 개 언어가있는 사이트의 경우 새 공통 구성 요소를 추가 할 때 수동으로 5 개 언어 모두에 추가해야합니다. 그렇게하려면 많은 작업과 테스트가 필요합니다. 나는 당신의 콘텐츠 구조의 어떤 부분이 공통적인지에 달려 있다고 생각합니다. 어쨌든 모두 다르다면 괜찮을 것입니다. – GeekyMonkey

5

언어, 원산지 등을 기준으로 시각적 요소를 바꿔야 할 때 필자가 선호하는 것은 Sitecore의 개인 설정 규칙 편집을 사용하여 데이터 원본을 바꾸고 그런 방식으로 프레젠테이션을 변경하는 것입니다. Sitecore의 기본 동작을 변경하지 않고 내장 된 Sitecore 기능을 활용할 수 있습니다.

다양한 '하위 레이아웃'이 실제로 다양한 개인화 규칙에 의해 끌어 오는 데이터 소스 인 경우 OMS/DMS로이 모든 것을 구성하고 Sitecore 엔진을 사용하여 현재 상태에서 필요한 구성 요소를 나타낼 수 있습니다. 성능 향상을 위해 최신 버전의 DMS를 사용하는 것이 가장 좋습니다 (6.5 업데이트 5가 이제는 권장 릴리스 임).

+0

DMS를 사용하면 좋은 옵션이 될 수 있습니다. 또한 사용자가 페이지 편집기를 통해 편집 할 수 있습니다. 기본 사용자가 개인화 사용 방법을 이해하는 것은 약간 복잡 할 수 있습니다. 모든 항목에 모든 언어가있는 것은 아니므로 데이터 생성을 변경하는 것이 중요합니다. sc_lang 매개 변수는 개인 설정에 사용할 수 있습니까? – andreasordell

+0

구성 요소를 개인 설정할 때 규칙 세트 편집기를 열면 사용 가능한 많은 조건/규칙 목록을 볼 수 있습니다. "Items"에 대한 섹션 중 하나이며 "항목 언어가 값과 비교되는 위치"규칙이 있습니다. 사이트뿐만 아니라 페르소나에 대한 규칙도 있습니다. –

+0

이것이 "요구 사항을 처리하는 더 좋은 방법"이므로 질문에 대한 대답이라고 할 수 있습니다. 내 경험에 비추어 볼 때 Sitecore에 대해 혼란 스러우면 문제가 될 수 있습니다. 어쩌면 지금은 아니야 - 직접 테스트 해 본 결과 심각한 부작용은별로 없었지만 이후에는 많이 발생했습니다. –

1

우리는 실제로이 작업을 수행했으며, 대부분의 경우 부작용이 거의 없습니다. 실제로, __ 렌더링 변경시 워크 플로를 얻는 유일한 방법입니다. 언어가 Partial Language Fallback과 결합되어 언어가 영어의 가치를 상속받을 수 있습니다.그러나 항목이 복제 된 것처럼 표준 값/대체보다는 항상 복제본의 기본값을 가져옵니다.

관련 문제