WordPress 4.0
[autoinstalls/wordpress.git] / wp-includes / class-wp-ajax-response.php
index 24eb687f123f1e697d64678c8f9aae8178a539b8..7bed81c7bc0628e8fe116680b0e68115983a4b88 100644 (file)
@@ -13,7 +13,7 @@ class WP_Ajax_Response {
         * @var array
         * @access private
         */
-       var $responses = array();
+       private $responses = array();
 
        /**
         * Constructor - Passes args to {@link WP_Ajax_Response::add()}.
@@ -24,11 +24,63 @@ class WP_Ajax_Response {
         * @param string|array $args Optional. Will be passed to add() method.
         * @return WP_Ajax_Response
         */
-       function __construct( $args = '' ) {
+       public function __construct( $args = '' ) {
                if ( !empty($args) )
                        $this->add($args);
        }
 
+       /**
+        * Make private properties readable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to get.
+        * @return mixed Property.
+        */
+       public function __get( $name ) {
+               return $this->$name;
+       }
+
+       /**
+        * Make private properties settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name  Property to set.
+        * @param mixed  $value Property value.
+        * @return mixed Newly-set property.
+        */
+       public function __set( $name, $value ) {
+               return $this->$name = $value;
+       }
+
+       /**
+        * Make private properties checkable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to check if set.
+        * @return bool Whether the property is set.
+        */
+       public function __isset( $name ) {
+               return isset( $this->$name );
+       }
+
+       /**
+        * Make private properties un-settable for backwards compatibility.
+        *
+        * @since 4.0.0
+        * @access public
+        *
+        * @param string $name Property to unset.
+        */
+       public function __unset( $name ) {
+               unset( $this->$name );
+       }
+
        /**
         * Append to XML response based on given arguments.
         *
@@ -52,7 +104,7 @@ class WP_Ajax_Response {
         * @param string|array $args Override defaults.
         * @return string XML response.
         */
-       function add( $args = '' ) {
+       public function add( $args = '' ) {
                $defaults = array(
                        'what' => 'object', 'action' => false,
                        'id' => '0', 'old_id' => false,
@@ -61,33 +113,40 @@ class WP_Ajax_Response {
                );
 
                $r = wp_parse_args( $args, $defaults );
-               extract( $r, EXTR_SKIP );
-               $position = preg_replace( '/[^a-z0-9:_-]/i', '', $position );
 
-               if ( is_wp_error($id) ) {
+               $position = preg_replace( '/[^a-z0-9:_-]/i', '', $r['position'] );
+               $id = $r['id'];
+               $what = $r['what'];
+               $action = $r['action'];
+               $old_id = $r['old_id'];
+               $data = $r['data'];
+
+               if ( is_wp_error( $id ) ) {
                        $data = $id;
                        $id = 0;
                }
 
                $response = '';
-               if ( is_wp_error($data) ) {
+               if ( is_wp_error( $data ) ) {
                        foreach ( (array) $data->get_error_codes() as $code ) {
-                               $response .= "<wp_error code='$code'><![CDATA[" . $data->get_error_message($code) . "]]></wp_error>";
-                               if ( !$error_data = $data->get_error_data($code) )
+                               $response .= "<wp_error code='$code'><![CDATA[" . $data->get_error_message( $code ) . "]]></wp_error>";
+                               if ( ! $error_data = $data->get_error_data( $code ) ) {
                                        continue;
+                               }
                                $class = '';
-                               if ( is_object($error_data) ) {
-                                       $class = ' class="' . get_class($error_data) . '"';
-                                       $error_data = get_object_vars($error_data);
+                               if ( is_object( $error_data ) ) {
+                                       $class = ' class="' . get_class( $error_data ) . '"';
+                                       $error_data = get_object_vars( $error_data );
                                }
 
                                $response .= "<wp_error_data code='$code'$class>";
 
-                               if ( is_scalar($error_data) ) {
+                               if ( is_scalar( $error_data ) ) {
                                        $response .= "<![CDATA[$error_data]]>";
-                               } elseif ( is_array($error_data) ) {
-                                       foreach ( $error_data as $k => $v )
+                               } elseif ( is_array( $error_data ) ) {
+                                       foreach ( $error_data as $k => $v ) {
                                                $response .= "<$k><![CDATA[$v]]></$k>";
+                                       }
                                }
 
                                $response .= "</wp_error_data>";
@@ -97,15 +156,16 @@ class WP_Ajax_Response {
                }
 
                $s = '';
-               if ( is_array($supplemental) ) {
-                       foreach ( $supplemental as $k => $v )
+               if ( is_array( $r['supplemental'] ) ) {
+                       foreach ( $r['supplemental'] as $k => $v ) {
                                $s .= "<$k><![CDATA[$v]]></$k>";
+                       }
                        $s = "<supplemental>$s</supplemental>";
                }
 
-               if ( false === $action )
+               if ( false === $action ) {
                        $action = $_POST['action'];
-
+               }
                $x = '';
                $x .= "<response action='{$action}_$id'>"; // The action attribute in the xml output is formatted like a nonce action
                $x .=   "<$what id='$id' " . ( false === $old_id ? '' : "old_id='$old_id' " ) . "position='$position'>";
@@ -125,7 +185,7 @@ class WP_Ajax_Response {
         *
         * @since 2.1.0
         */
-       function send() {
+       public function send() {
                header( 'Content-Type: text/xml; charset=' . get_option( 'blog_charset' ) );
                echo "<?xml version='1.0' encoding='" . get_option( 'blog_charset' ) . "' standalone='yes'?><wp_ajax>";
                foreach ( (array) $this->responses as $response )