2009-05-27 147 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); 
     } 
    }