【问题标题】:How do I create a link to a Sitefinity page in content via API?如何通过 API 在内容中创建指向 Sitefinity 页面的链接?
【发布时间】:2020-05-29 09:39:34
【问题描述】:

我正在从我们的旧内容管理系统导入内容。我正在尝试将位于内容(新闻文章、页面控件等)中的链接更新为 Sitefinity 类型的链接,链接到 SF 页面、新闻文章等。我试图重新创建锚的结构标记,包括 sfref 属性,但 publish 不会删除 sfref 属性,并且 publish-and-sync 不会将 URL 更新到新服务器。如何使用 API 正确执行此操作?

【问题讨论】:

    标签: c# sitefinity


    【解决方案1】:

    您需要这样做:

    假设您有以下旧系统中的 html:

    Check our <a href="/about-us">About Us</a> page.
    

    现在,假设您在 Sitefinity 中创建了“关于我们”页面。

    你需要找到页面节点对象(sf_page_node表)并获取它: root_idid 值。 假设它们看起来像这样:

    rootId: f669d9a7-009d-4d83-ddaa-000000000002
    Id: b5d84f10-3660-42e4-b2c0-b89db2d6c884
    

    那么需要存入数据库的html sn-p应该是这样的(在v.12.2测试过)

    Check our <a href="[f669d9a7-009d-4d83-ddaa-000000000002]b5d84f10-3660-42e4-b2c0-b89db2d6c884">About Us</a> page.
    

    对于图片,假设你的 html 中有这个:

    <img src="/images/image1.jpg">
    

    我假设您已将 image1.jpg 上传到 Sitefinity,并且您知道它的 Content_Id(来自 sf_media_content 表)。

    那么你需要将以下html保存到数据库中:

    <img src="[images|OpenAccessDataProvider]1dd75953-b4a8-46f6-93b9-6b29f5a62a04" data-displaymode="Original" alt="image1" title="image1.jpg">
    

    这里我假设您使用默认提供程序 - OpenAccessDataProvider 并且 LIVE 图像的 content_id 是 1dd75953-b4a8-46f6-93b9-6b29f5a62a04

    【讨论】:

    • 太棒了。我是如此接近。我分别写出了 href 和 src 属性的实际 URL,并将你描述的 sn-p 写到“sfref”属性中——所有这些都是因为当我在编辑器中查看源代码时,它就显示了。将该 sfref 值写入 href/src 属性解决了这个问题。谢谢!
    • 是的,当小部件设计者从数据库中获取数据时,他们添加了 sfref 属性,这样他们就不会丢失 src/href 中的原始值。然后当他们保存到数据库时,他们将 sfref 的值复制到 src/href。很高兴它现在可以工作了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-17
    相关资源
    最近更新 更多