Your IP : 3.141.201.114


Current Path : /home/bitrix/ext_www/klimatlend.ua/bitrix/modules/socialnetwork/lib/livefeed/
Upload File :
Current File : /home/bitrix/ext_www/klimatlend.ua/bitrix/modules/socialnetwork/lib/livefeed/wiki.php

<?php
namespace Bitrix\Socialnetwork\Livefeed;

use Bitrix\Main\Loader;
use Bitrix\Socialnetwork\LogTable;

final class Wiki extends Provider
{
	const PROVIDER_ID = 'WIKI';
	const CONTENT_TYPE_ID = 'WIKI';

	public static function getId()
	{
		return static::PROVIDER_ID;
	}

	public function getEventId()
	{
		return array('wiki');
	}

	public function getType()
	{
		return Provider::TYPE_POST;
	}

	public function getCommentProvider()
	{
		$provider = new \Bitrix\Socialnetwork\Livefeed\ForumPost();
		return $provider;
	}

	public function initSourceFields()
	{
		static $wikiParser = false;

		$elementId = $this->entityId;

		if (
			$elementId > 0
			&& Loader::includeModule('wiki')
		)
		{
			$element = \CWiki::getElementById($elementId, array(
				'CHECK_PERMISSIONS' => 'N',
				'ACTIVE' => 'Y'
			));

			if ($element)
			{
				$sourceFields = $element;

				$res = LogTable::getList(array(
					'filter' => array(
						'SOURCE_ID' => $elementId,
						'@EVENT_ID' => $this->getEventId(),
					),
					'select' => array('ID', 'URL')
				));
				if ($logEntryFields = $res->fetch())
				{
					$sourceFields = array_merge($element, array('URL' => $logEntryFields['URL']));
					$this->setLogId($logEntryFields['ID']);
				}
				$this->setSourceFields($sourceFields);

				$this->setSourceTitle($element['NAME']);
				if (!$wikiParser)
				{
					$wikiParser = new \CWikiParser();
				}
				$this->setSourceDescription(\CTextParser::clearAllTags($wikiParser->clear($wikiParser->parse($element['DETAIL_TEXT'], $element['DETAIL_TEXT_TYPE'], array()))));
			}
		}
	}

	public static function canRead($params)
	{
		return true;
	}

	protected function getPermissions(array $post)
	{
		$result = self::PERMISSION_READ;

		return $result;
	}

	public function getLiveFeedUrl()
	{
		$pathToWikiArticle = '';

		if (
			($message = $this->getSourceFields())
			&& !empty($message)
		)
		{
			$pathToWikiArticle = $message['URL'];
		}

		return $pathToWikiArticle;
	}
}