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
*/
/** WordPress Administration Bootstrap */
2008-05-12 21:08:39 +02:00
require_once ( 'admin.php' );
2008-07-09 23:39:36 +02:00
if ( ! current_user_can ( 'publish_posts' ) ) wp_die ( __ ( 'Cheatin’ uh?' ) );
2008-06-23 23:16:39 +02:00
2008-08-16 09:27:34 +02:00
/**
* Replace forward slash with backslash and slash .
*
* @ package WordPress
* @ subpackage Press_This
* @ since unknown
*
* @ param string $string
* @ return string
*/
2008-06-23 23:16:39 +02:00
function preg_quote2 ( $string ) {
return str_replace ( '/' , '\/' , preg_quote ( $string ));
}
2008-08-16 09:27:34 +02:00
/**
* Convert characters .
*
* @ package WordPress
* @ subpackage Press_This
* @ since unknown
*
* @ param string $text
* @ return string
*/
2008-07-09 23:39:36 +02:00
function aposfix ( $text ) {
$translation_table [ chr ( 34 )] = '"' ;
$translation_table [ chr ( 38 )] = '&' ;
$translation_table [ chr ( 39 )] = ''' ;
2008-07-11 22:27:50 +02:00
return preg_replace ( " /&(?![A-Za-z] { 0,4} \ w { 2,3};|#[0-9] { 2,3};)/ " , " & " , strtr ( $text , $translation_table ));
2008-07-09 23:39:36 +02:00
}
2008-08-16 09:27:34 +02:00
/**
* Press It form handler .
*
* @ package WordPress
* @ subpackage Press_This
* @ since unknown
*
* @ return int Post ID
*/
2008-05-14 22:01:09 +02:00
function press_it () {
2008-06-23 23:16:39 +02:00
// define some basic variables
2008-07-11 22:27:50 +02:00
$quick [ 'post_status' ] = isset ( $_REQUEST [ 'publish' ]) ? 'publish' : 'draft' ;
2008-06-10 18:13:06 +02:00
$quick [ 'post_category' ] = $_REQUEST [ 'post_category' ];
$quick [ 'tags_input' ] = $_REQUEST [ 'tags_input' ];
$quick [ 'post_title' ] = $_REQUEST [ 'post_title' ];
$quick [ 'post_content' ] = '' ;
2008-07-11 22:27:50 +02:00
2008-06-23 23:16:39 +02:00
// insert the post with nothing in it, to get an ID
2008-06-10 18:13:06 +02:00
$post_ID = wp_insert_post ( $quick , true );
2008-07-11 22:27:50 +02:00
2008-06-10 18:13:06 +02:00
$content = '' ;
switch ( $_REQUEST [ 'post_type' ] ) {
case 'text' :
case 'quote' :
2008-07-12 01:38:32 +02:00
$content .= $_REQUEST [ 'content' ];
2008-06-10 18:13:06 +02:00
break ;
2008-07-11 22:27:50 +02:00
2008-06-10 18:13:06 +02:00
case 'photo' :
2008-07-12 01:38:32 +02:00
$content = $_REQUEST [ 'content' ];
2008-07-11 22:27:50 +02:00
foreach ( ( array ) $_REQUEST [ 'photo_src' ] as $key => $image ) {
2008-08-09 07:36:14 +02:00
2008-06-23 23:16:39 +02:00
// see if files exist in content - we don't want to upload non-used selected files.
2008-07-18 05:19:12 +02:00
if ( strpos ( $_REQUEST [ 'content' ], $image ) !== false ) {
2008-06-23 23:16:39 +02:00
$upload = media_sideload_image ( $image , $post_ID , $_REQUEST [ 'photo_description' ][ $key ]);
2008-08-09 07:36:14 +02:00
2008-06-23 23:16:39 +02:00
// Replace the POSTED content <img> with correct uploaded ones.
2008-07-18 05:19:12 +02:00
// escape quote for matching
$quoted = preg_quote2 ( $image );
2008-06-23 23:16:39 +02:00
if ( ! is_wp_error ( $upload ) ) $content = preg_replace ( '/<img ([^>]*)src=(\"|\')' . $quoted . '(\2)([^>\/]*)\/*>/is' , $upload , $content );
}
2008-06-10 18:13:06 +02:00
}
2008-07-11 22:27:50 +02:00
2008-06-10 18:13:06 +02:00
break ;
2008-07-11 22:27:50 +02:00
2008-06-10 18:13:06 +02:00
case " video " :
2008-08-09 07:36:14 +02:00
if ( $_REQUEST [ 'embed_code' ])
2008-06-10 18:13:06 +02:00
$content .= $_REQUEST [ 'embed_code' ] . " \n \n " ;
2008-07-12 01:38:32 +02:00
$content .= $_REQUEST [ 'content' ];
2008-07-11 22:27:50 +02:00
break ;
2008-06-04 18:13:55 +02:00
}
2008-07-09 23:39:36 +02:00
// set the post_content
2008-07-12 01:38:32 +02:00
$quick [ 'post_content' ] = $content ;
2008-05-12 21:08:39 +02:00
2008-07-09 23:39:36 +02:00
// error handling for $post
2008-06-23 18:00:12 +02:00
if ( is_wp_error ( $post_ID )) {
2008-06-04 18:13:55 +02:00
wp_die ( $id );
wp_delete_post ( $post_ID );
2008-07-09 23:39:36 +02:00
// error handling for media_sideload
2008-06-23 18:00:12 +02:00
} elseif ( is_wp_error ( $upload )) {
wp_die ( $upload );
wp_delete_post ( $post_ID );
2008-07-11 22:27:50 +02:00
} else {
2008-06-04 18:13:55 +02:00
$quick [ 'ID' ] = $post_ID ;
wp_update_post ( $quick );
}
2008-05-12 21:08:39 +02:00
return $post_ID ;
}
2008-07-09 23:39:36 +02:00
// For submitted posts.
2008-08-09 07:36:14 +02:00
if ( 'post' == $_REQUEST [ 'action' ] ) {
2008-06-04 18:13:55 +02:00
check_admin_referer ( 'press-this' ); $post_ID = press_it (); ?>
2008-06-10 18:13:06 +02:00
<! 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 " < ? php do_action ( 'admin_xml_ns' ); ?> <?php language_attributes(); ?>>
< head >
< meta http - equiv = " Content-Type " content = " <?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?> " />
< title >< ? php _e ( 'Press This' ) ?> </title>
< ? php
add_thickbox ();
wp_enqueue_style ( 'press-this' );
2008-07-13 06:57:01 +02:00
wp_enqueue_style ( 'press-this-ie' );
2008-06-10 18:13:06 +02:00
wp_enqueue_style ( 'colors' );
wp_enqueue_script ( 'post' );
do_action ( 'admin_print_styles' );
do_action ( 'admin_print_scripts' );
do_action ( 'admin_head' );
?>
</ head >
2008-07-11 22:27:50 +02:00
< body class = " press-this " >
2008-07-29 07:22:58 +02:00
< div id = " message " class = " updated fade " >< 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-06-19 19:03:23 +02:00
< div id = " footer " >
< p >< ? php
do_action ( 'in_admin_footer' , '' );
$upgrade = apply_filters ( 'update_footer' , '' );
echo __ ( 'Thank you for creating with <a href="http://wordpress.org/">WordPress</a>' );
?> </p>
</ div >
2008-07-11 22:27:50 +02:00
< ? php do_action ( 'admin_footer' , '' ); ?>
2008-06-10 18:13:06 +02:00
</ body >
</ html >
2008-06-04 18:13:55 +02:00
< ? php die ;
2008-05-12 21:08:39 +02:00
}
2008-06-04 18:13:55 +02:00
// Ajax Requests
2008-07-02 17:26:51 +02:00
$title = wp_specialchars ( aposfix ( stripslashes ( $_GET [ 't' ])));
2008-06-19 19:03:23 +02:00
2008-07-11 22:27:50 +02:00
$selection = trim ( aposfix ( stripslashes ( $_GET [ 's' ]) ) );
if ( ! empty ( $selection ) ) {
$selection = preg_replace ( '/(\r?\n|\r)/' , '</p><p>' , $selection );
$selection = '<p>' . str_replace ( '<p></p>' , '' , $selection ) . '</p>' ;
}
2008-06-17 21:36:29 +02:00
$url = clean_url ( $_GET [ 'u' ]);
2008-06-10 18:13:06 +02:00
$image = $_GET [ 'i' ];
2008-06-19 19:03:23 +02:00
2008-06-10 18:13:06 +02:00
if ( $_REQUEST [ 'ajax' ] == 'thickbox' ) { ?>
2008-06-23 18:00:12 +02:00
< script type = " text/javascript " charset = " utf-8 " >
jQuery ( '.cancel' ) . click ( function () {
tb_remove ();
});
2008-07-11 22:27:50 +02:00
2008-06-23 18:00:12 +02:00
jQuery ( '.select' ) . click ( function () {
image_selector ();
});
</ script >
2008-06-10 18:13:06 +02:00
< h3 id = " title " >< label for = " post_title " >< ? php _e ( 'Description' ) ?> </label></h3>
< div class = " titlewrap " >
< input id = " this_photo_description " name = " photo_description " class = " text " onkeypress = " if(event.keyCode==13) image_selector(); " value = " <?php echo attribute_escape( $title );?> " />
</ div >
2008-07-11 22:27:50 +02:00
2008-07-04 18:12:31 +02:00
< p class = " centered " >< input type = " hidden " name = " this_photo " value = " <?php echo attribute_escape( $image ); ?> " id = " this_photo " />
< a href = " # " class = " select " >< img src = " <?php echo clean_url( $image ); ?> " alt = " <?php echo attribute_escape(__('Click to insert.')); ?> " title = " <?php echo attribute_escape(__('Click to insert.')); ?> " /></ a ></ p >
2008-07-11 22:27:50 +02:00
2008-07-04 18:12:31 +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>
2008-08-09 07:36:14 +02:00
< ? php die ;
2008-06-10 18:13:06 +02:00
}
2008-06-19 19:03:23 +02:00
if ( $_REQUEST [ 'ajax' ] == 'thickbox_url' ) { ?>
2008-06-23 18:00:12 +02:00
< script type = " text/javascript " charset = " utf-8 " >
jQuery ( '.cancel' ) . click ( function () {
tb_remove ();
});
2008-07-11 22:27:50 +02:00
2008-06-23 18:00:12 +02:00
jQuery ( '.select' ) . click ( function () {
image_selector ();
});
</ script >
2008-06-19 19:03:23 +02:00
< h3 id = " title " >< label for = " post_title " >< ? php _e ( 'URL' ) ?> </label></h3>
< div class = " titlewrap " >
< input id = " this_photo " name = " this_photo " class = " text " onkeypress = " if(event.keyCode==13) image_selector(); " />
</ div >
2008-07-11 22:27:50 +02:00
2008-06-19 19:03:23 +02:00
< h3 id = " title " >< label for = " post_title " >< ? php _e ( 'Description' ) ?> </label></h3>
< div class = " titlewrap " >
< input id = " this_photo_description " name = " photo_description " class = " text " onkeypress = " if(event.keyCode==13) image_selector(); " value = " <?php echo attribute_escape( $title );?> " />
</ div >
2008-07-11 22:27:50 +02:00
2008-06-28 18:27:21 +02:00
< p id = " options " >< a href = " # " class = " select " >< ? php _e ( 'Insert Image' ); ?> </a> | <a href="#" class="cancel"><?php _e('Cancel'); ?></a></p>
2008-08-09 07:36:14 +02:00
< ? php die ;
2008-06-19 19:03:23 +02:00
}
2008-05-20 18:37:54 +02:00
2008-06-04 18:13:55 +02:00
if ( $_REQUEST [ 'ajax' ] == 'video' ) { ?>
< h2 id = " embededcode " >< label for = " embed_code " >< ? php _e ( 'Embed Code' ) ?> </label></h2>
< div class = " titlewrap " >
2008-07-02 04:23:12 +02:00
< textarea name = " embed_code " id = " embed_code " rows = " 8 " cols = " 40 " >< ? php echo format_to_edit ( $selection ); ?> </textarea>
2008-06-04 18:13:55 +02:00
</ div >
< ? php die ;
}
2008-05-14 00:12:52 +02:00
2008-06-04 18:13:55 +02:00
if ( $_REQUEST [ 'ajax' ] == 'photo_images' ) {
function get_images_from_uri ( $uri ) {
2008-08-09 07:36:14 +02:00
if ( preg_match ( '/\.(jpg|jpe|jpeg|png|gif)/' , $uri ) && ! strpos ( $uri , 'blogger.com' ) )
2008-06-15 20:05:01 +02:00
return " ' " . $uri . " ' " ;
2008-06-19 19:03:23 +02:00
2008-06-04 18:13:55 +02:00
$content = wp_remote_fopen ( $uri );
if ( false === $content ) return '' ;
2008-07-11 22:27:50 +02:00
2008-06-17 21:36:29 +02:00
$host = parse_url ( $uri );
2008-07-11 22:27:50 +02:00
2008-08-05 19:13:58 +02:00
$pattern = '/<img ([^>]*)src=(\"|\')([^<>]+?\.(png|jpeg|jpg|jpe|gif))[^<>\'\"]*(\2)([^>\/]*)\/*>/is' ;
2008-06-04 18:13:55 +02:00
preg_match_all ( $pattern , $content , $matches );
2008-08-09 07:36:14 +02:00
2008-06-17 21:36:29 +02:00
if ( empty ( $matches [ 1 ]) ) return '' ;
2008-07-11 22:27:50 +02:00
2008-06-04 18:13:55 +02:00
$sources = array ();
2008-06-15 20:05:01 +02:00
foreach ( $matches [ 3 ] as $src ) {
2008-08-05 19:13:58 +02:00
// if no http in url
2008-06-17 21:36:29 +02:00
if ( strpos ( $src , 'http' ) === false )
2008-08-05 19:13:58 +02:00
// if it doesn't have a relative uri
if ( strpos ( $src , '../' ) === false && strpos ( $src , './' ) === false && strpos ( $src , '/' ) === true )
2008-06-17 21:36:29 +02:00
$src = 'http://' . str_replace ( '//' , '/' , $host [ 'host' ] . '/' . $src );
else
2008-08-05 19:13:58 +02:00
$src = 'http://' . str_replace ( '//' , '/' , $host [ 'host' ] . '/' . dirname ( $host [ 'path' ]) . '/' . $src );
2008-08-09 07:36:14 +02:00
2008-07-03 00:40:52 +02:00
$sources [] = clean_url ( $src );
2008-06-04 18:13:55 +02:00
}
return " ' " . implode ( " ',' " , $sources ) . " ' " ;
2008-08-09 07:36:14 +02:00
}
2008-07-11 22:27:50 +02:00
2008-06-15 20:05:01 +02:00
$url = urldecode ( $url );
$url = str_replace ( ' ' , '%20' , $url );
2008-08-09 07:36:14 +02:00
echo 'new Array(' . get_images_from_uri ( $url ) . ')' ;
2008-07-11 22:27:50 +02:00
die ;
2008-05-14 00:12:52 +02:00
}
2008-06-04 18:13:55 +02:00
if ( $_REQUEST [ 'ajax' ] == 'photo_js' ) { ?>
2008-06-23 18:00:12 +02:00
// gather images and load some default JS
var last = null
var img , img_tag , aspect , w , h , skip , i , strtoappend = " " ;
var my_src = eval (
jQuery . ajax ({
type : " GET " ,
url : " <?php echo clean_url( $_SERVER['PHP_SELF'] ); ?> " ,
cache : false ,
async : false ,
data : " ajax=photo_images&u=<?php echo urlencode( $url ); ?> " ,
dataType : " script "
}) . responseText
);
2008-07-11 22:27:50 +02:00
2008-06-23 18:00:12 +02:00
for ( i = 0 ; i < my_src . length ; i ++ ) {
2008-08-09 07:36:14 +02:00
img = new Image ();
img . src = my_src [ i ];
img_attr = 'id="img' + i + '"' ;
2008-06-23 18:00:12 +02:00
skip = false ;
if ( img . width && img . height ) {
2008-08-09 07:36:14 +02:00
if ( img . width * img . height < 2500 )
2008-06-23 18:00:12 +02:00
skip = true ;
aspect = img . width / img . height ;
scale = ( aspect > 1 ) ? ( 75 / img . width ) : ( 75 / img . height );
2008-07-11 22:27:50 +02:00
2008-06-23 18:00:12 +02:00
w = img . width ;
h = img . height ;
2008-07-11 22:27:50 +02:00
2008-06-23 18:00:12 +02:00
if ( scale < 1 ) {
w = parseInt ( img . width * scale );
h = parseInt ( img . height * scale );
2008-06-04 18:13:55 +02:00
}
2008-06-23 18:00:12 +02:00
img_attr += ' style="width: ' + w + 'px; height: ' + h + 'px;"' ;
}
if ( ! skip ) strtoappend += '<a href="?ajax=thickbox&i=' + img . src + '&u=<?php echo $url; ?>&height=400&width=500" title="" class="thickbox"><img src="' + img . src + '" ' + img_attr + '/></a>' ;
}
2008-07-11 22:27:50 +02:00
2008-06-23 18:00:12 +02:00
function pick ( img , desc ) {
2008-08-05 19:13:58 +02:00
if ( img ) {
if ( 'object' == typeof jQuery ( '.photolist input' ) && jQuery ( '.photolist input' ) . length != 0 ) length = jQuery ( '.photolist input' ) . length ;
2008-06-23 18:00:12 +02:00
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-08-05 19:13:58 +02:00
append_editor ( " \n \n " + '<p><img src="' + img + '" alt="' + desc + '" class="aligncenter"/></p>' );
2008-06-23 18:00:12 +02:00
}
tinyMCE . activeEditor . resizeToContent ();
return false ;
}
2008-07-11 22:27:50 +02:00
2008-06-23 18:00:12 +02:00
function image_selector () {
tb_remove ();
desc = jQuery ( '#this_photo_description' ) . val ();
src = jQuery ( '#this_photo' ) . val ();
pick ( src , desc );
return false ;
}
2008-07-11 22:27:50 +02:00
2008-06-23 18:00:12 +02:00
jQuery ( document ) . ready ( function () {
2008-08-05 19:13:58 +02:00
jQuery ( '#extra_fields' ) . html ( '<div class="photolist"></div><small id="photo_directions"><?php _e("Click images to select:") ?> <span><a href="#" id="photo_add_url" class="thickbox"><?php _e("Add from URL") ?> +</a></span></small><div class="titlewrap"><div id="img_container"></div></div>' );
2008-06-23 18:00:12 +02:00
jQuery ( '#img_container' ) . html ( strtoappend );
jQuery ( '#photo_add_url' ) . attr ( 'href' , '?ajax=thickbox_url&height=200&width=500' );
tb_init ( 'a.thickbox, area.thickbox, input.thickbox' );
});
2008-07-11 22:27:50 +02:00
2008-07-09 23:39:36 +02:00
< ? php die ;
}
2008-06-04 18:13:55 +02:00
if ( $_REQUEST [ 'ajax' ] == 'photo' ) { ?>
2008-06-19 19:03:23 +02:00
2008-07-09 23:39:36 +02:00
< ? php die ;
}
2008-05-28 20:18:44 +02:00
?>
<! 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 " < ? php do_action ( 'admin_xml_ns' ); ?> <?php language_attributes(); ?>>
< head >
< meta http - equiv = " Content-Type " content = " <?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?> " />
< title >< ? php _e ( 'Press This' ) ?> </title>
2008-07-04 18:12:31 +02:00
< script type = " text/javascript " src = " ../wp-includes/js/tinymce/tiny_mce.js?ver=311 " ></ script >
2008-05-28 20:18:44 +02:00
< ? php
add_thickbox ();
wp_enqueue_style ( 'press-this' );
2008-07-13 06:57:01 +02:00
wp_enqueue_style ( 'press-this-ie' );
2008-05-28 20:18:44 +02:00
wp_enqueue_style ( 'colors' );
2008-08-20 23:42:31 +02:00
wp_enqueue_script ( 'post' );
2008-07-12 01:38:32 +02:00
wp_enqueue_script ( 'editor_functions' );
2008-05-28 20:18:44 +02:00
2008-08-20 23:42:31 +02:00
// wp_teeny_mce();
2008-05-28 20:18:44 +02:00
do_action ( 'admin_print_styles' );
do_action ( 'admin_print_scripts' );
do_action ( 'admin_head' );
?>
< script type = " text/javascript " >
2008-08-09 07:36:14 +02:00
< ? php if ( user_can_richedit () ) {
2008-05-20 18:37:54 +02:00
$language = ( '' == get_locale () ) ? 'en' : strtolower ( substr ( get_locale (), 0 , 2 ) );
// Add TinyMCE languages
@ include_once ( dirname ( __FILE__ ) . '/../wp-includes/js/tinymce/langs/wp-langs.php' );
if ( isset ( $strings ) ) echo $strings ; ?>
( function () {
var base = tinymce . baseURL , sl = tinymce . ScriptLoader , ln = " <?php echo $language ; ?> " ;
sl . markDone ( base + '/langs/' + ln + '.js' );
sl . markDone ( base + '/themes/advanced/langs/' + ln + '.js' );
sl . markDone ( base + '/themes/advanced/langs/' + ln + '_dlg.js' );
})();
2008-07-11 22:27:50 +02:00
2008-05-14 22:01:09 +02:00
tinyMCE . init ({
mode : " textareas " ,
editor_selector : " mceEditor " ,
language : " <?php echo $language ; ?> " ,
width : " 100% " ,
2008-08-05 19:13:58 +02:00
height : " 300 " ,
2008-05-14 22:01:09 +02:00
theme : " advanced " ,
theme_advanced_buttons1 : " bold,italic,underline,blockquote,separator,strikethrough,bullist,numlist,undo,redo,link,unlink " ,
theme_advanced_buttons2 : " " ,
theme_advanced_buttons3 : " " ,
theme_advanced_toolbar_location : " top " ,
theme_advanced_toolbar_align : " left " ,
theme_advanced_statusbar_location : " bottom " ,
theme_advanced_resizing : true ,
theme_advanced_resize_horizontal : false ,
skin : " wp_theme " ,
dialog_type : " modal " ,
relative_urls : false ,
remove_script_host : false ,
convert_urls : false ,
apply_source_formatting : false ,
2008-07-11 22:27:50 +02:00
remove_linebreaks : true ,
2008-05-14 22:01:09 +02:00
accessibility_focus : false ,
tab_focus : " :next " ,
2008-05-22 17:47:37 +02:00
plugins : " safari,inlinepopups " ,
2008-06-17 21:36:29 +02:00
entities : " 38,amp,60,lt,62,gt " ,
2008-07-12 01:38:32 +02:00
force_p_newlines : true ,
save_callback : 'switchEditors.saveCallback'
2008-05-14 22:01:09 +02:00
});
< ? php } ?>
2008-05-20 18:37:54 +02:00
2008-06-04 18:13:55 +02:00
jQuery ( '#tags-input' ) . hide ();
2008-05-20 18:37:54 +02:00
2008-06-04 18:13:55 +02:00
tag_update_quickclicks ();
2008-05-20 18:37:54 +02:00
2008-06-04 18:13:55 +02:00
// add the quickadd form
jQuery ( '#jaxtag' ) . prepend ( '<span id="ajaxtag"><input type="text" name="newtag" id="newtag" class="form-input-tip" size="16" autocomplete="off" value="' + postL10n . addTag + '" /><input type="submit" class="button" id="tagadd" value="' + postL10n . add + '" tabindex="3" onclick="return false;" /><input type="hidden"/><input type="hidden"/><span class="howto">' + postL10n . separate + '</span></span>' );
2008-07-11 22:27:50 +02:00
2008-06-04 18:13:55 +02:00
jQuery ( '#tagadd' ) . click ( tag_flush_to_text );
jQuery ( '#newtag' ) . focus ( function () {
if ( this . value == postL10n . addTag )
jQuery ( this ) . val ( '' ) . removeClass ( 'form-input-tip' );
});
jQuery ( '#newtag' ) . blur ( function () {
2008-08-09 07:36:14 +02:00
if ( this . value == '' )
2008-06-04 18:13:55 +02:00
jQuery ( this ) . val ( postL10n . addTag ) . addClass ( 'form-input-tip' );
});
2008-05-14 22:01:09 +02:00
2008-06-04 18:13:55 +02:00
// auto-save tags on post save/publish
jQuery ( '#publish' ) . click ( tag_save_on_publish );
jQuery ( '#save-post' ) . click ( tag_save_on_publish );
2008-07-11 22:27:50 +02:00
2008-05-28 20:18:44 +02:00
function set_menu ( type ) {
jQuery ( '#text_button' ) . removeClass ( 'ui-tabs-selected' );
jQuery ( '#menu li' ) . removeClass ( 'ui-tabs-selected' );
jQuery ( '#' + type + '_button' ) . addClass ( 'ui-tabs-selected' );
jQuery ( " #post_type " ) . val ( type );
}
2008-07-11 22:27:50 +02:00
2008-05-28 20:18:44 +02:00
function set_editor ( text ) {
2008-07-11 22:27:50 +02: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-07-11 22:27:50 +02:00
2008-06-10 18:13:06 +02:00
function append_editor ( text ) {
2008-07-11 22:27:50 +02:00
if ( '' != text && tinyMCE . activeEditor ) tinyMCE . execCommand ( 'mceInsertContent' , false , text );
2008-06-10 18:13:06 +02:00
}
2008-07-11 22:27:50 +02:00
2008-05-28 20:18:44 +02:00
function set_title ( title ) { jQuery ( " #content_type " ) . text ( title ); }
2008-06-19 19:03:23 +02:00
2008-06-04 18:13:55 +02:00
function show ( tab_name ) {
jQuery ( 'body' ) . removeClass ( 'video_split' );
jQuery ( '#extra_fields' ) . hide ();
switch ( tab_name ) {
case 'text' :
set_menu ( 'text' );
2008-06-19 19:03:23 +02:00
set_title ( '<?php _e(' Post ') ?>' );
2008-07-09 21:51:53 +02:00
< ? php if ( $selection ) { ?>
2008-07-14 19:26:30 +02:00
set_editor ( '<?php echo $selection; ?><p><a href="<?php echo $url ?>"><?php echo $title; ?></a>.</p>' );
2008-07-09 21:51:53 +02:00
< ? php } else { ?>
2008-07-11 22:27:50 +02:00
set_editor ( '<p><a href="<?php echo $url ?>"><?php echo $title; ?></a></p>' );
2008-07-09 23:39:36 +02:00
< ? php } ?>
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 'quote' :
set_menu ( 'quote' );
set_title ( '<?php _e(' Quote ') ?>' );
2008-07-11 22:27:50 +02:00
set_editor ( '<blockquote><?php echo $selection; ?> <p><cite><a href="<?php echo $url; ?>"><?php echo $title; ?> </a> </cite> </p></blockquote>' );
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 'video' :
set_menu ( 'video' );
set_title ( '<?php _e(' Caption ') ?>' );
jQuery ( '#extra_fields' ) . show ();
jQuery ( 'body' ) . addClass ( 'video_split' );
2008-06-06 10:49:45 +02:00
jQuery ( '#extra_fields' ) . load ( '<?php echo clean_url($_SERVER[' PHP_SELF ']); ?>' , { ajax : 'video' , s : '<?php echo attribute_escape($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 ) ) {
2008-07-09 23:39:36 +02:00
list ( $domain , $video_id ) = split ( " v= " , $url );
$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 ) ) {
list ( $domain , $video_id ) = split ( " .com/ " , $url );
$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-06-04 18:13:55 +02:00
jQuery ( '#embed_code' ) . prepend ( '<?php echo htmlentities($content); ?>' );
2008-07-11 22:27:50 +02:00
2008-07-14 19:26:30 +02:00
set_editor ( '<a href="<?php echo $url ?>"><?php echo $title; ?></a>.' );
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' :
set_menu ( 'photo' );
2008-06-26 22:13:32 +02:00
set_title ( '<?php _e(' Post ') ?>' );
2008-07-02 04:23:12 +02:00
< ? php if ( $selection ) { ?>
2008-07-11 22:27:50 +02:00
set_editor ( '<?php echo $selection; ?><p><a href="<?php echo $url ?>"><?php echo $title; ?></a></p>' );
2008-07-09 21:51:53 +02:00
< ? php } else { ?>
2008-07-11 22:27:50 +02:00
set_editor ( '<p><a href="<?php echo $url ?>"><?php echo $title; ?></a></p>' );
2008-07-09 23:39:36 +02:00
< ? php } ?>
2008-06-04 18:13:55 +02:00
jQuery ( '#extra_fields' ) . show ();
2008-06-28 18:27:21 +02:00
jQuery ( '#extra_fields' ) . before ( '<h2 id="waiting"><img src="images/loading.gif" alt="" /><?php echo js_escape( __( ' Loading ... ' ) ); ?></h2>' );
2008-06-04 18:13:55 +02:00
jQuery . ajax ({
type : " GET " ,
cache : false ,
url : " <?php echo clean_url( $_SERVER['PHP_SELF'] ); ?> " ,
2008-06-06 10:49:45 +02:00
data : " ajax=photo_js&u=<?php echo urlencode( $url )?> " ,
2008-06-04 18:13:55 +02:00
dataType : " script " ,
success : function () {
2008-06-15 20:05:01 +02:00
jQuery ( '#waiting' ) . remove ();
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
}
}
2008-07-11 22:27:50 +02:00
2008-06-04 18:13:55 +02:00
jQuery ( document ) . ready ( function () {
2008-08-09 07:36:14 +02:00
jQuery ( '#menu li' ) . click ( function (){
2008-06-04 18:13:55 +02:00
tab_name = this . id . split ( '_' );
tab_name = tab_name [ 0 ];
show ( tab_name );
2008-05-28 20:18:44 +02:00
});
2008-06-23 18:00:12 +02:00
// Set default tabs
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' );
2008-08-05 19:13:58 +02:00
< ? php } elseif ( preg_match ( " /flickr \ .com/i " , $url ) ) { ?>
2008-06-04 18:13:55 +02:00
show ( 'photo' );
< ? php } ?>
2008-05-28 20:18:44 +02:00
});
2008-07-09 23:39:36 +02:00
2008-06-04 18:13:55 +02:00
</ script >
2008-05-14 22:01:09 +02:00
</ head >
2008-05-30 01:30:28 +02:00
< body class = " press-this " >
2008-05-20 18:37:54 +02:00
< div id = " wphead " >
2008-06-23 18:00:12 +02:00
< h1 >< span id = " viewsite " >< a href = " <?php echo get_option('home'); ?>/ " >< ? php _e ( 'Visit:' ) ?> <?php bloginfo('name'); ?></a></span></h1>
2008-05-20 18:37:54 +02:00
</ div >
2008-05-22 17:47:37 +02:00
2008-06-23 18:00:12 +02:00
< ul id = " menu " class = " ui-tabs-nav " >
< li id = " text_button " class = " ui-tabs-selected " >< a href = " # " >< ? php _e ( 'Text' ) ?> </a></li>
< li id = " photo_button " >< a href = " # " >< ? php _e ( 'Photo' ) ?> </a></li>
< li id = " quote_button " >< a href = " # " >< ? php _e ( 'Quote' ) ?> </a></li>
< li id = " video_button " >< a href = " # " >< ? php _e ( 'Video' ) ?> </a></li>
</ ul >
< form action = " press-this.php?action=post " method = " post " >
< ? php wp_nonce_field ( 'press-this' ) ?>
< input type = " hidden " name = " post_type " id = " post_type " value = " text " />
< div id = " posting " >
< h2 id = " title " >< label for = " post_title " >< ? php _e ( 'Title' ) ?> </label></h2>
< div class = " titlewrap " >
< input name = " post_title " id = " post_title " class = " text " value = " <?php echo attribute_escape( $title );?> " />
</ div >
2008-07-11 22:27:50 +02:00
2008-06-23 18:00:12 +02:00
< div id = " extra_fields " style = " display: none " ></ div >
2008-07-11 22:27:50 +02:00
2008-06-23 18:00:12 +02:00
< div class = " editor_area " >
< h2 id = " content_type " >< label for = " content " >< ? php _e ( 'Post' ) ?> </label></h2>
< div class = " editor-container " >
2008-08-05 19:13:58 +02:00
< textarea name = " content " id = " content " style = " width:100%; " class = " mceEditor " rows = " 15 " >< ? php if ( $selection ) { echo wp_richedit_pre ( $selection ); } ?> <a href="<?php echo $url ?>"><?php echo $title; ?></a>.</textarea>
2008-06-23 18:00:12 +02:00
</ div >
</ div >
</ div >
2008-07-09 21:51:53 +02:00
2008-06-23 18:00:12 +02:00
< div id = " categories " >
< div class = " submitbox " id = " submitpost " >
2008-07-11 22:27:50 +02:00
< div id = " previewview " ></ div >
< div class = " inside " >
< h2 >< ? php _e ( 'Categories' ) ?> </h2>
< div id = " categories-all " >
< ul id = " categorychecklist " class = " list:category categorychecklist form-no-clear " >
< ? php wp_category_checklist () ?>
</ ul >
</ div >
2008-08-09 07:36:14 +02:00
2008-07-11 22:27:50 +02:00
< h2 >< ? php _e ( 'Tags' ) ?> </h2>
< p id = " jaxtag " >< label class = " hidden " for = " newtag " >< ? php _e ( 'Tags' ); ?> </label><input type="text" name="tags_input" class="tags-input" id="tags-input" size="40" tabindex="3" value="<?php echo get_tags_to_edit( $post->ID ); ?>" /></p>
< div id = " tagchecklist " ></ div >
2008-06-23 18:00:12 +02:00
</ div >
2008-07-11 22:27:50 +02:00
2008-08-09 07:36:14 +02:00
< p class = " submit " >
2008-07-11 22:27:50 +02:00
< input type = " submit " name = " draft " value = " <?php _e('Save') ?> " onclick = " document.getElementById('photo_saving').style.display = ''; " />
< input type = " submit " name = " publish " value = " <?php _e('Publish') ?> " onclick = " document.getElementById('photo_saving').style.display = ''; " />
< img src = " images/loading-publish.gif " alt = " " id = " photo_saving " style = " display:none; " />
</ p >
2008-06-28 18:27:21 +02:00
</ div >
2008-06-23 18:00:12 +02:00
</ div >
</ form >
2008-05-28 20:18:44 +02:00
</ body >
2008-08-20 23:42:31 +02:00
</ html >