SharePoint 2016. Извещения мозаикой

В SharePoint 2016 появилась возможность Извещения мозаикой (Announcement Tiles) ранее доступная только в SharePoint Online. Функционально они идентичны.

SharePoint Announcement Tiles

Активация

Фича доступна в разделе Возможности сайта, но при её активации возникает ошибка (как в on-premise так и в Office 365):

SharePoint Announcement Tiles Not Supported

Исключение выбрасывается ресивером и к обновлению сайта отношение не имеет. Смотрим ресивер Microsoft.SharePoint.Portal.AnnouncementTilesFeatureReceiver и видим причину в строке 16:

  1. public override void FeatureActivated(SPFeatureReceiverProperties properties)
  2. {
  3.     ULS.SendTraceTag(0x2d3160, ULSCat.msoulscat_SPS_AnnouncementTiles, ULSTraceLevel.High, "FeatureActivated: START: AnnouncementTilesFeatureReceiver");
  4.     if ((properties.Feature.Parent == null) || !(properties.Feature.Parent is SPWeb))
  5.     {
  6.         throw new ArgumentException("AnnouncementTilesFeatureReceiver: the parent of the feature is not an SPWeb as expected.");
  7.     }
  8.     SPWeb parent = properties.Feature.Parent as SPWeb;
  9.     if (parent == null)
  10.     {
  11.         ULS.SendTraceTag(0x2d3161, ULSCat.msoulscat_SPS_AnnouncementTiles, ULSTraceLevel.High, "FeatureActivating: AnnouncementTilesReceiver could not resolve the scope of the activated feature to a web.");
  12.         throw new InvalidOperationException("AnnouncementTilesReceiver.FeatureActivated: Web not found.");
  13.     }
  14.     try
  15.     {
  16.         if (parent.WebTemplateId != 54)
  17.         {
  18.             throw new SPException(SPResource.GetString(CultureInfo.CurrentUICulture, "FeatureUnsupportedInCurrentCompatibilityLevel"new object[0]));
  19.         }
  20.         ULS.SendTraceTag(0x2d3162, ULSCat.msoulscat_SPS_AnnouncementTiles, ULSTraceLevel.Monitorable, "AnnouncementTilesFeatureReceiver: Updating default page on MySite host to add AnnouncementTiles webpart on Web = [{0}]"new object[] { parent.Url });
  21.         AddAnnouncementTilesWebPartToMySiteHostDefaultPage(parent, CreateAnnouncementTilesWebPart());
  22.     }
  23.     catch (Exception exception)
  24.     {
  25.         ULS.SendTraceTag(0x2d3163, ULSCat.msoulscat_SPS_AnnouncementTiles, ULSTraceLevel.High, "FeatureActivating: AnnouncementTilesFeatureReceiver Error: AnnouncementTilesFeature Activation - Exception [" + exception.ToString() + "]");
  26.         throw;
  27.     }
  28. }

Шаблон сайта с ID=54 - это MySite (SPSMSITEHOST#0). Т.е. фичу можно активировать только на персональном сайте. При активации будет создан список для хранения плиток и добавлена веб-часть на главную страницу персонального сайта.

Извещения

Никаких типов содержимого специальных не создается. Только поля:

  • Announcement Title
  • Announcement Description
  • URL
  • Image
  • Start Date
  • End Date
  • Priority

Сам список извещений:

Веб-часть

Веб-часть извещений отображает только 5 элементов из списка, отбирая их следующим SPQuery:

  1. <Query>
  2.   <Where>
  3.     <And>
  4.       <Or>
  5.         <IsNull>
  6.           <FieldRef Name="StartDate" />
  7.         </IsNull>
  8.         <Leq>
  9.           <FieldRef Name="StartDate" />
  10.           <Value Type="DateTime">
  11.             <Today />
  12.           </Value>
  13.         </Leq>
  14.       </Or>
  15.       <Or>
  16.         <IsNull>
  17.           <FieldRef Name="EndDate" />
  18.         </IsNull>
  19.         <Geq>
  20.           <FieldRef Name="EndDate" />
  21.           <Value Type="DateTime">
  22.             <Today />
  23.           </Value>
  24.         </Geq>
  25.       </Or>
  26.     </And>
  27.   </Where>
  28.   <OrderBy Override="TRUE">
  29.     <FieldRef Name="Priority" Ascending="True"/>
  30.     <FieldRef Name="Created" Ascending="False"/>
  31.   </OrderBy>
  32. </Query>

Самое "приятное" - это пейджинг в один элемент на странице. Это хорошо подходит при размещении веб-части в правой зоне. Но перемещение веб-части в более широкую зону приводит к не очень симпатичному результату:

Уведомления по почте имеют свой формат:

В итоге можно сделать вывод, что Извещения мозаикой появились в SharePoint 2016 не потому что это замечательная фича, а просто потому что она есть в Office 365.

Feature Definition

Содержимое фичи и её свойства можно посмотреть в обновленном разделе SPаргалки:

Announcement Tiles


Поделиться

Коментарии