• Модуль: 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;
}