farewell xsl, welcome display templates

53
Farewell XSL, Welcome Display Templates Elio Struyf

Upload: helmut

Post on 09-Feb-2016

29 views

Category:

Documents


0 download

DESCRIPTION

Elio Struyf. Farewell XSL, Welcome Display Templates. Elio Struyf. ”I’m a SharePoint consultant with a passion for branding and development”. SharePoint Consultant Xylos Belgium. Contact @eliostruyf www.eliostruyf.com [email protected]. Agenda. The Past & Present - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Farewell  XSL,  Welcome  Display Templates

Farewell XSL, Welcome Display Templates

Elio Struyf

Page 2: Farewell  XSL,  Welcome  Display Templates

”I’m a SharePoint consultant with a passion for branding and development”

Elio Struyf

SharePoint ConsultantXylosBelgium

Contact @eliostruyf www.eliostruyf.com [email protected]

Page 3: Farewell  XSL,  Welcome  Display Templates

Agenda The Past & Present What are Display

Templates? What to do before we start Creating Display Templates Troubleshooting Tips & Tricks

Page 4: Farewell  XSL,  Welcome  Display Templates

The PastSharePoint 2007 / 2010

Page 5: Farewell  XSL,  Welcome  Display Templates

Showing the latest documents

Libraries

CQWP

Page 6: Farewell  XSL,  Welcome  Display Templates
Page 7: Farewell  XSL,  Welcome  Display Templates

Show the latest documents of various site collections

CQWP

Site CollectionsSearch Core Results

Page 8: Farewell  XSL,  Welcome  Display Templates

Just again another day with XSL

Page 9: Farewell  XSL,  Welcome  Display Templates

Here & nowOffice 365 / SharePoint 2013

Page 10: Farewell  XSL,  Welcome  Display Templates

HTMLComment -

JS

Page 11: Farewell  XSL,  Welcome  Display Templates

Office 365 – SharePoint 2013• New: Content Search Web Part• Updated: Search Results Web Part• No site collection limitation• HTML & JavaScript

CSWP Enterprise Licence – Office 365 E3 & E4

Page 12: Farewell  XSL,  Welcome  Display Templates

Show the latest documents of various site collections

Site Collections

Crawl

Search CSWP

Page 13: Farewell  XSL,  Welcome  Display Templates

ComparisonContent Query WP• Site collection

limitation• XSLT• Instant results• Server Side

Rendering• Client Performance• Minor / major

versions

Content Search WP• No site collection

limitation• Display Templates• Requires a crawl• Client Side Rendering• Server Performance• Only major versions

Page 14: Farewell  XSL,  Welcome  Display Templates

Query Builder

Page 15: Farewell  XSL,  Welcome  Display Templates

Let’s welcome display templates

Page 16: Farewell  XSL,  Welcome  Display Templates

What are Display Templates?• Defines the visual layout of search

results• HTML File JavaScript File• Client side rendering

Page 17: Farewell  XSL,  Welcome  Display Templates

What does it do?• Uses managed properties• Displays via HTML and JavaScript

File extension

Title + Path

Path

Document summary

Page 18: Farewell  XSL,  Welcome  Display Templates

Logical structureWeb PartSpecifies which query and templates will be used.

Control TemplateProvides the overall layout how you want to present the results.Ex: list, list with paging, slideshow.

Item TemplateDefines how the item itself needs to be rendered.

Page 19: Farewell  XSL,  Welcome  Display Templates

Where are they used?

Page 20: Farewell  XSL,  Welcome  Display Templates

Before we start

Page 21: Farewell  XSL,  Welcome  Display Templates

What to do before we start?1. Create content2. Crawl content3. Define the managed properties / or use

the auto-created ones4. Crawl content again

Page 22: Farewell  XSL,  Welcome  Display Templates

Creation process

Page 23: Farewell  XSL,  Welcome  Display Templates

Creating a Display Template• Mapping the master page gallery• Path: /_catalogs/masterpage/Display

Templates/• Best to start with an existing template• Use an editor of your choice

Page 24: Farewell  XSL,  Welcome  Display Templates

The end result

Page 25: Farewell  XSL,  Welcome  Display Templates

Control Display Template

Page 26: Farewell  XSL,  Welcome  Display Templates

Control Template RecapLoad custom CSS files$includeCSS(this.url, "~sitecollection/_catalogs/masterpage/SPSNL/css/slider.css");

Load custom JavaScript files$includeScript(this.url, "~sitecollection/_catalogs/masterpage/SPSNL/js/slider.js ");

Write JavaScript as comments in the HTML file<!--#_ _#-->

Write your HTML mark-up inside the first <div>

Page 27: Farewell  XSL,  Welcome  Display Templates

Item Display Template

Page 28: Farewell  XSL,  Welcome  Display Templates

Item Template RecapProperty Mapping<mso:ManagedPropertyMapping msdt:dt="string">‘Property Name JS' {Property Display Name}:'Managed Property''Picture URL'{Picture URL}:'PublishingImage'</mso:ManagedPropertyMapping>

Get property valuevar pictureURL = $getItemValue(ctx, 'Picture URL');

Using the variable_#= pictureURL =#_

Page 29: Farewell  XSL,  Welcome  Display Templates

Event Handling

Page 30: Farewell  XSL,  Welcome  Display Templates

Event Handling RecapUse AddPostRenderCallback / OnPostRender to ensure that control and item HTML content is loadedAddPostRenderCallback(ctx, function(){ // Write here your JavaScript code});

ctx.OnPostRender = [];ctx.OnPostRender.push(function () { // or write it in here });

Page 31: Farewell  XSL,  Welcome  Display Templates

Troubleshooting

Page 32: Farewell  XSL,  Welcome  Display Templates

Getting to know the values<xsl:template name=”Debug” match=”Row[@Style='Debug']” mode=”itemstyle”> <xsl:for-each select=”@*”> Property Name: <xsl:value-of select=”name()” /><br /> Value: <xsl:value-of select=”.” /><br /> </xsl:for-each></xsl:template>

Page 33: Farewell  XSL,  Welcome  Display Templates

Diagnostic Template

Page 34: Farewell  XSL,  Welcome  Display Templates

Ultimate diagnostic display template

Page 35: Farewell  XSL,  Welcome  Display Templates

Ultimate diagnostic display templateOffice 365 or future on-premises updates

Reference Mikael Svenson: http://elst.es/1oTLk4j

var folder = list.RootFolder;var props = folder.Properties;props["vti_indexedpropertykeys"] = "UAB1AGIAbABpAHMAaABpAG4AZwBDAGEAdABhAGwAbwBnAFMAZQB0AHQAaQBuAGcAcwA=|SQBzAFAAdQBiAGwAaQBzAGgAaQBuAGcAQwBhAHQAYQBsAG8AZwA=|";props["IsPublishingCatalog"] = "True";folder.Update();

BASE64: PublishingCatalogSettings|IsPublishingCatalog

Page 36: Farewell  XSL,  Welcome  Display Templates

SharePoint 2007

Page 37: Farewell  XSL,  Welcome  Display Templates

SharePoint 2010

Page 38: Farewell  XSL,  Welcome  Display Templates

Display Template Messages

Firefox Firebug / IE Developer Tools / …

Page 39: Farewell  XSL,  Welcome  Display Templates

Tips & Tricks

Page 40: Farewell  XSL,  Welcome  Display Templates

Only do your changes in the HTML files Doing changes in JavaScript could end up in corrupt files

Tip 1

Page 41: Farewell  XSL,  Welcome  Display Templates

Do not modify OOTB display templates, create a copy instead Remember the ItemStyle.xsl, we were

all guilty

Tip 2

Page 42: Farewell  XSL,  Welcome  Display Templates

Searching where they are located? Do not make it hard, place them in your own project folders.

Tip 3

Page 43: Farewell  XSL,  Welcome  Display Templates

If you’re writing lots of code Do it in a separated JavaScript file, that way you can easier debug your solutions

Tip 4

Page 44: Farewell  XSL,  Welcome  Display Templates

Provisioning of display templates?HTML Only publishing site Conversion takes time Needs extra codingJS Quick and easy Leave the HTML in TFS

Tip 5

Page 45: Farewell  XSL,  Welcome  Display Templates

Check the values and types you retrieve This could save you debugging time

Tip 6

Page 46: Farewell  XSL,  Welcome  Display Templates

Dare to open the JS files to check syntax errors Because everything is written in HTML comments, it’s hard to see syntax errors

Tip 7

Page 47: Farewell  XSL,  Welcome  Display Templates

Want to do DOM changes via JavaScript? Use the AddPostRenderCallback method

Tip 8

Page 48: Farewell  XSL,  Welcome  Display Templates

Keep in mind that it is CSR (client side rendering) Keep it clean Keep it fast

Tip 9

Page 49: Farewell  XSL,  Welcome  Display Templates

Learn to getting used to JavaScript Very easy to start experimenting Frameworks like jQuery could simplify the process

Tip 10

Page 50: Farewell  XSL,  Welcome  Display Templates

#SPCSRhttps://github.com/SPCSR

Page 51: Farewell  XSL,  Welcome  Display Templates

Questions?

Page 52: Farewell  XSL,  Welcome  Display Templates

Clean Search Results WP Display Templates - http://elst.es/1eClIBQProvisioning Display Templates - http://elst.es/1iGspnc - http://elst.es/1hhpqBjWhat is Required for Display Templates - http://elst.es/1fr8RoVShowing Alternating Rows - http://elst.es/1gE7oIlReplacing the OOTB Small Search Input Box - http://elst.es/1eGeJYyUltimate Diagnostic Display Template - http://elst.es/1fnOyZR

References

Page 53: Farewell  XSL,  Welcome  Display Templates

THANK YOU