发布HTML字段控件将相对URL转换为绝对URL

时间:2009-05-27 17:28:35

标签: sharepoint url relative absolute

因此,在对外部SharePoint网站上是否应该使用CEWP或HTML Field Control进行大量研究之后,我们决定使用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 个答案:

答案 0 :(得分:2)

我也遇到过这个问题。我们通过功能部署了自定义站点字段和内容类型。 HTML字段的RichText属性在caml中正确为true,但是一旦在根网站字段集合中部署了SPField,并且每个页面列表中的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);
        }
    }