Version Description
Download this release
Release Info
Developer | willmot |
Plugin | The WP Remote WordPress Plugin |
Version | 0.4 |
Comparing to | |
See all releases |
Code changes from version 0.3 to 0.4
- plugin.php +15 -4
- readme.txt +1 -1
- wpr.plugin.php → wpr.admin.php +0 -0
- wpr.api.php +35 -2
- wpr.extend-xmlrpc.php +0 -74
plugin.php
CHANGED
@@ -3,12 +3,23 @@
|
|
3 |
/*
|
4 |
Plugin Name: WP Remote
|
5 |
Description: Extends the functionality of <a href="http://www.wpremote.com">WP Remote</a>.
|
6 |
-
Version: 0.
|
7 |
Author: willmot
|
8 |
Author URI: http://humanmade.co.uk/
|
9 |
*/
|
10 |
|
11 |
-
require_once( 'wpr.
|
12 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
-
tj_add_rewrite_rule( 'wpremote-api', null, dirname( __FILE__ ) . '/wpr.api.php' );
|
3 |
/*
|
4 |
Plugin Name: WP Remote
|
5 |
Description: Extends the functionality of <a href="http://www.wpremote.com">WP Remote</a>.
|
6 |
+
Version: 0.4
|
7 |
Author: willmot
|
8 |
Author URI: http://humanmade.co.uk/
|
9 |
*/
|
10 |
|
11 |
+
require_once( 'wpr.admin.php' );
|
12 |
+
|
13 |
+
function wpr_catch_api_call() {
|
14 |
+
|
15 |
+
if( !urldecode( $_GET['wpr_api_key'] ) || !isset( $_GET['actions'] ) ) {
|
16 |
+
return;
|
17 |
+
}
|
18 |
+
|
19 |
+
require_once( 'wpr.api.php' );
|
20 |
+
|
21 |
+
exit;
|
22 |
+
|
23 |
+
}
|
24 |
+
add_action( 'init', 'wpr_catch_api_call', 1 );
|
25 |
|
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: willmot, joehoyle
|
|
3 |
Tags: wpremote, remote, xmlrpc
|
4 |
Requires at least: 2.7
|
5 |
Tested up to: 3.0
|
6 |
-
Stable tag: 0.
|
7 |
|
8 |
Adds extra functionality for use with WP Remote
|
9 |
|
3 |
Tags: wpremote, remote, xmlrpc
|
4 |
Requires at least: 2.7
|
5 |
Tested up to: 3.0
|
6 |
+
Stable tag: 0.4
|
7 |
|
8 |
Adds extra functionality for use with WP Remote
|
9 |
|
wpr.plugin.php → wpr.admin.php
RENAMED
File without changes
|
wpr.api.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
if( !
|
4 |
echo json_encode( 'bad-api-key' );
|
5 |
exit;
|
6 |
}
|
@@ -37,4 +37,37 @@ foreach( $actions as $action => $value ) :
|
|
37 |
|
38 |
endforeach;
|
39 |
|
40 |
-
echo json_encode( $actions );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
<?php
|
2 |
|
3 |
+
if( !isset( $_GET['wpr_api_key'] ) || urldecode( $_GET['wpr_api_key'] ) !== get_option( 'wpr_api_key' ) || !isset( $_GET['actions'] ) ) {
|
4 |
echo json_encode( 'bad-api-key' );
|
5 |
exit;
|
6 |
}
|
37 |
|
38 |
endforeach;
|
39 |
|
40 |
+
echo json_encode( $actions );
|
41 |
+
|
42 |
+
// functions
|
43 |
+
|
44 |
+
function _wpr_get_plugins() {
|
45 |
+
|
46 |
+
require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
|
47 |
+
|
48 |
+
$plugins = get_plugins( );
|
49 |
+
|
50 |
+
if( function_exists( 'get_site_transient' ) )
|
51 |
+
$current = get_site_transient( 'update_plugins' );
|
52 |
+
else
|
53 |
+
$current = get_transient( 'update_plugins' );
|
54 |
+
|
55 |
+
foreach ( (array) $plugins as $plugin_file => $plugin ) {
|
56 |
+
|
57 |
+
$new_version = $current->response[$plugin_file]->new_version;
|
58 |
+
|
59 |
+
if ( is_plugin_active( $plugin_file ) ) {
|
60 |
+
$plugins[$plugin_file]['active'] = true;
|
61 |
+
} else {
|
62 |
+
$plugins[$plugin_file]['active'] = false;
|
63 |
+
}
|
64 |
+
|
65 |
+
if ( $new_version ) {
|
66 |
+
$plugins[$plugin_file]['latest_version'] = $new_version;
|
67 |
+
} else {
|
68 |
+
$plugins[$plugin_file]['latest_version'] = $plugin['Version'];
|
69 |
+
}
|
70 |
+
}
|
71 |
+
|
72 |
+
return $plugins;
|
73 |
+
}
|
wpr.extend-xmlrpc.php
DELETED
@@ -1,74 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
function wpr_attach_new_xmlrpc($methods) {
|
4 |
-
|
5 |
-
if( !isset( $methods['wp.getPluginList'] ) ) {
|
6 |
-
$methods['wp.getPluginList'] = 'wpr_get_plugin_list';
|
7 |
-
}
|
8 |
-
|
9 |
-
return $methods;
|
10 |
-
}
|
11 |
-
|
12 |
-
add_action('xmlrpc_methods', 'wpr_attach_new_xmlrpc');
|
13 |
-
|
14 |
-
function wpr_get_plugin_list( $args ) {
|
15 |
-
|
16 |
-
$blog_id = (int) $args[0];
|
17 |
-
$username = $args[1];
|
18 |
-
$password = $args[2];
|
19 |
-
|
20 |
-
//check if xmlrpc is enabled
|
21 |
-
if ( !get_option( 'enable_xmlrpc' ) ) {
|
22 |
-
return new IXR_Error( 405, sprintf( __( 'XML-RPC services are disabled on this blog. An admin user can enable them at %s'), admin_url('options-writing.php') ) );
|
23 |
-
}
|
24 |
-
|
25 |
-
//authenticate the user
|
26 |
-
$user = wp_authenticate($username, $password);
|
27 |
-
|
28 |
-
if (is_wp_error($user)) {
|
29 |
-
return new IXR_Error(403, __('Bad login/pass combination.'));
|
30 |
-
}
|
31 |
-
|
32 |
-
set_current_user( $user->ID );
|
33 |
-
|
34 |
-
//don't allow anyone to get them via xml rpc
|
35 |
-
if ( !current_user_can( 'activate_plugins' ) ) {
|
36 |
-
return new IXR_Error( 401, __( 'Sorry, you cannot manage plugins.' ) );
|
37 |
-
}
|
38 |
-
|
39 |
-
do_action( 'xmlrpc_call', 'wp.getPluginList' );
|
40 |
-
|
41 |
-
return _wpr_get_plugins();
|
42 |
-
|
43 |
-
}
|
44 |
-
|
45 |
-
function _wpr_get_plugins() {
|
46 |
-
|
47 |
-
require_once( ABSPATH . '/wp-admin/includes/plugin.php' );
|
48 |
-
|
49 |
-
$plugins = get_plugins( );
|
50 |
-
|
51 |
-
if( function_exists( 'get_site_transient' ) )
|
52 |
-
$current = get_site_transient( 'update_plugins' );
|
53 |
-
else
|
54 |
-
$current = get_transient( 'update_plugins' );
|
55 |
-
|
56 |
-
foreach ( (array) $plugins as $plugin_file => $plugin ) {
|
57 |
-
|
58 |
-
$new_version = $current->response[$plugin_file]->new_version;
|
59 |
-
|
60 |
-
if ( is_plugin_active( $plugin_file ) ) {
|
61 |
-
$plugins[$plugin_file]['active'] = true;
|
62 |
-
} else {
|
63 |
-
$plugins[$plugin_file]['active'] = false;
|
64 |
-
}
|
65 |
-
|
66 |
-
if ( $new_version ) {
|
67 |
-
$plugins[$plugin_file]['latest_version'] = $new_version;
|
68 |
-
} else {
|
69 |
-
$plugins[$plugin_file]['latest_version'] = $plugin['Version'];
|
70 |
-
}
|
71 |
-
}
|
72 |
-
|
73 |
-
return $plugins;
|
74 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|