Umbraco, XSLT, come faccio a rendere il contenuto figlio in una pagina padre?
Domanda
Ho contenuti che ho strutturato come segue nella sezione contenuti in Umbraco:
I prodotti sotto il nodo del contenuto che hanno un'icona di una cartella sono contenuti Pagine. Una pagina di contenuto può avere un altro pagina di contenuto come un bambino o una sezione di contenuti che sono gli elementi con doc con l'icona immagine.
(fonte: flickr.com )
Ho una sezione impostazioni che ho strutturato come segue:
Ogni SectionDocumentType ha un numero limitato di modelli disponibili l'utente può selezionare
(fonte: flickr.com )
Quello che mi piacerebbe fare è di rendere Sezioni come righe di dati in una pagina di contenuti, ignorando le pagine di contenuti del bambino.
Mi piacerebbe ogni sezione "riga" di modello di display e tutti.
Sono nuovo di XSLT quindi mi chiedo come ho potuto fare questo?
Grazie per il vostro aiuto!
Soluzione
ho calcolato questo fuori.
Ecco l'XSLT:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp " "> ]>
<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">
<xsl:output method="html" omit-xml-declaration="yes"/>
<xsl:param name="currentPage"/>
<xsl:template match="/">
<xsl:for-each select="$currentPage/child::*[@isDoc][@nodeType != 1230]">
<xsl:value-of select="umbraco.library:RenderTemplate(@id,@template)" disable-output-escaping="yes"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Inoltre ho dovuto aggiungere questa linea al mio contenuti <umbraco:DisableRequestValidation runat="server"/>
sezione nei miei modelli sezione di contenuto.
Ecco come lo si utilizza nel vostro modello di pagina.
<asp:Content ContentPlaceHolderID="ContentPlaceHolderDefault" runat="server">
**<umbraco:DisableRequestValidation runat="server"/>**
**YOUR HTML GOES HERE**
</asp:Content>