让我揭露我的问题: 我有一个根网站,有一个母版页,还有很多子网站。有些人正在使用根网站母版页(通过继承),有些人没有使用根网站母版页。
当我使用这样的功能事件接收器更新根站点MP时:
SPWeb w = ((SPSite)properties.Feature.Parent).OpenWeb();
Uri masterUri = new Uri(w.Url + "/_catalogs/masterpage/AdventureWorks.master");
//MasterPage used by publishing pages
w.CustomMasterUrl = masterUri.AbsolutePath;
w.AllowUnsafeUpdates = true;
w.Update();
...主页面已更新为根网站,但不适用于从根网站母版页继承的子网站!当我转到子站点的站点主页面设置页面时,“从该站点的父站点继承站点主页”单选按钮已经过很好的检查。
当我从“网站母版页设置”页面应用新的MasterPage时,我不会遇到此问题。
有关信息:我在publidhing站点中的根站点以及“SharePoint Server发布基础结构”和“SharePoint Server发布”功能正在运行。
我错过了什么吗?
答案 0 :(得分:1)
一个月后仍然没有回复:/所以我猜没有机制来更新子网站的所有主页。 所以我更新了功能激活事件接收器,如下所示:
using (SPWeb w = ((SPSite)properties.Feature.Parent).OpenWeb())
{
Uri masterUri = new Uri(w.Url + "/_catalogs/masterpage/AdventureWorks.master");
w.CustomMasterUrl = masterUri.AbsolutePath;
w.AllowUnsafeUpdates = true;
w.Update();
foreach (SPWeb ww in w.Site.AllWebs)
{
if (!ww.IsRootWeb)
{
Hashtable hash = ww.AllProperties;
if (string.Compare(hash["__InheritsCustomMasterUrl"].ToString(), "True", true) == 0)
{
ww.CustomMasterUrl = masterUri.AbsolutePath;
ww.AllowUnsafeUpdates = true;
ww.Update();
}
}
}
}
目标是测试foreach子网是否继承masterPage(或不继承)。如果是,我们必须更新CustomMasterUrl属性。
答案 1 :(得分:0)
使用此选项在root和所有子网站上设置母版页:
"analyzer": "autocomplete"