Здравствуйте. Для копирования элемента пользуюсь следующим кодом. Проблема в том, что детальное изображение и превью копируются физически, а мне нужно, чтобы в скопированном элементе была ссылка на оригинальное изображение. Как это сделать?
| Код |
|---|
if ($obSrc = CIBlockElement::GetByID($ID)->GetNextElement()) {
$arSrc = $obSrc->GetFields();
$arSrcPr = $obSrc->GetProperties();
/*--------------------------------------Изображения------------------------------------------------------*/
$arSrc['PREVIEW_PICTURE'] = intval($arSrc['PREVIEW_PICTURE']);
if ($arSrc['PREVIEW_PICTURE'] > 0) {
$arSrc['PREVIEW_PICTURE'] = CFile::MakeFileArray($arSrc['PREVIEW_PICTURE']);
if (empty($arSrc['PREVIEW_PICTURE'])) {
$arSrc['PREVIEW_PICTURE'] = false;
} else {
$arSrc['PREVIEW_PICTURE']['COPY_FILE'] = 'Y';
}
} else {
$arSrc['PREVIEW_PICTURE'] = false;
}
$arSrc['DETAIL_PICTURE'] = intval($arSrc['DETAIL_PICTURE']);
if ($arSrc['DETAIL_PICTURE'] > 0) {
$arSrc['DETAIL_PICTURE'] = CFile::MakeFileArray($arSrc['DETAIL_PICTURE']);
if (empty($arSrc['DETAIL_PICTURE'])) {
$arSrc['DETAIL_PICTURE'] = false;
}
else {
$arSrc['DETAIL_PICTURE']['COPY_FILE'] = 'Y';
}
}
else {
$arSrc['DETAIL_PICTURE'] = false;
}
/*-----------------------------------------------------------------------------------------------------------*/
...
$arSrc = array(
'IBLOCK_ID' => $intDestIBlockID,
'ACTIVE' => $arSrc['ACTIVE'],
'ACTIVE_FROM' => $arSrc['ACTIVE_FROM'],
'ACTIVE_TO' => $arSrc['ACTIVE_TO'],
'SORT' => $arSrc['SORT'],
'NAME' => $arSrc['~NAME'].' '.$i,
'PREVIEW_PICTURE' => $arSrc['PREVIEW_PICTURE'],
'PREVIEW_TEXT' => $arSrc['~PREVIEW_TEXT'],
'PREVIEW_TEXT_TYPE' => $arSrc['PREVIEW_TEXT_TYPE'],
'DETAIL_TEXT' => $arSrc['~DETAIL_TEXT'],
'DETAIL_TEXT_TYPE' => $arSrc['DETAIL_TEXT_TYPE'],
'DETAIL_PICTURE' => $arSrc['DETAIL_PICTURE'],
'WF_STATUS_ID' => $arSrc['WF_STATUS_ID'],
'CODE' => $arSrc['~CODE'].' '.$i,
'TAGS' => $arSrc['~TAGS'],
'XML_ID' => $arSrc['~XML_ID'],
'PROPERTY_VALUES' => array(),
) ;
...
$intNewID = $el->Add($arSrc, true, true, true);
... |