aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pages/thumbnail.php76
-rw-r--r--start.php6
2 files changed, 82 insertions, 0 deletions
diff --git a/pages/thumbnail.php b/pages/thumbnail.php
new file mode 100644
index 000000000..3aad5969d
--- /dev/null
+++ b/pages/thumbnail.php
@@ -0,0 +1,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;
+ \ No newline at end of file
diff --git a/start.php b/start.php
index 472bf4881..f2732b3de 100644
--- a/start.php
+++ b/start.php
@@ -283,6 +283,12 @@
include($CONFIG->pluginspath . "tidypics/pages/download.php");
break;
+ case "thumbnail": // tidypics thumbnail
+ if (isset($page[1])) set_input('file_guid', $page[1]);
+ if (isset($page[2])) set_input('size', $page[2]);
+ include($CONFIG->pluginspath . "tidypics/pages/thumbnail.php");
+ break;
+
case "tagged": // all photos tagged with user
if (isset($page[1])) set_input('guid',$page[1]);
include($CONFIG->pluginspath . "tidypics/pages/tagged.php");