Отправка веб-частей в SharePoint
Развертывание предварительно настроенных стандартных веб-частей SharePoint для пользователей.
Область применения: SharePoint 2013 | надстройки SharePoint | SharePoint Online
Вы можете отправлять предварительно настроенные стандартные веб-части SharePoint для добавление на сайты SharePoint пользователей. Можно добавить предварительно настроенную:
Веб-часть "Редактор скриптов", использующую файлы JavaScript на удаленном веб-узле.
Веб-часть "Поиск контента".
В этой статье рассматривается предварительная настройка веб-части "Редактор скриптов" для использования файлов JavaScript на удаленном веб-узле, чтобы выполнить настройку пользовательского интерфейса. Используйте это решение для следующих задач:
Использование файлов скрипта с удаленного веб-узла в веб-частях вместо ссылок на скрипты из списка Активы сайта на хост-сайте.
Развертывание предварительно настроенных веб-частей в процессе подготовки собственного сайта. Например, в рамках процесса подготовки собственного сайта может потребоваться отображать сведения о политиках использования сайта для пользователя при создании нового сайта.
Автоматическая загрузка отфильтрованного содержимого в веб-части для пользователей. Например, файл скрипта может отображать местные новости, прочитанные из внешней системы.
Разрешение пользователям добавлять функции на свои сайты с помощью веб-частей из коллекции веб-частей.
До начала работы
Чтобы приступить к работе, скачайте пример надстройки Core.AppScriptPart из проекта шаблонов и методик для разработчиков Office365 на сайте GitHub.
Использование надстройки Core.AppScriptPart
При запуске примера кода и выборе параметра Run Scenario (Запустить скрипт):
Выберите пункт Назад к сайту.
Выберите СТРАНИЦА>Изменить>ВСТАВКА>Веб-часть.
В разделе Категории выберите Add-in Script Part (Часть скрипта надстройки), а затем — User profile information (Сведения о профиле пользователя).
Нажмите кнопку Добавить.
В раскрывающемся списке в правом верхнем углу веб-части User profile information (Сведения о профиле пользователя) выберите пункт Изменить веб-часть.
Выберите ИЗМЕНИТЬ ФРАГМЕНТ.
Просмотрите элемент <СКРИПТ>.
Обратите внимание, что атрибут src ссылается на файл JavaScript в удаленном интернете. Элемент <СКРИПТ> задается свойством Content в Core.AppScriptPartWeb\userprofileinformation.webpart, как показано в приведенном ниже примере. Файлом JavaScript, связанным с атрибутом src, является файл Core.AppScriptPartWeb\Scripts\userprofileinformation.js. Файл Userprofileinformation.js считывает сведения о профиле текущего пользователя из службы профилей пользователей и отображает эту информацию в веб-части.
Примечание.
Код, приведенный в этой статье, предоставляется "как есть" без какой-либо явной или подразумеваемой гарантии, включая подразумеваемые гарантии пригодности для какой-либо цели, для продажи или гарантии отсутствия нарушения прав иных правообладателей.
<property name="Content" type="string">&lt;script type="text/javascript" src="https://localhost:44361/scripts/userprofileinformation.js"&gt;&lt;/script&gt;
&lt;div id="UserProfileAboutMe"&gt;&lt;div&gt;
</property>
Выберите Отмена.
Нажмите кнопку Сохранить.
Примечание.
Если изображение профиля пользователя не появилось, откройте свой сайт OneDrive для бизнеса, а затем вернитесь на хост-сайт.
В Core.AppScriptPartWeb\Pages\Default.aspx команда Run Scenario (Запустить сценарий) запускает метод btnScenario_Click, выполняющий указанные ниже задачи:
Получает ссылку на папку Коллекция веб-частей.
Использует объект FileCreationInformation, чтобы создать файл userprofileinformation.webpart для отправки из надстройки, размещенной у поставщика, в коллекцию веб-частей. Метод folder.Files.Add добавляет файл в коллекцию веб-частей.
Извлекает все элементы списка в коллекции веб-частей и выполняет поиск файла userprofileinformation.webpart.
При обнаружении файла userprofileinformation.webpart назначает веб-часть настраиваемой группе с именем Add-in Script Part (Часть скрипта надстройки).
protected void btnScenario_Click(object sender, EventArgs e)
{
var spContext = SharePointContextProvider.Current.GetSharePointContext(Context);
using (var clientContext = spContext.CreateUserClientContextForSPHost())
{
var folder = clientContext.Web.Lists.GetByTitle("Web Part Gallery").RootFolder;
clientContext.Load(folder);
clientContext.ExecuteQuery();
// Upload the "userprofileinformation.webpart" file.
using (var stream = System.IO.File.OpenRead(
Server.MapPath("~/userprofileinformation.webpart")))
{
FileCreationInformation fileInfo = new FileCreationInformation();
fileInfo.ContentStream = stream;
fileInfo.Overwrite = true;
fileInfo.Url = "userprofileinformation.webpart";
File file = folder.Files.Add(fileInfo);
clientContext.ExecuteQuery();
}
// Update the group that the Web Part belongs to. Start by getting all list items in the Web Part Gallery, and then find the Web Part that was just uploaded.
var list = clientContext.Web.Lists.GetByTitle("Web Part Gallery");
CamlQuery camlQuery = CamlQuery.CreateAllItemsQuery(100);
Microsoft.SharePoint.Client.ListItemCollection items = list.GetItems(camlQuery);
clientContext.Load(items);
clientContext.ExecuteQuery();
foreach (var item in items)
{
// Create new group.
if (item["FileLeafRef"].ToString().ToLowerInvariant() == "userprofileinformation.webpart")
{
item["Group"] = "add-in Script Part";
item.Update();
clientContext.ExecuteQuery();
}
}
lblStatus.Text = string.Format("add-in script part has been added to Web Part Gallery. You can find 'User Profile Information' script part under 'App Script Part' group in the <a href='{0}'>host web</a>.", spContext.SPHostUrl.ToString());
}
}