到目前为止,我们尚未为SharePoint网站定义提供新的母版页。我们有一个主题,我们的一些客户将根据他们的企业SharePoint品牌推广使用。
目前,我使用以下代码在'FeatureActivated'事件中更改'FeatureReceiver'中的'SiteLogoUrl'。
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不是触发的最佳事件,我更喜欢主题应用事件,但我似乎找不到。也许我没有正确地接近这一点。
答案 0 :(得分:1)
应用主题没有事件。
你可能会倒退(虽然显而易见)。如何以编程方式设置功能接收器activate the theme,以及设置徽标?
请注意,您可以将当前应用的主题存储在SPWeb的属性包中 - 请参阅this for an example,但在更改之前存储当前的母版页。
值得考虑使用Alternate CSS instead of Themes。也可以在SPWeb对象(AlternateCssURL)上设置。
答案 1 :(得分:0)
您的代码应该可以正常工作。 FeatureActivated / FeatureDeactivating方法是您可以添加自定义代码的地方。
出于好奇,你为什么认为你没有使用正确的事件? sharepoint中没有太多事件,主题功能非常有限。 CSS文件很多,但.net方面很小。
我的猜测是你要强制使用SiteLogoUrl,即使主题发生了变化(这样你的客户也可以为他们的网站选择一个时髦的主题,同时保留徽标)。
另外,母版页不是主题,所以我不确定你为什么说,“到目前为止,我们还没有为SharePoint网站定义提供新的母版页。”
干杯,
太