Рубрики
Без рубрики

Хорошая статья: Использование CSR и JSLink с SharePoint 2013

Полезная статья, отражающая все самые необходимые моменты кастомизации списков SharePoint 2013 c помощью CSR и JSLink:
Использование JSLink с SharePoint 2013

Однажды, с помощью этой статьи я прикрутил плагин галереи Galleria (Responsive JavaScript Image Gallery) на представление списка. Пишите в комментариях, если кому-то интересно, расскажу.

Рубрики
sharepoint

Поиск SharePoint 2013: Managed Property добавленное в Display Template не отображается

При кастомизации отображения результатов поиска SharePoint 2013 иногда приходится добавлять созданные Manager Property. Нужно обновить секцию <mso:ManagedPropertyMapping …>, добавив туда нужные свойства. Но почему свойства могут не отображаться в Display Template?

Потратив несколько часов самостоятельно, поискав решение в интернете, я увидел вот эту статью SharePoint 2013 Search: Managed Property Added to Display Template Doesn’t Appear. В ней говорится, что нужно обновить Result Type, но похоже это действует только если изменения вносились в Display Template конкретного типа.

В моём случае помогла публикация (чекин) Major версии Display Template. Сделать это можно Site Settings > Design Manager > Edit Display Templates, найти нужный и зачекинить. Видимо при этом действии срабатывает ресивер, которые настраивает шаблон для новых свойств. Успехов в SharePoint!

Рубрики
sharepoint

Оставить стандартное меню представлений при кастомизации с помощью CSR и JSLink

При кастомизации представлений списков с помощью JSLink часто возникает небольшая проблема: переопределение overrideCtx.Templates.Header переопределяет заодно и меню переключения представлений. Аналогично и с overrideCtx.Templates.Footer. Но есть решение.

Меню выбора представлений списка SP2013
Меню выбора представлений списка SP2013

В файле clienttemplates.js (адрес /_layouts/15/clienttemplates.js) содержатся многие стандартные преобразования для представлений. Там можно найти стандартный заголовок — в функции SingleItem_RenderHeaderTemplate(renderCtx) { … }. Для использования кода удобно пользоваться файлом clienttemplates.debug.js.

Наш header будет выглядеть так:

...
overrideCtx.Templates.Header = customHeader;
...
function customHeader(ctx) {
    var listSchema = ctx.ListSchema;
    var ret = [];

    ret.push("<div>");
    if (listSchema.RenderViewSelectorPivotMenu == "True")
        ret.push(RenderViewSelectorPivotMenu(ctx));
    else if (listSchema.RenderViewSelectorPivotMenuAsync == "True")
        ret.push(RenderViewSelectorPivotMenuAsync(ctx));
    ret.push("</div>");
	
    //наша добавленная разметка
    ret.push("<div id='galleria' ></div>");
	
    return ret.join("");
}

Вообще, полезно поизучать clienttemplates.debug.js. В этом файле есть часть стандартных JSLink представлений SharePoint 2013.