<?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';
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'; }
$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';
Кстати, если кому понадобится, то TV задаются в том же массиве, что и остальные параметры в виде: 'tvN' =>$value, где N — идентификатор TV-параметра.
Только еще не указан sm_price.
А вот без sm_currency документ сохраняется, но в каталоге не отображается.
<?php print '<pre>'; $modx->setLogLevel(3); $namespace = 'modxsite'; if(!$response = $modx->runProcessor('web/catalog/products/article/getdata', array("article" => "Н001024",), array('processors_path' => $modx->getObject('modNamespace', $namespace)->getCorePath().'processors/',))){ print "Не удалось выполнить процессор"; return; } $result = $response->getResponse(); if ($object = current($result['object'])){ //print_r($object); $params['class_key'] = 'ShopmodxResourceProduct'; $params['context_key'] = 'web'; $params['pagetitle'] = $object['pagetitle']; $params['parent'] = $object['parent']; $params['id'] = $object['object_id']; $params['sm_price'] = 2070; if(!$response = $modx->runProcessor('mgr/resourceproduct/update', $params , array('processors_path' => $modx->getOption('core_path').'components/shopmodx/processors/',))){ print "Не удалось выполнить процессор"; return; } } print '<br />OK';
print '</pre>'; Loading... syntax error: [2013-11-27 17:40:00] (DEBUG @ /manager/components/console/connectors/console.php) Language string not found: "Имя возвращающей значение функции. getBaseUrl или getBasePath" [2013-11-27 17:40:00] (DEBUG @ /manager/components/console/connectors/console.php) Language string not found: "" [2013-11-27 17:40:00] (DEBUG @ /manager/components/console/connectors/console.php) Language string not found: "id медиасурса. Обязательное"