Commit fc8c1ba6ca635c937d131d109f5817b06f28a757

Authored by Megan Watson
1 parent 7d380d0a

Moved the thumbnails behind a view controller and moved them into the external var directory.

PT: 1829778

Committed by: Megan Watson
plugins/thumbnails/thumbnail_view.php 0 → 100644
  1 +<?php
  2 +
  3 +require_once('../../config/dmsDefaults.php');
  4 +
  5 +// Check the session, ensure the user is logged in
  6 +$session = new Session();
  7 +$sessionStatus = $session->verify();
  8 +
  9 +if(PEAR::isError($sessionStatus)){
  10 + echo $sessionStatus->getMessage();
  11 + exit;
  12 +}
  13 +
  14 +if(!$sessionStatus){
  15 + exit;
  16 +}
  17 +
  18 +// Get the document
  19 +$documentId = $_GET['documentId'];
  20 +$oDocument = Document::get($documentId);
  21 +
  22 +if (PEAR::isError($oDocument)) {
  23 + exit;
  24 +}
  25 +
  26 +// Check the document is available and the user has permission to view it
  27 +if ($oDocument->getStatusID() == ARCHIVED) {
  28 + exit;
  29 +} else if ($oDocument->getStatusID() == DELETED) {
  30 + exit;
  31 +}else if (!Permission::userHasDocumentReadPermission($oDocument)) {
  32 + exit;
  33 +}
  34 +
  35 +// Get and render the thumbnail
  36 +// Check for the thumbnail
  37 +$varDir = $default->varDirectory;
  38 +$thumbnailCheck = $varDir . '/thumbnails/'.$documentId.'.jpg';
  39 +
  40 +if(!file_exists($thumbnailCheck)){
  41 + exit;
  42 +}
  43 +
  44 +// Use correct slashes for windows
  45 +if (strpos(PHP_OS, 'WIN') !== false) {
  46 + $thumbnailCheck = str_replace('/', '\\', $thumbnailCheck);
  47 +}
  48 +
  49 +$fileSize = filesize($thumbnailCheck);
  50 +
  51 +header("Content-Type: image/jpeg");
  52 +header("Content-Length: {$fileSize}");
  53 +
  54 +echo readfile($thumbnailCheck);
  55 +exit;
  56 +?>
0 57 \ No newline at end of file
... ...
plugins/thumbnails/thumbnails.php
... ... @@ -155,7 +155,7 @@ class thumbnailGenerator extends BaseProcessor
155 155 $pdfFile = $pdfDir .DIRECTORY_SEPARATOR. $this->document->iId.'.pdf';
156 156 }
157 157  
158   - $thumbnaildir = $default->internalVarDirectory.DIRECTORY_SEPARATOR.'thumbnails';
  158 + $thumbnaildir = $default->varDirectory.DIRECTORY_SEPARATOR.'thumbnails';
159 159  
160 160 if (stristr(PHP_OS,'WIN')) {
161 161 $thumbnaildir = str_replace('/', '\\', $thumbnaildir);
... ... @@ -189,7 +189,7 @@ class thumbnailGenerator extends BaseProcessor
189 189 else {
190 190 $cmd = "{$pathConvert} {$pdfFile}[0] -resize 200x200 $thumbnailfile";
191 191 }
192   -
  192 +
193 193 $result = KTUtil::pexec($cmd);
194 194 return true;
195 195 }
... ... @@ -216,17 +216,16 @@ class ThumbnailViewlet extends KTDocumentViewlet {
216 216 return '';
217 217 }
218 218  
219   - // Check for the thumbnail
  219 + // Check that the thumbnail exists on disk
220 220 global $default;
221   - $varDir = $default->internalVarDirectory;
222   - $thumbnailfile = $varDir . '/thumbnails/'.$documentId.'.jpg';
  221 + $varDir = $default->varDirectory;
  222 + $thumbnailCheck = $varDir . '/thumbnails/'.$documentId.'.jpg';
223 223  
224   - if (stristr(PHP_OS,'WIN')) {
225   - $varDir = str_replace('/', '\\', $varDir);
  224 + // Use correct slashes for windows
  225 + if (strpos(PHP_OS, 'WIN') !== false) {
  226 + $thumbnailCheck = str_replace('/', '\\', $thumbnailCheck);
226 227 }
227 228  
228   - $thumbnailCheck = $varDir . '/thumbnails/'.$documentId.'.jpg';
229   -
230 229 // if the thumbnail doesn't exist try to create it
231 230 if (!file_exists($thumbnailCheck)){
232 231 $thumbnailer = new thumbnailGenerator();
... ... @@ -239,18 +238,24 @@ class ThumbnailViewlet extends KTDocumentViewlet {
239 238 }
240 239 }
241 240  
242   - // check for existence and status of instant view plugin
  241 + // check for existence and status of the instant view plugin
243 242 $url = '';
244 243 if (KTPluginUtil::pluginIsActive('instaview.processor.plugin'))
245 244 {
246 245 require_once KTPluginUtil::getPluginPath('instaview.processor.plugin') . 'instaViewLinkAction.php';
247 246 $ivLinkAction = new instaViewLinkAction();
248 247 $url = $ivLinkAction->getViewLink($documentId, 'document');
249   - }
  248 + }
250 249  
251 250 // Get the url to the thumbnail and render it
252   - $thumbnailUrl = str_replace($default->internalVarDirectory, 'var', $thumbnailfile);
253   - $oTemplate->setData(array(
  251 + // Ensure url has correct slashes
  252 + $sHostPath = KTUtil::kt_url();
  253 + $plugin_path = KTPluginUtil::getPluginPath('thumbnails.generator.processor.plugin');
  254 + $thumbnailUrl = $plugin_path . 'thumbnail_view.php?documentId='.$documentId;
  255 + $thumbnailUrl = str_replace('\\', '/', $thumbnailUrl);
  256 + $thumbnailUrl = str_replace(KT_DIR, $sHostPath, $thumbnailUrl);
  257 +
  258 + $oTemplate->setData(array(
254 259 'thumbnail' => $thumbnailUrl,
255 260 'url' => $url
256 261 ));
... ... @@ -259,7 +264,7 @@ class ThumbnailViewlet extends KTDocumentViewlet {
259 264  
260 265 public function get_width($documentId){
261 266 global $default;
262   - $varDir = $default->internalVarDirectory;
  267 + $varDir = $default->varDirectory;
263 268 $thumbnailfile = $varDir . '/thumbnails/'.$documentId.'.jpg';
264 269 if(file_exists($thumbnailfile)){
265 270 return 200;
... ...