WordPress.org

Make WordPress Core

Ticket #10789: xmlrpc.php.plugins.diff

File xmlrpc.php.plugins.diff, 3.6 KB (added by dklon, 4 years ago)

XML-RPC plugin functions and get_plugin_data() mod for plugin.php

  • wp-admin/includes/plugin.php

     
    8181                'TextDomain' => 'Text Domain', 
    8282                'DomainPath' => 'Domain Path', 
    8383                'Network' => 'Network', 
     84                'Active' => False, 
    8485                // Site Wide Only is deprecated in favor of Network. 
    8586                '_sitewide' => 'Site Wide Only', 
    8687        ); 
     
    9798 
    9899        //For backward compatibility by default Title is the same as Name. 
    99100        $plugin_data['Title'] = $plugin_data['Name']; 
     101         
     102        $plugin_data['Active'] = is_plugin_active(plugin_basename( $plugin_file ) ); 
    100103 
    101104        if ( $markup || $translate ) 
    102105                $plugin_data = _get_plugin_data_markup_translate( $plugin_file, $plugin_data, $markup, $translate ); 
  • xmlrpc.php

     
    154154                        'wp.editComment'                => 'this:wp_editComment', 
    155155                        'wp.newComment'                 => 'this:wp_newComment', 
    156156                        'wp.getCommentStatusList' => 'this:wp_getCommentStatusList', 
     157                         
     158                        // Extensions for Plugin management 
     159                        'wp.getPluginList' => 'this:wp_getPluginList', 
     160                        'wp.activatePlugin' => 'this:wp_activatePlugin', 
     161                        'wp.deactivatePlugin' => 'this:wp_deactivatePlugin', 
    157162 
     163 
    158164                        // Blogger API 
    159165                        'blogger.getUsersBlogs' => 'this:blogger_getUsersBlogs', 
    160166                        'blogger.getUserInfo' => 'this:blogger_getUserInfo', 
     
    13331339 
    13341340                return get_comment_statuses( ); 
    13351341        } 
     1342         
     1343        /** 
     1344         * Retrieve list of plugins 
     1345         * 
     1346         * @since 3.0.0 
     1347         * 
     1348         * @param array $args Method parameters. 
     1349         * @return array 
     1350         */ 
     1351        function wp_getPluginList($args) { 
     1352                $this->escape( $args ); 
    13361353 
     1354                $blog_id        = (int) $args[0]; 
     1355                $username       = $args[1]; 
     1356                $password       = $args[2]; 
     1357         
     1358                if ( !$user = $this->login($username, $password) ) 
     1359                        return $this->error; 
     1360                         
     1361                if ( ! current_user_can('activate_plugins') ) 
     1362                        return new IXR_Error( 403, __( 'You are not allowed access to details about plugins.' ) ); 
     1363 
     1364                do_action('xmlrpc_call', 'wp.getPluginList'); 
     1365                return get_plugins( ); 
     1366        } 
     1367         
    13371368        /** 
     1369         * Activate a plugin 
     1370         * 
     1371         * @since 3.0.0 
     1372         * 
     1373         * @param array $args Method parameters. 
     1374         * @return boolean 
     1375         */ 
     1376        function wp_activatePlugin($args) { 
     1377                $this->escape( $args ); 
     1378                 
     1379                $blog_id        = (int) $args[0];       // Not used for now 
     1380                $username       = $args[1]; 
     1381                $password       = $args[2]; 
     1382                $plugin     = $args[3]; 
     1383                 
     1384                if ( !$user = $this->login($username, $password) ) 
     1385                        return $this->error; 
     1386                         
     1387                if ( ! current_user_can('activate_plugins') ) 
     1388                        return new IXR_Error( 403, __( 'You are not allowed access to details about plugins.' ) ); 
     1389 
     1390                do_action('xmlrpc_call', 'wp.activatePlugin'); 
     1391 
     1392                if (gettype(activate_plugin( $plugin, $redirect = '')) == 'WP_Error') { 
     1393                        return false; 
     1394                } else { 
     1395                        return true; 
     1396                } 
     1397        } 
     1398         
     1399        /** 
     1400         * Deactivate a plugin 
     1401         * 
     1402         * @since 3.0.0 
     1403         * 
     1404         * @param array $args Method parameters. 
     1405         * @return boolean 
     1406         */ 
     1407        function wp_deactivatePlugin($args) { 
     1408                $this->escape( $args ); 
     1409                 
     1410                $blog_id        = (int) $args[0];       // Not used for now 
     1411                $username       = $args[1]; 
     1412                $password       = $args[2]; 
     1413                $plugin     = $args[3]; 
     1414                 
     1415                if ( !$user = $this->login($username, $password) ) 
     1416                        return $this->error; 
     1417                         
     1418                if ( ! current_user_can('activate_plugins') ) 
     1419                        return new IXR_Error( 403, __( 'You are not allowed access to details about plugins.' ) ); 
     1420                 
     1421                do_action('xmlrpc_call', 'wp.deactivatePlugin'); 
     1422 
     1423                $plugin = array($plugin); 
     1424                deactivate_plugins( $plugin, true ); 
     1425                return true; 
     1426        } 
     1427 
     1428 
     1429        /** 
    13381430         * Retrieve comment count. 
    13391431         * 
    13401432         * @since 2.5.0