суббота, 7 марта 2015 г.

Новости на портале SharePoint

Передо мной встала задача отображать новости на корпоративном портале в удобном виде, чтобы можно было оставлять комментарии к каждой новости, ставить "лайки" и т.д.
В интернет есть масса статей на эту тему, в том числе использовать встроенный список "Извещения", но это не очень красиво и удобно. Поэтому пришлось изобрести нечто свое, собрав несколько идей воедино. И вот что получилось:

Создаем сайт типа "Блог".
Теперь нам надо добавить столбец для отображения краткого содержания статьи и столбец для отображения первоначальной картинки.
Идем в контент сайта, библиотеку нашего блога (Posts), открываем параметры списка,
добавляем столбец из существующих столбцов сайта. В поле "Выбрать столбцы сайта из" выбираем группу "Столбцы макета страниц".
Для краткого содержания статьи мы будем использовать столбец «Автор». Это однострочный текст ограниченной длины.
 
Для отображения первоначальной картинки используем столбец «Сводное изображение»
Изменим порядок столбцов:

Переименуем добавленные столбцы в соответствии с их назначением.

Теперь нам надо красиво вывести записи из блога на главной странице сайта в сокращенном виде и упорядочив их по убыванию даты публикации.
По умолчанию не получится отсортировать по дате публикации, т.к. данное поле несортируемое. Сделаем его сортируемым.
Заходим в ЦА >  Управление приложениями > Управление приложениями-службами (Manage Service Applications) > Приложение службы поиска (Search Service Application) Схема поиска (Search Schema)
Находим свойство "PublishedDateOWSDATE", заходим в него и делаем сортируемым:

После этого идем на страницу, на которой будем размещать сводку новостей (обычно, домашняя страница портала). Добавляем веб-часть «Недавно измененные элементы» из раздела «Контент на основе поиска». Открываем свойства веб-части.

В свойствах веб-части жмем кнопку «Изменить запрос». В открывшемся построителе запросов на закладке «Основы» в параметре «Ограничить приложением» устанавливаем «Указать URL-адрес» и ниже пишем путь к нашему списку (блогу) новостей. При этом в секции предварительного просмотра результатов поиска мы должны увидеть ссылки на наши записи в блоге.

Переходим на закладку «Проверка» и копируем в буфер обмена получившийся текст запроса.
path:"http://portal/news/Lists/Posts" (IsDocument:"True" OR contentclass:"STS_ListItem") 
Его нам надо будет вставить в другое место.
Закрываем построитель запроса «Отмена» и окно свойств веб-части «Отмена». Саму веб-часть оставим на странице – она нам пригодится в дальнейшем.

Далее идем на главный сайт портал, в его параметры, «Поиск» - «Источники результатов».

Добавляем новый источник результатов.

Нажимаем «Запустить построитель запросов».

На закладке «Основы» в поле «Текст запроса» вставляем из буфера обмена скопированный текст запроса. На закладке «Сортировка» настраиваем сортировку по дате публикации. Выбираем свойство «PublishedDateOWSDATE», по убыванию.

Сохраняем настройки запроса «ОК». Сохраняем свой источник результатов.
Возвращаемся на страницу размещения сводки новостей (домашнюю страницу).

Открываем страницу на изменение, ранее добавленную веб-часть «Недавно измененные элементы» пока оставляем нетронутой, а добавляем веб-часть «Результаты поиска» из раздела «Поиск». Переходим в свойства этой веб-части.

Нажимаем кнопку «Изменить запрос». В открывшемся построителе запросов на закладке «Основы» выбираем источник результатов, который мы создали ранее в параметрах сайта:
Закрываем с сохранением «ОК».
В свойствах этой веб-части необязательно, но желательно, изменить название на понятное. Например, так «Результаты поиска записей в новостном блоге».
Сохраняем изменения в свойствах веб-части «ОК». А саму веб-часть надо свернуть:

Мы ее свернули, т.к. пользователи не должны ее видеть. Она нам нужна для того, чтобы получить записи блога с сортировкой по дате публикации по убыванию. Результаты ее поиска мы будем использовать в другой веб-части – «Недавно измененные элементы». Открываем свойства этой веб-части.
В разделе «Параметры» в реквизите «Результаты запроса предоставлены» указываем нашу только что свернутую веб-часть с нашим измененным именем «Результаты поиска записей в новостном блоге»:

В разделе «Сопоставления свойств» ставим галочку «Измените сопоставление управляемых свойств для полей в шаблоне элемента отображения» и указываем в «Строка 2» дату публикации статьи «PublishedDateOWSDATE», а в «Строка 3» - краткое содержание статьи со странным именем «ArticleByLineOWSTEXT»:

В разделе «Вид» меняем название веб-части на «Новости компании», а «Тип хрома» - «Только заголовок»:

Сохраняем изменения в веб-части «ОК».

Получается примерно следующее:


Возвращаем страницу после извлечения, публикуем и получаем красоту:
Остальные доработки отображения можно провести с помощью изменения CSS.

Замечание: после добавления записи в блог, в сводке новостей она появится не сразу, а после того, как поисковый обходчик ее найдет. У нас на это требуется около 10 минут, т.к. настроен Непрерывный обход контента:

Комментариев нет:

Отправить комментарий