X-Git-Url: https://scripts.mit.edu/gitweb/autoinstalls/wordpress.git/blobdiff_plain/e08b42e8ad054ec67522d7ac1aaae5dc68cb3d01..b925718b4bf2dd47a8429f844d0a255ca6e35bd1:/wp-admin/press-this.php diff --git a/wp-admin/press-this.php b/wp-admin/press-this.php index 58394c8a..62da1d3b 100644 --- a/wp-admin/press-this.php +++ b/wp-admin/press-this.php @@ -11,667 +11,19 @@ define('IFRAME_REQUEST' , true); /** WordPress Administration Bootstrap */ require_once( dirname( __FILE__ ) . '/admin.php' ); -header('Content-Type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset')); - -if ( ! current_user_can( 'edit_posts' ) || ! current_user_can( get_post_type_object( 'post' )->cap->create_posts ) ) - wp_die( __( 'Cheatin’ uh?' ) ); +if ( ! current_user_can( 'edit_posts' ) || ! current_user_can( get_post_type_object( 'post' )->cap->create_posts ) ) { + wp_die( + '

' . __( 'Cheatin’ uh?' ) . '

' . + '

' . __( 'You are not allowed to create posts as this user.' ) . '

', + 403 + ); +} /** - * Press It form handler. - * - * @package WordPress - * @subpackage Press_This - * @since 2.6.0 - * - * @return int Post ID + * @global WP_Press_This $wp_press_this */ -function press_it() { - - $post = get_default_post_to_edit(); - $post = get_object_vars($post); - $post_ID = $post['ID'] = (int) $_POST['post_id']; - - if ( !current_user_can('edit_post', $post_ID) ) - wp_die(__('You are not allowed to edit this post.')); - - $post['post_category'] = isset($_POST['post_category']) ? $_POST['post_category'] : ''; - $post['tax_input'] = isset($_POST['tax_input']) ? $_POST['tax_input'] : ''; - $post['post_title'] = isset($_POST['title']) ? $_POST['title'] : ''; - $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($_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. 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 - $post['post_content'] = $content; - if ( isset( $_POST['publish'] ) && current_user_can( 'publish_posts' ) ) - $post['post_status'] = 'publish'; - elseif ( isset( $_POST['review'] ) ) - $post['post_status'] = 'pending'; - else - $post['post_status'] = 'draft'; - - // error handling for media_sideload - if ( is_wp_error($upload) ) { - wp_delete_post($post_ID); - wp_die($upload); - } else { - // Post formats - if ( isset( $_POST['post_format'] ) ) { - if ( current_theme_supports( 'post-formats', $_POST['post_format'] ) ) - set_post_format( $post_ID, $_POST['post_format'] ); - elseif ( '0' == $_POST['post_format'] ) - set_post_format( $post_ID, false ); - } - - $post_ID = wp_update_post($post); - } - - return $post_ID; -} - -// For submitted posts. -if ( isset($_REQUEST['action']) && 'post' == $_REQUEST['action'] ) { - check_admin_referer('press-this'); - $posted = $post_ID = press_it(); -} else { - $post = get_default_post_to_edit('post', true); - $post_ID = $post->ID; -} - -// Set Variables -$title = isset( $_GET['t'] ) ? trim( strip_tags( html_entity_decode( wp_unslash( $_GET['t'] ) , ENT_QUOTES) ) ) : ''; - -$selection = ''; -if ( !empty($_GET['s']) ) { - $selection = str_replace(''', "'", wp_unslash($_GET['s'])); - $selection = trim( htmlspecialchars( html_entity_decode($selection, ENT_QUOTES) ) ); +if ( empty( $GLOBALS['wp_press_this'] ) ) { + include( ABSPATH . 'wp-admin/includes/class-wp-press-this.php' ); } -if ( ! empty($selection) ) { - $selection = preg_replace('/(\r?\n|\r)/', '

', $selection); - $selection = '

' . str_replace('

', '', $selection) . '

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

-
- -

-
-
- - -

-
-
- -
-
- -

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

- -

- ]*)src=(\"|\')([^<>\'\"]+)(\2)([^>]*)\/*>/i'; - $content = str_replace(array("\n","\t","\r"), '', $content); - preg_match_all($pattern, $content, $matches); - if ( empty($matches[0]) ) - return ''; - $sources = array(); - foreach ($matches[3] as $src) { - // if no http in url - if (strpos($src, 'http') === false) - // if it doesn't have a relative uri - if ( strpos($src, '../') === false && strpos($src, './') === false && strpos($src, '/') === 0) - $src = 'http://'.str_replace('//','/', $host['host'].'/'.$src); - else - $src = 'http://'.str_replace('//','/', $host['host'].'/'.dirname($host['path']).'/'.$src); - $sources[] = esc_url($src); - } - return "'" . implode("','", $sources) . "'"; - } - $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: "", - cache : false, - async : false, - data: "ajax=photo_images&u=", - dataType : "script" - }).responseText - ); - if(my_src.length == 0) { - strtoappend = ''; - } - } - } - for (i = 0; i < my_src.length; i++) { - img = new Image(); - img.src = my_src[i]; - img_attr = 'id="img' + i + '"'; - skip = false; - - maybeappend = ''; - - if (img.width && img.height) { - if (img.width >= 30 && img.height >= 30) { - aspect = img.width / img.height; - scale = (aspect > 1) ? (71 / img.width) : (71 / img.height); - - w = img.width; - h = img.height; - - if (scale < 1) { - w = parseInt(img.width * scale); - h = parseInt(img.height * scale); - } - img_attr += ' style="width: ' + w + 'px; height: ' + h + 'px;"'; - strtoappend += maybeappend; - } - } else { - strtoappend += maybeappend; - } - } - - function pick(img, desc) { - if (img) { - if('object' == typeof jQuery('.photolist input') && jQuery('.photolist input').length != 0) length = jQuery('.photolist input').length; - if(length == 0) length = 1; - jQuery('.photolist').append(''); - jQuery('.photolist').append(''); - insert_editor( "\n\n" + encodeURI('

' + desc + '

')); - } - return false; - } - - function image_selector(el) { - var desc, src, parent = jQuery(el).closest('#photo-add-url-div'); - - if ( parent.length ) { - desc = parent.find('input.tb_this_photo_description').val() || ''; - src = parent.find('input.tb_this_photo').val() || '' - } else { - desc = jQuery('#tb_this_photo_description').val() || ''; - src = jQuery('#tb_this_photo').val() || '' - } - - tb_remove(); - pick(src, desc); - jQuery('#extra-fields').hide(); - jQuery('#extra-fields').html(''); - return false; - } - - jQuery('#extra-fields').html('

()

'); - jQuery('#img_container').html(strtoappend); - -<?php _e('Press This') ?> - - - - - - - -
-
-
-
- - - - - - - - -
- -
-

-

-
-

- 'save' ) ); - if ( current_user_can('publish_posts') ) { - submit_button( __( 'Publish' ), 'primary', 'publish', false ); - } else { - echo '

'; - submit_button( __( 'Submit for Review' ), 'primary', 'review', false ); - } ?> - -

- -

- -

- -
-
- - -
-

-

-
-
- - - - - -
-
    - 'category', 'popular_cats' => $popular_ids ) ) ?> -
-
- - cap->assign_terms) ) : ?> -

- - cap->edit_terms) ) : ?> -
-

- - labels->add_new_item ); ?> - -

-

- - - - 'category', 'hide_empty' => 0, 'name' => 'newcategory_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => '— ' . $tax->labels->parent_item . ' —' ) ); ?> - - - -

-
- -
-
-
- -
-

-

-
-
-
- - -
- - -
-
-
-
- -
-
-
-
-
- - - - -
-

- - | - |

-
- - -
-
- -
-
- - - - - -
- true, - 'textarea_rows' => '15' - ); - - $content = ''; - if ( $selection ) - $content .= $selection; - - if ( $url ) { - $content .= '

'; - - if ( $selection ) - $content .= __('via '); - - $content .= sprintf( "%s.

", esc_url( $url ), esc_html( $title ) ); - } - - remove_action( 'media_buttons', 'media_buttons' ); - add_action( 'media_buttons', 'press_this_media_buttons' ); - function press_this_media_buttons() { - _e( 'Add:' ); - - if ( current_user_can('upload_files') ) { - ?> - - <?php esc_attr_e('Insert an Image'); ?> - - <?php esc_attr_e('Embed a Video'); ?> - -
-
-
-
- - - - - +$GLOBALS['wp_press_this']->html();