2009-05-27 63 views
2

因此,经过对我们是否应该在面向外部的SharePoint网站上使用CEWP或HTML字段控件进行研究之后,我们决定使用字段控件(非常感谢AC )。现在,我们遇到了一个问题,那就是我读的所有博客都不应该成为问题。发布HTML字段控件将相对URL转换为绝对URL

当我们将一个相对URL放入HTML编辑器并点击确定后,它会自动更改为绝对URL。这显然是我一直在做的一些研究中的Internet Explorer的“特性”。 TinyMCE有这方面的解决方法。我想知道是否有一些我缺少的SharePoint控件的解决方法。

我冒昧地创作了一个视频,展示了这个问题的一个例子。如果我没有解释得很好,你可以在这里找到:www.youtube.com/watch?v=Chwu5W2cCR4

这对我们来说是一个很大的问题,因为我们有一个创作网站和www现场。因此,在创作网站完成创作并将所有链接迁移到www网站时,它们是http:// authoring.domain.com/en-us/Pages/...而不是/ en-us/Pages/...

(编辑为“删除”链接)

回答

2

我也遇到过这个问题。我们拥有通过功能部署的自定义网站字段和内容类型。 HTML字段的RichText属性在caml中是正确的,但是一旦将SPField部署到根网页字段集合和每个页面列表中,RichText属性就会变为false。

我能够通过在部署站点列和内容类型的功能上使用功能接收器成功解决问题。我的代码循环网站中的每个网站,然后遍历字段来更新它们。

代码片段:

private void processweb(SPWeb web) 
    { 
     SPList list = web.Lists["Pages"]; 

     SPField field; 
     for (int i = 0; i < list.Fields.Count; i++) 
     { 
      field = list.Fields[i]; 
      //to work around a sharepoint defect ... make html fields work in richtext mode 
      if (field != null && string.Compare(field.TypeAsString, "HTML", true) == 0 && (field as SPFieldMultiLineText).RichText == false) 
      { 
       (field as SPFieldMultiLineText).RichText = true; 
       field.Update(true); 
      } 
     } 

     foreach (SPWeb w in web.Webs) 
     { 
      processweb(w); 
     } 
    }