Пример #1
0
        // we find some images or there are no subdirs anymore to check.
        $name = $file['name'];
        $second_level_images = array();
        $dirs_to_check = array($filename);
        while (!empty($dirs_to_check)) {
            // get next subdir to check
            $subdir = array_pop($dirs_to_check);
            $subdir_files = \OC_Files::getDirectoryContent($subdir, 'image');
            foreach ($subdir_files as $file) {
                if ($file['type'] == 'file') {
                    $second_level_images[] = $subdir . '/' . $file['name'];
                } else {
                    $dirs_to_check[] = $subdir . '/' . $file['name'];
                }
            }
            if (count($second_level_images) != 0) {
                // if we collected images for this directory
                $tl->addTile(new \OC\Pictures\TileStack($second_level_images, $name));
                break;
            }
        }
    }
}
// and finally our images actually stored in the root folder
for ($i = 0; $i < count($root_images); $i++) {
    $tl->addTile(new \OC\Pictures\TileSingle($root_images[$i]));
}
$tmpl = new OCP\Template('gallery', 'index', 'user');
$tmpl->assign('root', $root, false);
$tmpl->assign('tl', $tl, false);
$tmpl->printPage();
Пример #2
0
<?php 
include 'apps/gallery/lib/tiles.php';
$root = empty($_GET['root']) ? '/' : $_GET['root'];
$images = \OC_FileCache::searchByMime('image', null, '/bartek/files' . $root);
sort($images);
$arr = array();
$tl = new \OC\Pictures\TilesLine();
$ts = new \OC\Pictures\TileStack(array(), '');
$previous_element = $images[0];
for ($i = 0; $i < count($images); $i++) {
    error_log($images[$i]);
    $prev_dir_arr = explode('/', $previous_element);
    $dir_arr = explode('/', $images[$i]);
    if (count($dir_arr) == 1) {
        $tl->addTile(new \OC\Pictures\TileSingle($images[$i]));
        continue;
    }
    if (strcmp($prev_dir_arr[0], $dir_arr[0]) != 0) {
        $tl->addTile(new \OC\Pictures\TileStack($arr, $prev_dir_arr[0]));
        $arr = array();
    }
    $arr[] = $root . $images[$i];
    $previous_element = $images[$i];
}
$dir_arr = explode('/', $previous_element);
if (count($dir_arr) == 0) {
    $tl->addTile(new \OC\Pictures\TileSingle($previous_element));
} else {
    if (count($dir_arr) && $ts->getCount() == 0) {
        $ts = new \OC\Pictures\TileStack(array($previous_element), $dir_arr[0]);
Пример #3
0
$fallback_images = array();
// if the folder only cotains subfolders with images -> these are taken for the stack preview
for ($i = 0; $i < count($images); $i++) {
    $prev_dir_arr = explode('/', $previous_element);
    $dir_arr = explode('/', $images[$i]);
    if (count($dir_arr) == 1) {
        // getting the images in this directory
        $root_images[] = $root . $images[$i];
    } else {
        if (strcmp($prev_dir_arr[0], $dir_arr[0]) != 0) {
            // if we entered a new directory
            if (count($second_level_images) == 0) {
                // if we don't have images in this directory
                if (count($fallback_images) != 0) {
                    // but have fallback_images
                    $tl->addTile(new \OC\Pictures\TileStack($fallback_images, $prev_dir_arr[0]));
                    $fallback_images = array();
                }
            } else {
                // if we collected images for this directory
                $tl->addTile(new \OC\Pictures\TileStack($second_level_images, $prev_dir_arr[0]));
                $fallback_images = array();
                $second_level_images = array();
            }
        }
        if (count($dir_arr) == 2) {
            // These are the pics in our current subdir
            $second_level_images[] = $root . $images[$i];
            $fallback_images = array();
        } else {
            // These are images from the deeper directories