Esempio n. 1
0
 /**
  * Hook executed before saving url_preview user type value. Checks and removes signature of the $value.
  * If signature is correct, checks current user's access to $value.
  *
  * @param array $userField Array containing parameters of the user field.
  * @param string $value Signed value of the user field.
  * @return int Unsigned value of the user field, or null in case of errors.
  */
 public static function onBeforeSave($userField, $value)
 {
     $imageUrl = null;
     if (strpos($value, ';') !== false) {
         list($value, $imageUrl) = explode(';', $value);
     }
     $signer = new Signer();
     try {
         $value = $signer->unsign($value, UrlPreview::SIGN_SALT);
     } catch (SystemException $e) {
         return null;
     }
     $metadata = UrlMetadataTable::getById($value)->fetch();
     if (!is_array($metadata)) {
         return null;
     }
     if ($metadata['TYPE'] === UrlMetadataTable::TYPE_STATIC) {
         if ($imageUrl && is_array($metadata['EXTRA']['IMAGES']) && in_array($imageUrl, $metadata['EXTRA']['IMAGES'])) {
             UrlPreview::setMetadataImage((int) $value, $imageUrl);
         }
         return $value;
     } else {
         if ($metadata['TYPE'] === UrlMetadataTable::TYPE_DYNAMIC && UrlPreview::checkDynamicPreviewAccess($metadata['URL'])) {
             return $value;
         }
     }
     return null;
 }
Esempio n. 2
0
    $elementId = filter_var($_REQUEST['elementId'], FILTER_SANITIZE_STRING);
    if ($userFieldId === false) {
        die;
    }
    if (isset($_REQUEST['url'])) {
        $url = filter_var($_REQUEST['url'], FILTER_VALIDATE_URL);
        $urlMetadata = UrlPreview::getMetadataByUrl($url);
    } 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;
            }
            $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;
}
Esempio n. 3
0
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
echo \Bitrix\Main\UrlPreview\UrlPreview::showEdit($arResult, $arParams);
Esempio n. 4
0
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
echo \Bitrix\Main\UrlPreview\UrlPreview::showView($arResult, $arParams, $cacheTag);
Esempio n. 5
0
 public static function getAttachments($id, $typeArray = false)
 {
     $attachArray = array();
     if (is_array($id)) {
         foreach ($id as $key => $value) {
             $id[$key] = intval($value);
         }
     } else {
         $id = array(intval($id));
     }
     $params = UrlPreview\UrlPreview::getMetadataAndHtmlByIds($id);
     foreach ($params as $id => $linkParam) {
         if ($attach = self::formatAttach($linkParam)) {
             $attachArray[$id] = $typeArray ? $attach->GetArray() : $attach;
         }
     }
     return $attachArray;
 }