[GROUP_ID] => Array
(
[0] => Array
(
[GROUP_ID] => 1
[DATE_ACTIVE_FROM] =>
[DATE_ACTIVE_TO] =>
)
[1] => Array
(
[GROUP_ID] => 3
[DATE_ACTIVE_FROM] =>
[DATE_ACTIVE_TO] =>
)
[2] => Array
(
[GROUP_ID] => 4
[DATE_ACTIVE_FROM] =>
[DATE_ACTIVE_TO] =>
)
[3] => Array
(
[GROUP_ID] => 1
[DATE_ACTIVE_FROM] =>
[DATE_ACTIVE_TO] =>
)
)#^/list/(\\d+)/[^\/]*$# empty($arGroup['DATE_ACTIVE_TO']) || strtotime($arGroup['DATE_ACTIVE_TO']) >= time()in_array($arGroup['GROUP_ID'], $arAimGroups) && (empty($arGroup['DATE_ACTIVE_TO']) || strtotime($arGroup['DATE_ACTIVE_TO']) >= time()) empty($arGroup['DATE_ACTIVE_TO']) || strtotime($arGroup['DATE_ACTIVE_TO']) >= time()$arSort = [];
$arOrder = [];
$arFilter = [
'ACTIVE' => 'Y', // работаем только с активными пользователями
'GROUPS_ID' => [3,4,5] // список групп, чьих членов касается данная процедура (можно не использовать, тогда для всех)
];
$obUsers = CUser::GetList($arSort, $order, $filter);
while ($arUser = $obUsers->Fetch()) {
$arGroups_db = CUser::GetUserGroupList($arUser['ID']);
$counter = 0;
$arGroups = [];
while ($arGroup = $arGroups_db->Fetch()){
$counter++;
if (empty($arGroup['DATE_ACTIVE_TO']) || strtotime($arGroup['DATE_ACTIVE_TO']) >= time()) {
$arGroups[] = $arGroup;
}
}
if (count($arGroups) !== $counter) {
CUser::SetUserGroup($arUser['ID'], $arGroups);
}
}while ($arGroup = $obGroups->Fetch() && !$isAdmin) {
if ($maxGroupId < $arGroup['GROUP_ID']) {
$maxGroupId = $arGroup['GROUP_ID'];
}
if ($arGroup['GROUP_ID'] == 1) {
$isAdmin = true;
}
}while ($arGroup = $obGroups->Fetch() && !$isAdmin) {
if (empty($arGroup['DATE_ACTIVE_TO']) || strtotime($arGroup['DATE_ACTIVE_TO']) >= time()) {
if ($maxGroupId < $arGroup['GROUP_ID']) {
$maxGroupId = $arGroup['GROUP_ID'];
}
if ($arGroup['GROUP_ID'] == 1) {
$isAdmin = true;
}
}
} require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
$obGroups = CUser::GetUserGroupList(1);
$maxGroupId = 0;
$isAdmin = false;
while ($arGroup = $obGroups->Fetch() && !$isAdmin) {
if ($maxGroupId < $arGroup['GROUP_ID']) {
$maxGroupId = $arGroup['GROUP_ID'];
}
if ($arGroup['GROUP_ID'] == 1) {
$isAdmin = true;
}
}
if (!$isAdmin) {
$obMaxGroup = CGroup::GetByID($maxGroupId);
if ($arMaxGroup = $obMaxGroup->Fetch()) {
echo $arMaxGroup['NAME'];
}
} else {
echo 'Админ!';
} $arMaxGroup['NAME'] . ' c ID=' . $arMaxGroup['ID'] $arString = preg_split('//u', $arMaxGroup['NAME'], -1, PREG_SPLIT_NO_EMPTY);
foreach ($arString as $symbol) {
echo '<span style="color:' . sprintf( '#%02X%02X%02X', rand(0, 255), rand(0, 255), rand(0, 255) ) . ';">' . $symbol . '</span>';
}
/bitrix/.settings.php ищи параметр debug ставь в true
Увидите на какой строке ошибка. Исправите)))
Рефакторить код можно бесконечно. С годами за кодом это придёт)))