Как можно программно продублировать ресурс Modx API?
Здравствуйте!
Собственно вопрос "Как можно программно продублировать ресурс?"
По аналогии с кнопкой Копировать в админке и получить id копии.
Собственно вопрос "Как можно программно продублировать ресурс?"
По аналогии с кнопкой Копировать в админке и получить id копии.
Комментарии: 10
Через процессоры так:
$fields = ["id" => 120473, "prefixDuplicate" => true, "name" => "Новый ресурс", "published_mode" => "preserve"];
$result = $modx->runProcessor('resource/duplicate', $fields);
if ($response->isError()) $modx->log(modX::LOG_LEVEL_ERROR, 'Ошибка создания ресурса');
Да, там кстати есть еще duplicate_children, которая отвечает за дублирование потомков. По умолчанию стоит FALSE. Полностью сам класс процессора можете посмотреть: core/model/modx/processors/resource/duplicate.class.php
Спасибо большое, забыл ответить ранее)
Не подскажите, в чем может быть проблема?
Запускаю в консоли — работает, а в сниппете нет.
Запускаю в консоли — работает, а в сниппете нет.
Скорее всего из-за того, что недостаточно прав
Спасибо! А есть способы как-то решить эту проблему?
Авторизоваться в контексте mgr перед использованием.
Обычно запускают процессор security\login логинящим специальный технический аккаунт перед скриптом, требующим прав админа. А после выполнения скрипта дергают процессор logout.
Обычно запускают процессор security\login логинящим специальный технический аккаунт перед скриптом, требующим прав админа. А после выполнения скрипта дергают процессор logout.
Николай спасибо!
в этой ветке есть решение modx.pro/development/170
Harry спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.