Функция cot_build_user создает ссылку на профиль пользователя, принимая его ID, имя и дополнительные атрибуты для тега ссылки.
Функция cot_build_user позволяет динамически создавать ссылки на профили пользователей с возможностью добавления дополнительных атрибутов. Она удобна для построения интерфейсов, где требуется отображение ссылок на профили пользователей с различными стилями и дополнительными атрибутами.
Подробное объяснение:
/**
* Returns link to user profile
*
* @param int $id User ID
* @param string $userName User name
* @param mixed $extraAttributes Extra link tag attributes as a string or associative array,
* e.g. ['class' => 'user-group-admin']
* @return string
*/
function cot_build_user($id, $userName, $extraAttributes = '')
{
$id = (int) $id; // Приводим ID к целому числу.
// Если существует функция cot_build_user_custom, вызываем её.
if (function_exists('cot_build_user_custom')) {
return cot_build_user_custom($id, $userName, $extraAttributes);
}
// Проверяем, пусто ли имя пользователя, если да, то заменяем на '?'.
$userName = !empty($userName) ? htmlspecialchars($userName) : '?';
// Если ID пользователя равен 0, возвращаем имя пользователя.
if (!$id) {
return $userName;
}
// Возвращаем ссылку на профиль пользователя.
return cot_rc_link(
cot_url('users', ['m' => 'details', 'id' => $id, 'u' => $userName]),
$userName,
$extraAttributes
);
}
Разбор:
Параметры функции:
$id: ID пользователя (целое число).
$userName: Имя пользователя (строка).
$extraAttributes: Дополнительные атрибуты для тега ссылки, переданные строкой или массивом.
Проверка наличия функции cot_build_user_custom:
Если эта функция определена, она вызывается вместо стандартного поведения.
Очистка имени пользователя:
Если имя пользователя пустое, устанавливается значение '?'.
Функция htmlspecialchars используется для предотвращения XSS-атак.
Проверка ID:
Если ID равен 0, возвращается только имя пользователя без ссылки.
Создание ссылки:
Используется cot_rc_link для генерации ссылки с заданным URL и атрибутами.
Пример использования:
'LIST_ROW_OWNER' => cot_build_user($pag['page_ownerid'], $pag['user_name']),
или так
echo cot_build_user(123, 'JohnDoe', ['class' => 'user-link']);
Вернет:
<a href="users.php?m=details&id=123&u=JohnDoe" class="user-link">JohnDoe</a>