X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/449d082fcc4873c1f7d363a0d9f7409be7f6e77d..312084b5d95c21feb519ff03decf948420e1f6fa:/wp-admin/press-this.php diff --git a/wp-admin/press-this.php b/wp-admin/press-this.php index 1823d217..4eda788c 100644 --- a/wp-admin/press-this.php +++ b/wp-admin/press-this.php @@ -8,22 +8,10 @@ /** WordPress Administration Bootstrap */ require_once('admin.php'); +header('Content-Type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset')); -if ( ! current_user_can('publish_posts') ) wp_die( __( 'Cheatin’ uh?' ) ); - -/** - * Replace forward slash with backslash and slash. - * - * @package WordPress - * @subpackage Press_This - * @since 2.6.0 - * - * @param string $string - * @return string - */ -function preg_quote2($string) { - return str_replace('/', '\/', preg_quote($string)); -} +if ( ! current_user_can('edit_posts') ) + wp_die( __( 'Cheatin’ uh?' ) ); /** * Convert characters. @@ -54,38 +42,39 @@ function aposfix($text) { function press_it() { // define some basic variables $quick['post_status'] = 'draft'; // set as draft first - $quick['post_category'] = $_REQUEST['post_category']; - $quick['tags_input'] = $_REQUEST['tags_input']; - $quick['post_title'] = $_REQUEST['title']; - $quick['post_content'] = ''; + $quick['post_category'] = isset($_POST['post_category']) ? $_POST['post_category'] : null; + $quick['tax_input'] = isset($_POST['tax_input']) ? $_POST['tax_input'] : null; + $quick['post_title'] = ( trim($_POST['title']) != '' ) ? $_POST['title'] : ' '; + $quick['post_content'] = isset($_POST['post_content']) ? $_POST['post_content'] : ''; // insert the post with nothing in it, to get an ID $post_ID = wp_insert_post($quick, true); - $content = $_REQUEST['content']; + if ( is_wp_error($post_ID) ) + wp_die($post_ID); - if($_REQUEST['photo_src']) - foreach( (array) $_REQUEST['photo_src'] as $key => $image) + $content = isset($_POST['content']) ? $_POST['content'] : ''; + + $upload = false; + if( !empty($_POST['photo_src']) && current_user_can('upload_files') ) { + foreach( (array) $_POST['photo_src'] as $key => $image) { // see if files exist in content - we don't want to upload non-used selected files. - if( strpos($_REQUEST['content'], $image) !== false ) { - $upload = media_sideload_image($image, $post_ID, $_REQUEST['photo_description'][$key]); + if ( strpos($_POST['content'], htmlspecialchars($image)) !== false ) { + $desc = isset($_POST['photo_description'][$key]) ? $_POST['photo_description'][$key] : ''; + $upload = media_sideload_image($image, $post_ID, $desc); - // Replace the POSTED content with correct uploaded ones. - // escape quote for matching - $quoted = preg_quote2($image); - if( !is_wp_error($upload) ) $content = preg_replace('/]*)src=(\"|\')'.$quoted.'(\2)([^>\/]*)\/*>/is', $upload, $content); + // Replace the POSTED content with correct uploaded ones. Regex contains fix for Magic Quotes + if( !is_wp_error($upload) ) + $content = preg_replace('/]*)src=\\\?(\"|\')'.preg_quote(htmlspecialchars($image), '/').'\\\?(\2)([^>\/]*)\/*>/is', $upload, $content); } - + } + } // set the post_content and status - $quick['post_status'] = isset($_REQUEST['publish']) ? 'publish' : 'draft'; + $quick['post_status'] = isset($_POST['publish']) ? 'publish' : 'draft'; $quick['post_content'] = $content; - // error handling for $post - if ( is_wp_error($post_ID)) { - wp_die($id); - wp_delete_post($post_ID); // error handling for media_sideload - } elseif ( is_wp_error($upload)) { - wp_die($upload); + if ( is_wp_error($upload) ) { wp_delete_post($post_ID); + wp_die($upload); } else { $quick['ID'] = $post_ID; wp_update_post($quick); @@ -94,96 +83,105 @@ function press_it() { } // For submitted posts. -if ( 'post' == $_REQUEST['action'] ) { +if ( isset($_REQUEST['action']) && 'post' == $_REQUEST['action'] ) { check_admin_referer('press-this'); $post_ID = press_it(); $posted = $post_ID; +} else { + $post_ID = 0; } // Set Variables -$title = wp_specialchars(aposfix(stripslashes($_GET['t']))); -$selection = trim( aposfix( stripslashes($_GET['s']) ) ); +$title = isset( $_GET['t'] ) ? trim( strip_tags( aposfix( stripslashes( $_GET['t'] ) ) ) ) : ''; +$selection = isset( $_GET['s'] ) ? trim( htmlspecialchars( html_entity_decode( aposfix( stripslashes( $_GET['s'] ) ) ) ) ) : ''; if ( ! empty($selection) ) { $selection = preg_replace('/(\r?\n|\r)/', '

', $selection); $selection = '

'.str_replace('

', '', $selection).'

'; } -$url = clean_url($_GET['u']); -$image = $_GET['i']; - -if($_REQUEST['ajax']) { -switch ($_REQUEST['ajax']) { - case 'video': ?> - -
-

-
- -

-
-
- - -

-
-
- -
-
- -

- <?php echo attribute_escape(__('Click to insert.')); ?>

- -

+$url = isset($_GET['u']) ? esc_url($_GET['u']) : ''; +$image = isset($_GET['i']) ? $_GET['i'] : ''; + +if ( !empty($_REQUEST['ajax']) ) { + switch ($_REQUEST['ajax']) { + case 'video': ?> + +
+

+
+ +

+
+
+ - -

-
-
- + case 'photo_thickbox': ?> + +

+
+
+ +
-
+

+ + + <?php echo esc_attr(__('Click to insert.')); ?> + +

+ +

+ + +

+
+
+ +
+
+

+
+
+ +
-
-

|

- |

+ ]*)src=(\"|\')([^<>]+?\.(png|jpeg|jpg|jpe|gif))[^<>\'\"]*(\2)([^>\/]*)\/*>/is'; + $pattern = '/]*)src=(\"|\')([^<>\'\"]+)(\2)([^>]*)\/*>/i'; + $content = str_replace(array("\n","\t","\r"), '', $content); preg_match_all($pattern, $content, $matches); if ( empty($matches[0]) ) return ''; @@ -215,46 +215,45 @@ switch ($_REQUEST['ajax']) { $src = 'http://'.str_replace('//','/', $host['host'].'/'.$src); else $src = 'http://'.str_replace('//','/', $host['host'].'/'.dirname($host['path']).'/'.$src); - $sources[] = clean_url($src); + $sources[] = esc_attr($src); } return "'" . implode("','", $sources) . "'"; } - $url = urldecode($url); - $url = str_replace(' ', '%20', $url); + $url = wp_kses(urldecode($url), null); echo 'new Array('.get_images_from_uri($url).')'; - break; case 'photo_js': ?> // gather images and load some default JS var last = null var img, img_tag, aspect, w, h, skip, i, strtoappend = ""; + if(photostorage == false) { + var my_src = eval( + jQuery.ajax({ + type: "GET", + url: "", + cache : false, + async : false, + data: "ajax=photo_images&u=", + dataType : "script" + }).responseText + ); + if(my_src.length == 0) { var my_src = eval( jQuery.ajax({ - type: "GET", - url: "", + type: "GET", + url: "", cache : false, async : false, - data: "ajax=photo_images&u=", + data: "ajax=photo_images&u=", dataType : "script" }).responseText ); if(my_src.length == 0) { - var my_src = eval( - jQuery.ajax({ - type: "GET", - url: "", - cache : false, - async : false, - data: "ajax=photo_images&u=", - dataType : "script" - }).responseText - ); - if(my_src.length == 0) { - strtoappend = ''; - } + strtoappend = ''; } - + } + } for (i = 0; i < my_src.length; i++) { img = new Image(); img.src = my_src[i]; @@ -299,26 +298,12 @@ switch ($_REQUEST['ajax']) { desc = jQuery('#this_photo_description').val(); src = jQuery('#this_photo').val(); pick(src, desc); - jQuery('#extra_fields').hide(); - jQuery('#extra_fields').html(''); + jQuery('#extra-fields').hide(); + jQuery('#extra-fields').html(''); return false; } - - jQuery(document).ready(function() { - jQuery('#extra_fields').html('

Photo ()

'); - jQuery('.close').click(function() { - jQuery('#extra_fields').hide(); - jQuery('#extra_fields').html(''); - }); - jQuery('.refresh').click(function() { - show('photo'); - }); + jQuery('#extra-fields').html('

Add Photos ()

'); jQuery('#img_container').html(strtoappend); - jQuery('#photo_add_url').attr('href', '?ajax=photo_thickbox_url&height=200&width=500'); - tb_init('#extra_fields .thickbox'); - - - }); + + '370' ) ); ?> - +
-

+

@@ -469,22 +473,44 @@ die;
+
+
+
+
+

+
+

+ + + + +

+ + +

+
+
+
-

+
+
+
+

-
+
+
    - ID, false, false, $popular_ids) ?> +

- - 0, 'name' => 'newcat_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => __('Parent category'), 'tab_index' => 3 ) ); ?> - + + 0, 'name' => 'newcat_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => __('Parent category'), 'tab_index' => 3 ) ); ?> +

@@ -492,30 +518,28 @@ die;
-
-

-
- -
- - -
-
+
+
+
-
-
-

+

-

- - - -

+
+

+ + +

+ + +
+

+
+
+
-

| |

@@ -523,17 +547,19 @@ die;
- +
- +
-
    +
      +
    • - Add: + Add: <?php _e('Insert an Image'); ?> +
    • <?php _e('Embed a Video'); ?> @@ -542,22 +568,30 @@ die;
    • - - -
      + + +
    - +
+ +