2008-05-12 21:08:39 +02:00
< ? php
2008-08-16 09:27:34 +02:00
/**
* Press This Display and Handler .
*
* @ package WordPress
* @ subpackage Press_This
*/
2010-11-06 10:41:03 +01:00
define ( 'IFRAME_REQUEST' , true );
2010-10-18 19:58:36 +02:00
2008-08-16 09:27:34 +02:00
/** WordPress Administration Bootstrap */
2013-09-25 02:18:11 +02:00
require_once ( dirname ( __FILE__ ) . '/admin.php' );
2010-10-18 19:58:36 +02:00
2009-01-18 06:40:40 +01:00
header ( 'Content-Type: ' . get_option ( 'html_type' ) . '; charset=' . get_option ( 'blog_charset' ));
2008-05-12 21:08:39 +02:00
2012-11-28 23:28:20 +01:00
if ( ! current_user_can ( 'edit_posts' ) || ! current_user_can ( get_post_type_object ( 'post' ) -> cap -> create_posts ) )
2009-04-20 13:14:37 +02:00
wp_die ( __ ( 'Cheatin’ uh?' ) );
2008-06-23 23:16:39 +02:00
2008-08-16 09:27:34 +02:00
/**
* Press It form handler .
*
* @ package WordPress
* @ subpackage Press_This
2008-10-10 20:21:16 +02:00
* @ since 2.6 . 0
2008-08-16 09:27:34 +02:00
*
* @ return int Post ID
*/
2008-05-14 22:01:09 +02:00
function press_it () {
2008-07-11 22:27:50 +02:00
2011-11-21 19:32:39 +01:00
$post = get_default_post_to_edit ();
2011-08-19 19:04:16 +02:00
$post = get_object_vars ( $post );
2011-11-21 19:32:39 +01:00
$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' ] : '' ;
2011-08-19 03:14:56 +02:00
$post [ 'post_title' ] = isset ( $_POST [ 'title' ]) ? $_POST [ 'title' ] : '' ;
2011-11-21 19:32:39 +01:00
$content = isset ( $_POST [ 'content' ]) ? $_POST [ 'content' ] : '' ;
2008-09-16 08:30:15 +02:00
2009-04-20 13:14:37 +02:00
$upload = false ;
2010-01-18 21:34:48 +01:00
if ( ! empty ( $_POST [ 'photo_src' ]) && current_user_can ( 'upload_files' ) ) {
2009-12-11 01:14:18 +01:00
foreach ( ( array ) $_POST [ 'photo_src' ] as $key => $image ) {
2008-09-16 08:30:15 +02:00
// see if files exist in content - we don't want to upload non-used selected files.
2009-12-11 01:14:18 +01:00
if ( strpos ( $_POST [ 'content' ], htmlspecialchars ( $image )) !== false ) {
2009-09-17 22:36:59 +02:00
$desc = isset ( $_POST [ 'photo_description' ][ $key ]) ? $_POST [ 'photo_description' ][ $key ] : '' ;
2009-04-20 13:14:37 +02:00
$upload = media_sideload_image ( $image , $post_ID , $desc );
2009-04-20 20:18:39 +02:00
2009-04-01 07:41:52 +02:00
// Replace the POSTED content <img> with correct uploaded ones. Regex contains fix for Magic Quotes
2010-01-18 21:34:48 +01:00
if ( ! is_wp_error ( $upload ) )
2009-12-11 01:14:18 +01:00
$content = preg_replace ( '/<img ([^>]*)src=\\\?(\"|\')' . preg_quote ( htmlspecialchars ( $image ), '/' ) . '\\\?(\2)([^>\/]*)\/*>/is' , $upload , $content );
2008-06-10 18:13:06 +02:00
}
2009-12-11 01:14:18 +01:00
}
}
2008-12-08 18:44:17 +01:00
// set the post_content and status
2011-11-21 19:32:39 +01:00
$post [ 'post_content' ] = $content ;
2011-04-26 19:15:44 +02:00
if ( isset ( $_POST [ 'publish' ] ) && current_user_can ( 'publish_posts' ) )
2011-08-19 03:14:56 +02:00
$post [ 'post_status' ] = 'publish' ;
2011-04-26 19:15:44 +02:00
elseif ( isset ( $_POST [ 'review' ] ) )
2011-08-19 03:14:56 +02:00
$post [ 'post_status' ] = 'pending' ;
2011-04-26 19:15:44 +02:00
else
2011-08-19 03:14:56 +02:00
$post [ 'post_status' ] = 'draft' ;
2008-07-09 23:39:36 +02:00
// error handling for media_sideload
2009-12-11 01:14:18 +01:00
if ( is_wp_error ( $upload ) ) {
2009-12-11 00:11:54 +01:00
wp_delete_post ( $post_ID );
2009-12-11 01:14:18 +01:00
wp_die ( $upload );
2008-07-11 22:27:50 +02:00
} else {
2010-12-19 22:12:13 +01:00
// Post formats
2011-09-19 18:31:33 +02:00
if ( isset ( $_POST [ 'post_format' ] ) ) {
if ( current_theme_supports ( 'post-formats' , $_POST [ 'post_format' ] ) )
set_post_format ( $post_ID , $_POST [ 'post_format' ] );
2011-10-03 18:22:38 +02:00
elseif ( '0' == $_POST [ 'post_format' ] )
2011-09-19 18:31:33 +02:00
set_post_format ( $post_ID , false );
2010-12-19 22:12:13 +01:00
}
2011-11-21 19:32:39 +01:00
$post_ID = wp_update_post ( $post );
2008-06-04 18:13:55 +02:00
}
2011-08-19 03:14:56 +02:00
2008-05-12 21:08:39 +02:00
return $post_ID ;
}
2008-07-09 23:39:36 +02:00
// For submitted posts.
2009-04-20 13:14:37 +02:00
if ( isset ( $_REQUEST [ 'action' ]) && 'post' == $_REQUEST [ 'action' ] ) {
2008-09-05 19:46:09 +02:00
check_admin_referer ( 'press-this' );
2011-08-19 03:14:56 +02:00
$posted = $post_ID = press_it ();
2009-04-20 13:14:37 +02:00
} else {
2011-11-21 19:32:39 +01:00
$post = get_default_post_to_edit ( 'post' , true );
$post_ID = $post -> ID ;
2008-05-12 21:08:39 +02:00
}
2008-09-16 08:30:15 +02:00
// Set Variables
2013-03-01 18:14:09 +01:00
$title = isset ( $_GET [ 't' ] ) ? trim ( strip_tags ( html_entity_decode ( wp_unslash ( $_GET [ 't' ] ) , ENT_QUOTES ) ) ) : '' ;
2009-12-31 05:57:54 +01:00
$selection = '' ;
if ( ! empty ( $_GET [ 's' ]) ) {
2013-03-01 18:14:09 +01:00
$selection = str_replace ( ''' , " ' " , wp_unslash ( $_GET [ 's' ]));
2009-12-31 05:57:54 +01:00
$selection = trim ( htmlspecialchars ( html_entity_decode ( $selection , ENT_QUOTES ) ) );
}
2008-07-11 22:27:50 +02:00
if ( ! empty ( $selection ) ) {
$selection = preg_replace ( '/(\r?\n|\r)/' , '</p><p>' , $selection );
2009-12-31 05:57:54 +01:00
$selection = '<p>' . str_replace ( '<p></p>' , '' , $selection ) . '</p>' ;
2008-07-11 22:27:50 +02:00
}
2009-11-12 00:54:43 +01:00
2009-05-18 18:00:33 +02:00
$url = isset ( $_GET [ 'u' ]) ? esc_url ( $_GET [ 'u' ]) : '' ;
2009-04-20 13:14:37 +02:00
$image = isset ( $_GET [ 'i' ]) ? $_GET [ 'i' ] : '' ;
2008-06-19 19:03:23 +02:00
2009-10-23 06:32:56 +02:00
if ( ! empty ( $_REQUEST [ 'ajax' ]) ) {
switch ( $_REQUEST [ 'ajax' ]) {
2009-09-17 22:36:59 +02:00
case 'video' : ?>
2012-07-03 15:27:14 +02:00
< script type = " text/javascript " >
2009-09-17 22:36:59 +02:00
/* <![CDATA[ */
jQuery ( '.select' ) . click ( function () {
append_editor ( jQuery ( '#embed-code' ) . val ());
2009-10-23 06:32:56 +02:00
jQuery ( '#extra-fields' ) . hide ();
jQuery ( '#extra-fields' ) . html ( '' );
2009-09-17 22:36:59 +02:00
});
jQuery ( '.close' ) . click ( function () {
2009-10-23 06:32:56 +02:00
jQuery ( '#extra-fields' ) . hide ();
jQuery ( '#extra-fields' ) . html ( '' );
2009-09-17 22:36:59 +02:00
});
/* ]]> */
</ script >
< div class = " postbox " >
< h2 >< label for = " embed-code " >< ? php _e ( 'Embed Code' ) ?> </label></h2>
< div class = " inside " >
2010-11-17 18:12:01 +01:00
< textarea name = " embed-code " id = " embed-code " rows = " 8 " cols = " 40 " >< ? php echo esc_textarea ( $selection ); ?> </textarea>
2009-09-17 22:36:59 +02:00
< p id = " options " >< a href = " # " class = " select button " >< ? php _e ( 'Insert Video' ); ?> </a> <a href="#" class="close button"><?php _e('Cancel'); ?></a></p>
</ div >
</ div >
< ? php break ;
case 'photo_thickbox' : ?>
2012-07-03 15:27:14 +02:00
< script type = " text/javascript " >
2009-09-17 22:36:59 +02:00
/* <![CDATA[ */
jQuery ( '.cancel' ) . click ( function () {
tb_remove ();
});
jQuery ( '.select' ) . click ( function () {
2011-11-23 21:32:21 +01:00
image_selector ( this );
2009-09-17 22:36:59 +02:00
});
/* ]]> */
</ script >
2011-11-21 19:32:39 +01:00
< h3 class = " tb " >< label for = " tb_this_photo_description " >< ? php _e ( 'Description' ) ?> </label></h3>
2009-09-17 22:36:59 +02:00
< div class = " titlediv " >
< div class = " titlewrap " >
2011-11-23 21:32:21 +01:00
< input id = " tb_this_photo_description " name = " photo_description " class = " tb_this_photo_description tbtitle text " onkeypress = " if(event.keyCode==13) image_selector(this); " value = " <?php echo esc_attr( $title );?> " />
2009-09-17 22:36:59 +02:00
</ div >
2008-11-19 14:01:36 +01:00
</ div >
2008-07-11 22:27:50 +02:00
2009-09-17 22:36:59 +02:00
< p class = " centered " >
2011-11-23 21:32:21 +01:00
< input type = " hidden " name = " this_photo " value = " <?php echo esc_attr( $image ); ?> " id = " tb_this_photo " class = " tb_this_photo " />
2009-09-17 22:36:59 +02:00
< a href = " # " class = " select " >
< img src = " <?php echo esc_url( $image ); ?> " alt = " <?php echo esc_attr(__('Click to insert.')); ?> " title = " <?php echo esc_attr(__('Click to insert.')); ?> " />
</ a >
</ p >
2008-05-20 18:37:54 +02:00
2009-09-17 22:36:59 +02:00
< p id = " options " >< a href = " # " class = " select button " >< ? php _e ( 'Insert Image' ); ?> </a> <a href="#" class="cancel button"><?php _e('Cancel'); ?></a></p>
< ? php break ;
2008-09-16 08:30:15 +02:00
case 'photo_images' :
2008-10-10 20:21:16 +02:00
/**
* Retrieve all image URLs from given URI .
*
* @ package WordPress
* @ subpackage Press_This
* @ since 2.6 . 0
*
* @ param string $uri
* @ return string
*/
2008-09-16 08:30:15 +02:00
function get_images_from_uri ( $uri ) {
2009-10-23 06:32:56 +02:00
$uri = preg_replace ( '/\/#.+?$/' , '' , $uri );
2012-07-05 22:51:55 +02:00
if ( preg_match ( '/\.(jpe?g|jpe|gif|png)\b/i' , $uri ) && ! strpos ( $uri , 'blogger.com' ) )
2009-10-26 10:04:21 +01:00
return " ' " . esc_attr ( html_entity_decode ( $uri ) ) . " ' " ;
2008-09-16 08:30:15 +02:00
$content = wp_remote_fopen ( $uri );
2008-12-08 18:44:17 +01:00
if ( false === $content )
return '' ;
2008-09-16 08:30:15 +02:00
$host = parse_url ( $uri );
2009-10-26 10:04:21 +01:00
$pattern = '/<img ([^>]*)src=(\"|\')([^<>\'\"]+)(\2)([^>]*)\/*>/i' ;
$content = str_replace ( array ( " \n " , " \t " , " \r " ), '' , $content );
2008-09-16 08:30:15 +02:00
preg_match_all ( $pattern , $content , $matches );
2008-12-08 18:44:17 +01:00
if ( empty ( $matches [ 0 ]) )
return '' ;
2008-09-16 08:30:15 +02:00
$sources = array ();
foreach ( $matches [ 3 ] as $src ) {
// if no http in url
2010-01-18 21:34:48 +01:00
if ( strpos ( $src , 'http' ) === false )
2008-09-16 08:30:15 +02:00
// if it doesn't have a relative uri
2010-01-18 21:34:48 +01:00
if ( strpos ( $src , '../' ) === false && strpos ( $src , './' ) === false && strpos ( $src , '/' ) === 0 )
2008-09-16 08:30:15 +02:00
$src = 'http://' . str_replace ( '//' , '/' , $host [ 'host' ] . '/' . $src );
else
$src = 'http://' . str_replace ( '//' , '/' , $host [ 'host' ] . '/' . dirname ( $host [ 'path' ]) . '/' . $src );
2011-05-23 01:19:12 +02:00
$sources [] = esc_url ( $src );
2008-09-16 08:30:15 +02:00
}
return " ' " . implode ( " ',' " , $sources ) . " ' " ;
2008-06-04 18:13:55 +02:00
}
2009-10-23 06:32:56 +02:00
$url = wp_kses ( urldecode ( $url ), null );
2008-09-16 08:30:15 +02:00
echo 'new Array(' . get_images_from_uri ( $url ) . ')' ;
break ;
2008-12-08 18:44:17 +01:00
2008-09-16 08:30:15 +02:00
case 'photo_js' : ?>
// gather images and load some default JS
var last = null
var img , img_tag , aspect , w , h , skip , i , strtoappend = " " ;
2009-10-23 06:32:56 +02:00
if ( photostorage == false ) {
2009-09-17 22:36:59 +02:00
var my_src = eval (
jQuery . ajax ({
2011-06-05 11:04:29 +02:00
type : " GET " ,
url : " <?php echo esc_url( $_SERVER['PHP_SELF'] ); ?> " ,
2009-09-17 22:36:59 +02:00
cache : false ,
async : false ,
2011-06-05 11:04:29 +02:00
data : " ajax=photo_images&u=<?php echo urlencode( $url ); ?> " ,
2009-09-17 22:36:59 +02:00
dataType : " script "
}) . responseText
);
if ( my_src . length == 0 ) {
2008-09-16 08:30:15 +02:00
var my_src = eval (
jQuery . ajax ({
2011-06-05 11:04:29 +02:00
type : " GET " ,
url : " <?php echo esc_url( $_SERVER['PHP_SELF'] ); ?> " ,
2008-09-16 08:30:15 +02:00
cache : false ,
async : false ,
2011-06-05 11:04:29 +02:00
data : " ajax=photo_images&u=<?php echo urlencode( $url ); ?> " ,
2008-09-16 08:30:15 +02:00
dataType : " script "
}) . responseText
);
2008-11-24 05:29:35 +01:00
if ( my_src . length == 0 ) {
2009-09-17 22:36:59 +02:00
strtoappend = '<?php _e(' Unable to retrieve images or no images on page . '); ?>' ;
2008-11-24 05:29:35 +01:00
}
2009-09-17 22:36:59 +02:00
}
2009-10-23 06:32:56 +02:00
}
2008-09-16 08:30:15 +02:00
for ( i = 0 ; i < my_src . length ; i ++ ) {
img = new Image ();
img . src = my_src [ i ];
img_attr = 'id="img' + i + '"' ;
skip = false ;
2008-12-08 18:44:17 +01:00
2008-11-29 05:28:37 +01:00
maybeappend = '<a href="?ajax=photo_thickbox&i=' + encodeURIComponent ( img . src ) + '&u=<?php echo urlencode($url); ?>&height=400&width=500" title="" class="thickbox"><img src="' + img . src + '" ' + img_attr + '/></a>' ;
2008-12-08 18:44:17 +01:00
2008-09-16 08:30:15 +02:00
if ( img . width && img . height ) {
2008-11-19 14:01:36 +01:00
if ( img . width >= 30 && img . height >= 30 ) {
aspect = img . width / img . height ;
scale = ( aspect > 1 ) ? ( 71 / img . width ) : ( 71 / img . height );
2008-12-08 18:44:17 +01:00
2008-11-19 14:01:36 +01:00
w = img . width ;
h = img . height ;
2008-12-08 18:44:17 +01:00
2008-11-19 14:01:36 +01:00
if ( scale < 1 ) {
w = parseInt ( img . width * scale );
h = parseInt ( img . height * scale );
}
img_attr += ' style="width: ' + w + 'px; height: ' + h + 'px;"' ;
2008-11-25 02:16:00 +01:00
strtoappend += maybeappend ;
2008-09-16 08:30:15 +02:00
}
2008-11-25 02:16:00 +01:00
} else {
strtoappend += maybeappend ;
2008-06-04 18:13:55 +02:00
}
2008-06-23 18:00:12 +02:00
}
2008-12-08 18:44:17 +01:00
2008-09-16 08:30:15 +02:00
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 ( '<input name="photo_src[' + length + ']" value="' + img + '" type="hidden"/>' );
jQuery ( '.photolist' ) . append ( '<input name="photo_description[' + length + ']" value="' + desc + '" type="hidden"/>' );
2008-11-25 03:06:52 +01:00
insert_editor ( " \n \n " + encodeURI ( '<p style="text-align: center;"><a href="<?php echo $url; ?>"><img src="' + img + '" alt="' + desc + '" /></a></p>' ));
2008-09-16 08:30:15 +02:00
}
return false ;
2008-06-23 18:00:12 +02:00
}
2008-07-11 22:27:50 +02:00
2011-11-23 21:32:21 +01:00
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 () || ''
}
2011-11-21 19:32:39 +01:00
2008-09-16 08:30:15 +02:00
tb_remove ();
pick ( src , desc );
2009-10-23 06:32:56 +02:00
jQuery ( '#extra-fields' ) . hide ();
jQuery ( '#extra-fields' ) . html ( '' );
2008-09-16 08:30:15 +02:00
return false ;
}
2011-11-21 19:32:39 +01:00
2012-09-26 05:30:21 +02:00
jQuery ( '#extra-fields' ) . html ( '<div class="postbox"><h2><?php _e( ' Add Photos ' ); ?> <small id="photo_directions">(<?php _e("click images to select") ?>)</small></h2><ul class="actions"><li><a href="#" id="photo-add-url" class="button button-small"><?php _e("Add from URL") ?> +</a></li></ul><div class="inside"><div class="titlewrap"><div id="img_container"></div></div><p id="options"><a href="#" class="close button"><?php _e(' Cancel '); ?></a><a href="#" class="refresh button"><?php _e(' Refresh '); ?></a></p></div>' );
2011-11-21 19:32:39 +01:00
jQuery ( '#img_container' ) . html ( strtoappend );
2008-09-16 08:30:15 +02:00
< ? php break ;
2008-07-09 23:39:36 +02:00
}
2008-09-16 08:30:15 +02:00
die ;
2008-07-09 23:39:36 +02:00
}
2008-09-16 08:30:15 +02:00
2008-05-28 20:18:44 +02:00
wp_enqueue_style ( 'colors' );
2008-08-20 23:42:31 +02:00
wp_enqueue_script ( 'post' );
2011-10-17 22:57:32 +02:00
_wp_admin_html_begin ();
2009-01-18 01:56:15 +01:00
?>
2011-10-17 22:57:32 +02:00
< title >< ? php _e ( 'Press This' ) ?> </title>
2009-01-18 01:56:15 +01:00
< script type = " text/javascript " >
//<![CDATA[
addLoadEvent = function ( func ){ if ( typeof jQuery != " undefined " ) jQuery ( document ) . ready ( func ); else if ( typeof wpOnload != 'function' ){ wpOnload = func ;} else { var oldonload = wpOnload ; wpOnload = function (){ oldonload (); func ();}}};
2012-02-08 17:12:11 +01:00
var ajaxurl = '<?php echo admin_url( ' admin - ajax . php ', ' relative ' ); ?>' , pagenow = 'press-this' , isRtl = < ? php echo ( int ) is_rtl (); ?> ;
2009-10-23 06:32:56 +02:00
var photostorage = false ;
2009-01-18 01:56:15 +01:00
//]]>
</ script >
2008-05-28 20:18:44 +02:00
2009-01-18 01:56:15 +01:00
< ? php
2013-11-16 20:13:10 +01:00
/** This action is documented in wp-admin/admin-header.php */
2013-08-26 23:00:09 +02:00
do_action ( 'admin_enqueue_scripts' , 'press-this.php' );
2013-11-16 20:13:10 +01:00
/**
* Print styles for the Press This admin page .
*
* @ since 3.7 . 0
*/
2013-08-26 23:00:09 +02:00
do_action ( 'admin_print_styles-press-this.php' );
2013-11-16 20:13:10 +01:00
/** This action is documented in wp-admin/admin-header.php */
2013-08-26 23:00:09 +02:00
do_action ( 'admin_print_styles' );
2013-11-16 20:13:10 +01:00
/**
* Print scripts for the Press This admin page .
*
* @ since 3.7 . 0
*/
2013-08-26 23:00:09 +02:00
do_action ( 'admin_print_scripts-press-this.php' );
2013-11-16 20:13:10 +01:00
/** This action is documented in wp-admin/admin-header.php */
2013-08-26 23:00:09 +02:00
do_action ( 'admin_print_scripts' );
2013-11-16 20:13:10 +01:00
/**
* Fires in the head tag on the Press This admin page .
*
* @ since 3.7 . 0
*/
2013-08-26 23:00:09 +02:00
do_action ( 'admin_head-press-this.php' );
2013-11-16 20:13:10 +01:00
/** This action is documented in wp-admin/admin-header.php */
2013-08-26 23:00:09 +02:00
do_action ( 'admin_head' );
2008-05-28 20:18:44 +02:00
?>
< script type = " text/javascript " >
2011-10-07 22:14:21 +02:00
var wpActiveEditor = 'content' ;
2008-11-25 02:16:00 +01:00
function insert_plain_editor ( text ) {
2011-11-21 19:32:39 +01:00
if ( typeof ( QTags ) != 'undefined' )
QTags . insertContent ( text );
2008-11-25 02:16:00 +01:00
}
2008-05-28 20:18:44 +02:00
function set_editor ( text ) {
2011-11-21 19:32:39 +01:00
if ( '' == text || '<p></p>' == text )
text = '<p><br /></p>' ;
if ( tinyMCE . activeEditor )
tinyMCE . execCommand ( 'mceSetContent' , false , text );
2008-05-28 20:18:44 +02:00
}
2008-09-27 08:21:12 +02:00
function insert_editor ( text ) {
2008-11-25 02:16:00 +01:00
if ( '' != text && tinyMCE . activeEditor && ! tinyMCE . activeEditor . isHidden ()) {
2008-11-25 03:06:52 +01:00
tinyMCE . execCommand ( 'mceInsertContent' , false , '<p>' + decodeURI ( tinymce . DOM . decode ( text )) + '</p>' , { format : 'raw' });
2008-11-25 02:16:00 +01:00
} else {
2008-12-08 18:44:17 +01:00
insert_plain_editor ( decodeURI ( text ));
2008-11-25 02:16:00 +01:00
}
2008-09-27 08:21:12 +02:00
}
2008-06-10 18:13:06 +02:00
function append_editor ( text ) {
2008-11-25 02:16:00 +01:00
if ( '' != text && tinyMCE . activeEditor && ! tinyMCE . activeEditor . isHidden ()) {
tinyMCE . execCommand ( 'mceSetContent' , false , tinyMCE . activeEditor . getContent ({ format : 'raw' }) + '<p>' + text + '</p>' );
} else {
insert_plain_editor ( text );
}
2008-06-10 18:13:06 +02:00
}
2008-07-11 22:27:50 +02:00
2008-06-04 18:13:55 +02:00
function show ( tab_name ) {
2009-10-23 06:32:56 +02:00
jQuery ( '#extra-fields' ) . html ( '' );
2008-06-04 18:13:55 +02:00
switch ( tab_name ) {
case 'video' :
2009-10-23 06:32:56 +02:00
jQuery ( '#extra-fields' ) . load ( '<?php echo esc_url($_SERVER[' PHP_SELF ']); ?>' , { ajax : 'video' , s : '<?php echo esc_attr($selection); ?>' }, function () {
2008-08-09 07:36:14 +02:00
< ? php
2008-07-11 22:27:50 +02:00
$content = '' ;
2008-06-04 18:13:55 +02:00
if ( preg_match ( " /youtube \ .com \ /watch/i " , $url ) ) {
2012-01-09 22:20:51 +01:00
list ( $domain , $video_id ) = explode ( " v= " , $url );
2009-05-05 21:43:53 +02:00
$video_id = esc_attr ( $video_id );
2008-07-09 23:39:36 +02:00
$content = '<object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/' . $video_id . '"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/' . $video_id . '" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object>' ;
2008-07-11 22:27:50 +02:00
2008-07-09 23:39:36 +02:00
} elseif ( preg_match ( " /vimeo \ .com \ /[0-9]+/i " , $url ) ) {
2012-01-09 22:20:51 +01:00
list ( $domain , $video_id ) = explode ( " .com/ " , $url );
2009-05-05 21:43:53 +02:00
$video_id = esc_attr ( $video_id );
2008-07-09 23:39:36 +02:00
$content = '<object width="400" height="225"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id=' . $video_id . '&server=www.vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" /> <embed src="http://www.vimeo.com/moogaloop.swf?clip_id=' . $video_id . '&server=www.vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object>' ;
2008-07-11 22:27:50 +02:00
2008-07-09 23:39:36 +02:00
if ( trim ( $selection ) == '' )
2008-07-11 22:27:50 +02:00
$selection = '<p><a href="http://www.vimeo.com/' . $video_id . '?pg=embed&sec=' . $video_id . '">' . $title . '</a> on <a href="http://vimeo.com?pg=embed&sec=' . $video_id . '">Vimeo</a></p>' ;
} elseif ( strpos ( $selection , '<object' ) !== false ) {
2008-06-04 18:13:55 +02:00
$content = $selection ;
2008-07-09 23:39:36 +02:00
}
?>
2008-09-16 08:30:15 +02:00
jQuery ( '#embed-code' ) . prepend ( '<?php echo htmlentities($content); ?>' );
2008-06-04 18:13:55 +02:00
});
2009-10-23 06:32:56 +02:00
jQuery ( '#extra-fields' ) . show ();
2008-06-04 18:13:55 +02:00
return false ;
2008-06-23 18:00:12 +02:00
break ;
2008-06-04 18:13:55 +02:00
case 'photo' :
2009-10-23 06:32:56 +02:00
function setup_photo_actions () {
jQuery ( '.close' ) . click ( function () {
jQuery ( '#extra-fields' ) . hide ();
jQuery ( '#extra-fields' ) . html ( '' );
});
jQuery ( '.refresh' ) . click ( function () {
photostorage = false ;
show ( 'photo' );
});
2011-08-19 03:14:56 +02:00
jQuery ( '#photo-add-url' ) . click ( function (){
2012-01-03 20:05:05 +01:00
var form = jQuery ( '#photo-add-url-div' ) . clone ();
jQuery ( '#img_container' ) . empty () . append ( form . show () );
2011-08-19 03:14:56 +02:00
});
2009-10-23 06:32:56 +02:00
jQuery ( '#waiting' ) . hide ();
jQuery ( '#extra-fields' ) . show ();
}
2010-01-15 23:11:12 +01:00
2011-11-09 17:46:05 +01:00
jQuery ( '#waiting' ) . show ();
2009-10-23 06:32:56 +02:00
if ( photostorage == false ) {
jQuery . ajax ({
type : " GET " ,
cache : false ,
url : " <?php echo esc_url( $_SERVER['PHP_SELF'] ); ?> " ,
data : " ajax=photo_js&u=<?php echo urlencode( $url )?> " ,
dataType : " script " ,
success : function ( data ) {
eval ( data );
photostorage = jQuery ( '#extra-fields' ) . html ();
setup_photo_actions ();
}
});
} else {
jQuery ( '#extra-fields' ) . html ( photostorage );
setup_photo_actions ();
}
2008-06-04 18:13:55 +02:00
return false ;
2008-06-23 18:00:12 +02:00
break ;
2008-06-04 18:13:55 +02:00
}
}
2009-09-29 11:46:13 +02:00
jQuery ( document ) . ready ( function ( $ ) {
2008-11-19 14:01:36 +01:00
//resize screen
2012-11-07 20:27:19 +01:00
window . resizeTo ( 740 , 580 );
2008-11-25 02:16:00 +01:00
// set button actions
2011-06-05 11:04:29 +02:00
jQuery ( '#photo_button' ) . click ( function () { show ( 'photo' ); return false ; });
2008-09-16 08:30:15 +02:00
jQuery ( '#video_button' ) . click ( function () { show ( 'video' ); return false ; });
2008-11-25 02:16:00 +01:00
// auto select
2008-06-04 18:13:55 +02:00
< ? php if ( preg_match ( " /youtube \ .com \ /watch/i " , $url ) ) { ?>
show ( 'video' );
< ? php } elseif ( preg_match ( " /vimeo \ .com \ /[0-9]+/i " , $url ) ) { ?>
show ( 'video' );
2011-12-14 18:36:38 +01:00
< ? php } elseif ( preg_match ( " /flickr \ .com/i " , $url ) ) { ?>
2008-06-04 18:13:55 +02:00
show ( 'photo' );
< ? php } ?>
2008-12-04 05:58:27 +01:00
jQuery ( '#title' ) . unbind ();
2012-09-26 21:57:44 +02:00
jQuery ( '#publish, #save' ) . click ( function () { jQuery ( '.press-this #publishing-actions .spinner' ) . css ( 'display' , 'inline-block' ); });
2009-10-15 22:26:21 +02:00
2009-10-24 13:43:42 +02:00
$ ( '#tagsdiv-post_tag, #categorydiv' ) . children ( 'h3, .handlediv' ) . click ( function (){
2009-09-29 11:46:13 +02:00
$ ( this ) . siblings ( '.inside' ) . toggle ();
});
2008-05-28 20:18:44 +02:00
});
2008-06-04 18:13:55 +02:00
</ script >
2008-05-14 22:01:09 +02:00
</ head >
2012-06-11 22:34:42 +02:00
< ? php
$admin_body_class = ( is_rtl () ) ? 'rtl' : '' ;
$admin_body_class .= ' locale-' . sanitize_html_class ( strtolower ( str_replace ( '_' , '-' , get_locale () ) ) );
?>
2012-11-30 14:40:59 +01:00
< body class = " press-this wp-admin wp-core-ui <?php echo $admin_body_class ; ?> " >
2008-06-23 18:00:12 +02:00
< form action = " press-this.php?action=post " method = " post " >
2008-11-25 02:16:00 +01:00
< div id = " poststuff " class = " metabox-holder " >
2011-10-19 08:16:15 +02:00
< div id = " side-sortables " class = " press-this-sidebar " >
2008-09-16 08:30:15 +02:00
< div class = " sleeve " >
2008-10-23 17:42:04 +02:00
< ? php wp_nonce_field ( 'press-this' ) ?>
2008-11-14 02:20:20 +01:00
< input type = " hidden " name = " post_type " id = " post_type " value = " text " />
2008-11-25 02:16:00 +01:00
< input type = " hidden " name = " autosave " id = " autosave " />
2008-11-26 20:32:38 +01:00
< input type = " hidden " id = " original_post_status " name = " original_post_status " value = " draft " />
< input type = " hidden " id = " prev_status " name = " prev_status " value = " draft " />
2011-11-21 19:32:39 +01:00
< input type = " hidden " id = " post_id " name = " post_id " value = " <?php echo (int) $post_ID ; ?> " />
2008-12-08 18:44:17 +01:00
2008-11-14 02:20:20 +01:00
<!-- This div holds the photo metadata -->
< div class = " photolist " ></ div >
2009-04-20 20:18:39 +02:00
2011-06-11 21:37:23 +02:00
< div id = " submitdiv " class = " postbox " >
2011-10-20 17:04:46 +02:00
< div class = " handlediv " title = " <?php esc_attr_e( 'Click to toggle' ); ?> " >< br /></ div >
2011-06-11 21:37:23 +02:00
< h3 class = " hndle " >< ? php _e ( 'Press This' ) ?> </h3>
2009-04-01 07:41:52 +02:00
< div class = " inside " >
2011-06-11 21:37:23 +02:00
< p id = " publishing-actions " >
2010-10-28 23:56:43 +02:00
< ? php
submit_button ( __ ( 'Save Draft' ), 'button' , 'draft' , false , array ( 'id' => 'save' ) );
if ( current_user_can ( 'publish_posts' ) ) {
submit_button ( __ ( 'Publish' ), 'primary' , 'publish' , false );
} else {
echo '<br /><br />' ;
submit_button ( __ ( 'Submit for Review' ), 'primary' , 'review' , false );
} ?>
2012-09-26 21:57:44 +02:00
< span class = " spinner " style = " display: none; " ></ span >
2009-04-01 07:41:52 +02:00
</ p >
2010-12-19 22:12:13 +01:00
< ? php if ( current_theme_supports ( 'post-formats' ) && post_type_supports ( 'post' , 'post-formats' ) ) :
$post_formats = get_theme_support ( 'post-formats' );
if ( is_array ( $post_formats [ 0 ] ) ) :
$default_format = get_option ( 'default_post_format' , '0' );
?>
< p >
< label for = " post_format " >< ? php _e ( 'Post Format:' ); ?>
< select name = " post_format " id = " post_format " >
2013-06-27 08:56:45 +02:00
< option value = " 0 " >< ? php echo get_post_format_string ( 'standard' ); ?> </option>
2010-12-19 22:12:13 +01:00
< ? php foreach ( $post_formats [ 0 ] as $format ) : ?>
< option < ? php selected ( $default_format , $format ); ?> value="<?php echo esc_attr( $format ); ?>"> <?php echo esc_html( get_post_format_string( $format ) ); ?></option>
< ? php endforeach ; ?>
</ select ></ label >
</ p >
< ? php endif ; endif ; ?>
2009-04-01 07:41:52 +02:00
</ div >
</ div >
2009-04-20 20:18:39 +02:00
2010-04-11 11:11:39 +02:00
< ? php $tax = get_taxonomy ( 'category' ); ?>
< div id = " categorydiv " class = " postbox " >
2011-10-20 17:04:46 +02:00
< div class = " handlediv " title = " <?php esc_attr_e( 'Click to toggle' ); ?> " >< br /></ div >
2010-04-11 11:11:39 +02:00
< h3 class = " hndle " >< ? php _e ( 'Categories' ) ?> </h3>
2008-09-16 08:30:15 +02:00
< div class = " inside " >
2010-04-11 11:11:39 +02:00
< div id = " taxonomy-category " class = " categorydiv " >
2010-05-03 22:26:11 +02:00
2010-04-11 11:11:39 +02:00
< ul id = " category-tabs " class = " category-tabs " >
2012-07-24 02:15:15 +02:00
< li class = " tabs " >< a href = " #category-all " >< ? php echo $tax -> labels -> all_items ; ?> </a></li>
< li class = " hide-if-no-js " >< a href = " #category-pop " >< ? php _e ( 'Most Used' ); ?> </a></li>
2010-04-11 11:11:39 +02:00
</ ul >
< div id = " category-pop " class = " tabs-panel " style = " display: none; " >
< ul id = " categorychecklist-pop " class = " categorychecklist form-no-clear " >
< ? php $popular_ids = wp_popular_terms_checklist ( 'category' ); ?>
</ ul >
</ div >
2008-12-08 18:44:17 +01:00
2010-04-11 11:11:39 +02:00
< div id = " category-all " class = " tabs-panel " >
2012-11-06 02:01:52 +01:00
< ul id = " categorychecklist " data - wp - lists = " list:category " class = " categorychecklist form-no-clear " >
2010-04-11 11:11:39 +02:00
< ? php wp_terms_checklist ( $post_ID , array ( 'taxonomy' => 'category' , 'popular_cats' => $popular_ids ) ) ?>
2008-11-25 02:16:00 +01:00
</ ul >
</ div >
2008-07-11 22:27:50 +02:00
2010-05-13 06:10:17 +02:00
< ? php if ( ! current_user_can ( $tax -> cap -> assign_terms ) ) : ?>
2010-04-11 11:11:39 +02:00
< p >< em >< ? php _e ( 'You cannot modify this Taxonomy.' ); ?> </em></p>
< ? php endif ; ?>
2010-05-13 06:10:17 +02:00
< ? php if ( current_user_can ( $tax -> cap -> edit_terms ) ) : ?>
2010-04-11 11:11:39 +02:00
< div id = " category-adder " class = " wp-hidden-children " >
2010-05-14 02:34:04 +02:00
< h4 >
2012-07-24 02:15:15 +02:00
< a id = " category-add-toggle " href = " #category-add " class = " hide-if-no-js " >
2010-05-14 02:34:04 +02:00
< ? php printf ( __ ( '+ %s' ), $tax -> labels -> add_new_item ); ?>
</ a >
</ h4 >
2010-04-11 11:11:39 +02:00
< p id = " category-add " class = " category-add wp-hidden-child " >
2010-05-14 02:34:04 +02:00
< label class = " screen-reader-text " for = " newcategory " >< ? php echo $tax -> labels -> add_new_item ; ?> </label>
2012-07-24 02:15:15 +02:00
< input type = " text " name = " newcategory " id = " newcategory " class = " form-required form-input-tip " value = " <?php echo esc_attr( $tax->labels ->new_item_name ); ?> " aria - required = " true " />
2010-05-14 02:34:04 +02:00
< label class = " screen-reader-text " for = " newcategory_parent " >
< ? php echo $tax -> labels -> parent_item_colon ; ?>
</ label >
2012-07-24 02:15:15 +02:00
< ? php wp_dropdown_categories ( array ( 'taxonomy' => 'category' , 'hide_empty' => 0 , 'name' => 'newcategory_parent' , 'orderby' => 'name' , 'hierarchical' => 1 , 'show_option_none' => '— ' . $tax -> labels -> parent_item . ' —' ) ); ?>
2012-11-06 02:01:52 +01:00
< input type = " button " id = " category-add-submit " data - wp - lists = " add:categorychecklist:category-add " class = " button category-add-submit " value = " <?php echo esc_attr( $tax->labels ->add_new_item ); ?> " />
2010-07-06 18:43:47 +02:00
< ? php wp_nonce_field ( 'add-category' , '_ajax_nonce-add-category' , false ); ?>
2010-04-11 11:11:39 +02:00
< span id = " category-ajax-response " ></ span >
</ p >
</ div >
< ? php endif ; ?>
</ div >
2008-11-25 02:16:00 +01:00
</ div >
2008-09-16 08:30:15 +02:00
</ div >
2008-12-08 18:44:17 +01:00
2011-06-11 21:37:23 +02:00
< div id = " tagsdiv-post_tag " class = " postbox " >
2011-10-20 17:04:46 +02:00
< div class = " handlediv " title = " <?php esc_attr_e( 'Click to toggle' ); ?> " >< br /></ div >
2011-09-11 19:52:46 +02:00
< h3 >< span >< ? php _e ( 'Tags' ); ?> </span></h3>
2008-09-16 08:30:15 +02:00
< div class = " inside " >
2009-03-18 03:43:45 +01:00
< div class = " tagsdiv " id = " post_tag " >
2011-08-28 22:48:05 +02:00
< div class = " jaxtag " >
2011-09-11 19:52:46 +02:00
< label class = " screen-reader-text " for = " newtag " >< ? php _e ( 'Tags' ); ?> </label>
2009-03-18 03:43:45 +01:00
< input type = " hidden " name = " tax_input[post_tag] " class = " the-tags " id = " tax-input[post_tag] " value = " " />
2009-10-14 09:30:10 +02:00
< div class = " ajaxtag " >
< input type = " text " name = " newtag[post_tag] " class = " newtag form-input-tip " size = " 16 " autocomplete = " off " value = " " />
2012-07-24 02:15:15 +02:00
< input type = " button " class = " button tagadd " value = " <?php esc_attr_e('Add'); ?> " />
2009-10-14 09:30:10 +02:00
</ div >
2011-08-28 22:48:05 +02:00
</ div >
2009-03-18 03:43:45 +01:00
< div class = " tagchecklist " ></ div >
2008-11-25 02:16:00 +01:00
</ div >
2011-06-11 21:37:23 +02:00
< p class = " tagcloud-link " >< a href = " #titlediv " class = " tagcloud-link " id = " link-post_tag " >< ? php _e ( 'Choose from the most used tags' ); ?> </a></p>
2008-09-16 08:30:15 +02:00
</ div >
</ div >
2008-06-23 18:00:12 +02:00
</ div >
</ div >
2008-11-25 02:16:00 +01:00
< div class = " posting " >
2011-06-11 21:37:23 +02:00
< div id = " wphead " >
< h1 id = " site-heading " >
< a href = " <?php echo get_option('home'); ?>/ " target = " _blank " >
< span id = " site-title " >< ? php bloginfo ( 'name' ); ?> </span>
</ a >
</ h1 >
</ div >
2011-08-19 03:14:56 +02:00
< ? php
if ( isset ( $posted ) && intval ( $posted ) ) {
$post_ID = intval ( $posted ); ?>
< div id = " message " class = " updated " >
< p >< strong >< ? php _e ( 'Your post has been saved.' ); ?> </strong>
< a onclick = " window.opener.location.replace(this.href); window.close(); " href = " <?php echo get_permalink( $post_ID ); ?> " >< ? php _e ( 'View post' ); ?> </a>
| < a href = " <?php echo get_edit_post_link( $post_ID ); ?> " onclick = " window.opener.location.replace(this.href); window.close(); " >< ? php _e ( 'Edit Post' ); ?> </a>
| < a href = " # " onclick = " window.close(); " >< ? php _e ( 'Close Window' ); ?> </a></p>
</ div >
2008-11-25 02:16:00 +01:00
< ? php } ?>
< div id = " titlediv " >
< div class = " titlewrap " >
2009-05-05 21:43:53 +02:00
< input name = " title " id = " title " class = " text " value = " <?php echo esc_attr( $title );?> " />
2008-11-25 02:16:00 +01:00
</ div >
</ div >
2008-12-08 18:44:17 +01:00
2013-05-08 23:27:31 +02:00
< div id = " waiting " style = " display: none " >< span class = " spinner " ></ span > < span >< ? php esc_html_e ( 'Loading…' ); ?> </span></div>
2011-11-09 17:46:05 +01:00
2009-10-23 06:32:56 +02:00
< div id = " extra-fields " style = " display: none " ></ div >
2008-12-08 18:44:17 +01:00
2008-11-25 02:16:00 +01:00
< div class = " postdivrich " >
2011-08-19 03:14:56 +02:00
< ? php
2011-06-11 21:37:23 +02:00
2011-08-19 03:14:56 +02:00
$editor_settings = array (
'teeny' => true ,
'textarea_rows' => '15'
);
$content = '' ;
if ( $selection )
2011-12-14 18:36:38 +01:00
$content .= $selection ;
2011-08-19 03:14:56 +02:00
if ( $url ) {
$content .= '<p>' ;
2011-10-24 21:13:23 +02:00
2011-08-19 03:14:56 +02:00
if ( $selection )
$content .= __ ( 'via ' );
2011-10-24 21:13:23 +02:00
2011-08-19 03:14:56 +02:00
$content .= sprintf ( " <a href='%s'>%s</a>.</p> " , 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' ) ) {
?>
2011-10-20 17:04:46 +02:00
< a id = " photo_button " title = " <?php esc_attr_e('Insert an Image'); ?> " href = " # " >
< img alt = " <?php esc_attr_e('Insert an Image'); ?> " src = " <?php echo esc_url( admin_url( 'images/media-button-image.gif?ver=20100531' ) ); ?> " /></ a >
2011-08-19 03:14:56 +02:00
< ? php
}
?>
2011-10-20 17:04:46 +02:00
< a id = " video_button " title = " <?php esc_attr_e('Embed a Video'); ?> " href = " # " >< img alt = " <?php esc_attr_e('Embed a Video'); ?> " src = " <?php echo esc_url( admin_url( 'images/media-button-video.gif?ver=20100531' ) ); ?> " /></ a >
2011-08-19 03:14:56 +02:00
< ? php
}
wp_editor ( $content , 'content' , $editor_settings );
2011-10-24 21:13:23 +02:00
2011-08-19 03:14:56 +02:00
?>
2008-06-28 18:27:21 +02:00
</ div >
2008-06-23 18:00:12 +02:00
</ div >
2008-11-25 02:16:00 +01:00
</ div >
2008-06-23 18:00:12 +02:00
</ form >
2011-08-19 03:14:56 +02:00
< div id = " photo-add-url-div " style = " display:none; " >
< table >< tr >
< td >< label for = " this_photo " >< ? php _e ( 'URL' ) ?> </label></td>
2011-11-23 21:32:21 +01:00
< td >< input type = " text " id = " this_photo " name = " this_photo " class = " tb_this_photo text " onkeypress = " if(event.keyCode==13) image_selector(this); " /></ td >
2011-08-19 03:14:56 +02:00
</ tr >< tr >
< td >< label for = " this_photo_description " >< ? php _e ( 'Description' ) ?> </label></td>
2011-11-23 21:32:21 +01:00
< td >< input type = " text " id = " this_photo_description " name = " photo_description " class = " tb_this_photo_description text " onkeypress = " if(event.keyCode==13) image_selector(this); " value = " <?php echo esc_attr( $title );?> " /></ td >
2011-08-19 03:14:56 +02:00
</ tr >< tr >
2011-11-23 21:32:21 +01:00
< td >< input type = " button " class = " button " onclick = " image_selector(this) " value = " <?php esc_attr_e('Insert Image'); ?> " /></ td >
2011-08-19 03:14:56 +02:00
</ tr ></ table >
</ div >
2011-10-24 21:13:23 +02:00
< ? php
2013-11-16 20:13:10 +01:00
/** This action is documented in wp-admin/admin-footer.php */
do_action ( 'admin_footer' );
/** This action is documented in wp-admin/admin-footer.php */
do_action ( 'admin_print_footer_scripts' );
2011-08-19 03:14:56 +02:00
?>
2009-01-18 01:56:15 +01:00
< script type = " text/javascript " > if ( typeof wpOnload == 'function' ) wpOnload (); </ script >
2008-05-28 20:18:44 +02:00
</ body >
2008-08-20 23:42:31 +02:00
</ html >