Advertisement
animdenis

copyPhotos

Sep 3rd, 2018
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.37 KB | None | 0 0
  1. \Bitrix\Main\Loader::includeModule('iblock');
  2. $iblockId = 20;
  3. $propPhoto = 'MORE_PHOTO';
  4. $propArt = 'CML2_ARTICLE';
  5. $dirName = 'PHOTO_FOR_IBLOCK_' . $iblockId;
  6.  
  7. $arSelect = [
  8.     'ID', 'IBLOCK_ID',
  9.     'PROPERTY_' . $propArt,
  10.     'DETAIL_PICTURE',
  11.     'PREVIEW_PICTURE'
  12. ];
  13.  
  14. $db = CIblockElement::GetList([], ['IBLOCK_ID' => $iblockId], false ,false, $arSelect);
  15. $arEls = [];
  16. while($ob = $db->GetNext()){
  17.     $dbProp = CIBlockElement::GetProperty($iblockId, $ob['ID'], "sort", "asc", array("CODE" => $propPhoto));
  18.     $propVals = [];
  19.  
  20.     if(!empty($ob['PREVIEW_PICTURE'])) $propVals[] = $ob['PREVIEW_PICTURE'];
  21.     if(!empty($ob['DETAIL_PICTURE'])) $propVals[] = $ob['DETAIL_PICTURE'];
  22.  
  23.     while ($obProp = $dbProp->GetNext()){
  24.         $propVals[] = $obProp['VALUE'];
  25.     }
  26.  
  27.     if(count($propVals) == 1 && (int)current($propVals) == 0)
  28.         $propVals = [];
  29.  
  30.     if(count($propVals) > 0)
  31.         $arEls[$ob['PROPERTY_' . $propArt . '_VALUE']] = $propVals;
  32. }
  33.  
  34. $baseDir = $_SERVER['DOCUMENT_ROOT'] . '/upload/' . $dirName . '/';
  35. if(!is_dir($baseDir)) mkdir($baseDir, 0777, true);
  36.  
  37. foreach($arEls as $art => $photos){
  38.     $dirItem = $baseDir . $art . '/';
  39.     if(!is_dir($dirItem)) mkdir($dirItem, 0777, true);
  40.  
  41.     foreach($photos as $key => $photoId){
  42.         $path = $_SERVER['DOCUMENT_ROOT'] . CFile::GetPath($photoId);
  43.         $type = array_pop(explode('.', $path));
  44.         copy($path, $dirItem . $key . '.' . $type);
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement