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&amp;all=$all&amp;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&amp;attachment={$ID}&amp;post={$post}&amp;all={$all}&amp;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&amp;attachment={$ID}&amp;all=$all&amp;start=$start&amp;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 + -
显示快捷键?