%PDF- %PDF-
Server IP : 37.220.80.31 / Your IP : 3.144.232.71 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/components/bitrix/main.urlpreview/ |
Upload File : |
<?php use Bitrix\Main\UrlPreview\UrlPreview; define('STOP_STATISTICS', true); define('BX_SECURITY_SHOW_MESSAGE', true); define('BX_SECURITY_SESSION_READONLY', true); require_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php'); global $USER, $APPLICATION; if(!$USER->IsAuthorized() || !check_bitrix_sessid()) die(); if($_REQUEST['action'] === 'attachUrlPreview') { session_write_close(); $urlMetadata = null; $userFieldId = filter_var($_REQUEST['userFieldId'], FILTER_VALIDATE_INT); $elementId = filter_var($_REQUEST['elementId'], FILTER_SANITIZE_STRING); if($userFieldId === false) { die(); } if(isset($_REQUEST['url'])) { $urlPattern = "~^ (https?://|//)? # protocol (optional) (([\w\-]+:)?([\w\-]+)@)? # basic auth ([\w\-\.]+?) # hostname or ip address (:[0-9]+)? # a port (optional) (/?|/\S+|\?\S*|\#\S*) # a /, nothing, a / with something, a query or a fragment $~ixu"; $url = $_REQUEST['url']; $url = trim($url, '!"#$%&\'()*+,-.@:;<=>[\\]^_`{|}~'); if(!preg_match($urlPattern, $url)) die(); if(!\Bitrix\Main\Application::isUtfMode()) $url = \Bitrix\Main\Text\Encoding::convertEncoding($url, 'UTF-8', \Bitrix\Main\Context::getCurrent()->getCulture()->getCharset()); if(UrlPreview::isEnabled()) { $urlMetadata = UrlPreview::getMetadataByUrl($url, true, false); } } else if(isset($_REQUEST['id'])) { $signer = new \Bitrix\Main\Security\Sign\Signer(); try { $id = $signer->unsign($_REQUEST['id'], UrlPreview::SIGN_SALT); } catch (Bitrix\Main\SystemException $e) { die(); } if(UrlPreview::isEnabled()) { $metadata = UrlPreview::getMetadataAndHtmlByIds(array($id), true); if(isset($metadata[$id])) { $urlMetadata = $metadata[$id]; } } } if(!isset($urlMetadata['ID'])) die(); $userFieldParams = array( 'arUserField' => \CUserTypeEntity::getById($userFieldId), 'urlPreviewId' => $elementId ); $userField = array( 'VALUE' => array($urlMetadata['ID']) ); $APPLICATION->ShowAjaxHead(); $outputHtml = UrlPreview::showEdit($userField, $userFieldParams); echo $outputHtml; die(); }