aboutsummaryrefslogtreecommitdiffstats
path: root/Zotlabs/Module/Fbrowser.php
blob: e8517e09538a619c900b8f8e33350420b98f1605 (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
137
138
<?php
namespace Zotlabs\Module;
/**
 * @package		Friendica\modules
 * @subpackage	FileBrowser
 * @author		Fabio Comuni <fabrixxm@kirgroup.com>
 */

use function Zotlabs\Render\template_escape;

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(imgscale) AS hiq,max(imgscale) 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'); 
	}

	
}