Публикация элемента управления полем HTML преобразует относительный URL в абсолютный URL - PullRequest
2 голосов
/ 27 мая 2009

Итак, после долгих исследований того, следует ли нам использовать CEWP или HTML Field Control на внешнем сайте SharePoint, мы решили использовать Field Control (большое спасибо AC). Теперь у нас проблема, что все блоги, которые я читаю, не должны быть проблемой.

Когда мы помещаем относительный URL-адрес в редактор HTML и нажимаем ОК, он автоматически заменяется абсолютным URL-адресом. Это, по-видимому, «особенность» Internet Explorer из некоторых исследований, которые я проводил. У TinyMCE есть обходной путь для этого. Мне было интересно, есть ли какой-нибудь способ обойти элемент управления SharePoint, который мне не хватает.

Я позволил себе создать видео, показывающее пример проблемы. Если я недостаточно хорошо это объяснил, вы можете найти это здесь: www.youtube.com/watch?v=Chwu5W2cCR4

Это большая проблема для нас, потому что у нас есть сайт авторинга и сайт www. Таким образом, когда авторизация выполняется на сайте авторинга и все ссылки переносятся на сайт www, они представляют собой http: // authoring.domain.com/en-us/Pages / ... вместо / en-us / Страницы /...

(редактирование для «удаления» ссылок)

1 Ответ

2 голосов
/ 31 августа 2010

Я тоже столкнулся с этой проблемой. У нас были пользовательские поля сайта и типы контента, развернутые с помощью функции. Свойство RichText поля HTML имеет значение true в 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);
        }
    }
...