Commit c446a64bad22e0ee0215caebe0f259b96df4f55e
1 parent
410a3115
Added thumbnail column
PT: 1434184 Committed by: Megan Watson
Showing
4 changed files
with
93 additions
and
3 deletions
plugins/thumbnails/resources/thumbnails.css
0 → 100644
| 1 | +.thumb-shadow { | |
| 2 | + float:left; | |
| 3 | + background: url(plugins/thumbnails/templates/shadowAlpha.png) no-repeat bottom right !important; | |
| 4 | + background: url(plugins/thumbnails/templates/shadow.gif) no-repeat bottom right; | |
| 5 | + margin: 10px 0 0 10px !important; | |
| 6 | + margin: 10px 0 0 5px; | |
| 7 | +} | |
| 8 | + | |
| 9 | +.thumb-shadow img { | |
| 10 | + display: block; | |
| 11 | + position: relative; | |
| 12 | + background-color: #fff; | |
| 13 | + border: 1px solid #a9a9a9; | |
| 14 | + margin: -6px 6px 6px -6px; | |
| 15 | + padding: 4px; | |
| 16 | +} | |
| 0 | 17 | \ No newline at end of file | ... | ... |
plugins/thumbnails/thumbnails.php
| ... | ... | @@ -36,6 +36,7 @@ |
| 36 | 36 | */ |
| 37 | 37 | |
| 38 | 38 | require_once(KT_LIB_DIR . "/actions/documentviewlet.inc.php"); |
| 39 | +require_once(KT_LIB_DIR . '/browse/advancedcolumns.inc.php'); | |
| 39 | 40 | require_once(KT_DIR . '/search2/documentProcessor/documentProcessor.inc.php'); |
| 40 | 41 | |
| 41 | 42 | /** |
| ... | ... | @@ -134,14 +135,14 @@ class thumbnailGenerator extends BaseProcessor |
| 134 | 135 | |
| 135 | 136 | // In addition PDF and (standard) Image files are also supported |
| 136 | 137 | $mime_types[] = 'application/pdf'; |
| 137 | - | |
| 138 | + | |
| 138 | 139 | $sQuery = "SELECT DISTINCT mimetypes FROM mime_types WHERE mimetypes LIKE 'image/%'"; |
| 139 | 140 | $aTempRes = DBUtil::getResultArray($sQuery); |
| 140 | 141 | $count =count($aTempRes); |
| 141 | 142 | for($i = 0; $i < $count; $i++ ) { |
| 142 | 143 | $mime_types[] = $aTempRes[$i]['mimetypes']; |
| 143 | 144 | } |
| 144 | - | |
| 145 | + | |
| 145 | 146 | return $mime_types; |
| 146 | 147 | } |
| 147 | 148 | |
| ... | ... | @@ -218,7 +219,7 @@ class thumbnailGenerator extends BaseProcessor |
| 218 | 219 | else { |
| 219 | 220 | $cmd = "{$pathConvert} {$srcFile}" . $pageNumber . " -resize 200x200 $thumbnailfile"; |
| 220 | 221 | } |
| 221 | - | |
| 222 | + | |
| 222 | 223 | $result = KTUtil::pexec($cmd); |
| 223 | 224 | return true; |
| 224 | 225 | } |
| ... | ... | @@ -304,4 +305,76 @@ class ThumbnailViewlet extends KTDocumentViewlet { |
| 304 | 305 | } |
| 305 | 306 | } |
| 306 | 307 | |
| 308 | +/** | |
| 309 | + * Displays a column in the Browse view of the document thumbnail | |
| 310 | + */ | |
| 311 | +class ThumbnailColumn extends AdvancedColumn { | |
| 312 | + var $name = 'thumnailcolumn'; | |
| 313 | + var $namespace = 'thumbnails.generator.column'; | |
| 314 | + | |
| 315 | + function ThumbnailColumn() { | |
| 316 | + $this->label = _kt('Thumbnail'); | |
| 317 | + } | |
| 318 | + | |
| 319 | + function renderHeader($sReturnURL) { | |
| 320 | + global $main; | |
| 321 | + | |
| 322 | + $path = dirname(__FILE__); | |
| 323 | + | |
| 324 | + // Get the CSS to render the thumbnail | |
| 325 | + $main->requireCSSResource('plugins/thumbnails/resources/thumbnails.css'); | |
| 326 | + return ' '; | |
| 327 | + } | |
| 328 | + | |
| 329 | + /** | |
| 330 | + * Render the thumbnail for the given document | |
| 331 | + * | |
| 332 | + * @param array $aDataRow | |
| 333 | + * @return string HTML | |
| 334 | + */ | |
| 335 | + function renderData($aDataRow) { | |
| 336 | + if ($aDataRow["type"] == "document") { | |
| 337 | + $docid = $aDataRow['docid']; | |
| 338 | + $oDoc = $aDataRow['document']; | |
| 339 | + | |
| 340 | + $config = KTConfig::getSingleton(); | |
| 341 | + $height = $config->get('browse/thumbnail_height', 75); | |
| 342 | + $rootUrl = $config->get('KnowledgeTree/rootUrl'); | |
| 343 | + | |
| 344 | + // Check if the thumbnail exists | |
| 345 | + global $default; | |
| 346 | + $varDir = $default->varDirectory; | |
| 347 | + $thumbnailCheck = $varDir . '/thumbnails/'.$docid.'.jpg'; | |
| 348 | + | |
| 349 | + // Use correct slashes for windows | |
| 350 | + if (strpos(PHP_OS, 'WIN') !== false) { | |
| 351 | + $thumbnailCheck = str_replace('/', '\\', $thumbnailCheck); | |
| 352 | + } | |
| 353 | + | |
| 354 | + // We won't try generate one - will slow down browsing too much | |
| 355 | + if (!file_exists($thumbnailCheck)){ | |
| 356 | + $tag = " | |
| 357 | + <div class='thumb-shadow'> | |
| 358 | + <img src='{$rootUrl}/resources/graphics/no_preview.png' height='{$height}' /> | |
| 359 | + </div>"; | |
| 360 | + return $tag; | |
| 361 | + } | |
| 362 | + | |
| 363 | + $sHostPath = KTUtil::kt_url(); | |
| 364 | + $plugin_path = KTPluginUtil::getPluginPath('thumbnails.generator.processor.plugin'); | |
| 365 | + $thumbnailUrl = $plugin_path . 'thumbnail_view.php?documentId='.$docid; | |
| 366 | + $thumbnailUrl = str_replace('\\', '/', $thumbnailUrl); | |
| 367 | + $thumbnailUrl = str_replace(KT_DIR, $sHostPath, $thumbnailUrl); | |
| 368 | + | |
| 369 | + $sInfo = ' | |
| 370 | + <div class="thumb-shadow"> | |
| 371 | + <img src="'.$thumbnailUrl.'" height='.$height.' /> | |
| 372 | + </div>'; | |
| 373 | + | |
| 374 | + return $sInfo; | |
| 375 | + } | |
| 376 | + return ''; | |
| 377 | + } | |
| 378 | +} | |
| 379 | + | |
| 307 | 380 | ?> | ... | ... |
plugins/thumbnails/thumbnailsPlugin.php
| ... | ... | @@ -60,6 +60,7 @@ class thumbnailsPlugin extends KTPlugin { |
| 60 | 60 | $dir = $plugin_dir . 'thumbnails.php'; |
| 61 | 61 | $this->registerProcessor('thumbnailGenerator', 'thumbnails.generator.processor', $dir); |
| 62 | 62 | $this->registerAction('documentviewlet', 'ThumbnailViewlet', 'thumbnail.viewlets', $dir); |
| 63 | + $this->registerColumn(_kt('Thumbnail'), 'thumbnails.generator.column', 'ThumbnailColumn', $dir); | |
| 63 | 64 | |
| 64 | 65 | require_once(KT_LIB_DIR . '/templating/templating.inc.php'); |
| 65 | 66 | $oTemplating =& KTTemplating::getSingleton(); | ... | ... |
resources/graphics/no_preview.png
0 → 100644
2.66 KB