ACC SHELL

Path : /srv/www/vhosts/stakk/app/models/
File Upload :
Current File : //srv/www/vhosts/stakk/app/models/GalleryFileLoader.php

<?php

/**
 * File Loader.
 *
 * @author     Jiří Zajíc (Flipcom)
 * @package    Stakk
 */
class GalleryFileLoader extends Nette\Object
{
    
	private $path = 'images/gallery/';
    private $supportedExtensions = array('jpg', 'jpeg', 'png');
    private $photos = array();

    public function getPhotosFrom($folder)
    {
        $photoFolder = false;
        $entries = array();
        $photos = array();
        if (($folderHandle = opendir($this->path . $folder)))
        {
            while (false !== ($entry = readdir($folderHandle)))
            {
                if ($entry != "." && $entry != "..")
                {
                    $extension = pathinfo($this->path . $folder . $entry, PATHINFO_EXTENSION);
                    $isPhoto = in_array(strtolower($extension), $this->supportedExtensions);
                    $entries[] = $entry;
                    if ($isPhoto)
                    {
                        $photos[] = $entry;
                    }
                    $photoFolder |= $isPhoto;
                }
            }
            closedir($folderHandle);
        }
        if ($photoFolder)
        {
            setlocale(LC_ALL, "cs_CZ.UTF-8");
            sort($photos, SORT_LOCALE_STRING);
            return $photos;
        }
        else
        {
            foreach ($entries as $subfolder)
            {
                $this->photos[$subfolder] = $this->getPhotosFrom($folder . DIRECTORY_SEPARATOR . $subfolder);
            }
        }
        return $this->photos;
    }
    
}

ACC SHELL 2018