%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.12.154.172 Web Server : Apache/2.4.52 (Ubuntu) System : Linux 3051455-guretool.twc1.net 5.15.0-107-generic #117-Ubuntu SMP Fri Apr 26 12:26:49 UTC 2024 x86_64 User : www-root ( 1010) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/www-root/data/www/dev.artlot24.ru/bitrix/modules/fileman/lib/block/content/ |
Upload File : |
<? /** * Bitrix Framework * @package bitrix * @subpackage sender * @copyright 2001-2012 Bitrix */ namespace Bitrix\Fileman\Block\Content; use Bitrix\Main\Localization\Loc; use Bitrix\Fileman\Block; Loc::loadMessages(__FILE__); class SliceConverter implements IConverter { CONST SLICE_SECTION_ID = 'BX_BLOCK_EDITOR_EDITABLE_SECTION'; /** * Check string. * * @param string $string String. * @return bool */ public static function isValid($string) { $result = true; $string = mb_strtoupper($string); if(mb_strpos($string, '<!--START '.static::SLICE_SECTION_ID.'/') === false) { $result = false; } if(mb_strpos($string, '<!--END '.static::SLICE_SECTION_ID.'/') === false) { $result = false; } return $result; } /** * Parse string of sliced content to an array of content blocks. * * @param string $string String. * @return BlockContent */ public static function toArray($string) { $blockContent = new BlockContent(); $pattern = '#<!--START ' . static::SLICE_SECTION_ID . '/([\w]+?)/([\w]+?)/-->' . '([\s\S,\n]*?)' . '<!--END ' . static::SLICE_SECTION_ID . '[/\w]+?-->#'; $matches = array(); if(preg_match_all($pattern, $string, $matches)) { $matchesCount = count($matches[0]); for($i = 0; $i < $matchesCount; $i++) { $section = trim($matches[1][$i]); $place = trim($matches[2][$i]); $value = trim($matches[3][$i]); $blockContent->add($section, $place, $value); } } return $blockContent; } /** * Convert block content to string. * * @param BlockContent $content Block content. * @return string */ public static function toString(BlockContent $content) { $result = ''; foreach ($content->getList() as $item) { $result .= '<!--START ' . static::SLICE_SECTION_ID . "/{$item['type']}/{$item['place']}/-->\n" . $item['value'] . "\n" . '<!--END ' . static::SLICE_SECTION_ID . "/{$item['type']}/{$item['place']}/-->\n"; } return trim($result); } /** * Sanitize. * * @param string $string String. * @return string */ public static function sanitize($string) { if (!self::isValid($string)) { return Block\Sanitizer::clean($string); } $content = self::toArray($string); $list = $content->getList(); foreach ($list as $index => $item) { if ($item['type'] !== BlockContent::TYPE_BLOCKS) { continue; } $item['value'] = Block\Sanitizer::clean($item['value']); $list[$index] = $item; } $content->setList($list); return self::toString($content); } }