Вообще из коробки в MODX-е есть политика Content Editor, но на мой взгляд она не оптимальная, поэтому в простой сборке сайта-визитки настройки контент-менеджера как раз включены дополнительно. ОК, включу в сборку магазина.

Пожалуйста. Кстати, если кому понадобится, то TV задаются в том же массиве, что и остальные параметры в виде: 'tvN' =>$value, где N — идентификатор TV-параметра. По этому поводу тоже есть что сказать очень важное. Механизм с TV-шками в resource/create и resource/update очень сильно отличается. resource/create да, просто смотрит параметры вида tv{$tvID}, и если таковые имеются, то создает соответствующие TV-шки для ресурса. А resource/update просто так их не присваивает и не обновляет. Для того, чтобы он обновил TV-шки, надо передать параметр tvs=>true. Но тут есть очень опасный подводный камень. Если передан tvs, то процессор обновит не только переданные в параметре TV-шки, но и вообще все TV-шки этого ресурса. При чем не указанные TV-шки он просто удалит. То есть если у ресурса есть 10 назначенных TV со значениями, а вы передаете а параметрах, допустим, только два TV-поля на обновления, то он эти два поля обновит, а остальные тупо удалит.

А можно будет в новой сборке настроить права доступа и панель для учетной записи контент-менеджера. Хотя наверное и в текущей сборке это не сложно настроить?

Спасибо. Я так и думал, что ты сможешь оптимизировать этот код. :) Кстати, если кому понадобится, то TV задаются в том же массиве, что и остальные параметры в виде: 'tvN' =>$value, где N — идентификатор TV-параметра.

Пришло еще два платежа по 500 рублей. Итого 5000 — 50% от заявленной суммы.

Еще 500 рублей поступило. Спасибо Ольге Ивановне OlgaPopova !

Сорри, не видел топика… Полезный материал есть здесь. По поводу приведенного примера: в целом да, он работоспособный. Но не оптимальный. Здесь есть серьезная хитрость: у тебя указан вызов конкретного shopModx-ого процессора, но это не обязательно делать. Почему? Посмотрим на метод системного процессора resource/create modResourceCreateProcessor::getInstance() public static function getInstance(modX &$modx,$className,$properties = array()) { $classKey = !empty($properties['class_key']) ? $properties['class_key'] : 'modDocument'; $object = $modx->newObject($classKey);

if (!in_array($classKey,array('modDocument','modResource',''))) {
    $className = $classKey.'CreateProcessor';
    if (!class_exists($className)) {
        $className = 'modResourceCreateProcessor';
    }
}
/** @var modProcessor $processor */
$processor = new $className($modx,$properties);
return $processor;

} Особенно обратить внимание на: $className = $classKey.'CreateProcessor'; if (!class_exists($className)) { $className = 'modResourceCreateProcessor'; } То есть он на лету формирует по маске название класса-процессора для указанного class_key, и если такой объявлен, то выполняется именно этот процессор вместо системного. Итог: можно легко вызывать и системный процессор, при этом выполнится shopModx-овый в соответствии с указанным class_key. Конечный код такой: $options = array( 'pagetitle' => 'Пример создания', 'template' => 3, 'parent' => 87, 'class_key' => 'ShopmodxResourceProduct', 'sm_currency' => 79, 'published' => true, );

$response = $modx->runProcessor('resource/create', $options);

if($response->isError()){ print "error"; } print_r($response->getResponse()); print '<br />OK'; Только еще не указан sm_price.

Может кому пригодится… <?php if(!$path = $modx->getOption('shopmodx.core_path')){ $path = $modx->getOption('core_path').'components/shopmodx/';
} $path .= 'processors/';

$options = array( 'pagetitle' => 'Пример создания', 'template' => 3, 'parent' => 87, 'class_key' => 'ShopmodxResourceProduct', 'sm_currency' => 79, 'published' => true, );

$response = $modx->runProcessor('mgr/resourceproduct/create', $options, array( 'processors_path' => $path, ));

if($response->isError()){ print "error"; } print_r($response->getResponse()); print '<br />OK'; На основе комментария Fi1osof'a в этой ветке community.modx-cms.ru/blog/solutions/9448.html

Ольга Ивановна, здравствуйте! Да, действительно форма некорректно работает. На завтра поставил задачу срочную. Завтра поправлю и отпишусь.

Не получается отправить вопрос со страницы «ВОПРОС-ОТВЕТ» — sling.ru/faq/voprosyi-i-otvetyi/ ?