$name = 'Что-то';
$params = [
'max_len' => '100', // обрезает символьный код до 100 символов
'change_case' => 'L', // буквы преобразуются к нижнему регистру
'replace_space' => '_', // меняем пробелы на нижнее подчеркивание
'replace_other' => '_', // меняем левые символы на нижнее подчеркивание
'delete_repeat_replace' => 'true', // удаляем повторяющиеся нижние подчеркивания
'use_google' => 'false', // отключаем использование google
];
$code = CUtil::translit($name, 'ru' , $params);
global $USER;
$allUser = $arElementsId = $arSelectedElements = [];
$rsUsers = CUser::GetList(
($by="personal_phone"),
($order="desc"),
false,
[
'SELECT' => [
"UF_SELECT_MON",
"UF_SELECT_TUE",
"UF_SELECT_WED",
"UF_SELECT_THU",
"UF_SELECT_FRI",
"UF_SELECT_SAT",
"UF_SELECT_SUN",
"UF_ADDRESS"
]
]
);
while ($arUser = $rsUsers->Fetch()) {
$arElementsId = array_merge(
$arElementsId,
$arUser["UF_SELECT_MON"],
$arUser["UF_SELECT_TUE"],
$arUser["UF_SELECT_WED"],
$arUser["UF_SELECT_THU"],
$arUser["UF_SELECT_FRI"],
$arUser["UF_SELECT_SAT"],
$arUser["UF_SELECT_SUN"],
);
$allUser[] = [
"ID" => $arUser["ID"],
"NAME" => $arUser["NAME"],
"LAST_NAME" => $arUser["LAST_NAME"],
"UF_ADDRESS" => $arUser["UF_ADDRESS"],
"UF_SELECT_MON" => $arUser["UF_SELECT_MON"],
"UF_SELECT_TUE" => $arUser["UF_SELECT_TUE"],
"UF_SELECT_WED" => $arUser["UF_SELECT_WED"],
"UF_SELECT_THU" => $arUser["UF_SELECT_THU"],
"UF_SELECT_FRI" => $arUser["UF_SELECT_FRI"],
"UF_SELECT_SAT" => $arUser["UF_SELECT_SAT"],
"UF_SELECT_SUN" => $arUser["UF_SELECT_SUN"],
];
}
$arElementsId = array_unique($arElementsId);
$rsElements = \CIBlockElement::GetList(
['ID'=>'ASC'],
[
'IBLOCK_ID' => 17,
'ID' => $arElementsId
]);
while ($arElement = $rsElements->fetch()) {
$arSelectedElements[$arElement['ID']] = $arElement['NAME'];
}
$arDaysFields = [
'UF_SELECT_MON',
'UF_SELECT_TUE',
'UF_SELECT_WED',
'UF_SELECT_THU',
'UF_SELECT_FRI',
'UF_SELECT_SAT',
'UF_SELECT_SUN'
];
foreach ($allUser as $topKey => $userArray) {
// по всем юзерам
foreach ($arDaysFields as $day => $values) {
// по всем дням
foreach ($values as $innerKey => $element) {
// заменяем в исходном массиве айди элементов на их NAME
$allUser[$topKey][$day][$innerKey] = $arSelectedElements[$element];
}
}
}
$arUsers = []; // выборка полученная через CUser::GetList
$arSelectedElements = []; // выборка полученная через CIBlockElement::GetList со связанными эл-ми
$arDaysFields = [
'UF_SELECT_MON',
// ... остальные дни
'UF_SELECT_SUN'
];
foreach ($arUsers as $topKey => $userArray) {
// по всем юзерам
foreach ($arDaysFields as $field) {
// по всем дням
foreach ($userArray[$field] as $innerKey => $element) {
// заменяем в исходном массиве айди элементов на их NAME
$userArray[$field][$innerKey] = $arSelectedElements[$element];
}
}
}
$arElementsId = [1,123,3123,123123,666]; // массив айди из выборки CUser::GetList
$arSelectedElements = []; // пустой массив для загруженных связанных элементов
\Bitrix\Main\Loader::includeModule('iblock');
$rsElements = \CIBlockElement::GetList(['ID'=>'ASC'],['IBLOCK_ID' => 666, 'ID' => $arElementsId]);
while ($arElement = $rsElements->fetch()) {
$arSelectedElements[$arElement['ID']] = $arElement['NAME'];
}
статьи
комменты
теги.
Делается запрос в хуке, который по символьному коду определяет, какая там сущность и что надо отображать на странице