From 3885812999e729e5a85979e8ab19613b4b558afe Mon Sep 17 00:00:00 2001 From: slothman Date: Wed, 9 Apr 2008 01:57:10 +0000 Subject: [PATCH] Correct thumbnail constraints. S9Y now supports width, height, largest, and smallest constraints. Backwards compatibility is maintained with the imageselectorplus plugin (the only plugin to use the thumbnail or aspect calculation code). Language files are updated and a new option screen is displayed after choosing "Rebuild Thumbs". --- include/admin/images.inc.php | 41 ++++- include/functions_images.inc.php | 192 ++++++++++++++++------ include/tpl/config_local.inc.php | 10 ++ lang/UTF-8/serendipity_lang_bg.inc.php | 14 +- lang/UTF-8/serendipity_lang_cn.inc.php | 14 +- lang/UTF-8/serendipity_lang_cs.inc.php | 14 +- lang/UTF-8/serendipity_lang_cz.inc.php | 14 +- lang/UTF-8/serendipity_lang_da.inc.php | 14 +- lang/UTF-8/serendipity_lang_de.inc.php | 14 +- lang/UTF-8/serendipity_lang_en.inc.php | 14 +- lang/UTF-8/serendipity_lang_es.inc.php | 14 +- lang/UTF-8/serendipity_lang_fa.inc.php | 14 +- lang/UTF-8/serendipity_lang_fi.inc.php | 14 +- lang/UTF-8/serendipity_lang_fr.inc.php | 14 +- lang/UTF-8/serendipity_lang_hu.inc.php | 14 +- lang/UTF-8/serendipity_lang_is.inc.php | 14 +- lang/UTF-8/serendipity_lang_it.inc.php | 14 +- lang/UTF-8/serendipity_lang_ja.inc.php | 14 +- lang/UTF-8/serendipity_lang_ko.inc.php | 14 +- lang/UTF-8/serendipity_lang_nl.inc.php | 14 +- lang/UTF-8/serendipity_lang_no.inc.php | 14 +- lang/UTF-8/serendipity_lang_pl.inc.php | 14 +- lang/UTF-8/serendipity_lang_pt.inc.php | 14 +- lang/UTF-8/serendipity_lang_pt_PT.inc.php | 14 +- lang/UTF-8/serendipity_lang_ro.inc.php | 14 +- lang/UTF-8/serendipity_lang_ru.inc.php | 14 +- lang/UTF-8/serendipity_lang_sa.inc.php | 14 +- lang/UTF-8/serendipity_lang_se.inc.php | 14 +- lang/UTF-8/serendipity_lang_ta.inc.php | 14 +- lang/UTF-8/serendipity_lang_tn.inc.php | 14 +- lang/UTF-8/serendipity_lang_tr.inc.php | 14 +- lang/UTF-8/serendipity_lang_tw.inc.php | 14 +- lang/UTF-8/serendipity_lang_zh.inc.php | 14 +- lang/serendipity_lang_bg.inc.php | 15 +- lang/serendipity_lang_cn.inc.php | 14 +- lang/serendipity_lang_cs.inc.php | 14 +- lang/serendipity_lang_cz.inc.php | 14 +- lang/serendipity_lang_da.inc.php | 14 +- lang/serendipity_lang_de.inc.php | 14 +- lang/serendipity_lang_en.inc.php | 18 +- lang/serendipity_lang_es.inc.php | 14 +- lang/serendipity_lang_fa.inc.php | 14 +- lang/serendipity_lang_fi.inc.php | 14 +- lang/serendipity_lang_fr.inc.php | 14 +- lang/serendipity_lang_hu.inc.php | 14 +- lang/serendipity_lang_is.inc.php | 14 +- lang/serendipity_lang_it.inc.php | 14 +- lang/serendipity_lang_ja.inc.php | 14 +- lang/serendipity_lang_ko.inc.php | 14 +- lang/serendipity_lang_nl.inc.php | 14 +- lang/serendipity_lang_no.inc.php | 14 +- lang/serendipity_lang_pl.inc.php | 14 +- lang/serendipity_lang_pt.inc.php | 14 +- lang/serendipity_lang_pt_PT.inc.php | 14 +- lang/serendipity_lang_ro.inc.php | 14 +- lang/serendipity_lang_ru.inc.php | 14 +- lang/serendipity_lang_sa.inc.php | 14 +- lang/serendipity_lang_se.inc.php | 14 +- lang/serendipity_lang_ta.inc.php | 14 +- lang/serendipity_lang_tn.inc.php | 14 +- lang/serendipity_lang_tr.inc.php | 14 +- lang/serendipity_lang_tw.inc.php | 14 +- lang/serendipity_lang_zh.inc.php | 14 +- serendipity_admin.php | 4 +- 64 files changed, 975 insertions(+), 117 deletions(-) diff --git a/include/admin/images.inc.php b/include/admin/images.inc.php index fe9e876..791a1f7 100644 --- a/include/admin/images.inc.php +++ b/include/admin/images.inc.php @@ -47,6 +47,33 @@ switch ($serendipity['GET']['adminAction']) { case 'sync': if (!serendipity_checkPermission('adminImagesSync')) { + echo '
' . PERM_DENIED . '
'; + break; + } + + // Make the form to actually do sync with deleting or not + $n = "\n"; + $warning = preg_replace('#\\\n#', '
', WARNING_THIS_BLAHBLAH); + echo '
' . $warning . '
'; + echo '
' . $n; + echo '

' . $n . '

' . $n; + echo ' ' . SYNC_OPTION_LEGEND . '' . $n; + echo ' ' .$n; + echo '
' . $n; + echo ' ' . $n; + echo '
' . $n; + echo ' ' . $n; + echo '
' . $n; + echo '
' . $n . '

' . $n; + echo ' ' . $n; + echo ' ' . ABORT_NOW . '' . $n; + echo '
'; + break; + + case 'doSync': + // I don't know how it could've changed, but let's be safe. + if (!serendipity_checkPermission('adminImagesSync')) { + echo '
' . PERM_DENIED . '
'; break; } @@ -58,7 +85,19 @@ switch ($serendipity['GET']['adminAction']) { echo '

' . SYNCING . '


'; flush(); - $i = serendipity_syncThumbs(); + $deleteThumbs = false; + if (isset($serendipity['POST']['deleteThumbs'])) { + switch ($serendipity['POST']['deleteThumbs']) + { + case 'yes': + $deleteThumbs = true; + break; + case 'check': + $deleteThumbs = 'checksize'; + break; + } + } + $i = serendipity_syncThumbs($deleteThumbs); printf(SYNC_DONE, $i); echo '

' . RESIZING . '


'; diff --git a/include/functions_images.inc.php b/include/functions_images.inc.php index 2841fb8..a8e3150 100644 --- a/include/functions_images.inc.php +++ b/include/functions_images.inc.php @@ -643,15 +643,19 @@ function serendipity_makeThumbnail($file, $directory = '', $size = false, $thumb } else { if ($serendipity['magick'] !== true) { if (is_array($size)) { + // The caller wants a thumbnail with a specific size $r = serendipity_resize_image_gd($infile, $outfile, $size['width'], $size['height']); } else { - $r = serendipity_resize_image_gd($infile, $outfile, $size); + // The caller wants a thumbnail constrained in the dimension set by config + $calc = serendipity_calculate_aspect_size($fdim[0], $fdim[1], $size, $serendipity['thumbConstraint']); + $r = serendipity_resize_image_gd($infile, $outfile, $calc[0], $calc[1]); } } else { if (is_array($size)) { $r = $size; } else { - $r = array('width' => $size, 'height' => $size); + $calc = serendipity_calculate_aspect_size($fdim[0], $fdim[1], $size, $serendipity['thumbConstraint']); + $r = array('width' => $calc[0], 'height' => $calc[1]); } $newSize = $r['width'] . 'x' . $r['height']; if ($fdim['mime'] == 'application/pdf') { @@ -788,6 +792,7 @@ function serendipity_generateThumbs() { $i=0; $serendipity['imageList'] = serendipity_fetchImagesFromDatabase(0, 0, $total); + $msg_printed = false; foreach ($serendipity['imageList'] AS $k => $file) { $is_image = serendipity_isImage($file); @@ -808,25 +813,37 @@ function serendipity_generateThumbs() { $oldThumb = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . '.' . $file['thumbnail_name'] . '.' . $file['extension']; $newThumb = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . '.' . $serendipity['thumbSuffix'] . '.' . $file['extension']; + $sThumb = $file['path'] . $file['name'] . '.' . $serendipity['thumbSuffix'] . '.' . $file['extension']; $fdim = @getimagesize($ffull); if (!file_exists($oldThumb) && !file_exists($newThumb) && ($fdim[0] > $serendipity['thumbSize'] || $fdim[1] > $serendipity['thumbSize'])) { $returnsize = serendipity_makeThumbnail($file['name'] . '.' . $file['extension'], $file['path']); if ($returnsize !== false ) { - printf(RESIZE_BLAHBLAH, $filename . ': ' . $returnsize[0] . 'x' . $returnsize[1]); + // Only print the resize message the first time + if (!$msg_printed) { + printf(RESIZE_BLAHBLAH, THUMBNAIL_SHORT); + echo "\n" . '