blob: 3aad5969d26b9881298d00db1e58b19d5a9bbc61 (
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
|
<?php
/**
* Tidypics Thumbnail
*
*/
// Get file GUID
$file_guid = (int) get_input('file_guid');
// Get file thumbnail size
$size = get_input('size');
// only 3 possibilities
if ($size != 'small' && $size != 'thumb') {
$size = 'large';
}
$error_image = '';
switch ($size) {
case 'thumb':
$error_image = "image_error_thumb.png";
break;
case 'small':
$error_image = "image_error_small.png";
break;
case 'large':
$error_image = "image_error_large.png";
break;
}
// Get file entity
$file = get_entity($file_guid);
if (!$file)
forward('mod/tidypics/graphics/' . $error_image);
if ($file->getSubtype() != "image")
forward('mod/tidypics/graphics/' . $error_image);
// Get filename
if ($size == "thumb") {
$thumbfile = $file->thumbnail;
} else if ($size == "small") {
$thumbfile = $file->smallthumb;
} else {
$thumbfile = $file->largethumb;
}
if (!$thumbfile)
forward('mod/tidypics/graphics/' . $error_image);
// create Elgg File object
$readfile = new ElggFile();
$readfile->owner_guid = $file->owner_guid;
$readfile->setFilename($thumbfile);
$contents = $readfile->grabFile();
// send error image if file could not be read
if (!$contents) {
forward('mod/tidypics/graphics/' . $error_image);
}
// expires every 14 days
$expires = 14 * 60*60*24;
// overwrite header caused by php session code so images can be cached
$mime = $file->getMimeType();
header("Content-Type: $mime");
header("Content-Length: " . strlen($contents));
header("Cache-Control: public", true);
header("Pragma: public", true);
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT', true);
// Return the thumbnail and exit
echo $contents;
exit;
|