Welcome to mirror list, hosted at ThFree Co, Russian Federation.

index.php « gallery « apps - github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: a891e2889f6b76cbf1387f8bf672a0312ac3395f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<?php

/**
* ownCloud - gallery application
*
* @author Bartek Przybylski
* @copyright 2012 Bartek Przybylski bartek@alefzero.eu
* 
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either 
* version 3 of the License, or any later version.
* 
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*  
* You should have received a copy of the GNU Lesser General Public 
* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
* 
*/



OCP\User::checkLoggedIn();
OCP\App::checkAppEnabled('gallery');
OCP\App::setActiveNavigationEntry( 'gallery_index' );

OCP\Util::addStyle('files', 'files');
OCP\Util::addStyle('gallery', 'styles');
OCP\Util::addScript('gallery', 'pictures');
OCP\Util::addStyle( 'gallery', 'supersized' );
OCP\Util::addStyle( 'gallery', 'supersized.shutter' );
OCP\Util::addScript('gallery', 'slideshow');
OCP\Util::addScript('gallery', 'jquery.easing.min');
OCP\Util::addScript('gallery', 'supersized.3.2.7.min');
OCP\Util::addScript('gallery', 'supersized.shutter.min');

include 'gallery/lib/tiles.php';

$root = !empty($_GET['root']) ? $_GET['root'] : '/';
$images = \OC_FileCache::searchByMime('image', null, '/'.\OCP\USER::getUser().'/files'.$root);
sort($images);

$tl = new \OC\Pictures\TilesLine();
$ts = new \OC\Pictures\TileStack(array(), '');
$previous_element = @$images[0];

$root_images = array();
$second_level_images = array();

$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
			if(count($second_level_images) == 0) {
				$fallback_images[] = $root.$images[$i];
			}
		}
		// have us a little something to compare against
		$previous_element = $images[$i];
	}
}

// if last element in the directory was a directory we don't want to miss it :)
if(count($second_level_images)>0) {
	$tl->addTile(new \OC\Pictures\TileStack($second_level_images, $prev_dir_arr[0]));
}

// if last element in the directory was a directory with no second_level_images we also don't want to miss it ...
if(count($fallback_images)>0) {
	$tl->addTile(new \OC\Pictures\TileStack($fallback_images, $prev_dir_arr[0]));
}

// 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();
?>