Как запускать процессоры miniShop2?

Василий, привет!
Такое дело, запускаю процессор на создание категории таким вот образом:
$category = 'CategoryName';
$categoriesFolderId = 100500;
$response = $modx->runProcessor('category/create', array(
	'pagetitle' => $category,
	'parent'    => $categoriesFolderId
), array(
	'processors_path' => $modx->getOption('core_path') .'components/minishop2/processors/mgr/'
));

А мне выдаёт:
Fatal error: Class 'modCategoryCreateProcessor' not found in /<...>/core/model/modx/modx.class.php on line 1623

У тебя класс этого процессора называется msCategoryCreateProcessor, а modx ищёт там modCategoryCreateProcessor. Как быть?
Алексей Карташов
21 июля 2013, 12:46
modx.pro
2
3 231
0

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

Василий Наумкин
21 июля 2013, 16:56
0
Товары и категории MS2 — это расширенные ресурсы. Благодаря системе CRC MODX Revo, работать с ними нужно родными процессорами, передавая class_key = msCategory — и они сами загрузят, что им надо.

То есть:
$category = 'CategoryName';
$categoriesFolderId = 100500;
$response = $modx->runProcessor('resource/create', array(
	'pagetitle' => $category,
	'parent'    => $categoriesFolderId,
	'class_key' => 'msCategory'
));

Если что — смотри вывод $response->getAllErrors(); — там могут спросить alias или еще что-нибудь.
    Алексей Карташов
    21 июля 2013, 17:00
    0
    Как всегда оперативно :-)
    Круто, спасибо большое!
      Алексей Карташов
      21 июля 2013, 17:44
      0
      Хм, а при создании категорий через процессоры, такие поля как «Содержимое» и «Шаблон», которые в настройках минишопа задаются, разве не должны автоматически заполняться?
      А то у меня контент получился пустым, хотя должно быть:
      [[!getPageExt?
      	&element=`msProducts`
      ]]
      <div class="pagination">
      	<ul>[[!+page.nav]]</ul>
      </div>
      И шаблон не из настроек минишопа подставился.

      Это работает, только если из админки создавать?

      upd. На счёт шаблона по умолчанию для категорий ошибся — в настройках минишопа такого параметра нет, только для новых товаров. Но с контентом впосрос остался)
        Василий Наумкин
        21 июля 2013, 17:54
        0
        Да, контент подставляется на javascript, но никто не мешает его передавать процессору:
        $category = 'CategoryName';
        $categoriesFolderId = 100500;
        $response = $modx->runProcessor('resource/create', array(
        	'pagetitle' => $category,
        	'parent'    => $categoriesFolderId,
        	'class_key' => 'msCategory',
        	'content' => $modx->getOption('ms2_category_content_default')
        ));
          Алексей Карташов
          21 июля 2013, 18:00
          0
          Да, так в итоге и сделал. Но может логичнее было бы в сам процессор 'components/minishop2/processors/mgr/category/create.class.php' это добавить?
          Как-то так:
          public function beforeSet() {
          	$this->setProperties(array(
          		'isfolder' => 1,
          		'content' => $this->modx->getOption('ms2_category_content_default')
          	));
          	return parent::beforeSet();
          }
        Алексей
        22 июля 2013, 09:13
        0
        а как запустить
        assets/components/minishop2/action.php
        с параметром cart/get
        get: function() {
        		params = {
            		action: 'cart/get'
        		};
        		$.post(miniShop2Config.actionUrl, params, function(response) {
        			response = $.parseJSON(response);
        			if (response.success) {
        				if (response.message) {
        					miniShop2.Message.success(response.message);
        				}
        				miniShop2.Cart.status(response.data);
        			}
        			else {
        				miniShop2.Message.error(response.message);
        			}
        		});
        	}
        но похоже
        cart/get
        не предназначен для ajax запросов?
          Peter Zenin
          07 февраля 2014, 12:02
          0
          А если в виртуальную категорию добавить?
          Что-то типа того:

          $miniShop2 = $modx->getService('minishop2','miniShop2',$modx->getOption('minishop2.core_path',null,$modx->getOption('core_path').'components/minishop2/').'model/minishop2/', array());
          
          $response = $miniShop2->runProcessor('mgr/product/category', array(
                  'product_id' => '23',
                  'category_id' => '355'
              ));
          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
          7