C# SharePoint品牌按主题更改SiteLogoUrl,不存在应用主题的事件
到目前为止,我们还不需要SharePoint网站定义的新母版页。我们有一个主题,我们的一些客户将根据其企业SharePoint品牌使用该主题 目前,我使用以下代码更改“FeatureActivated”事件中我的“FeatureReceiver”中的“SiteLogoUrl”C# SharePoint品牌按主题更改SiteLogoUrl,不存在应用主题的事件,c#,visual-studio-2008,sharepoint,events,branding,C#,Visual Studio 2008,Sharepoint,Events,Branding,到目前为止,我们还不需要SharePoint网站定义的新母版页。我们有一个主题,我们的一些客户将根据其企业SharePoint品牌使用该主题 目前,我使用以下代码更改“FeatureActivated”事件中我的“FeatureReceiver”中的“SiteLogoUrl” public override void FeatureActivated(SPFeatureReceiverProperties properties) { AddThemeToSpThemes(
public override void FeatureActivated(SPFeatureReceiverProperties properties) {
AddThemeToSpThemes(THEME_ID, THEME_NAME, THEME_DESC, THEME_IMAGE, THEME_IMAGE);
SPWeb site = properties.Feature.Parent as SPWeb;
if (site != null) {
site.AllowUnsafeUpdates = true;
site.SiteLogoUrl = site.Url + "images/thLogo.gif";
site.Update();
}
}
FeatureActivated不是触发的最佳事件,我更喜欢主题应用事件,但我似乎找不到。也许我没有正确处理这个问题。您的代码应该可以正常工作。FeatureActivated/FeatureDeactivating方法是可以添加自定义代码的地方 出于好奇,为什么您认为您没有使用正确的事件?sharepoint中没有太多事件,主题功能也非常有限。CSS文件很广泛,但是.net端很小 我的猜测是,即使主题发生变化,您也希望强制使用SiteLogoUrl(这样,您的客户可以在保留徽标的同时为其站点选择一个时髦的主题) 另外,母版页不是一个主题,所以我不知道你为什么说,“到目前为止,我们还不需要为SharePoint网站定义一个新的母版页” 干杯
Matt.应用主题没有事件 您可能正在反向执行此操作(尽管这是显而易见的方式)。让您的功能接收器以编程方式运行,并设置您的徽标如何 注意:您可以将当前应用的主题存储在SPWeb的属性包中-请参阅,但在更改当前母版页之前先存储当前母版页
它也值得考虑使用。也可以在您的SPWeb对象(AlternateCssURL)上进行设置。激活功能和应用主题是两件完全不同的事情。我想在应用主题时更改图像。