From e25a70302d346a80c5d76aab79022fc4b4792add Mon Sep 17 00:00:00 2001 From: Garvin Hicking Date: Wed, 14 Dec 2011 11:49:06 +0100 Subject: [PATCH] patch to handle files without extensions by Markus Brueckner --- docs/NEWS | 3 ++ include/functions_images.inc.php | 68 ++++++++++++++++---------------- 2 files changed, 37 insertions(+), 34 deletions(-) diff --git a/docs/NEWS b/docs/NEWS index c3ca8d9d..62438d07 100644 --- a/docs/NEWS +++ b/docs/NEWS @@ -3,6 +3,9 @@ Version 1.7 () ------------------------------------------------------------------------ + * Patch by Markus Brükner: Properly handle files that have no + extension in media database + * Made Spartacus recognize github.com mirror (garvinhicking) * Add "Summary" output to title of summary archive pages, patch by diff --git a/include/functions_images.inc.php b/include/functions_images.inc.php index 477e7c8b..5e2a55c5 100644 --- a/include/functions_images.inc.php +++ b/include/functions_images.inc.php @@ -323,7 +323,7 @@ function serendipity_deleteImage($id) { return false; } - $dFile = $file['path'] . $file['name'] . '.' . $file['extension']; + $dFile = $file['path'] . $file['name'] . (empty($file['extension']) ? '' : '.' . $file['extension']); $dThumb = array(array( 'fthumb' => $file['thumbnail_name'] @@ -348,7 +348,7 @@ function serendipity_deleteImage($id) { serendipity_plugin_api::hook_event('backend_media_delete', $dThumb); foreach($dThumb AS $thumb) { - $dfnThumb = $file['path'] . $file['name'] . (!empty($thumb['fthumb']) ? '.' . $thumb['fthumb'] : '') . '.' . $file['extension']; + $dfnThumb = $file['path'] . $file['name'] . (!empty($thumb['fthumb']) ? '.' . $thumb['fthumb'] : '') . (empty($file['extension']) ? '' : '.' . $file['extension']); $dfThumb = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $dfnThumb; if (@unlink($dfThumb)) { @@ -526,7 +526,7 @@ function serendipity_insertImageInDatabase($filename, $directory, $authorid = 0, list($filebase, $extension) = serendipity_parseFileName($filename); - $thumbpath = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $directory . $filebase . '.'. $serendipity['thumbSuffix'] . '.'. $extension; + $thumbpath = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $directory . $filebase . '.'. $serendipity['thumbSuffix'] . (empty($extension) ? '' : '.' . $extension); $thumbnail = (file_exists($thumbpath) ? $serendipity['thumbSuffix'] : ''); $fdim = @serendipity_getimagesize($filepath, '', $extension); @@ -704,7 +704,7 @@ function serendipity_scaleImg($id, $width, $height) { return; } - $infile = $outfile = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . '.' . $file['extension']; + $infile = $outfile = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . (empty($file['extension']) ? '' : '.' . $file['extension']); if ($serendipity['magick'] !== true) { serendipity_resize_image_gd($infile, $outfile, $width, $height); @@ -745,8 +745,8 @@ function serendipity_rotateImg($id, $degrees) { return false; } - $infile = $outfile = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . '.' . $file['extension']; - $infileThumb = $outfileThumb = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . (!empty($file['thumbnail_name']) ? '.' . $file['thumbnail_name'] : '') . '.' . $file['extension']; + $infile = $outfile = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . (empty($file['extension']) ? '' : '.' . $file['extension']); + $infileThumb = $outfileThumb = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . (!empty($file['thumbnail_name']) ? '.' . $file['thumbnail_name'] : '') . (empty($file['extension']) ? '' : '.' . $file['extension']); if ($serendipity['magick'] !== true) { serendipity_rotate_image_gd($infile, $outfile, $degrees); @@ -799,7 +799,7 @@ function serendipity_generateThumbs() { if ($is_image && !$file['hotlink']) { $update = false; - $filename = $file['path'] . $file['name'] .'.'. $file['extension']; + $filename = $file['path'] . $file['name'] . (empty($file['extension']) ? '' : '.' . $file['extension']); $ffull = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $filename; if (!file_exists($ffull)) { @@ -811,13 +811,13 @@ function serendipity_generateThumbs() { $file['thumbnail_name'] = $serendipity['thumbSuffix']; } - $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']; + $oldThumb = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . '.' . $file['thumbnail_name'] . (empty($file['extension']) ? '' : '.' . $file['extension']); + $newThumb = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . '.' . $serendipity['thumbSuffix'] . (empty($file['extension']) ? '' : '.' . $file['extension']); + $sThumb = $file['path'] . $file['name'] . '.' . $serendipity['thumbSuffix'] . (empty($file['extension']) ? '' : '.' . $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']); + $returnsize = serendipity_makeThumbnail($file['name'] . (empty($file['extension']) ? '' : '.' . $file['extension']), $file['path']); if ($returnsize !== false ) { // Only print the resize message the first time if (!$msg_printed) { @@ -1182,7 +1182,7 @@ function serendipity_syncThumbs($deleteThumbs = false) { } // Has the thumbnail suffix changed? - $checkfile = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $rs['path'] . $rs['name'] . '.' . $rs['thumbnail_name'] . '.' . $rs['extension']; + $checkfile = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $rs['path'] . $rs['name'] . '.' . $rs['thumbnail_name'] . (empty($rs['extension']) ? '' : '.' . $rs['extension']); if (!file_exists($checkfile) && file_exists($fthumb)) { $update['thumbnail_name'] = $serendipity['thumbSuffix']; } @@ -1522,10 +1522,10 @@ function serendipity_displayImageList($page = 0, $lineBreak = NULL, $manage = fa if (isset($sFile['thumbnail_filename'])) { $sThumbNailFile = $sFile['thumbnail_filename']; } else { - $sThumbNailFile = $sFile['path'] . $sFile['name'] . '.' . $sFile['thumbnail_name'] . '.' . $sFile['extension']; + $sThumbNailFile = $sFile['path'] . $sFile['name'] . '.' . $sFile['thumbnail_name'] . (empty($sFile['extension']) ? '' : '.' . $sFile['extension']); } - $sFileName = $sFile['path'] . $sFile['name'] . '.' . $sFile['extension']; + $sFileName = $sFile['path'] . $sFile['name'] . (empty($sFile['extension']) ? '' : '.' . $sFile['extension']); if ($debug) echo "

File name is $sFileName,
thumbnail is $sThumbNailFile

"; unset($aResultSet[$sKey]); @@ -1729,12 +1729,12 @@ function serendipity_killPath($basedir, $directory = '', $forceDelete = false) { if ($serious) { serendipity_deleteImage($file['id']); } else { - echo $file['name'] . '.' . $file['extension']; + echo $file['name'] . (empty($file['extension']) ? '' : '.' . $file['extension']); } echo "\n"; - unset($filestack[$file['name'] . '.' . $file['extension']]); - unset($filestack[$file['name'] . (!empty($file['thumbnail_name']) ? '.' . $file['thumbnail_name'] : '') . '.' . $file['extension']]); + unset($filestack[$file['name'] . (empty($file['extension']) ? '' : '.' . $file['extension'])]); + unset($filestack[$file['name'] . (!empty($file['thumbnail_name']) ? '.' . $file['thumbnail_name'] : '') . (empty($file['extension']) ? '' : '.' . $file['extension'])]); } echo "\n"; } @@ -2711,10 +2711,10 @@ function serendipity_prepareMedia(&$file, $url = '') { $file['imgsrc'] = $file['show_thumb']; } } else { - $file['full_file'] = $serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $file['path'] . $file['name'] . '.'. $file['extension']; + $file['full_file'] = $serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $file['path'] . $file['name'] . (empty($file['extension']) ? '' : '.' . $file['extension']); $file['show_thumb'] = $file['full_thumbHTTP']; if (!isset($file['imgsrc'])) { - $file['imgsrc'] = $serendipity['uploadHTTPPath'] . $file['path'] . $file['name'] . (!empty($file['thumbnail_name']) ? '.' . $file['thumbnail_name'] : '') . '.' . $file['extension']; + $file['imgsrc'] = $serendipity['uploadHTTPPath'] . $file['path'] . $file['name'] . (!empty($file['thumbnail_name']) ? '.' . $file['thumbnail_name'] : '') . (empty($file['extension']) ? '' : '.' . $file['extension']); } } @@ -2727,9 +2727,9 @@ function serendipity_prepareMedia(&$file, $url = '') { } if (empty($file['realname'])) { - $file['realname'] = $file['name'] . '.' . $file['extension']; + $file['realname'] = $file['name'] . (empty($file['extension']) ? '' : '.' . $file['extension']); } - $file['diskname'] = $file['name'] . '.' . $file['extension']; + $file['diskname'] = $file['name'] . (empty($file['extension']) ? '' : '.' . $file['extension']); $file['links'] = array('imagelinkurl' => $file['full_file']); @@ -2753,7 +2753,7 @@ function serendipity_prepareMedia(&$file, $url = '') { $file['mediatype'] = 'binary'; } - $file['realfile'] = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . '.'. $file['extension']; + $file['realfile'] = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . (empty($file['extension']) ? '' : '.' . $file['extension']); if ($full_perm || $serendipity['authorid'] == $file['authorid'] || $file['authorid'] == '0') { $file['is_editable'] = true; @@ -2788,7 +2788,7 @@ function serendipity_prepareMedia(&$file, $url = '') { $file['preview'] .= ''. $file['mime'] .'
- ' . (($file['hotlink']) ? MEDIA_HOTLINKED : $file['mime']) .' -'; if ($url) { $file['preview_url'] = $url .'&serendipity[image]='. $file['id']; - $file['preview'] .= '
' . $file['name'] . '.' . $file['extension'] . ''; + $file['preview'] .= '
' . $file['name'] . (empty($file['extension']) ? '' : '.' . $file['extension']) . ''; } } @@ -3210,17 +3210,17 @@ function serendipity_imageAppend(&$tfile, &$target, $dir, $echo = true) { } $i = 0; - while ($i <= $safe_bail && file_exists($dir . $filebase . $cnum . '.' . $extension)) { + while ($i <= $safe_bail && file_exists($dir . $filebase . $cnum . (empty($extension) ? '' : '.' . $extension))) { $cnum++; } // Check if the file STILL exists and append a MD5 if that's the case. That should be unique enough. - if (file_exists($dir . $filebase . $cnum . '.' . $extension)) { + if (file_exists($dir . $filebase . $cnum . (empty($extension) ? '' : '.' . $extension))) { $cnum = md5(time() . $filebase); } // Those variables are passed by reference! - $tfile = $filebase . $cnum . '.' . $extension; + $tfile = $filebase . $cnum . (empty($extension) ? '' : '.' . $extension); $target = $dir . $tfile; if ($echo) { @@ -3345,8 +3345,8 @@ function serendipity_moveMediaDirectory($oldDir, $newDir, $type = 'dir', $item_i if ($file['hotlink']) { serendipity_updateImageInDatabase(array('realname' => $newDir, 'name' => $newDir), $item_id); } else { - $file_new = $file['path'] . $newDir . '.'; - $file_old = $file['path'] . $file['name'] . '.'; + $file_new = $file['path'] . $newDir . (empty($file['extension']) ? '' : '.'); + $file_old = $file['path'] . $file['name'] . (empty($file['extension']) ? '' : '.'); $newfile = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file_new . $file['extension']; $oldfile = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file_old . $file['extension']; @@ -3370,8 +3370,8 @@ function serendipity_moveMediaDirectory($oldDir, $newDir, $type = 'dir', $item_i foreach($renameValues AS $renameData) { // Rename thumbnail - rename($serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . (!empty($renameData['fthumb']) ? '.' . $renameData['fthumb'] : '') . '.' . $file['extension'], - $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $newDir . '.' . $renameData['thumb'] . '.' . $file['extension']); + rename($serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . (!empty($renameData['fthumb']) ? '.' . $renameData['fthumb'] : '') . (empty($file['extension']) ? '' : '.' . $file['extension']), + $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $newDir . '.' . $renameData['thumb'] . (empty($file['extension']) ? '' : '.' . $file['extension'])); } serendipity_updateImageInDatabase(array('thumbnail_name' => $renameValues[0]['thumb'], 'realname' => $newDir, 'name' => $newDir), $item_id); @@ -3400,8 +3400,8 @@ function serendipity_moveMediaDirectory($oldDir, $newDir, $type = 'dir', $item_i WHERE id = " . (int)$item_id, true, 'assoc'); // Move thumbs - $oldfile = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $oldDir . $pick['name'] . '.' . $pick['extension']; - $newfile = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $newDir . $pick['name'] . '.' . $pick['extension']; + $oldfile = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $oldDir . $pick['name'] . (empty($pick['extension']) ? '' : '.' . $pick['extension']); + $newfile = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $newDir . $pick['name'] . (empty($pick['extension']) ? '' : '.' . $pick['extension']); $renameValues = array(array( 'from' => $oldfile, @@ -3423,8 +3423,8 @@ function serendipity_moveMediaDirectory($oldDir, $newDir, $type = 'dir', $item_i foreach($renameValues AS $renameData) { // Rename thumbnail - rename($serendipity['serendipityPath'] . $serendipity['uploadPath'] . $oldDir . $pick['name'] . (!empty($renameData['fthumb']) ? '.' . $renameData['fthumb'] : '') . '.' . $pick['extension'], - $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $newDir . $pick['name'] . '.' . $renameData['thumb'] . '.' . $pick['extension']); + rename($serendipity['serendipityPath'] . $serendipity['uploadPath'] . $oldDir . $pick['name'] . (!empty($renameData['fthumb']) ? '.' . $renameData['fthumb'] : '') . (empty($pick['extension']) ? '' : '.' . $pick['extension']), + $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $newDir . $pick['name'] . '.' . $renameData['thumb'] . (empty($pick['extension']) ? '' : '.' . $pick['extension'])); } $oldDir .= $pick['name'];