/** * Sends updated actions to the list table view * * @todo Fix reliability issues with sidebar widgets * * @uses gather_updated_items * @uses generate_row * * @param array $response Response to heartbeat * @param array $data Data from heartbeat * * @return array Data sent to heartbeat */ public function live_update($response, $data) { unset($response); if (!isset($data['wp-stream-heartbeat-last-time'])) { return array(); } $last_time = $data['wp-stream-heartbeat-last-time']; $query = $data['wp-stream-heartbeat-query']; if (empty($query)) { $query = array(); } // Decode the query $query = json_decode(wp_kses_stripslashes($query)); $updated_items = $this->gather_updated_items($last_time, (array) $query); if (!empty($updated_items)) { ob_start(); foreach ($updated_items as $item) { $this->list_table->single_row($item); } $send = ob_get_clean(); } else { $send = ''; } return $send; }