2009-05-27 1 views
2

Итак, после долгих исследований того, следует ли нам CEWP или HTML-контроль поля на внешнем обратном сайте SharePoint, мы остановились на использовании управления полем (в значительной степени благодаря 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/Страницы/...

(редактирование в "удалить" ссылку)

ответ

2

Я столкнулся с этой проблемой, а также. У нас были настраиваемые поля сайта и типы контента, развернутые через функцию. Свойство RichText для поля HTML корректно верно для caml, но после развертывания SPField в коллекции корневых веб-полей и в каждом списке страниц атрибут RichText становится ложным.

Мне удалось успешно решить проблему с помощью приемника функций на функции, которая развертывает столбцы и типы контента сайта. Мой код перебирает каждую веб-страницу на сайте, а затем выполняет итерации по полям для их обновления.

фрагмент кода:

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); 
     } 
    }