Как можно программно продублировать ресурс Modx API?

Здравствуйте!

Собственно вопрос "Как можно программно продублировать ресурс?"

По аналогии с кнопкой Копировать в админке и получить id копии.
Harry
08 апреля 2022, 08:08
modx.pro
150
0

Комментарии: 10

Роман
08 апреля 2022, 09:32
0
Через процессоры так:
$fields = ["id" => 120473, "prefixDuplicate" => true, "name" => "Новый ресурс", "published_mode" => "preserve"];
$result = $modx->runProcessor('resource/duplicate', $fields);
if ($response->isError()) $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка создания ресурса');
    Роман
    08 апреля 2022, 09:38
    0
    Да, там кстати есть еще duplicate_children, которая отвечает за дублирование потомков. По умолчанию стоит FALSE. Полностью сам класс процессора можете посмотреть: core/model/modx/processors/resource/duplicate.class.php
      Harry
      22 апреля 2022, 19:14
      0
      Спасибо большое, забыл ответить ранее)
        Александр Наумов
        22 мая 2022, 23:56
        0
        Не подскажите, в чем может быть проблема?
        Запускаю в консоли — работает, а в сниппете нет.
          Harry
          22 мая 2022, 23:59
          0
          Скорее всего из-за того, что недостаточно прав
            Александр Наумов
            23 мая 2022, 01:57
            0
            Спасибо! А есть способы как-то решить эту проблему?
              Николай Савин
              23 мая 2022, 08:09
              +2
              Авторизоваться в контексте mgr перед использованием.

              Обычно запускают процессор security\login логинящим специальный технический аккаунт перед скриптом, требующим прав админа. А после выполнения скрипта дергают процессор logout.
              Harry
              23 мая 2022, 08:41
              +1
              в этой ветке есть решение modx.pro/development/170
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      10