1 | 156a157,161 |
---|
2 | > |
---|
3 | > // Extensions for Plugin management |
---|
4 | > 'wp.getPluginList' => 'this:wp_getPluginList', |
---|
5 | > 'wp.activatePlugin' => 'this:wp_activatePlugin', |
---|
6 | > 'wp.deactivatePlugin' => 'this:wp_deactivatePlugin', |
---|
7 | 1335a1341,1361 |
---|
8 | > |
---|
9 | > /** |
---|
10 | > * Retrieve list of plugins |
---|
11 | > * |
---|
12 | > * @since 3.0.0 |
---|
13 | > * |
---|
14 | > * @param array $args Method parameters. |
---|
15 | > * @return array |
---|
16 | > */ |
---|
17 | > function wp_getPluginList($args) { |
---|
18 | > $this->escape( $args ); |
---|
19 | > |
---|
20 | > $blog_id = (int) $args[0]; |
---|
21 | > $username = $args[1]; |
---|
22 | > $password = $args[2]; |
---|
23 | > |
---|
24 | > if ( !$user = $this->login($username, $password) ) |
---|
25 | > return $this->error; |
---|
26 | > |
---|
27 | > if ( ! current_user_can('activate_plugins') ) |
---|
28 | > return new IXR_Error( 403, __( 'You are not allowed access to details about plugins.' ) ); |
---|
29 | 1336a1363,1426 |
---|
30 | > do_action('xmlrpc_call', 'wp.getPluginList'); |
---|
31 | > return get_plugins( ); |
---|
32 | > } |
---|
33 | > |
---|
34 | > /** |
---|
35 | > * Activate a plugin |
---|
36 | > * |
---|
37 | > * @since 3.0.0 |
---|
38 | > * |
---|
39 | > * @param array $args Method parameters. |
---|
40 | > * @return boolean |
---|
41 | > */ |
---|
42 | > function wp_activatePlugin($args) { |
---|
43 | > $this->escape( $args ); |
---|
44 | > |
---|
45 | > $blog_id = (int) $args[0]; // Not used for now |
---|
46 | > $username = $args[1]; |
---|
47 | > $password = $args[2]; |
---|
48 | > $plugin = $args[3]; |
---|
49 | > |
---|
50 | > if ( !$user = $this->login($username, $password) ) |
---|
51 | > return $this->error; |
---|
52 | > |
---|
53 | > if ( ! current_user_can('activate_plugins') ) |
---|
54 | > return new IXR_Error( 403, __( 'You are not allowed access to details about plugins.' ) ); |
---|
55 | > |
---|
56 | > do_action('xmlrpc_call', 'wp.activatePlugin'); |
---|
57 | > |
---|
58 | > if (gettype(activate_plugin( $plugin, $redirect = '')) == 'WP_Error') { |
---|
59 | > return false; |
---|
60 | > } else { |
---|
61 | > return true; |
---|
62 | > } |
---|
63 | > } |
---|
64 | > |
---|
65 | > /** |
---|
66 | > * Deactivate a plugin |
---|
67 | > * |
---|
68 | > * @since 3.0.0 |
---|
69 | > * |
---|
70 | > * @param array $args Method parameters. |
---|
71 | > * @return boolean |
---|
72 | > */ |
---|
73 | > function wp_deactivatePlugin($args) { |
---|
74 | > $this->escape( $args ); |
---|
75 | > |
---|
76 | > $blog_id = (int) $args[0]; // Not used for now |
---|
77 | > $username = $args[1]; |
---|
78 | > $password = $args[2]; |
---|
79 | > $plugin = $args[3]; |
---|
80 | > |
---|
81 | > if ( !$user = $this->login($username, $password) ) |
---|
82 | > return $this->error; |
---|
83 | > |
---|
84 | > if ( ! current_user_can('activate_plugins') ) |
---|
85 | > return new IXR_Error( 403, __( 'You are not allowed access to details about plugins.' ) ); |
---|
86 | > |
---|
87 | > do_action('xmlrpc_call', 'wp.deactivatePlugin'); |
---|
88 | > |
---|
89 | > $plugin = array($plugin); |
---|
90 | > deactivate_plugins( $plugin, true ); |
---|
91 | > return true; |
---|
92 | > } |
---|
93 | > |
---|