В данной теме описан функционал по копированию/разворачиванию портала с его содержимым.
Всё действие происходит в 2 этапа:
-
Копирование портала (UI-действие “Copy portal”).
-
Разворачивание скопированного портала (скрипт “Clone Portal - Deploy”.
1. Копирование портала
Для копирования необходимо выполнить следующее:
-
Перейти на форму записи необходимого портала.
-
В левом верхнем углу нажать на бургер-меню, в появившемся меню нажать кнопку “Copy portal”.
-
Перезагрузить страницу, чтобы увидеть наличие вложений у записи.
Во вложении должны находиться 2 файла:
-
portal_data.json - содержит данные о всех сущностях, принадлежащих порталу.
-
extended_data.json - содержит данные о изображениях и переводах для сущностей, принадлежащих порталу.
2. Разворачивание скопированного портала
Если скопированы были все сущности, принадлежащие порталу, то разворачивать данные можно по следующим парадигмам:
-
Копируется только портал и все необходимые узлы портала.
-
Первый пункт + все страницы с их наполнением (без виджетов).
-
Пункты 1, 2 + виджеты.
Разворачивание портала выполняется с помощью скрипта “Clone Portal - Deploy”. Главная функция - deployPortal(portalDataJSON, extendedDataJSON, paradigmCopy, newPathName, newPortalTitle). Описание параметров ниже:
-
portalDataJSON - объект, содержащий данные сущностей разворачиваемого портала.
-
extendedDataJSON - объект, содержащий изображения и переводы для сущностей разворачиваемого портала.
-
paradigmCopy - номер парадигмы копирования. Доступные значения: 1, 2, 3.
-
newPathName - новый path_name для разворачиваемого портала.
-
newPortalTitle - новый title для разворачиваемого портала, иначе - “Старое название (Cloned)”.
Для запуска необходимо выполнить следующие действия:
-
Файлы из вложения исходного портала поместить во вложения данного скрипта (предварительно убедиться, что других вложений нет).
-
Вызову главной функции deployPortal() задать необходимые параметры (объекты с данными уже есть, необходимо задать paradigmCopy и newPathName ).
-
Запустить скрипт.
Удаление развернутого портала
Если возникла необходимость в удалении уже развернутых сущностей, есть скрипт удаления Clone Portal - Count&Clear.
Он ищет все сущности, связанные с порталом, созданные текущим пользователем за последние 30 минут (если необходимо, можно изменить условия поиска). Если нужно просмотреть наличие развернутых сущностей, то скрипт запускается как есть. Если необходимо удалить найденные сущности, то раскомментируйте строку 27.
Известные проблемы
-
Инстансы виджета Bread Crumbs Widget разворачиваются деактивированными, т.к. при наличии хотя бы двух узлов порталов со страницами, на которых есть этот виджет, с одинаковыми path_name, виджет упадёт.
-
Изображения с MIME-типом image/svg+xml развернутся поломанными.
SOP-файл с функционалом - во вложении.
За постановку задачи, ценные указания и советы спасибо Владимиру Молодыку.
[SMPL] - Clone Portal Data_2023-10-04 14 18 03.sop (8,2 КБ)