Working with XSLT in Dynamicweb Af Sten Hougaard

Working with XSLT in Dynamicweb

Hvem er jeg? ‡ ‡ ‡ ‡ ‡ ‡ Sten Hougaard Ansat hos Bleau A/S som frontend udviker Har arbejdet med Dynamicweb siden 2005 Initiativtager til www.dwfeatures.com Blog: http://www.netsi.dk/wordpress Twitter: @netsi1964

Partnerkonference 2011 / Sten Hougaard ± sth@bleau.dk / side 2

Working with XSLT in Dynamicweb

Hvad vil jeg tale om? ‡ ‡ ‡ ‡ ‡ ‡ Hvad er XSLT Templates? Hvorfor XSLT frem for HTML baseret templates? Eksempel på XSLT template Værktøjer og best practice Fremtiden - ønsker Links ± find link til dette slideshow på www.dwfeatures.com

Partnerkonference 2011 / Sten Hougaard ± sth@bleau.dk / side 3

Working with XSLT in Dynamicweb

Hvad er XSLT Templates? ‡ ‡ ‡ ‡ ‡ ‡ ‡ Metode til at lave udtræk fra XML dokument - transformere Dynamicweb CMS stiller XML dokument til rådighed Tags struktureret i et DOM træ XSLT transformerer dette træ til f.eks. HTML Mange muligheder for at styre resultat via logik Simpel DwTemplateTags i XSLT ser således ud: <textarea><xsl:copy-of select=´/.´ /></textarea> Kan også få DW til at gemme til disk ± tilføj til URL: savetemplatexml=true

Partnerkonference 2011 / Sten Hougaard ± sth@bleau.dk / side 4

Working with XSLT in Dynamicweb

Hvad er XSLT Templates? ± Selve XSLT ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ Vis element: <xsl:value-of select="News.CategoryName"/> Vis attribut: <xsl:value-of select=´Loop/@name"/> Test: <xsl:if test="Server.Request.debugxml='true'´>..</xsl:if> Loop: <xsl:for-each select="item">..</xsl:for-each> Variabel:<xsl:variable name=³NC" select="News.CategoryName" /> Anvend variabel: <xsl:apply-templates select=³item[./News.CategoryName=$NC]´ /> Template: <xsl:template match="item">...</xsl:template> <input type="text" name="format³ value="{$dateFormat}" />

Find link til eksempel og resurser på www.dwfeatures.com

Partnerkonference 2011 / Sten Hougaard ± sth@bleau.dk / side 5

Working with XSLT in Dynamicweb

Hvad er XSLT Templates? ± XPATH ‡ ‡ ‡ ‡ XPATH bruges til navigation i XML og har en række funktioner Navigation minder om CSS3 ± jQuery ´forstår´ XPATH navigation ´Find ulige nyheder´: //loop[@name='NewsList']/item[(position()+1) mod 2=0] Eksempel ± Microsoft extention til xpath

Find link til eksempel og resurser på www.dwfeatures.com

Partnerkonference 2011 / Sten Hougaard ± sth@bleau.dk / side 6

Working with XSLT in Dynamicweb

Hvorfor XSLT frem for HTML baseret templates? ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ Google søgning XSLT: 12 500 000 mil hits, dwtemplates: 5 170 hits. Mindre ´snavs´ til klienten, logik i XSLT sikrer kun relevant output Man kan ikke noget i HTML templates som man ikke kan i XSLT Arbejder man cross CMS-systemer er XSLT viden genbrugeligt XPATH anvendes også i jQuery, syntax genbrug! CSS != XPATH XSLT ender jo typisk også som HTML output, samme resultat Ikke altid XSLT ± primært ved komplekst output Hvis det tager 15 minutter i HTML og 3 timer i XSLT, kunden er lige glad han kigger på prisen.

Partnerkonference 2011 / Sten Hougaard ± sth@bleau.dk / side 7

Working with XSLT in Dynamicweb

Eksempel på XSLT template ‡ ‡ ‡ Mål: Vise nyhedsliste som jQuery UI accordion Personlig best practice: ´debugxml=true´ => XML vises Output kan give problemer i editor, invalid XML Redning: VS2010 makro (se link på www.dwfeatures.com (snart))

Partnerkonference 2011 / Sten Hougaard ± sth@bleau.dk / side 8

Working with XSLT in Dynamicweb

Værktøjer og best practice ‡ ‡ ‡ ‡ ‡ ‡ ‡ Visual Studio 2010 Offline transformering: Single step debugging, breakpoints Snippets! Download. See video example of use. Husk at begrænse antal loops i eCom XSLT templates! <xsl:variable name="availableloops" select="'*'" /> ´TTXPathNavigator for VS2010´ XSLTIntellisence ± ikke aktiv, aktiver via RegEdit! Mulighed for både javascript og C# i XSLT

Følg med på www.dwfeatures.com!

Partnerkonference 2011 / Sten Hougaard ± sth@bleau.dk / side 9

Working with XSLT in Dynamicweb

Fremtiden - ønsker ‡ DW åbner op for dw namespace med ´common´ utils <dw:translate key=´¶next¶´ default=´¶Næste¶´ useGlobal=´false´ /> DW åbner op for custom namespaces, f.eks. ´bleau´ <bleau:toMicroformat type=´¶date¶´ select=´DwDate.GeneralDate´ /> Åbenhed og deling af viden mellem partnere. Styrker DW platformen. F.eks. Gennem www.dwfeatures.com XSLT 2.0 ± når Microsoft er parat med det

‡

‡

‡

Partnerkonference 2011 / Sten Hougaard ± sth@bleau.dk / side 10

Working with XSLT in Dynamicweb

Links ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ‡ ´XSLT Reference´ ± Microsoft MSDN ´XSLT Questions and Answers - FAQ´ ´XPath Syntax´ ± Microsoft MSDN ´jQuery´ javascript API ´ajaxslt´ jQuery addIn med XPATH og XSLT clientside Screencasts @ dynamicweb.blip.tv Snippets lige til at installere i VS TTXPathNavigator for VS2010 XSLTIntellisence ± ikke aktiv, aktiver via RegEdit! Translation in Dynamicweb XSLT Netsi.dk various XSLT examples

Partnerkonference 2011 / Sten Hougaard ± sth@bleau.dk / side 11

Working with XSLT in Dynamicweb

Eventuelt og spørgsmål

Partnerkonference 2011 / Sten Hougaard ± sth@bleau.dk / side 12

Working with XSLT in Dynamicweb

Partnerkonference 2011 / Sten Hougaard ± sth@bleau.dk / side 13

27-02-2011 / side 14

Sign up to vote on this title
UsefulNot useful