Почему эта функция сайта не активирована, когда я создаю новый сайт по моим пользовательским веб-шаблонам?
-
10-12-2019 - |
Вопрос
Я использую SharePoint 2010 и VS2010.
Я создал пользовательские Webtemplates и начните с копии командного сайта.В моем onet.xml я вижу следующие элементы функции сайта:
<SiteFeatures>
<!-- BasicWebParts Feature -->
<Feature ID="00BFEA71-1C5E-4A24-B310-BA51C3EB7A57" />
<!-- Three-state Workflow Feature -->
<Feature ID="FDE5D850-671E-4143-950A-87B473922DC7" />
</SiteFeatures>
.
Я создал новую коллекцию сайта с шаблона сайта "Опубликовать сайт" Я развернул свой пользовательский веб-шаблон к этой коллекции сайта. Я создаю новый сайт и выберите мой пользовательский веб-шаблон. Я получил некоторую ошибку: «Шаблон сайта требует, чтобы функция FDE5D850-671E-4143-950A-87B473922DC7 будет активирована в коллекции сайта»
Когда я перехожу на объект коллекции сайта и включить эту функцию «Трехгородный рабочий процесс: FDE5D850-671E-4143-950A-87B473922DC7» работает.
Но я не понимаю, почему мне нужно сделать это руководство ??В моем ONET.xml моего пользовательского веб-шаблона я объявил эту функцию, которая будет активирована в элементе сайта.
Решение
файл onet.xml разделен на две части, сначала - это «сайты», а второй называется «WebFeatures». Раздел «SiteFeatures», который содержит функции сайта, начинает активировать все функции
Решение для запуска функции сбора сайта, используя функцию SEAP SCOPED.
Шаги:
.
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
try
{
//Ensure that scope is correctly set
if (properties.Feature.Parent is SPWeb)
{
SPWeb web = (SPWeb)properties.Feature.Parent;
foreach (SPFeatureProperty property in properties.Feature.Properties)
{
Guid featureGuid = new Guid(property.Value);
//Verify feature status
SPFeature feature = web.Site.Features[featureGuid];
if (feature == null)
{
//Activate site collection scoped feature, if requested and not currently activated
web.Site.Features.Add(featureGuid);
}
}
}
}
catch (Exception ex)
{}
}
.
<WebFeatures>
<!-- Custom Site collection scoped feature activation -->
<Feature ID="YourEmptyFeatureGuid">
<Properties xmlns="http://schemas.microsoft.com/sharepoint/">
<Property Key="SiteScopedGUID" Value="FDE5D850-671E-4143-950A-87B473922DC7"/>
</Properties>
</Feature>
</WebFeatures>
- .
- в элементе ID функции Добавить идентификатор пустой функции
- в клавише свойства="Sitescopedguid" элемент в значении Добавьте идентификатор функции сайта, который вы хотите активировать.
Вот это. Разверните ваше решение, и он должен работать.