Как создать ссылку на страницу Sitefinity в контенте через API? - PullRequest
0 голосов
/ 28 мая 2020

Я импортирую контент из нашей старой системы управления контентом. Я пытаюсь обновить ссылки, расположенные в контенте (новостная статья, управление страницей и т. Д. c.), Чтобы они были ссылками типа Sitefinity, ссылающимися на страницы SF, новостные статьи и т. Д. c. Я попытался воссоздать структуру тега привязки, включая атрибут sfref, но publi sh не удаляет атрибут sfref, а publi sh -and-syn c не обновляет URL-адрес до новый сервер. Как я могу правильно сделать это с помощью API?

1 Ответ

1 голос
/ 29 мая 2020

Вот как это нужно сделать:

Допустим, у вас есть следующие html из старой системы:

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

Теперь предположим, что вы создали Страница Us в Sitefinity.

Вам необходимо найти объект узла страницы ( sf_page_node table) и получить его значения: root_id и id . Допустим, они выглядят так:

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

Тогда фрагмент html, который необходимо сохранить в базе данных, должен быть таким (проверено в версии 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 table).

Затем вам необходимо сохранить в базе данных следующие html:

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

Здесь я предполагаю, что вы используете поставщика по умолчанию - OpenAccessDataProvider и что content_id изображения LIVE : 1dd75953-b4a8-46f6-93b9-6b29f5a62a04

...