2011-02-16 6 views
1

저는 Umbraco와 .net에 완전히 익숙합니다. masterpage와 몇 개의 필드가 있습니다. 이제 특정 필드가 비어 있지 않은 경우에만 masterpage의 일부를 표시하고 싶습니다.umbraco - masterpage : "필드가 비어 있지 않으면 필드가 표시되지 않습니다."

의사 코드 : 작동하는 방법

if(myField != NULL) then 
<div class="something"> 
<umbraco:Item field="myField" runat="server"></umbraco:Item > 
</div> 
endif; 

앤디 아이디어?

미리 감사드립니다.

답변

2

유용한 umbraco irc 채널 덕분에 해결책을 찾았습니다. 대답은 (자동으로 생성되는) xslt 파일 + 매크로를 만드는 것이 었습니다.

XSLT 내용 :

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#x00A0;"> ]> 
<xsl:stylesheet 
    version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxml="urn:schemas-microsoft-com:xslt" 
    xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets" 
    exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets "> 


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

<xsl:param name="currentPage"/> 

<xsl:template match="/"> 

<xsl:variable name="myField" select="$currentPage/myField" /> 

<xsl:if test="$myField!= ''"> 
     <xsl:value-of select="$myField" /> 
</xsl:if> 


</xsl:template> 

</xsl:stylesheet> 

Masterpage 내용 :

<body> 
.... 
<umbraco:Macro Alias="MyField" runat="server"></umbraco:Macro> 
.... 
</body> 
관련 문제