이의 내 구체적인 예와 함께 설명 보자다른 Sitecore 항목 유형에 다른 표시를 갖는
나는 3 가지 유형 (템플릿) 뉴스가 : 새로운, 외부 뉴스, 제품 출시를;
다른 방법으로 홈 페이지에 표시하고 싶습니다.
지금은 내 XSL에서 간단한 일을 해요 들어:
<xsl:variable name="upcoming" select="./item[sc:formatdate(sc:fld('End Date',.),'yyyyMMdd') >= sc:formatdate($now,'yyyyMMdd')" />
<xsl:for-each select="$upcoming">
<div>
<h2>
<sc:text field="Name" />
</h2>
<p>
<sc:text field="Description" />
</p>
</div>
</xsl:for-each>
이
주먹 솔루션은 그런 일 (분명 내가 진짜 구문을 모르는) 다음과 같습니다
<xsl:choose>
<xsl:when test="template = 'external news'">
<!-- something -->
</xsl:when>
</xsl:choose>
그러나 더 나은 아직 객체 지향 접근 방식과 내 홈페이지 렌더링에서 호출 할 수있는 항목에 바인딩 된 make_body() 함수가있을 것입니다.
또는 Sitecore는 모든 페이지에 표시 할 수있는 항목의 렌더링을 수행하는 방법이 있습니다. 항목 자체가 처리하는 렌더링?
당신은 어떻게 생각하십니까? 내 홈 페이지에 마지막 뉴스 박스 원하는
:
<div class="last_news">
<h2>Last News</h2>
<!-- Loop Goes here -->
</div>
내 다른 뉴스 유형 (신규, 외부
업데이트
난 내가 충분히 명확하지 않았다 생각 뉴스, 제품 출시)은 해당 상자에 표시 될 때 모양이 다릅니다.
new :
<div class="news">
<h2><!-- title --></h2>
<p><!-- abridged text goes here --><p>
<a href="##news url##">read more</a>
</div>
외부 뉴스 :
<div class="news external">
<img src="##website logo##">
<h2><!-- title --></h2>
<p><!-- abridged text goes here --><p>
<a href="##external url##">read more on www.<!-- site name --></a>
</div>
제품 출시 :
<div class="news product_release">
<div class="float_left">
<img src="##product logo##">
<a href="##product url##">Download now</a>
<a href="##product download url##">Download now</a>
</div>
<h2><!-- title --></h2>
<p><!-- abridged text goes here --><p>
<a href="##news url##">read more</a>
</div>
각 뉴스의 유형이있다는 다양한 분야
- 새와 자신의 템플릿입니다 : 제목, 요약 된 텍스트, 전체 텍스트
- 외부 뉴스 : 제목, 요약 된 텍스트, 외부 URL, 웹 사이트 선택 상자
- 제품 출시 : 제목, 요약 된 텍스트, 전체 텍스트, 제품 선택 상자
나는 sublayouts (의 .ascx) 또는 렌더링을 할 수 있습니다 (.xslt) 각 유형에 대한하지만 이제는 내 루프에 표시하는 방법 알고 싶습니다.
루프 내에서 자리 표시자를 넣을 수 있으며 Sitecore는 자리 표시자가 현재 항목에서 사용해야 함을 알 수 있습니까?
XSLT (yuck!)를 사용하거나 C#으로 전환하고 하위 레이아웃 (사용자 정의 컨트롤) 또는 컴파일 된 웹 컨트롤을 사용 하시겠습니까? –
처리중인 XML 문서를 제공하지 않았습니다. 그렇게한다면 간단하고 우아한 XSLT 솔루션을 보여 드리겠습니다. –
C#을 사용하고 하위 레이아웃을 사용하는 것이 좋습니다. xsl은 간단한 솔루션에 적합하지만 상황이 더욱 복잡해지면 하위 레이아웃/사용자 컨트롤로 전환 할 수 있습니다. – Younes