Здравствуйте,
помогите пожалуйста, в php 0, а нужно вставить в код константу. Константа создана.
Это код элемента процесса по добавлению юзеров в группу соцсети.
Все добавляются, кроме моей константы. Видимо неправильно обращаюсь к ней.
Это то что я добавила в код, Stake_ctr константа с привязкой к ID юзеров
$users = $this->GetConstant('Stake_ctr');
Ниже рабочий код, согласно ему все отрабатывает, юзеры в группу соцсети добавляются исправно, кроме моей константы.
CModule::IncludeModule("socialnetwork");
$DB = $GLOBALS['DB'];
// Проверяет наличие юзера в группе, если нет - добавляет.
$add_to_socnet_group = function($id, $group_id, $chief_id, $is_moder=false) use($DB) {
$dbRequests = CSocNetUserToGroup::GetList(
[ 'USER_LAST_NAME' => 'ASC', 'USER_NAME' => 'ASC' ],
[ 'GROUP_ID' => $group_id, 'USER_ID' => $id ],
false,
false,
['ID', 'USER_ID', 'ROLE']
);
if (!intval($dbRequests->SelectedRowsCount()) > 0) {
CSocNetUserToGroup::Add([
'USER_ID' => $id,
'GROUP_ID' => $group_id,
'ROLE' => ($is_moder)? SONET_ROLES_MODERATOR: SONET_ROLES_USER,
'=DATE_CREATE' => $DB->CurrentTimeFunction(),
'=DATE_UPDATE' => $DB->CurrentTimeFunction(),
'INITIATED_BY_TYPE' => SONET_INITIATED_BY_USER,
'INITIATED_BY_USER_ID' => $chief_id,
'MESSAGE' => true,
]);
} elseif ($is_moder) {
$user_group = $dbRequests->GetNext();
if ($user_group and $user_group['ROLE'] > SONET_ROLES_MODERATOR) {
CSocNetUserToGroup::Update(
$user_group['ID'],
[ 'ROLE' => SONET_ROLES_MODERATOR,]
);
}
}
};
$group_id = (int) $this->GetVariable('GROUP_ID');
// Модераторы
$moders = [
AkTNProjectsUtils::get_valid_id('{{Рук}}'),
AkTNProjectsUtils::get_valid_id('{{Адм}}')
];
$chief_id = $moders[0];
$users = [
AkTNProjectsUtils::get_valid_id('{{Автор}}'),
AkTNProjectsUtils::get_valid_id('{{Ктото}}'),
];
$users = $this->GetConstant('Stake_ctr');
// Фильтруем от дублей.
$tmp = $users;
$users = [];
foreach($tmp as $key => $id) {
if (!in_array($id, $moders) and !in_array($id, $users)) {
$users[] = $id;
}
}
// Добавляем всех в группу.
foreach($moders as $id) {
$add_to_socnet_group($id, $group_id, $chief_id, true);
}
foreach($users as $id) {
$add_to_socnet_group($id, $group_id, $chief_id, false);
}
помогите пожалуйста, в php 0, а нужно вставить в код константу. Константа создана.
Это код элемента процесса по добавлению юзеров в группу соцсети.
Все добавляются, кроме моей константы. Видимо неправильно обращаюсь к ней.
Это то что я добавила в код, Stake_ctr константа с привязкой к ID юзеров
$users = $this->GetConstant('Stake_ctr');
Ниже рабочий код, согласно ему все отрабатывает, юзеры в группу соцсети добавляются исправно, кроме моей константы.
CModule::IncludeModule("socialnetwork");
$DB = $GLOBALS['DB'];
// Проверяет наличие юзера в группе, если нет - добавляет.
$add_to_socnet_group = function($id, $group_id, $chief_id, $is_moder=false) use($DB) {
$dbRequests = CSocNetUserToGroup::GetList(
[ 'USER_LAST_NAME' => 'ASC', 'USER_NAME' => 'ASC' ],
[ 'GROUP_ID' => $group_id, 'USER_ID' => $id ],
false,
false,
['ID', 'USER_ID', 'ROLE']
);
if (!intval($dbRequests->SelectedRowsCount()) > 0) {
CSocNetUserToGroup::Add([
'USER_ID' => $id,
'GROUP_ID' => $group_id,
'ROLE' => ($is_moder)? SONET_ROLES_MODERATOR: SONET_ROLES_USER,
'=DATE_CREATE' => $DB->CurrentTimeFunction(),
'=DATE_UPDATE' => $DB->CurrentTimeFunction(),
'INITIATED_BY_TYPE' => SONET_INITIATED_BY_USER,
'INITIATED_BY_USER_ID' => $chief_id,
'MESSAGE' => true,
]);
} elseif ($is_moder) {
$user_group = $dbRequests->GetNext();
if ($user_group and $user_group['ROLE'] > SONET_ROLES_MODERATOR) {
CSocNetUserToGroup::Update(
$user_group['ID'],
[ 'ROLE' => SONET_ROLES_MODERATOR,]
);
}
}
};
$group_id = (int) $this->GetVariable('GROUP_ID');
// Модераторы
$moders = [
AkTNProjectsUtils::get_valid_id('{{Рук}}'),
AkTNProjectsUtils::get_valid_id('{{Адм}}')
];
$chief_id = $moders[0];
$users = [
AkTNProjectsUtils::get_valid_id('{{Автор}}'),
AkTNProjectsUtils::get_valid_id('{{Ктото}}'),
];
$users = $this->GetConstant('Stake_ctr');
// Фильтруем от дублей.
$tmp = $users;
$users = [];
foreach($tmp as $key => $id) {
if (!in_array($id, $moders) and !in_array($id, $users)) {
$users[] = $id;
}
}
// Добавляем всех в группу.
foreach($moders as $id) {
$add_to_socnet_group($id, $group_id, $chief_id, true);
}
foreach($users as $id) {
$add_to_socnet_group($id, $group_id, $chief_id, false);
}