Tickets как подписать пользователя на несколько разделов?

Стоит компонент Tickets
При «ручной» подписке пользователя на раздел, появляется запись у ресурса в site_content в столбце properties, и она видимо в json
"subscribers":[]
И что-то в поле properties столько всего запихнуто, что ссыкотно туда лезть и добалять еще что-то.
Как это все будет себя вести при 1000+ подписанных? Может стоит как-то иначе это организовать?

И всё же, как занести id пользователя в эти ресурсы и ничего не поломать?
Пока получилось, что-то такое, но естественно не работает
if ($user && $mode == 'new') {
			if ($profile = $user->getOne('Profile')) {
				$extended = $profile->get('extended');
				$extended['registered'] = date('Y-m-d H:i:s');
				$profile->set('extended', $extended);
				$profile->save();
				
			$idresources = array(20,27);	
			$userid = $user->get('id');
			if ($userid) {
                    foreach ($idresources as $idresource) {
                                    $properties = $idresource->get('properties');
                                    $properties['subscribers'] = $userid;
                                    $resource->set('properties',$properties);
                                    $resource->save();
                                    }
			              }
		  }

		}
		break;
Петр Синечёв
22 февраля 2019, 19:54
modx.pro
680
0

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

Алексей Ерохин
23 февраля 2019, 07:53
+2
Естественно не работает. Вы вызываете метод get к обычному числу а не объекту

$resources = $modx->getCollection('TicketsSection', array('id:IN'=>$idresources));
    foreach ($resources as $resource) {
        //подписываем пользователя на этот раздел
            $properties = $resource->get('properties');
            $properties['subscribers'][] = $userid;
            $resource->set('properties',$properties);
            $resource->save();
        }
    Петр Синечёв
    27 февраля 2019, 19:16
    0
    Подскажите почему так происходит:
    Если в плагине использовать напрямую
    $idresources = array(20,27);

    то подписывает на оба раздела,

    Если использовать системную настройку,
    $idresources = array($modx->getOption('idsubscrib'));
    где записано то же самое
    20,27
    , то подписывает только на id = 20?
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2