Подскажите где ошибка в плагине

Структура такая:
|
|-> Товар 1 
|-> Категория 1
        |
        |-> Товар 1.1
        |-> Товар 1.2
        |-> Товар 1.3
У товаров 1.х нужно автоматически проставить того же производителя, что и у товара 1.

Код (не смейтесь, я только учусь):
$thisobj = $modx->getObject('modResource',$modx->resource->get('id'));
$thisparent = $thisobj->get('parent');
$parentobj = $modx->getObject('modResource',$thisparent);
$parentalias = $parentobj->get('alias');
$grandparent = $parentobj->get('parent');
$findobj = $modx->getObject('modResource',array(
    'parent'=>$grandparent,
    'alias'=>$parentalias,
    'class_key'=>'msProduct'
));
$vendor = $findobj->get('vendor');

if ($thisobj->get('vendor') == 0 && $vendor > 0) {
    $thisobj->set('vendor',$vendor);
    $thisobj->save();
}
Срабатывает на событие OnDocFormSave.
В итоге при сохранении документа зависает на процессе сохранения.
Подскажите, что не так, может событие не то?
Ну, и заодно еще вопрос: ничего, что у меня «Товар 1» и «Категория 1» одинаковые алиасы?
Evgeny Epifanov
10 августа 2015, 17:23
modx.pro
979
0

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

Воеводский Михаил
11 августа 2015, 05:03
+1
<?php

switch($modx->event->name) {
	case 'onDocFormSave':
		if ($parent = $resource->getOne('Parent')) {
			if ($someProduct = $modx->getObject('msProduct',array('parent' => $parent->get('parent'),'alias' => $parent->get('alias'),'class_key' => 'msProduct'))) {
				if ($vendor	 = $someProduct->getOne('Vendor')) {
					$resource->addOne($vendor,'Vendor');
					$resource->save();
				}
			}
		}
	break;
}
Код не запускал и не проверял.
    Evgeny Epifanov
    11 августа 2015, 13:02
    0
    Спасибо за ответ.
    К сожалению нечего так и не работает.
      Воеводский Михаил
      11 августа 2015, 14:49
      0
      Скинь доступ к админке на почту, вечером гляну.
        Evgeny Epifanov
        12 августа 2015, 14:59
        0
        Решил сделать обычную структуру. Спасибо.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4