2012-05-17 2 views
0

xslt에서 직접 문서 유형 속성 값을 설정할 수 있습니까? 내 페이지의 페이지 제목은 xslt 결과에 따라 변경해야하며 페이지 제목은 속성을 통해 설정됩니다.Umbraco : xslt에서 문서 속성 설정

잠시 인터넷 검색을하고 있었지만 찾고있는 것을 찾지 못했습니다. 그래서 여기 umbraconians에게 물어볼 생각입니다!

감사합니다.

+0

와우 그게 희귀한데 ... 지금까지 2 번만보기에 하나는 내 자신의 .. – user446923

답변

0

알고있는 한 xslt는 읽기 전용입니다. 매크로에서 제목으로 표시되는 내용을 조건부로 변경하거나 (이 경우 다른 제목을 표시하는 경우) 또는 속성을 실제로 설정하려면 면도기 스크립트를 사용하는 것이 좋습니다. Umbraco - how to set the value of a property using razor script

1

위와 같이 XSLT는 읽기 전용이므로 페이지 렌더링시 영향을받을 수있는 방식으로 속성을 수정할 수있는 방법이 없습니다.

그러나 제목 태그 사이에 추가 XSLT 매크로를 쓸 수 있습니다. 이 매크로는 일치 템플릿을 사용할 수 있습니다. 이렇게하면 처리중인 XML 노드에 따라 다른 작업을 수행 할 수 있습니다.

데이터가 Umbraco 4.7.x에 저장되는 방식 때문에 '문서 유형 별칭'이 XML 노드로 사용됩니다. 즉, 자신의 DocType이있는 한 검색 페이지와 대조 할 수 있습니다.

"검색"을 문서 유형의 이름으로 업데이트하면됩니다.

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet 
version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:umb="urn:umbraco.library" 
exclude-result-prefixes="umb" 
> 

    <xsl:output method="xml" omit-xml-declaration="yes"/> 
    <xsl:param name="currentPage"/> 

    <!-- Match Templates --> 
    <xsl:template match="/"> 
    <xsl:apply-templates select="$currentPage" /> 
    </xsl:template> 

    <!-- Search --> 
    <xsl:template match="search"> 
    WooHoo! I'm the Search page! 
    </xsl:template> 

    <!-- All other pages --> 
    <xsl:template match="*[@isDoc]"> 
    <xsl:value-of select="@nodeName" /> 
    </xsl:template> 

</xsl:stylesheet>