From fd80901dcf7001a6c70284c627fef9d7425c5430 Mon Sep 17 00:00:00 2001 From: Ryan Boren Date: Wed, 9 Jan 2008 08:14:29 +0000 Subject: [PATCH] New image uploader from tellyworth. see #5609 git-svn-id: https://develop.svn.wordpress.org/trunk@6579 602fd350-edb4-49c9-b593-d223f7449a82 --- wp-admin/css/media.css | 103 ++++++ wp-admin/images/align-center.png | Bin 0 -> 571 bytes wp-admin/images/align-left.png | Bin 0 -> 587 bytes wp-admin/images/align-none.png | Bin 0 -> 453 bytes wp-admin/images/align-right.png | Bin 0 -> 556 bytes wp-admin/includes/admin.php | 1 + wp-admin/includes/image.php | 8 +- wp-admin/includes/media.php | 231 +++++++++++++ wp-admin/js/media-upload.js | 12 + wp-admin/media-upload.php | 23 ++ wp-admin/post-new.php | 2 + wp-admin/post.php | 2 + wp-includes/js/thickbox/loadingAnimation.gif | Bin 0 -> 5886 bytes wp-includes/js/thickbox/tb-close.png | Bin 0 -> 506 bytes wp-includes/js/thickbox/thickbox.css | 163 ++++++++++ wp-includes/js/thickbox/thickbox.js | 320 +++++++++++++++++++ wp-includes/script-loader.php | 2 + 17 files changed, 860 insertions(+), 7 deletions(-) create mode 100644 wp-admin/css/media.css create mode 100644 wp-admin/images/align-center.png create mode 100644 wp-admin/images/align-left.png create mode 100644 wp-admin/images/align-none.png create mode 100644 wp-admin/images/align-right.png create mode 100644 wp-admin/includes/media.php create mode 100644 wp-admin/js/media-upload.js create mode 100644 wp-admin/media-upload.php create mode 100644 wp-includes/js/thickbox/loadingAnimation.gif create mode 100644 wp-includes/js/thickbox/tb-close.png create mode 100644 wp-includes/js/thickbox/thickbox.css create mode 100644 wp-includes/js/thickbox/thickbox.js diff --git a/wp-admin/css/media.css b/wp-admin/css/media.css new file mode 100644 index 0000000000..a281ad5394 --- /dev/null +++ b/wp-admin/css/media.css @@ -0,0 +1,103 @@ +div#media-upload-header { + background-color: #eaf3fa; + margin: none; + padding: 1em 0.5em 0.5em 0.5em; + font-weight: bold; +} + +ul#media-upload-tabs { + display:inline; + position: absolute; + right: 1em; + top: 1em; + font-size: 0.9em; +} + +ul#media-upload-tabs li { + display:inline; +} + +ul#media-upload-tabs li:after { + content: " | "; +} + +ul#media-upload-tabs li.last:after { + content: ""; +} + + + +div#media-upload-error { + margin: 1em; + font-weight: bold; + color: #f00; +} + +form.media-upload-form { + margin: 1em; +} + +.media-upload-form label, .media-upload-form legend { + display:block; + font-weight: bold; + margin-bottom: 0.5em; +} + +.media-upload-form label.form-help { + color: #9a9a9a; + font-style: italic; + font-weight: normal; +} + +.media-upload-form p { + margin: 0 1em 1em 0; +} + +.media-upload-form input[type="text"], .media-upload-form input[type="file"] { + width: 100%; +} + +.media-upload-form fieldset { + border: none; + text-align: justify; + margin-bottom: 1em; +} + +.media-upload-form button.button-ok { + float: right; + background-color: #ebebeb; + color: #1f4569; + border: none; + padding: 0.5em; +} + +.media-upload-form a.button-cancel { + float: right; + background-color: #fff; + color: #9a9a9a; + font-size: 0.8em; + text-decoration: underline; + margin: 0.5em 1em; +} + +/* specific to the image upload form */ +.media-upload-form fieldset#image-align label { + display: inline; + padding: 0 28px; +} + +#image-align-none-label { + background: url(../images/align-none.png) no-repeat center left; +} + +#image-align-left-label { + background: url(../images/align-left.png) no-repeat center left; +} + +#image-align-center-label { + background: url(../images/align-center.png) no-repeat center left; +} + +#image-align-right-label { + background: url(../images/align-right.png) no-repeat center left; +} \ No newline at end of file diff --git a/wp-admin/images/align-center.png b/wp-admin/images/align-center.png new file mode 100644 index 0000000000000000000000000000000000000000..a41222687508d27e34408a55f758ee5a7c7e87b5 GIT binary patch literal 571 zcmV-B0>u4^P)+l22fn_=%Z0Zt$l>hXZBPAuASQ=9On+Ja+>?&+J4ME6zIdtX*h zZg4rfN`48em{K3A2OWuX!U0Woy+zN9aLXIKeTDg9rZ{KjB0d}rJ*o8WX83R?Q&VLk zrcbOA(C7x)X6JN3IrjBe*L0zO@~C#SO+-28^Ye2e@?8i*6_J16?$@q*{^A+&&IaTb zU$%Hl$izSc-ZBf-rc<{!-HS2q?(Uiy5qXf@V-oQA<%mE;7XX4>RI$13yQ&&ciX1z> zUVMv@yiFz(0JH*v!`WwG`L=!iZg0N_pjaZAEul~V8EV&x1au3aZQHhO0nF!f0F-k+ zIXS_v4^zr@l!oKuV*s9+%kII!K}w04%Xq4)qQ6lZMx)V>I;C`Wc6L`k=ll=-mBHfL zhY-51BckbaDk4qOlq-tPpO_glkH_OOe*$oHbaXels^UMG&1L`?KnS5^F80zwToKw})(^Cw1-Zo&VAwLdZE2k-PgDim`Pke*=JX?mMd669~tvV$}cu002ov JPDHLkV1ln<0GR*) literal 0 HcmV?d00001 diff --git a/wp-admin/images/align-left.png b/wp-admin/images/align-left.png new file mode 100644 index 0000000000000000000000000000000000000000..2e433fc3e3d227013516a83c51cfeb267f048d9d GIT binary patch literal 587 zcmV-R0<`^!P)sQax`IK@^;~AHK6q5&=SrWNJDp{)CYtl!k&|NI?OL zWC=Qc04+UI967S32#9^>yWRJOV&O;;=M}Hno!Ob4K}(YRq?zQFWRnxgp3G#^s4|mG zOe7Okl_W_s8@6!2{r>KiXe(%}nuKJH`I?j8=&R}U<@;|mC(b)S2nYa}nTUu8Nf8PA zYC7%QR;p?=P7S-z*5bwe93dZXw?9@lPuglX&FtG4HRm8A-g{LQ5mlYdW}zl_?lx3a z_v_Y;Pohd1#iLy>^`kWEUz{Ebs;RgPOwa=3^0Ju$*lacc0%U7Gs%bbH3q(2|bzL_( z(Ugp1F~Z~XhfiTLNzz1&a?TF=T3 z147E>LCf{^HOWwzN=O$M7bIhhB=41AW+4Ps_1@3t^PID)qEIfE%fV_9a%fa_5VBk@ zNxHwm{3~oq$$Nk3BS<>u2Gs=;hR(0o>zs24q3gPbS;}cqWM)!q7a?UI0{`!lNO`yv Z><_up5e&-FS?>S<002ovPDHLkV1iJT2eAME literal 0 HcmV?d00001 diff --git a/wp-admin/images/align-none.png b/wp-admin/images/align-none.png new file mode 100644 index 0000000000000000000000000000000000000000..5fb9af2e0c6cc72482867a84a1c62c8f2e682ddc GIT binary patch literal 453 zcmV;$0XqJPP)+kv(n{K@f#s{qzjGA-l2`B2o_FEBK0>fkSWxGK&OD z_JBly&CYaJJ%U-yCT+>3N?NL~-s@LFGBZi4s)zsxH1sOqhS@H!f>f}1W=_+zZ2{o4 zE}v1v{>~*-95Y?V4U0rVF_P>5zu$f8>i^oGZohov&VU*yZC)0nU+swi$js2b|C{F@7&EH5HJE_2 v|8@dI|9&qf`$`s(z-&1p+RAsQ-&p?vA$H`g`ToR900000NkvXXu0mjfmh8)_ literal 0 HcmV?d00001 diff --git a/wp-admin/images/align-right.png b/wp-admin/images/align-right.png new file mode 100644 index 0000000000000000000000000000000000000000..9b92578fb5867463d5a88a0d8a072a62e772749a GIT binary patch literal 556 zcmV+{0@MA8P)+lR<71K@df&s;fPd*hv&AQdTTD0t?QNERq$6AMMgqk#9OqwM^p3v{HkVmXJ&c<01+|sw0S0))xz4PN}kEM z<*J^INW@E%o&m($Q9!=~fceMAcW-9}b1yp;$>fJa*8ZTarS8r94+`Mv>4}I$#LTAR zlv1sgnRz_D9LjLP`{$wKc`JrKd(9_EYoa#K&<|Rc2=9o12>iK2M8krJYDKKP6=Go$YwP z;O?A-baH-we@{eamQsq<-9?1RzZ;#Ey`S}T=rJop8RoMSrD5j_!Z!x6-EOb1ub0bZ zY5rEZd1;CGBW&m1icp;u_Hk&vq z5vi(~Etg9=LPT3@O(}^8GvD6cipZ}&ZLMv$+kdzSso2C?YYi81)Ra<0@c8)nR}0KM zj$_~V;lkag?4z4xX6yAD$C>oaEK-O#!aD#Jkr<(4#MH+GPF)v~T5CAcP}poXe_oKl u-9y97V&0;p>$>@)2@Oj(-0000 - - \ No newline at end of file +?> diff --git a/wp-admin/includes/media.php b/wp-admin/includes/media.php new file mode 100644 index 0000000000..0f843d5881 --- /dev/null +++ b/wp-admin/includes/media.php @@ -0,0 +1,231 @@ + __('From Computer'), // handler function name => tab text + ); + + return apply_filters('image_upload_tabs', $_default_tabs); +} + +function image_upload_form( $action_url, $values = array(), $error = null ) { + $action_url = attribute_escape( $action_url ); + $image_alt = attribute_escape( @$values['image-alt'] ); + $image_url = attribute_escape( @$values['image-url'] ); + $image_title = attribute_escape( @$values['image-title'] ); + $image_align = @$values['image-url']; + +?> +
+

Add Image

+
    +
  • +
  • +
  • +
+
+ +
+ get_error_message(); ?> +
+ +
+

+ +

+

+ +

+

+ +

+

+ +

+
+ + /> + + /> + + /> + + /> + +
+

+ + +

+ + +
+'; + + if ( $url ) + $html = ''.$html.''; + + media_send_to_editor($html); +} + +function media_send_to_editor($html) { + ?> + + false); + $file = wp_handle_upload($_FILES['image-file'], $overrides); + + if ( isset($file['error']) ) + return new wp_error( 'upload_error', $file['error'] ); + + $url = $file['url']; + $type = $file['type']; + $file = $file['file']; + + $post_title = trim($_POST['image-title']); + $post_content = trim($_POST['image-alt']); + $post_parent = intval($_POST['parent_post_id']); + + // Construct the attachment array + $attachment = array( + 'post_title' => $post_title, + 'post_content' => $post_content, + 'post_type' => 'attachment', + 'post_parent' => $post_parent, + 'post_mime_type' => $type, + 'guid' => $url + ); + + // Save the data + $id = wp_insert_attachment($attachment, $file, $post_parent); + if ( !is_wp_error($id) ) + wp_update_attachment_metadata( $id, wp_generate_attachment_metadata( $id, $file ) ); + + return $id; + + wp_redirect( get_option('siteurl') . "/wp-admin/upload.php?style=$style&tab=browse&action=view&ID=$id&post_id=$post_id"); + +} + +// wrap iframe content (produced by $content_func) in a doctype, html head/body etc +// any additional function args will be passed to content_func +function wp_iframe($content_func /* ... */) { +?> + + > + + +<?php bloginfo('name') ?> › <?php _e('Uploads'); ?> — WordPress + + + + + + + + + + + +EOF; + echo $out; +} +add_action( 'media_buttons', 'media_buttons' ); + +function media_buttons_head() { +$siteurl = get_option('siteurl'); +echo "\n"; +} + +add_action( 'admin_print_scripts', 'media_buttons_head' ); + +function media_admin_css() { + wp_admin_css('css/media'); +} + +add_action('media_upload_image', 'image_upload_handler'); +add_action('admin_head_image_upload_form', 'media_admin_css'); + +?> \ No newline at end of file diff --git a/wp-admin/js/media-upload.js b/wp-admin/js/media-upload.js new file mode 100644 index 0000000000..40b8c1397e --- /dev/null +++ b/wp-admin/js/media-upload.js @@ -0,0 +1,12 @@ +// send html to the post editor +function send_to_editor(h) { + var win = window.opener ? window.opener : window.dialogArguments; + if ( !win ) + win = top; + tinyMCE = win.tinyMCE; + if ( typeof tinyMCE != 'undefined' && tinyMCE.getInstanceById('content') ) { + tinyMCE.selectedInstance.getWin().focus(); + tinyMCE.execCommand('mceInsertContent', false, h); + } else + win.edInsertContent(win.edCanvas, h); +} \ No newline at end of file diff --git a/wp-admin/media-upload.php b/wp-admin/media-upload.php new file mode 100644 index 0000000000..361a99596f --- /dev/null +++ b/wp-admin/media-upload.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/wp-admin/post-new.php b/wp-admin/post-new.php index 6d75d4c253..1d8807a1fb 100644 --- a/wp-admin/post-new.php +++ b/wp-admin/post-new.php @@ -5,6 +5,8 @@ $parent_file = 'post-new.php'; $editing = true; wp_enqueue_script('autosave'); wp_enqueue_script('post'); +wp_enqueue_script('thickbox'); +wp_enqueue_script('media-upload'); require_once ('./admin-header.php'); diff --git a/wp-admin/post.php b/wp-admin/post.php index f7c94b44f7..6ff32cfee3 100644 --- a/wp-admin/post.php +++ b/wp-admin/post.php @@ -59,6 +59,8 @@ case 'edit': } wp_enqueue_script('post'); + wp_enqueue_script('thickbox'); + wp_enqueue_script('media-upload'); if ( 'draft' == $post->post_status ) wp_enqueue_script('autosave'); diff --git a/wp-includes/js/thickbox/loadingAnimation.gif b/wp-includes/js/thickbox/loadingAnimation.gif new file mode 100644 index 0000000000000000000000000000000000000000..82290f48334c81272ff5991962951758137a08ba GIT binary patch literal 5886 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 Dl)1NK literal 0 HcmV?d00001 diff --git a/wp-includes/js/thickbox/tb-close.png b/wp-includes/js/thickbox/tb-close.png new file mode 100644 index 0000000000000000000000000000000000000000..6a48f46908e4e9250c52bcbfbf75ee7ec91bfbb1 GIT binary patch literal 506 zcmVp00009a7bBm000XU z000XU0RWnu7ytkPtVu*cR49>kQcG?kQ4F;G{JIrp#SF`=0s+o|_~oM{$C`=eQdzVR z5@+ZI3?R4wD2RdS_GcE&l9X!aa+PHpTdkI=5)oX3y90nZs%ngpi=s%=^#1<-s+!PC zF=k#Y7JpCws8*{rn@#)zW>&jNr6@a{PK=Sy=YojcuUZ2DoKB}CjUo~Vs)4QI`}@zw z$FaMb2{R3c{a^3DDMWK*W)TVXdcDzT5Rr&5^I$NDF>W@SUa$B1`Z}FXSF4q(0>Ey! z<0?)>VvKp7o7uy|gPDy+qb$qvJP#p+5X!Q2_luf{%H0ce`Cxs%~=eHZw$gdU_g<$61!m=W|3H z4u^<1nM?pcRaN!k&CIIW@AoH@$zrkC@ArA0&t|i#!OYS$RaLyZyX$tl?p`IDnY)J& z+}+)Ys4UAEV^I{_?Up$pf*}HcyBPu?f|~#U0+h~1(SeY-EX#0H`}X;H`2M2-fLG`q wLr~S_pSinZv(*-nuYM3*nc2*WqDYeDKaySe$u~rbLI3~&07*qoM6N<$f|#}Ix&QzG literal 0 HcmV?d00001 diff --git a/wp-includes/js/thickbox/thickbox.css b/wp-includes/js/thickbox/thickbox.css new file mode 100644 index 0000000000..d24b9bedff --- /dev/null +++ b/wp-includes/js/thickbox/thickbox.css @@ -0,0 +1,163 @@ +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> global settings needed for thickbox <<<-----------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +*{padding: 0; margin: 0;} + +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +#TB_window { + font: 12px Arial, Helvetica, sans-serif; + color: #333333; +} + +#TB_secondLine { + font: 10px Arial, Helvetica, sans-serif; + color:#666666; +} + +#TB_window a:link {color: #666666;} +#TB_window a:visited {color: #666666;} +#TB_window a:hover {color: #000;} +#TB_window a:active {color: #666666;} +#TB_window a:focus{color: #666666;} + +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +#TB_overlay { + position: fixed; + z-index:100; + top: 0px; + left: 0px; + height:100%; + width:100%; +} + +.TB_overlayMacFFBGHack {background: url(macFFBgHack.png) repeat;} +.TB_overlayBG { + background-color:#000; + filter:alpha(opacity=75); + -moz-opacity: 0.75; + opacity: 0.75; +} + +* html #TB_overlay { /* ie6 hack */ + position: absolute; + height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); +} + +#TB_window { + position: fixed; + background: #ffffff; + z-index: 102; + color:#000000; + display:none; + border: 4px solid #525252; + text-align:left; + top:50%; + left:50%; +} + +* html #TB_window { /* ie6 hack */ +position: absolute; +margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); +} + +#TB_window img#TB_Image { + display:block; + margin: 15px 0 0 15px; + border-right: 1px solid #ccc; + border-bottom: 1px solid #ccc; + border-top: 1px solid #666; + border-left: 1px solid #666; +} + +#TB_caption{ + height:25px; + padding:7px 30px 10px 25px; + float:left; +} + +#TB_closeWindow{ + height:25px; + padding:11px 25px 10px 0; + float:right; +} + +#TB_closeAjaxWindow{ + padding:7px 10px 5px 0; + margin-bottom:1px; + text-align:right; + float:right; +} + +#TB_ajaxWindowTitle{ + float:left; + padding:7px 0 5px 10px; + margin-bottom:1px; +} + +#TB_title{ + background-color:#e8e8e8; + height:27px; +} + +#TB_ajaxContent{ + clear:both; + padding:2px 15px 15px 15px; + overflow:auto; + text-align:left; + line-height:1.4em; +} + +#TB_ajaxContent.TB_modal{ + padding:15px; +} + +#TB_ajaxContent p{ + padding:5px 0px 5px 0px; +} + +#TB_load{ + position: fixed; + display:none; + height:13px; + width:208px; + z-index:103; + top: 50%; + left: 50%; + margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */ +} + +* html #TB_load { /* ie6 hack */ +position: absolute; +margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); +} + +#TB_HideSelect{ + z-index:99; + position:fixed; + top: 0; + left: 0; + background-color:#fff; + border:none; + filter:alpha(opacity=0); + -moz-opacity: 0; + opacity: 0; + height:100%; + width:100%; +} + +* html #TB_HideSelect { /* ie6 hack */ + position: absolute; + height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); +} + +#TB_iframeContent{ + clear:both; + border:none; + margin-bottom:-1px; + margin-top:1px; + _margin-bottom:1px; +} diff --git a/wp-includes/js/thickbox/thickbox.js b/wp-includes/js/thickbox/thickbox.js new file mode 100644 index 0000000000..f31d779aac --- /dev/null +++ b/wp-includes/js/thickbox/thickbox.js @@ -0,0 +1,320 @@ +/* + * Thickbox 3.1 - One Box To Rule Them All. + * By Cody Lindley (http://www.codylindley.com) + * Copyright (c) 2007 cody lindley + * Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php +*/ + +var tb_pathToImage = "../wp-includes/js/thickbox/loadingAnimation.gif"; +var tb_closeImage = "../wp-includes/js/thickbox/tb-close.png"; + +/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/ + +//on page load call tb_init +addLoadEvent(function(){ + tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox + imgLoader = new Image();// preload image + imgLoader.src = tb_pathToImage; +}); + +//add thickbox to href & area elements that have a class of .thickbox +function tb_init(domChunk){ + jQuery(domChunk).click(function(){ + var t = this.title || this.name || null; + var a = this.href || this.alt; + var g = this.rel || false; + tb_show(t,a,g); + this.blur(); + return false; + }); +} + +function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link + + try { + if (typeof document.body.style.maxHeight === "undefined") {//if IE 6 + jQuery("body","html").css({height: "100%", width: "100%"}); + jQuery("html").css("overflow","hidden"); + if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6 + jQuery("body").append("
"); + jQuery("#TB_overlay").click(tb_remove); + } + }else{//all others + if(document.getElementById("TB_overlay") === null){ + jQuery("body").append("
"); + jQuery("#TB_overlay").click(tb_remove); + } + } + + if(tb_detectMacXFF()){ + jQuery("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash + }else{ + jQuery("#TB_overlay").addClass("TB_overlayBG");//use background and opacity + } + + if(caption===null){caption="";} + jQuery("body").append("
");//add loader to the page + jQuery('#TB_load').show();//show loader + + var baseURL; + if(url.indexOf("?")!==-1){ //ff there is a query string involved + baseURL = url.substr(0, url.indexOf("?")); + }else{ + baseURL = url; + } + + var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/; + var urlType = baseURL.toLowerCase().match(urlString); + + if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images + + TB_PrevCaption = ""; + TB_PrevURL = ""; + TB_PrevHTML = ""; + TB_NextCaption = ""; + TB_NextURL = ""; + TB_NextHTML = ""; + TB_imageCount = ""; + TB_FoundURL = false; + if(imageGroup){ + TB_TempArray = jQuery("a[@rel="+imageGroup+"]").get(); + for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) { + var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString); + if (!(TB_TempArray[TB_Counter].href == url)) { + if (TB_FoundURL) { + TB_NextCaption = TB_TempArray[TB_Counter].title; + TB_NextURL = TB_TempArray[TB_Counter].href; + TB_NextHTML = "  Next >"; + } else { + TB_PrevCaption = TB_TempArray[TB_Counter].title; + TB_PrevURL = TB_TempArray[TB_Counter].href; + TB_PrevHTML = "  < Prev"; + } + } else { + TB_FoundURL = true; + TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length); + } + } + } + + imgPreloader = new Image(); + imgPreloader.onload = function(){ + imgPreloader.onload = null; + + // Resizing large images - orginal by Christian Montoya edited by me. + var pagesize = tb_getPageSize(); + var x = pagesize[0] - 150; + var y = pagesize[1] - 150; + var imageWidth = imgPreloader.width; + var imageHeight = imgPreloader.height; + if (imageWidth > x) { + imageHeight = imageHeight * (x / imageWidth); + imageWidth = x; + if (imageHeight > y) { + imageWidth = imageWidth * (y / imageHeight); + imageHeight = y; + } + } else if (imageHeight > y) { + imageWidth = imageWidth * (y / imageHeight); + imageHeight = y; + if (imageWidth > x) { + imageHeight = imageHeight * (x / imageWidth); + imageWidth = x; + } + } + // End Resizing + + TB_WIDTH = imageWidth + 30; + TB_HEIGHT = imageHeight + 60; + jQuery("#TB_window").append(""+caption+"" + "
"+caption+"
" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "
"); + + jQuery("#TB_closeWindowButton").click(tb_remove); + + if (!(TB_PrevHTML === "")) { + function goPrev(){ + if(jQuery(document).unbind("click",goPrev)){jQuery(document).unbind("click",goPrev);} + jQuery("#TB_window").remove(); + jQuery("body").append("
"); + tb_show(TB_PrevCaption, TB_PrevURL, imageGroup); + return false; + } + jQuery("#TB_prev").click(goPrev); + } + + if (!(TB_NextHTML === "")) { + function goNext(){ + jQuery("#TB_window").remove(); + jQuery("body").append("
"); + tb_show(TB_NextCaption, TB_NextURL, imageGroup); + return false; + } + jQuery("#TB_next").click(goNext); + + } + + document.onkeydown = function(e){ + if (e == null) { // ie + keycode = event.keyCode; + } else { // mozilla + keycode = e.which; + } + if(keycode == 27){ // close + tb_remove(); + } else if(keycode == 190){ // display previous image + if(!(TB_NextHTML == "")){ + document.onkeydown = ""; + goNext(); + } + } else if(keycode == 188){ // display next image + if(!(TB_PrevHTML == "")){ + document.onkeydown = ""; + goPrev(); + } + } + }; + + tb_position(); + jQuery("#TB_load").remove(); + jQuery("#TB_ImageOff").click(tb_remove); + jQuery("#TB_window").css({display:"block"}); //for safari using css instead of show + }; + + imgPreloader.src = url; + }else{//code to show html + + var queryString = url.replace(/^[^\?]+\??/,''); + var params = tb_parseQuery( queryString ); + + TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL + TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL + ajaxContentW = TB_WIDTH - 30; + ajaxContentH = TB_HEIGHT - 45; + + if(url.indexOf('TB_iframe') != -1){// either iframe or ajax window + urlNoQuery = url.split('TB_'); + jQuery("#TB_iframeContent").remove(); + if(params['modal'] != "true"){//iframe no modal + jQuery("#TB_window").append("
"+caption+"
"); + }else{//iframe modal + jQuery("#TB_overlay").unbind(); + jQuery("#TB_window").append(""); + } + }else{// not an iframe, ajax + if(jQuery("#TB_window").css("display") != "block"){ + if(params['modal'] != "true"){//ajax no modal + jQuery("#TB_window").append("
"+caption+"
"); + }else{//ajax modal + jQuery("#TB_overlay").unbind(); + jQuery("#TB_window").append("
"); + } + }else{//this means the window is already up, we are just loading new content via ajax + jQuery("#TB_ajaxContent")[0].style.width = ajaxContentW +"px"; + jQuery("#TB_ajaxContent")[0].style.height = ajaxContentH +"px"; + jQuery("#TB_ajaxContent")[0].scrollTop = 0; + jQuery("#TB_ajaxWindowTitle").html(caption); + } + } + + jQuery("#TB_closeWindowButton").click(tb_remove); + + if(url.indexOf('TB_inline') != -1){ + jQuery("#TB_ajaxContent").append(jQuery('#' + params['inlineId']).children()); + jQuery("#TB_window").unload(function () { + jQuery('#' + params['inlineId']).append( jQuery("#TB_ajaxContent").children() ); // move elements back when you're finished + }); + tb_position(); + jQuery("#TB_load").remove(); + jQuery("#TB_window").css({display:"block"}); + }else if(url.indexOf('TB_iframe') != -1){ + tb_position(); + if($.browser.safari){//safari needs help because it will not fire iframe onload + jQuery("#TB_load").remove(); + jQuery("#TB_window").css({display:"block"}); + } + }else{ + jQuery("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method + tb_position(); + jQuery("#TB_load").remove(); + tb_init("#TB_ajaxContent a.thickbox"); + jQuery("#TB_window").css({display:"block"}); + }); + } + + } + + if(!params['modal']){ + document.onkeyup = function(e){ + if (e == null) { // ie + keycode = event.keyCode; + } else { // mozilla + keycode = e.which; + } + if(keycode == 27){ // close + tb_remove(); + } + }; + } + + } catch(e) { + //nothing here + } +} + +//helper functions below +function tb_showIframe(){ + jQuery("#TB_load").remove(); + jQuery("#TB_window").css({display:"block"}); +} + +function tb_remove() { + jQuery("#TB_imageOff").unbind("click"); + jQuery("#TB_closeWindowButton").unbind("click"); + jQuery("#TB_window").fadeOut("fast",function(){jQuery('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();}); + jQuery("#TB_load").remove(); + if (typeof document.body.style.maxHeight == "undefined") {//if IE 6 + jQuery("body","html").css({height: "auto", width: "auto"}); + jQuery("html").css("overflow",""); + } + document.onkeydown = ""; + document.onkeyup = ""; + return false; +} + +function tb_position() { +jQuery("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH / 2),10) + 'px', width: TB_WIDTH + 'px'}); + if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6 + jQuery("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT / 2),10) + 'px'}); + } +} + +function tb_parseQuery ( query ) { + var Params = {}; + if ( ! query ) {return Params;}// return empty object + var Pairs = query.split(/[;&]/); + for ( var i = 0; i < Pairs.length; i++ ) { + var KeyVal = Pairs[i].split('='); + if ( ! KeyVal || KeyVal.length != 2 ) {continue;} + var key = unescape( KeyVal[0] ); + var val = unescape( KeyVal[1] ); + val = val.replace(/\+/g, ' '); + Params[key] = val; + } + return Params; +} + +function tb_getPageSize(){ + var de = document.documentElement; + var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; + var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight; + arrayPageSize = [w,h]; + return arrayPageSize; +} + +function tb_detectMacXFF() { + var userAgent = navigator.userAgent.toLowerCase(); + if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) { + return true; + } +} + + diff --git a/wp-includes/script-loader.php b/wp-includes/script-loader.php index 73445122cc..21ed93c90b 100644 --- a/wp-includes/script-loader.php +++ b/wp-includes/script-loader.php @@ -84,6 +84,7 @@ class WP_Scripts { $this->add( 'dimensions', '/wp-includes/js/jquery/jquery.dimensions.min.js', array('jquery'), '1.1.2'); $this->add( 'suggest', '/wp-includes/js/jquery/suggest.js', array('dimensions'), '1.1'); $this->add( 'schedule', '/wp-includes/js/jquery/jquery.schedule.js', array('jquery'), '20'); + $this->add( 'thickbox', '/wp-includes/js/thickbox/thickbox.js', array('jquery'), '3.1'); if ( is_admin() ) { $this->add( 'ajaxcat', '/wp-admin/js/cat.js', array( 'wp-lists' ), '20071101' ); @@ -107,6 +108,7 @@ class WP_Scripts { $this->add( 'xfn', '/wp-admin/js/xfn.js', false, '3517' ); $this->add( 'upload', '/wp-admin/js/upload.js', array('jquery'), '20070518' ); $this->add( 'post', '/wp-admin/js/post.js', array('suggest'), '20080102' ); + $this->add( 'media-upload', '/wp-admin/js/media-upload.js', false, '20080109' ); $this->localize( 'upload', 'uploadL10n', array( 'browseTitle' => attribute_escape(__('Browse your files')), 'back' => __('« Back'),