echo PGV_JS_END; } } print $pgv_lang["update_successful"]; } } // **** end action "newentry" // **** begin action "update" if ($action == "update") { if (empty($level)) { $level = 1; } //-- check if the file is used in more than one gedcom //-- do not allow it to be moved or renamed if it is $myFile = str_replace($MEDIA_DIRECTORY, "", $oldFolder . $oldFilename); $multi_gedcom = is_media_used_in_other_gedcom($myFile, PGV_GED_ID); $isExternal = isFileExternal($oldFilename) || isFileExternal($filename); $finalResult = true; // Handle Admin request to rename or move media file if (!$isExternal) { if ($filename != $oldFilename) { $parts = pathinfo_utf($filename); if (empty($parts["extension"]) || !in_array(strtolower($parts["extension"]), $MEDIATYPE)) { $parts = pathinfo_utf($oldFilename); $filename .= "." . $parts["extension"]; } } if (!isset($folder) && isset($oldFolder)) { $folder = $oldFolder; } $folder = trim($folder);
} elseif (preg_match('/(\\.(php|pl|cgi|bash|sh|bat|exe|com|htm|html|shtml))$/i', $filename, $match)) { // Do not allow obvious script files. WT_FlashMessages::addMessage(WT_I18N::translate('Filenames are not allowed to have the extension “%s”.', $match[1])); $filename = ''; break; } elseif (!$filename) { WT_FlashMessages::addMessage(WT_I18N::translate('No media file was provided.')); break; } else { $fileName = $filename; } $oldFilename = $media->getFilename(); $newFilename = $folderName . $fileName; //-- check if the file is used in more than one gedcom //-- do not allow it to be moved or renamed if it is $multi_gedcom = !$media->isExternal() && is_media_used_in_other_gedcom($media->getFilename(), WT_GED_ID); if ($multi_gedcom) { WT_FlashMessages::addMessage(WT_I18N::translate('This file is linked to another genealogical database on this server. It cannot be deleted, moved, or renamed until these links have been removed.')); break; } // Cannot rename local to external or vice-versa if (isFileExternal($oldFilename) != isFileExternal($filename)) { WT_FlashMessages::addMessage(WT_I18N::translate('Media file %1$s could not be renamed to %2$s.', '<span class="filename">' . $oldFilename . '</span>', '<span class="filename">' . $newFilename . '</span>')); break; } $messages = false; // Move files on disk (if we can) to reflect the change to the GEDCOM data if (!$media->isExternal()) { $oldServerFile = $media->getServerFilename('main'); $oldServerThumb = $media->getServerFilename('thumb'); $newmedia = new WT_Media("xxx", "0 @xxx@ OBJE\n1 FILE " . $newFilename, null, WT_GED_ID);