Tickets как подписать пользователя на несколько разделов?
Стоит компонент Tickets
При «ручной» подписке пользователя на раздел, появляется запись у ресурса в site_content в столбце properties, и она видимо в json
Как это все будет себя вести при 1000+ подписанных? Может стоит как-то иначе это организовать?
И всё же, как занести id пользователя в эти ресурсы и ничего не поломать?
Пока получилось, что-то такое, но естественно не работает
При «ручной» подписке пользователя на раздел, появляется запись у ресурса в 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;
Комментарии: 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();
}
Подскажите почему так происходит:
Если в плагине использовать напрямую
то подписывает на оба раздела,
Если использовать системную настройку,
Если в плагине использовать напрямую
$idresources = array(20,27);
то подписывает на оба раздела,
Если использовать системную настройку,
$idresources = array($modx->getOption('idsubscrib'));
где записано то же самое 20,27
, то подписывает только на id = 20?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.