' . PREFERENCE_USE_JS_WARNING . ''; if (!isset($serendipity['eyecandy']) || serendipity_db_bool($serendipity['eyecandy'])) { } else { return true; } include(S9Y_INCLUDE_PATH . "include/functions_images_crop.inc.php"); $media['is_imgedit'] = true; $media['css_imgedit'] = serendipity_getTemplateFile('admin/imgedit.css'); if (isset($serendipity['GET']['fid'])) { $file = serendipity_fetchImageFromDatabase($serendipity['GET']['fid']); if (!is_array($file) || !serendipity_checkPermission('adminImagesDelete') || (!serendipity_checkPermission('adminImagesMaintainOthers') && $file['authorid'] != '0' && $file['authorid'] != $serendipity['authorid'])) { return; } $fullfile = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $file['path'] . $file['name'] . '.' . $file['extension']; $httpfile = $serendipity['serendipityHTTPPath'] . $serendipity['uploadHTTPPath'] . $file['path'] . $file['name'] . '.' . $file['extension']; $img = new imgedit($fullfile, $httpfile); // Set the filenames used for the cropping areas. Width/Height are automagically detected. Orientation is either horizontal or vertical. $img->setArea('imgedit_area.gif', 'h'); $img->setArea('imgedit_varea.gif', 'v'); // Let the IMGEditor do its magic. It will parse its results straightly into a template variable array. $img->main(); $serendipity['smarty']->assign('imgedit', $img->imgedit_smarty); serendipity_smarty_fetch('IMGEDIT', $img->output_template); } break; case 'sync': if (!serendipity_checkPermission('adminImagesSync')) { break; } if (function_exists('set_time_limit')) { @set_time_limit(0); } @ignore_user_abort(); echo '

' . SYNCING . '


'; flush(); $i = serendipity_syncThumbs(); printf(SYNC_DONE, $i); echo '

' . RESIZING . '


'; flush(); $i = serendipity_generateThumbs(); printf(RESIZE_DONE, $i); break; case 'DoDelete': if (!serendipity_checkFormToken() || !serendipity_checkPermission('adminImagesDelete')) { break; } $file = $serendipity['GET']['fname']; serendipity_deleteImage($serendipity['GET']['fid']); break; case 'delete': $file = serendipity_fetchImageFromDatabase($serendipity['GET']['fid']); if (!is_array($file) || !serendipity_checkPermission('adminImagesDelete') || (!serendipity_checkPermission('adminImagesMaintainOthers') && $file['authorid'] != '0' && $file['authorid'] != $serendipity['authorid'])) { return; } if (!isset($serendipity['adminFile'])) { $serendipity['adminFile'] = 'serendipity_admin.php'; } $abortLoc = $serendipity['serendipityHTTPPath'] . $serendipity['adminFile'] . '?serendipity[adminModule]=images'; $newLoc = $abortLoc . '&serendipity[adminAction]=DoDelete&serendipity[fid]=' . (int)$serendipity['GET']['fid'] . '&' . serendipity_setFormToken('url'); printf('
' . ABOUT_TO_DELETE_FILE . '
', $file['name'] .'.'. $file['extension']); ?>
          

$serendipity['GET']['fid'])); serendipity_showPropertyForm($new_media); break; case 'add': if (!serendipity_checkFormToken() || !serendipity_checkPermission('adminImagesAdd')) { return; } if ($serendipity['POST']['adminSubAction'] == 'properties') { $properties = serendipity_parsePropertyForm(); $image_id = $properties['image_id']; $created_thumbnail = true; ?>


'; $realname = serendipity_imageAppend($tfile, $target, $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $serendipity['POST']['target_directory'][$tindex]); } require_once S9Y_PEAR_PATH . 'HTTP/Request.php'; $options = array(); serendipity_plugin_api::hook_event('backend_http_request', $options, 'image'); serendipity_request_start(); $req = &new HTTP_Request($serendipity['POST']['imageurl'], $options); // Try to get the URL if (PEAR::isError($req->sendRequest()) || $req->getResponseCode() != '200') { printf(REMOTE_FILE_NOT_FOUND, $serendipity['POST']['imageurl']); } else { // Fetch file $fContent = $req->getResponseBody(); if ($serendipity['POST']['imageimporttype'] == 'hotlink') { $tempfile = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . '/hotlink_' . time(); $fp = fopen($tempfile, 'w'); fwrite($fp, $fContent); fclose($fp); $image_id = @serendipity_insertHotlinkedImageInDatabase($tfile, $serendipity['POST']['imageurl'], $authorid, null, $tempfile); printf(HOTLINK_DONE. '
', $serendipity['POST']['imageurl'], $tfile); serendipity_plugin_api::hook_event('backend_image_addHotlink', $tempfile); } else { $fp = fopen($target, 'w'); fwrite($fp, $fContent); fclose($fp); printf(FILE_FETCHED . '
', $serendipity['POST']['imageurl'], $tfile); if (serendipity_checkMediaSize($target)) { $thumbs = array(array( 'thumbSize' => $serendipity['thumbSize'], 'thumb' => $serendipity['thumbSuffix'] )); serendipity_plugin_api::hook_event('backend_media_makethumb', $thumbs); foreach($thumbs as $thumb) { // Create thumbnail if ( $created_thumbnail = serendipity_makeThumbnail($tfile, $serendipity['POST']['target_directory'][$tindex], $thumb['thumbSize'], $thumb['thumb']) ) { echo THUMB_CREATED_DONE . '
'; } } // Insert into database $image_id = serendipity_insertImageInDatabase($tfile, $serendipity['POST']['target_directory'][$tindex], $authorid, null, $realname); serendipity_plugin_api::hook_event('backend_image_add', $target); $new_media[] = array( 'image_id' => $image_id, 'target' => $target, 'created_thumbnail' => $created_thumbnail ); } } serendipity_request_end(); } } else { if (!is_array($serendipity['POST']['target_filename'])) { break; } foreach($serendipity['POST']['target_filename'] AS $idx => $target_filename) { $uploadfile = &$_FILES['serendipity']['name']['userfile'][$idx]; $uploadtmp = &$_FILES['serendipity']['tmp_name']['userfile'][$idx]; if (!empty($target_filename)) { $tfile = $target_filename; } elseif (!empty($uploadfile)) { $tfile = $uploadfile; } else { // skip empty array continue; } $tfile = serendipity_uploadSecure(basename($tfile)); if (serendipity_isActiveFile($tfile)) { printf(ERROR_FILE_FORBIDDEN, $tfile); echo '
'; continue; } $serendipity['POST']['target_directory'][$idx] = serendipity_uploadSecure($serendipity['POST']['target_directory'][$idx], true, true); if (!serendipity_checkDirUpload($serendipity['POST']['target_directory'][$idx])) { echo PERM_DENIED; continue; } $target = $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $serendipity['POST']['target_directory'][$idx] . $tfile; $realname = $tfile; if (file_exists($target)) { echo '(' . $target . ') ' . ERROR_FILE_EXISTS_ALREADY . '
'; $realname = serendipity_imageAppend($tfile, $target, $serendipity['serendipityPath'] . $serendipity['uploadPath'] . $serendipity['POST']['target_directory'][$idx]); } // Accept file if (is_uploaded_file($uploadtmp) && serendipity_checkMediaSize($uploadtmp) && move_uploaded_file($uploadtmp, $target)) { printf(FILE_UPLOADED . '
', $uploadfile, $target); @umask(0000); @chmod($target, 0664); $thumbs = array(array( 'thumbSize' => $serendipity['thumbSize'], 'thumb' => $serendipity['thumbSuffix'] )); serendipity_plugin_api::hook_event('backend_media_makethumb', $thumbs); foreach($thumbs as $thumb) { // Create thumbnail if ( $created_thumbnail = serendipity_makeThumbnail($tfile, $serendipity['POST']['target_directory'][$idx], $thumb['thumbSize'], $thumb['thumb']) ) { echo THUMB_CREATED_DONE . '
'; } } // Insert into database $image_id = serendipity_insertImageInDatabase($tfile, $serendipity['POST']['target_directory'][$idx], $authorid, null, $realname); serendipity_plugin_api::hook_event('backend_image_add', $target, $created_thumbnail); $new_media[] = array( 'image_id' => $image_id, 'target' => $target, 'created_thumbnail' => $created_thumbnail ); } else { echo ERROR_UNKNOWN_NOUPLOAD . '
'; } } } if (isset($_REQUEST['go_properties'])) { serendipity_showPropertyForm($new_media); } else { $hidden = array( 'author' => $serendipity['serendipityUser'], 'authorid' => $serendipity['authorid'] ); foreach($new_media AS $nm) { serendipity_insertMediaProperty('base_hidden', '', $nm['image_id'], $hidden); } } break; case 'directoryDoDelete': if (!serendipity_checkFormToken() || !serendipity_checkPermission('adminImagesDirectories')) { return; } $new_dir = serendipity_uploadSecure($serendipity['GET']['dir'], true); if (is_dir($serendipity['serendipityPath'] . $serendipity['uploadPath'] . $new_dir)) { if (!is_writable($serendipity['serendipityPath'] . $serendipity['uploadPath'] . $new_dir)) { printf(DIRECTORY_WRITE_ERROR, $new_dir); } else { // Directory exists and is writable. Now dive within subdirectories and kill 'em all. serendipity_killPath($serendipity['serendipityPath'] . $serendipity['uploadPath'], $new_dir, (isset($serendipity['POST']['nuke']) ? true : false)); } } else { printf(ERROR_NO_DIRECTORY, $new_dir); } break; case 'directoryEdit': if (!serendipity_checkPermission('adminImagesDirectories')) { return; } $use_dir = serendipity_uploadSecure($serendipity['GET']['dir']); $checkpath = array( array( 'relpath' => $use_dir ) ); if (!serendipity_directoryACL($checkpath, 'write')) { return; } if (!empty($serendipity['POST']['save'])) { $newDir = serendipity_uploadSecure($serendipity['POST']['newDir']); $oldDir = serendipity_uploadSecure($serendipity['POST']['oldDir']); if ($oldDir != $newDir) { serendipity_moveMediaDirectory($oldDir, $newDir); $use_dir = $newDir; } serendipity_ACLGrant(0, 'directory', 'read', $serendipity['POST']['read_authors'], $use_dir); serendipity_ACLGrant(0, 'directory', 'write', $serendipity['POST']['write_authors'], $use_dir); echo '
' . sprintf(SETTINGS_SAVED_AT, serendipity_strftime('%H:%M:%S')) . '
'; } $groups = serendipity_getAllGroups(); $read_groups = serendipity_ACLGet(0, 'directory', 'read', $use_dir); $write_groups = serendipity_ACLGet(0, 'directory', 'write', $use_dir); if (!empty($serendipity['POST']['update_children'])) { $dir_list = serendipity_traversePath($serendipity['serendipityPath'] . $serendipity['uploadPath'], $use_dir, true, NULL, 1, NULL, 'write', NULL); foreach($dir_list AS $f => $dir) { // Apply parent ACL to children. serendipity_ACLGrant(0, 'directory', 'read', $serendipity['POST']['read_authors'], $dir['relpath']); serendipity_ACLGrant(0, 'directory', 'write', $serendipity['POST']['write_authors'], $dir['relpath']); } } ?>

/>










<?php echo EDIT ?> <?php echo DELETE ?>

$imgsel_val) { $form_hidden .= ' ' . "\n"; } } serendipity_smarty_init(); $mediaFiles = array( 'token' => serendipity_setFormToken(), 'form_hidden' => $form_hidden, 'folders' => $folders, 'only_path' => $serendipity['GET']['only_path'], 'max_file_size' => $serendipity['maxFileSize'], 'maxImgHeight' => $serendipity['maxImgHeight'], 'maxImgWidth' => $serendipity['maxImgWidth'], ); $serendipity['smarty']->assign('media', $mediaFiles); $serendipity['smarty']->display(serendipity_getTemplateFile('admin/media_upload.tpl', 'serendipityPath')); break; case 'rotateCW': $file = serendipity_fetchImageFromDatabase($serendipity['GET']['fid']); if (!is_array($file) || !serendipity_checkPermission('adminImagesDelete') || (!serendipity_checkPermission('adminImagesMaintainOthers') && $file['authorid'] != '0' && $file['authorid'] != $serendipity['authorid'])) { return; } if (empty($serendipity['adminFile_redirect'])) { $serendipity['adminFile_redirect'] = htmlspecialchars($_SERVER['HTTP_REFERER']); } if (serendipity_rotateImg($serendipity['GET']['fid'], -90)) { ?> ', $file['path'] . $file['name'] .'.'. $file['extension'], (int)$serendipity['GET']['width'], (int)$serendipity['GET']['height'] ); echo serendipity_scaleImg($serendipity['GET']['fid'], $serendipity['GET']['width'], $serendipity['GET']['height']) . '
'; echo DONE . '
'; // Forward user to overview (we don't want the user's back button to rename things again) ?>
" /> x
: