inline-uploading.php
来自「php 开发的内容管理系统」· PHP 代码 · 共 723 行 · 第 1/2 页
PHP
723 行
<?phprequire_once('admin.php');header('Content-Type: text/html; charset=' . get_option('blog_charset'));if (!current_user_can('upload_files')) die(__('You do not have permission to upload files.'));$wpvarstoreset = array('action', 'post', 'all', 'last', 'link', 'sort', 'start', 'imgtitle', 'descr', 'attachment');for ($i=0; $i<count($wpvarstoreset); $i += 1) { $wpvar = $wpvarstoreset[$i]; if (!isset($$wpvar)) { if (empty($_POST["$wpvar"])) { if (empty($_GET["$wpvar"])) { $$wpvar = ''; } else { $$wpvar = $_GET["$wpvar"]; } } else { $$wpvar = $_POST["$wpvar"]; } }}$post = (int) $post;$images_width = 1;switch($action) {case 'links':// Do not pass GO.break;case 'delete':check_admin_referer('inlineuploading');if ( !current_user_can('edit_post', (int) $attachment) ) die(__('You are not allowed to delete this attachment.').' <a href="'.basename(__FILE__)."?post=$post&all=$all&action=upload\">".__('Go back').'</a>');wp_delete_attachment($attachment);wp_redirect(basename(__FILE__) ."?post=$post&all=$all&action=view&start=$start");die;case 'save':check_admin_referer('inlineuploading');$overrides = array('action'=>'save');$file = wp_handle_upload($_FILES['image'], $overrides);if ( isset($file['error']) ) die($file['error'] . '<br /><a href="' . basename(__FILE__) . '?action=upload&post=' . $post . '">'.__('Back to Image Uploading').'</a>');$url = $file['url'];$type = $file['type'];$file = $file['file'];$filename = basename($file);// Construct the attachment array$attachment = array( 'post_title' => $imgtitle ? $imgtitle : $filename, 'post_content' => $descr, 'post_status' => 'attachment', 'post_parent' => $post, 'post_mime_type' => $type, 'guid' => $url );// Save the data$id = wp_insert_attachment($attachment, $file, $post);if ( preg_match('!^image/!', $attachment['post_mime_type']) ) { // Generate the attachment's postmeta. $imagesize = getimagesize($file); $imagedata['width'] = $imagesize['0']; $imagedata['height'] = $imagesize['1']; list($uwidth, $uheight) = get_udims($imagedata['width'], $imagedata['height']); $imagedata['hwstring_small'] = "height='$uheight' width='$uwidth'"; $imagedata['file'] = $file; add_post_meta($id, '_wp_attachment_metadata', $imagedata); if ( $imagedata['width'] * $imagedata['height'] < 3 * 1024 * 1024 ) { if ( $imagedata['width'] > 128 && $imagedata['width'] >= $imagedata['height'] * 4 / 3 ) $thumb = wp_create_thumbnail($file, 128); elseif ( $imagedata['height'] > 96 ) $thumb = wp_create_thumbnail($file, 96); if ( @file_exists($thumb) ) { $newdata = $imagedata; $newdata['thumb'] = basename($thumb); update_post_meta($id, '_wp_attachment_metadata', $newdata, $imagedata); } else { $error = $thumb; } }} else { add_post_meta($id, '_wp_attachment_metadata', array());}wp_redirect(basename(__FILE__) . "?post=$post&all=$all&action=view&start=0");die();case 'upload':$current_1 = ' class="current"';$back = $next = false;break;case 'view':// How many images do we show? How many do we query?$num = 5;$double = $num * 2;if ( $post && (empty($all) || $all == 'false') ) { $and_post = "AND post_parent = '$post'"; $current_2 = ' class="current"';} else { $current_3 = ' class="current"';}if (! current_user_can('edit_others_posts') ) $and_user = "AND post_author = " . $user_ID;if ( $last ) $start = $wpdb->get_var("SELECT count(ID) FROM $wpdb->posts WHERE post_status = 'attachment' $and_user $and_post") - $num;else $start = (int) $start;if ( $start < 0 ) $start = 0;if ( '' == $sort ) $sort = "post_date_gmt DESC";$attachments = $wpdb->get_results("SELECT ID, post_date, post_title, post_mime_type, guid FROM $wpdb->posts WHERE post_status = 'attachment' $and_type $and_post $and_user ORDER BY $sort LIMIT $start, $double", ARRAY_A);if ( count($attachments) == 0 ) { wp_redirect( basename(__FILE__) ."?post=$post&action=upload" ); die;} elseif ( count($attachments) > $num ) { $next = $start + count($attachments) - $num;} else { $next = false;}if ( $start > 0 ) { $back = $start - $num; if ( $back < 1 ) $back = '0';} else { $back = false;}$uwidth_sum = 0;$html = '';$popups = '';$style = '';$script = '';if ( count($attachments) > 0 ) { $attachments = array_slice( $attachments, 0, $num ); $__delete = __('Delete'); $__not_linked = __('Not Linked'); $__linked_to_page = __('Linked to Page'); $__linked_to_image = __('Linked to Image'); $__linked_to_file = __('Linked to File'); $__using_thumbnail = __('Using Thumbnail'); $__using_original = __('Using Original'); $__using_title = __('Using Title'); $__using_filename = __('Using Filename'); $__using_icon = __('Using Icon'); $__no_thumbnail = '<del>'.__('No Thumbnail').'</del>'; $__send_to_editor = __('Send to editor'); $__close = __('Close Options'); $__confirmdelete = __('Delete this file from the server?'); $__nothumb = __('There is no thumbnail associated with this photo.'); $script .= "notlinked = '$__not_linked';linkedtoimage = '$__linked_to_image';linkedtopage = '$__linked_to_page';linkedtofile = '$__linked_to_file';usingthumbnail = '$__using_thumbnail';usingoriginal = '$__using_original';usingtitle = '$__using_title';usingfilename = '$__using_filename';usingicon = '$__using_icon';var aa = new Array();var ab = new Array();var imga = new Array();var imgb = new Array();var srca = new Array();var srcb = new Array();var title = new Array();var filename = new Array();var icon = new Array();"; foreach ( $attachments as $key => $attachment ) { $ID = $attachment['ID']; $href = get_attachment_link($ID); $meta = get_post_meta($ID, '_wp_attachment_metadata', true); if (!is_array($meta)) { $meta = get_post_meta($ID, 'imagedata', true); // Try 1.6 Alpha meta key if (!is_array($meta)) { $meta = array(); } add_post_meta($ID, '_wp_attachment_metadata', $meta); } $attachment = array_merge($attachment, $meta); $noscript = "<noscript> <div class='caption'><a href=\"".basename(__FILE__)."?action=links&attachment={$ID}&post={$post}&all={$all}&start={$start}\">Choose Links</a></div> </noscript>"; $send_delete_cancel = "<a onclick=\"sendToEditor({$ID});return false;\" href=\"javascript:void()\">$__send_to_editor</a><a onclick=\"return confirm('$__confirmdelete')\" href=\"" . wp_nonce_url( basename(__FILE__) . "?action=delete&attachment={$ID}&all=$all&start=$start&post=$post", inlineuploading) . "\">$__delete</a> <a onclick=\"popup.style.display='none';return false;\" href=\"javascript:void()\">$__close</a>"; $uwidth_sum += 128; if ( preg_match('!^image/!', $attachment['post_mime_type'] ) ) { $image = & $attachment; if ( ($image['width'] > 128 || $image['height'] > 96) && !empty($image['thumb']) && file_exists(dirname($image['file']).'/'.$image['thumb']) ) { $src = str_replace(basename($image['guid']), $image['thumb'], $image['guid']); $script .= "srca[{$ID}] = '$src';srcb[{$ID}] = '{$image['guid']}';"; $thumb = 'true'; $thumbtext = $__using_thumbnail; } else { $src = $image['guid']; $thumb = 'false'; $thumbtext = $__no_thumbnail; } list($image['uwidth'], $image['uheight']) = get_udims($image['width'], $image['height']); $height_width = 'height="'.$image['uheight'].'" width="'.$image['uwidth'].'"'; $xpadding = (128 - $image['uwidth']) / 2; $ypadding = (96 - $image['uheight']) / 2; $style .= "#target{$ID} img { padding: {$ypadding}px {$xpadding}px; }\n"; $title = wp_specialchars($image['post_title'], ENT_QUOTES); $script .= "aa[{$ID}] = '<a id=\"p{$ID}\" rel=\"attachment\" class=\"imagelink\" href=\"$href\" onclick=\"doPopup({$ID});return false;\" title=\"{$title}\">';ab[{$ID}] = '<a class=\"imagelink\" href=\"{$image['guid']}\" onclick=\"doPopup({$ID});return false;\" title=\"{$title}\">';imga[{$ID}] = '<img id=\"image{$ID}\" src=\"$src\" alt=\"{$title}\" $height_width />';imgb[{$ID}] = '<img id=\"image{$ID}\" src=\"{$image['guid']}\" alt=\"{$title}\" $height_width />';"; $html .= "<div id='target{$ID}' class='attwrap left'> <div id='div{$ID}' class='imagewrap' onclick=\"doPopup({$ID});\"> <img id=\"image{$ID}\" src=\"$src\" alt=\"{$title}\" $height_width /> </div> {$noscript}</div>"; $popups .= "<div id='popup{$ID}' class='popup'> <a id=\"I{$ID}\" onclick=\"if($thumb)toggleImage({$ID});else alert('$__nothumb');return false;\" href=\"javascript:void()\">$thumbtext</a> <a id=\"L{$ID}\" onclick=\"toggleLink({$ID});return false;\" href=\"javascript:void()\">$__not_linked</a> {$send_delete_cancel}</div>"; } else { $title = wp_specialchars($attachment['post_title'], ENT_QUOTES); $filename = basename($attachment['guid']); $icon = get_attachment_icon($ID); $toggle_icon = "<a id=\"I{$ID}\" onclick=\"toggleOtherIcon({$ID});return false;\" href=\"javascript:void()\">$__using_title</a>"; $script .= "aa[{$ID}] = '<a id=\"p{$ID}\" rel=\"attachment\" href=\"$href\" onclick=\"doPopup({$ID});return false;\" title=\"{$title}\">';ab[{$ID}] = '<a id=\"p{$ID}\" href=\"{$filename}\" onclick=\"doPopup({$ID});return false;\" title=\"{$title}\">';title[{$ID}] = '{$title}';filename[{$ID}] = '{$filename}';icon[{$ID}] = '{$icon}';"; $html .= "<div id='target{$ID}' class='attwrap left'> <div id='div{$ID}' class='otherwrap usingtext' onmousedown=\"selectLink({$ID})\" onclick=\"doPopup({$ID});return false;\"> <a id=\"p{$ID}\" href=\"{$attachment['guid']}\" onmousedown=\"selectLink({$ID});\" onclick=\"return false;\">{$title}</a> </div> {$noscript}</div>"; $popups .= "<div id='popup{$ID}' class='popup'> <div class='filetype'>".__('File Type:').' '.str_replace('/',"/\n",$attachment['post_mime_type'])."</div> <a id=\"L{$ID}\" onclick=\"toggleOtherLink({$ID});return false;\" href=\"javascript:void()\">$__linked_to_file</a> {$toggle_icon} {$send_delete_cancel}</div>"; } }}$images_width = $uwidth_sum + ( count($images) * 6 ) + 35;break;default:die(__('This script was not meant to be called directly.'));}?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_settings('blog_charset'); ?>" /><title></title><meta http-equiv="imagetoolbar" content="no" /><script type="text/javascript">// <![CDATA[/* Define any variables we'll need, such as alternate URLs. */<?php echo $script; ?>function htmldecode(st) { o = document.getElementById('htmldecode'); if (! o) { o = document.createElement("A"); o.id = "htmldecode" } o.innerHTML = st; r = o.innerHTML; return r;}function cancelUpload() { o = document.getElementById('uploadForm'); o.method = 'GET'; o.action.value = 'view'; o.submit();}function doPopup(i) { if ( popup ) popup.style.display = 'none'; target = document.getElementById('target'+i); popup = document.getElementById('popup'+i); popup.style.left = (target.offsetLeft) + 'px'; popup.style.top = (target.offsetTop) + 'px'; popup.style.display = 'block';}popup = false;function selectLink(n) { o=document.getElementById('div'+n); if ( typeof document.body.createTextRange == 'undefined' || typeof win.tinyMCE == 'undefined' || win.tinyMCE.configs.length < 1 ) return; r = document.body.createTextRange(); if ( typeof r != 'undefined' ) { r.moveToElementText(o); r.select(); }}function toggleLink(n) { ol=document.getElementById('L'+n); if ( ol.innerHTML == htmldecode(notlinked) ) { ol.innerHTML = linkedtoimage; } else if ( ol.innerHTML == htmldecode(linkedtoimage) ) { ol.innerHTML = linkedtopage; } else { ol.innerHTML = notlinked; } updateImage(n);}function toggleOtherLink(n) { ol=document.getElementById('L'+n); if ( ol.innerHTML == htmldecode(linkedtofile) ) { ol.innerHTML = linkedtopage; } else { ol.innerHTML = linkedtofile; } updateOtherIcon(n);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?