aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Module/Fbrowser.php
blob: eef3cb67dfeff63d07901c9d51f000c33135c35c (plain) (blame)
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<?php
namespace Zotlabs\Module;
/**
 * @package		Friendica\modules
 * @subpackage	FileBrowser
 * @author		Fabio Comuni <fabrixxm@kirgroup.com>
 */

require_once('include/photo/photo_driver.php');

/**
 * @param App $a
 */

class Fbrowser extends \Zotlabs\Web\Controller {

	function get(){
		
		if (!local_channel())
			killme();
	
		if (\App::$argc==1)
			killme();
		
		//echo "<pre>"; var_dump(\App::$argv); killme();	
		
		switch(\App::$argv[1]){
			case "image":
				$path = array( array(z_root()."/fbrowser/image/", t("Photos")));
				$albums = false;
				$sql_extra = "";
				$sql_extra2 = " ORDER BY created DESC LIMIT 0, 10";
				
				if (\App::$argc==2){
					$albums = q("SELECT distinct(`album`) AS `album` FROM `photo` WHERE `uid` = %d ",
						intval(local_channel())
					);
					// anon functions only from 5.3.0... meglio tardi che mai..
					$albums = array_map( "self::folder1" , $albums);
					
				}
				
				$album = "";
				if (\App::$argc==3){
					$album = hex2bin(\App::$argv[2]);
					$sql_extra = sprintf("AND `album` = '%s' ",dbesc($album));
					$sql_extra2 = "";
					$path[]=array(z_root()."/fbrowser/image/".\App::$argv[2]."/", $album);
				}
					
				$r = q("SELECT `resource_id`, `id`, `filename`, type, min(`scale`) AS `hiq`,max(`scale`) AS `loq`, `description`  
						FROM `photo` WHERE `uid` = %d $sql_extra
						GROUP BY `resource_id` $sql_extra2",
					intval(local_channel())					
				);
				
				$files = array_map("self::files1", $r);
				
				$tpl = get_markup_template("filebrowser.tpl");
				echo replace_macros($tpl, array(
					'$type' => 'image',
					'$baseurl' => z_root(),
					'$path' => $path,
					'$folders' => $albums,
					'$files' =>$files,
					'$cancel' => t('Cancel'),
				));
					
					
				break;
			case "file":
				if (\App::$argc==2){
					$files = q("SELECT id, filename, filetype FROM `attach` WHERE `uid` = %d ",
						intval(local_channel())
					);
					
					$files = array_map("self::files2", $files);
					//echo "<pre>"; var_dump($files); killme();
				
								
					$tpl = get_markup_template("filebrowser.tpl");
					echo replace_macros($tpl, array(
						'$type' => 'file',
						'$baseurl' => z_root(),
						'$path' => array( array(z_root()."/fbrowser/image/", t("Files")) ),
						'$folders' => false,
						'$files' =>$files,
						'$cancel' => t('Cancel'),
					));
					
				}
			
				break;
		}
		
	
		killme();
		
	}

	private static function folder1($el){
		return array(bin2hex($el['album']),$el['album']);
	}	


	private static function files1($rr){ 

		$ph = photo_factory('');
		$types = $ph->supportedTypes();
		$ext = $types[$rr['type']];
	
		$filename_e = $rr['filename'];
			
		return array( 
			z_root() . '/photo/' . $rr['resource_id'] . '-' . $rr['hiq'] . '.' .$ext, 
			$filename_e, 
			z_root() . '/photo/' . $rr['resource_id'] . '-' . $rr['loq'] . '.'. $ext
		);
	}

	private static function files2($rr){
		list($m1,$m2) = explode("/",$rr['filetype']);
		$filetype = ( (file_exists("images/icons/$m1.png"))?$m1:"zip");
	
		if(\App::get_template_engine() === 'internal') {
			$filename_e = template_escape($rr['filename']);
		}
		else {
			$filename_e = $rr['filename'];
		}
	
		return array( z_root() . '/attach/' . $rr['id'], $filename_e, z_root() . '/images/icons/16/' . $filetype . '.png'); 
	}

	
}