Пример #1
0
 function getSlides($params)
 {
     $slides = array();
     $pathList = AriCloudCarouselHelper::getPathList($params->get('path'));
     if (count($pathList) == 0) {
         return $slides;
     }
     $extraFields = array();
     $i18n = (bool) $params->get('i18n', false);
     $descrFile = trim($params->get('descrFile', ''));
     $processDescrFile = !empty($descrFile);
     $processSubDir = (bool) $params->get('subdir');
     $imgNumber = intval($params->get('imgNumber', 0), 10);
     $images = array();
     $sort = AriCloudCarouselHelper::getSortExpr($params);
     foreach ($pathList as $path) {
         if (empty($path)) {
             continue;
         }
         if (@is_file($path)) {
             $images[] = $path;
             $path = dirname($path);
         } else {
             $folderImages = AriFolder::files($path, '.(jpg|gif|jpeg|png|bmp|JPG|GIF|JPEG|BMP|PNG)$', $processSubDir, true, $sort);
             if (is_array($folderImages) && count($folderImages) > 0) {
                 if ($imgNumber > 0 && count($folderImages) > $imgNumber) {
                     $folderImages = array_slice($folderImages, 0, $imgNumber);
                 }
                 $images = array_merge($images, $folderImages);
             }
         }
         if ($processDescrFile) {
             $folderExtraFields = AriAppUtils::getExtraFieldsFromINI($path, $descrFile, $processSubDir, true, $i18n);
             if (is_array($folderExtraFields) && count($folderExtraFields) > 0) {
                 $extraFields = array_merge($extraFields, $folderExtraFields);
             }
         }
     }
     $useThumbs = (bool) $params->get('imglist_useThumbs');
     $cachePath = $useThumbs ? AriCloudCarouselHelper::getCachePath() : null;
     $thumbPath = $params->get('imglist_thumbPath');
     $thumbWidth = intval($params->get('imglist_thumbWidth'), 10);
     $thumbHeight = intval($params->get('imglist_thumbHeight'), 10);
     $disableOriginal = (bool) $params->get('imglist_disableOriginal');
     foreach ($images as $image) {
         $slide = array('src' => $image, 'image' => str_replace('\\', '/', $image));
         if ($processDescrFile) {
             if (isset($extraFields[$image])) {
                 $slide = array_merge($extraFields[$image], $slide);
             } else {
                 $cleanImage = str_replace('/', '\\', $image);
                 if (isset($extraFields[$cleanImage])) {
                     $slide = array_merge($extraFields[$cleanImage], $slide);
                 }
             }
         }
         if ($useThumbs) {
             $slide = AriCloudCarouselHelper::generateThumbnail($slide, $thumbWidth, $thumbHeight, $thumbPath, $cachePath, $disableOriginal);
         }
         $slides[] = $slide;
     }
     return $slides;
 }