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');
}
}
|