- Модуль: blog
- Путь к файлу: ~/bitrix/modules/blog/lib/bloguser.php
- Класс: BitrixBlogBlogUser
- Вызов: BlogUser::getUsersFromDB
private function getUsersFromDB($ids = array())
{
$result = array();
// BLOG users
$filter = array();
if (!empty($ids))
$filter["=USER_ID"] = $ids;
$resBlogUsers = InternalsBlogUserTable::getList(array(
'select' => array(
'ID', 'USER_ID', 'ALIAS', 'DESCRIPTION', 'AVATAR', 'INTERESTS', 'LAST_VISIT', 'DATE_REG', 'ALLOW_POST',
'USER.PERSONAL_PHOTO', 'USER.LOGIN', 'USER.NAME', 'USER.LAST_NAME'
),
'filter' => $filter,
));
// find Users then not exists as BlogUser
if (is_array($ids) && !empty($ids))
$notExistingUsersIds = array_combine($ids, $ids); // set keys = value in new array
while ($row = $resBlogUsers->fetch())
{
unset($notExistingUsersIds[$row["USER_ID"]]);
// specialchars only needed fields
$row["BLOG_USER_ID"] = $row["ID"]; // rename for understandability
// make correctly BlogUser structure to use in old components
$row["BlogUser"] = array(
"ALIAS" => $row["ALIAS"],
"DESCRIPTION" => $row["DESCRIPTION"],
"INTERESTS" => $row["INTERESTS"],
);
$row["BlogUser"] = CBlogTools::htmlspecialcharsExArray($row["BlogUser"]);
if($row["DATE_REG"])
$row["BlogUser"]["DATE_REG"] = FormatDate("FULL", $row["DATE_REG"]->getTimestamp());
if($row["LAST_VISIT"])
$row["BlogUser"]["LAST_VISIT"] = FormatDate("FULL", $row["LAST_VISIT"]->getTimestamp());
$row["BlogUser"]["ID"] = $row["ID"];
$row["BlogUser"]["USER_ID"] = $row["USER_ID"];
$row["BlogUser"]["AVATAR"] = $row["AVATAR"];
$row["BlogUser"]["ALLOW_POST"] = $row["ALLOW_POST"];
// Avatars for post and for comments
$row["BlogUser"]["AVATAR_file"] = intval($row["AVATAR"]) > 0 ?
CFile::GetFileArray($row["AVATAR"]) :
CFile::GetFileArray($row["BLOG_INTERNALS_BLOG_USER_USER_PERSONAL_PHOTO"]);
if ($row["BlogUser"]["AVATAR_file"] !== false)
{
foreach ($this->avatarSizes as $key => $avatarSize)
{
$row["BlogUser"]["Avatar_resized"][$avatarSize['WIDTH'] . '_' . $avatarSize['HEIGHT']] = CFile::ResizeImageGet(
$row["BlogUser"]["AVATAR_file"],
array("width" => $avatarSize['WIDTH'], "height" => $avatarSize['HEIGHT']),
BX_RESIZE_IMAGE_EXACT,
false
);
$row["BlogUser"]["AVATAR_img"][$avatarSize['WIDTH'] . '_' . $avatarSize['HEIGHT']] = CFile::ShowImage(
$row["BlogUser"]["Avatar_resized"][$avatarSize['WIDTH'] . '_' . $avatarSize['HEIGHT']]["src"],
$avatarSize['WIDTH'],
$avatarSize['HEIGHT'],
"border=0 align='right'"
);
}
}
// create correct name from alias, login and names
$row["AUTHOR_NAME"] = self::GetUserName(
$row["ALIAS"],
$row["BLOG_INTERNALS_BLOG_USER_USER_NAME"],
$row["BLOG_INTERNALS_BLOG_USER_USER_LAST_NAME"],
$row["BLOG_INTERNALS_BLOG_USER_USER_LOGIN"]
);
$row["~AUTHOR_NAME"] = htmlspecialcharsex($row["AUTHOR_NAME"]);
// array for User data
$row["arUser"] = array(
"ID" => $row["USER_ID"],
"NAME" => $row["BLOG_INTERNALS_BLOG_USER_USER_NAME"],
"LAST_NAME" => $row["BLOG_INTERNALS_BLOG_USER_USER_LAST_NAME"],
"LOGIN" => $row["BLOG_INTERNALS_BLOG_USER_USER_LOGIN"],
);
$row["arUser"] = CBlogTools::htmlspecialcharsExArray($row["arUser"]);
// we need work with main user ID - is may be not equal blog user ID
$result[$row["arUser"]['ID']] = $row;
}
// create new empty BlogUsers for not existing Users
if (!empty($notExistingUsersIds))
$result = $result + $this->addNotExistingUsers($notExistingUsersIds);
return $result;
}