Получить ID Youtube - amel-post/bitrix.help GitHub Wiki
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", 'prepareYoutubeId');
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", 'prepareYoutubeId');
function prepareYoutubeId(&$arFields)
{
if ($arFields['IBLOCK_ID'] == 24)
{
$propId = getPropertyId(24, 'YOUTUBE_ID');
foreach ($arFields['PROPERTY_VALUES'][$propId] as &$youtubeProp)
{
preg_match("#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=v\/)[^&\n]+|(?<=v=)[^&\n]+|(?<=youtu.be/)[^&\n]+#", $youtubeProp['VALUE'], $matches);
if (!empty($matches[0])) {
$youtubeProp['VALUE'] = $matches[0];
}
}
}
}
function getPropertyId($iblockId, $code)
{
$result = false;
$propList = CIBlockProperty::GetList([], ['IBLOCK_ID' => $iblockId, 'CODE' => $code]);
if ($prop = $propList->Fetch())
{
$result = $prop['ID'];
}
return $result;
}