Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
то ждем ваше обращение в нашей службе тех поддержки.
Взаимодействие инфоблоков с подгружаемыми файлами смахивает на тот нипель. Загрузить иллюстрацию удобно, легко, быстро, и отображение сразу в нужных местах сайта. А выгрузить ее назад, на компьютер? А если их не одна, а 20, 100? А если все изображения раздела, которые CMS при загрузке сам куда-то распихал по временным папкам? Собирать вручную? Зачем же, можно автоматизировать.
Вот вам код скрипта. Кириллические папки и файлы поддерживает.
Назад в раздел
Вот вам код скрипта. Кириллические папки и файлы поддерживает.
<?php require($_SERVER['DOCUMENT_ROOT'].'/bitrix/header.php'); $BID = 6; $destDir = $_SERVER['DOCUMENT_ROOT'].'/export/'; $arPartDir = array(); function MakeFolder($arSect, $path, $BID) { static $io = false; if ($io === false) { $io = CBXVirtualIo::GetInstance(); } $path .= $arSect['NAME'].'/'; $rsElem = CIBlockElement::GetList(array(), array('IBLOCK_ID' => $BID, 'SECTION_ID' => $arSect['ID'])); while ($arElem = $rsElem->Fetch()) { if ($arElem['DETAIL_PICTURE'] > 0) { $arPicture = CFile::GetFileArray($arElem['DETAIL_PICTURE']); $inIO = $io->GetFile($io->RelativeToAbsolutePath($arPicture['SRC'])); $outIO = $io->GetFile($path.$arPicture['ORIGINAL_NAME']); if (!$outIO->IsExists()) { $content = $inIO->GetContents(); if ($content !== null) { $outIO->PutContents($content); } } } } $io->CreateDirectory($path); if (isset($arSect['CHILD'])) { foreach ($arSect['CHILD'] as $arChild) { MakeFolder($arChild, $path, $BID); } } } if (CheckDirPath($destDir) && CModule::IncludeModule('iblock')) { $arSects = array(); $rsSect = CIBlockSection::GetList(array('LEFT_MARGIN' => 'ASC'), array('IBLOCK_ID' => $BID)); while ($arSect = $rsSect->Fetch()) { $arSects[$arSect['ID']] = array( 'ID' => $arSect['ID'], 'NAME' => $arSect['NAME'], 'IBLOCK_SECTION_ID' => $arSect['IBLOCK_SECTION_ID'], ); } //соберем в дерево foreach ($arSects as $id => $arItem) { if ($arItem['IBLOCK_SECTION_ID']>0) { if (isset($arSects[$arItem['IBLOCK_SECTION_ID']])) { if (!isset($arSects[$arItem['IBLOCK_SECTION_ID']]['CHILD'])) { $arSects[$arItem['IBLOCK_SECTION_ID']]['CHILD'] = array(); } $arSects[$arItem['IBLOCK_SECTION_ID']]['CHILD'][$id] = $arItem; } unset($arSects[$id]); } } foreach ($arSects as $arSect) { MakeFolder($arSect, $destDir, $BID); } } require($_SERVER['DOCUMENT_ROOT'].'/bitrix/footer.php');
Назад в раздел
Подписаться на новые материалы раздела: