2009-05-27 19 views
2

外部のSharePointサイトでCEWPまたはHTMLフィールドコントロールを使用する必要があるかどうかについての多くの調査の後、Field Controlを使用して解決しました)。さて、私が読んだブログはすべて問題ではないという問題があります。公開HTMLフィールドコントロール相対URLを絶対URLに変換

HTMLエディタに相対URLを入力して[OK]を押すと、自動的に絶対URLに変更されます。これは明らかに私がやっている研究のいくつかからInternet Explorerの "機能"です。 TinyMCEには、これを回避する方法があります。私はSharePointコントロールのためのいくつかの回避策があるかどうか私は不思議に思っていた。

私は問題の例を示すビデオを作成する自由を取った。私が十分に説明しなかった場合は、ここでそれを見つけることができます:www.youtube.com/watch?v=Chwu5W2cCR4

私たちはオーサリングサイトとwwwを持っているので、これは大きな問題ですサイト。したがって、オーサリングがオーサリングサイトで行われ、すべてのリンクがwwwサイトに移行されると、/ en-us /の代わりにhttp:// authoring.domain.com/en-us/Pages/ ...になります。/

答えて

2

この問題も発生しましたフィーチャを使用してカスタムサイトフィールドとコンテンツタイプを配備しました。 HTMLフィールドのRichTextプロパティはcamlでは正しくありますが、SPFieldをルートWebフィールドコレクションに配置し、すべてのPagesリストでRichText属性がfalseになると、

サイトの列とコンテンツの種類を展開する機能でフィーチャーレシーバーを使用することで、問題を正常に解決できました。私のコードは、サイト内のすべてのWebをループし、フィールドを繰り返して更新します。

コードスニペット:

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); 
     } 
    } 
関連する問題