Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Default Handlebars template that can be used (and customized) when surfacing SharePoint Online search results in WordPress using the WPO365 (WordPress + Office 365) plugin (see https://www.wpo365.com/working-with-handlebars-templates/ for details).
<content>
<script id="jshelpers">
if (!!window.wpo365
&& 'registerHandlebarsHelper' in window.wpo365
&& 'handlebarsSafeString' in window.wpo365
&& 'moment' in window.wpo365) {
window.wpo365.registerHandlebarsHelper('formatSummary',
function (summary) {
return window.wpo365.handlebarsSafeString(
summary
.replace(/<c0\>/g, '<strong>')
.replace(/<\/c0\>/g, '<strong>')
.replace(/<ddd\/>/g, '&#8230'));
});
window.wpo365.registerHandlebarsHelper('formatDateTime', function (dateString, formatString) {
if (!!dateString && !!formatString) {
return window.wpo365.moment(dateString).format(formatString);
}
return dateString;
});
}
</script>
<header id="header" type="x-handlebars-template">
<style>
.pintraItemCell {
position: relative;
outline: transparent;
min-height: 54px;
padding: 10px;
box-sizing: border-box;
display: flex;
}
.pintraItemCell:hover {
background: #eee;
}
.pintraItemCell::selection {
background-color: #bfdcea;
}
.pintraItemIconWrapper {
width: 50px;
height: 50px;
flex-shrink: 0;
}
.pintraItemIcon {
display: block;
width: inherit;
height: inherit;
text-align: center;
}
.pintraItemIcon>img {
display: inline-block;
width: inherit;
height: auto;
}
.pintraItemContent {
margin-left: 10px;
overflow: hidden;
flex-grow: 1;
}
.pintraItemPrimaryText {
font-size: 21px;
font-weight: 100;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.pintraItemSecondaryText {
width: 95%;
font-size: 80%;
font-weight: 200;
}
.pintraTertiaryText {
font-size: 60%;
}
.pintraItemMeta {
font-size: 50%;
font-weight: 100;
color: #d3d3d3;
box-sizing: border-box;
width: calc(100% - 50px);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.pintraItemLink,
.pintraItemLink:hover,
.pintraItemLink:visited {
font-size: inherit;
color: inherit;
text-decoration: underline;
}
.pintraItemPath {
font-size: 60%;
font-weight: 200;
box-sizing: border-box;
width: calc(100% - 50px);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.pintraActionButtonGroup {
display: flex;
display: -webkit-flex;
/* Safari */
flex-direction: column;
-webkit-flex-direction: column;
/* Safari 6.1+ */
}
.pintraActionButtonWrapper {
-webkit-flex-wrap: wrap;
/* Safari 6.1+ */
flex-wrap: wrap;
-webkit-flex-grow: 1;
flex-grow: 1;
-webkit-flex-shrink: 0;
flex-shrink: 0;
font-size: 12px;
line-height: 24px;
height: 24px;
display: -webkit-flex;
/* Safari */
display: flex;
cursor: pointer;
}
.pintraActionButtonIcon {
font-size: 12px;
line-height: 24px;
height: 24px;
width: 24px;
margin: 0;
padding: 0;
}
.pintraActionButtonLabel {
font-size: 12px;
line-height: 24px;
height: 24px;
}
</style>
</header>
<main id="item" type="x-handlebars-template">
<div id="pintraItemCell" class="pintraItemCell">
{{#ifCond typeInfo.type '!=' 'user'}}
<div class="pintraItemIconWrapper">
<div class="pintraItemIcon">
{{msIcon ../typeInfo.type}}
</div>
</div>
<div class="pintraItemContent">
<div class="pintraItemPrimaryText">
<a class="pintraItemLink" target="{'_blank'}" href="{{Path}}" target="_blank">{{Title}}</a>
</div>
<div class="pintraItemPath">
{{#uriSegments ../Path}}
<a class="pintraItemLink" target="_blank" href="{{baseUrl}}">[...]</a>
{{#each path}}
/ <a href="{{../baseUrl}}/{{combineUrl ../path @index ../queryString}}"" target=" _blank">{{this}}</a>
{{/each}}
{{/uriSegments}}
</div>
<div class="pintraItemSecondaryText">
{{formatSummary ../HitHighlightedSummary}}
</div>
<div class="pintraTertiaryText">
</div>
<div class="pintraItemMeta">
{{formatDateTime ../LastModifiedTime 'DD/MM/YYYY HH:mm'}}
</div>
</div>
{{/ifCond}}
{{#ifCond typeInfo.type '==' 'user'}}
<div class="pintraItemIconWrapper">
<div class="pintraItemIcon">
{{avatar ../dataUrl}}
</div>
</div>
<div class="pintraItemContent">
<div class="pintraItemPrimaryText">
<a class="pintraItemLink" target="{'_blank'}" href="{{Path}}" target="_blank">{{../Title}}</a>
</div>
<div class="pintraItemSecondaryText">
{{../JobTitle}}
</div>
<div class="pintraTertiaryText">
{{../Department}}
</div>
<div class="pintraItemMeta">
</div>
<div class="pintraActionButtonGroup">
<div class="pintraActionButtonWrapper" onclick="window.open('mailto:{{../WorkEmail}}', '_blank')">
<div class="pintraActionButtonIcon">
{{fabricIcon 'Mail'}}
</div>
<div class="pintraActionButtonLabel">
{{../WorkEmail}}
</div>
</div>
<div class="pintraActionButtonWrapper" onclick="window.open('sip:{{../UserName}}', '_blank')">
<div class="pintraActionButtonIcon">
{{fabricIcon 'SkypeForBusinessLogo'}}
</div>
<div class="pintraActionButtonLabel">
{{../UserName}}
</div>
</div>
<div class="pintraActionButtonWrapper" onclick="window.open('tel:{{../MobilePhone}}', '_blank')">
<div class="pintraActionButtonIcon">
{{fabricIcon 'CellPhone'}}
</div>
<div class="pintraActionButtonLabel">
{{../MobilePhone}}
</div>
</div>
<div class="pintraActionButtonWrapper" onclick="window.open('tel:{{../WorkPhone}}', '_blank')">
<div class="pintraActionButtonIcon">
{{fabricIcon 'Phone'}}
</div>
<div class="pintraActionButtonLabel">
{{../WorkPhone}}
</div>
</div>
</div>
</div>
{{/ifCond}}
</div>
</main>
<footer id="footer" type="x-handlebars-template">
<div></div>
</footer>
</content>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.