%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/bitrix/www/bitrix/modules/socialnetwork/lib/ui/preview/
Upload File :
Create Path :
Current File : //home/bitrix/www/bitrix/modules/socialnetwork/lib/ui/preview/post.php

<?php
namespace Bitrix\Socialnetwork\Ui\Preview;

use Bitrix\Im\User;
use Bitrix\Main\Loader;

class Post
{
	/**
	 * Returns HTML code for blog post preview.
	 * @param array $params Expected keys: postId, userId.
	 * @return string
	 */
	public static function buildPreview(array $params)
	{
		global $APPLICATION;
		if(!Loader::includeModule('blog'))
			return null;

		ob_start();
		$APPLICATION->includeComponent(
			'bitrix:socialnetwork.blog.post.preview',
			'',
			$params
		);
		return ob_get_clean();
	}

	/**
	 * Returns attach to display in the messenger.
	 * @param array $params Expected keys: postId, userId
	 * @return \CIMMessageParamAttach | false
	 */
	public static function getImAttach(array $params)
	{
		if (!Loader::includeModule('im'))
			return false;

		if (!Loader::includeModule('blog'))
			return false;

		$cursor = \CBlogPost::getList(
			array(),
			array("ID" => $params["postId"]),
			false,
			false,
			array("ID", "BLOG_ID", "PUBLISH_STATUS", "TITLE", "AUTHOR", "ENABLE_COMMENTS", "NUM_COMMENTS", "VIEWS", "CODE", "MICRO", "DETAIL_TEXT", "DATE_PUBLISH", "CATEGORY_ID", "HAS_SOCNET_ALL", "HAS_TAGS", "HAS_IMAGES", "HAS_PROPS", "HAS_COMMENT_IMAGES")
		);
		$post = $cursor->fetch();
		if(!$post)
			return false;

		// For some reason, blog stores specialchared text.
		$post['DETAIL_TEXT'] = htmlspecialcharsback($post['DETAIL_TEXT']);
		if ($post['MICRO'] === 'Y')
			$post['TITLE'] = null;

		$parser = new \blogTextParser();
		$post['PREVIEW_TEXT'] = TruncateText($parser->killAllTags($post["DETAIL_TEXT"]), 200);
		$user = User::getInstance($post['AUTHOR']);

		$attach = new \CIMMessageParamAttach(1, '#E30000');
		$attach->addUser(array(
			'NAME' => $user->getFullName(),
			'AVATAR' => $user->getAvatar(),
		));

		if($post['TITLE'] != '')
		{
			$attach->addHtml('<strong>' . $post['TITLE'] . '</strong>');
		}
		$attach->addHtml($post['PREVIEW_TEXT']);

		return $attach;
	}

	/**
	 * Returns true if current user has read access to the blog post.
	 * @param array $params Allowed keys: postId, userId.
	 * @param int $userId Current user's id.
	 * @return bool
	 */
	public static function checkUserReadAccess(array $params, $userId)
	{
		if(!Loader::includeModule('blog'))
			return false;

		$permissions = \CBlogPost::getSocNetPostPerms($params['postId'], true, $userId);
		return ($permissions >= BLOG_PERMS_READ);
	}

}

Zerion Mini Shell 1.0