%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/socialnetwork/lib/livefeed/ |
Current File : /home/bitrix/www/bitrix/modules/socialnetwork/lib/livefeed/logevent.php |
<? namespace Bitrix\Socialnetwork\Livefeed; use Bitrix\Main\Loader; use Bitrix\Socialnetwork\LogTable; use Bitrix\Main\Config\Option; final class LogEvent extends Provider { const PROVIDER_ID = 'SONET_LOG'; const CONTENT_TYPE_ID = 'LOG_ENTRY'; public static function getId() { return static::PROVIDER_ID; } public function getEventId() { return array('data'); } public function getType() { return Provider::TYPE_POST; } public static function canRead($params) { return true; } protected function getPermissions(array $post) { $result = self::PERMISSION_READ; return $result; } public function getCommentProvider() { $provider = new \Bitrix\Socialnetwork\Livefeed\LogComment(); return $provider; } public function initSourceFields() { $logId = $this->entityId; if ($logId > 0) { $res = LogTable::getList(array( 'filter' => array( '=ID' => $logId, '@EVENT_ID' => $this->getEventId(), ), 'select' => array('ID', 'TITLE', 'MESSAGE', 'PARAMS') )); if ($logEntryFields = $res->fetch()) { $this->setLogId($logEntryFields['ID']); $this->setSourceFields($logEntryFields); $this->setSourceTitle($logEntryFields['TITLE']); $html = false; $entryParams = unserialize($logEntryFields['PARAMS']); if ( !is_array($entryParams) && !empty($logEntryFields['PARAMS']) ) { $tmp = explode("&", $logEntryFields['PARAMS']); if (is_array($tmp) && count($tmp) > 0) { $entryParams = array(); foreach($tmp as $pair) { list ($key, $value) = explode("=", $pair); $entryParams[$key] = $value; } } } if ( !empty($entryParams["SCHEME_ID"]) && Loader::includeModule('xdimport') ) { $res = \CXDILFScheme::getById($entryParams["SCHEME_ID"]); if ($schemeFields = $res->fetch()) { $html = ($schemeFields["IS_HTML"] == "Y"); } } if ($html) { $sanitizer = new \CBXSanitizer(); $sanitizer->applyHtmlSpecChars(false); $sanitizer->setLevel(\CBXSanitizer::SECURE_LEVEL_LOW); $this->setSourceDescription(htmlspecialcharsEx($sanitizer->sanitizeHtml(htmlspecialcharsback($logEntryFields['MESSAGE'])))); } else { $this->setSourceDescription(htmlspecialcharsEx($logEntryFields["MESSAGE"])); } } } } public function getLiveFeedUrl() { $pathToLogEntry = ''; $logId = $this->getLogId(); if ($logId) { $pathToLogEntry = Option::get('socialnetwork', 'log_entry_page', '', $this->getSiteId()); if (!empty($pathToLogEntry)) { $pathToLogEntry = \CComponentEngine::makePathFromTemplate($pathToLogEntry, array("log_id" => $logId)); } } return $pathToLogEntry; } }