output_request(); $this->output_response(); } /** * @return void */ public function output_request() { /** @var QM_Data_Raw_Request $data */ $data = $this->collector->get_data(); $this->before_tabular_output(); $this->output_header_table( $data->request['headers'], __( 'Request Header Name', 'query-monitor' ) ); $this->after_tabular_output(); } /** * @return void */ public function output_response() { /** @var QM_Data_Raw_Request $data */ $data = $this->collector->get_data(); $id = sprintf( 'qm-%s-response', $this->collector->id ); $this->before_tabular_output( $id ); $this->output_header_table( $data->response['headers'], __( 'Response Header Name', 'query-monitor' ) ); $this->after_tabular_output(); } /** * @param array $headers * @param string $title * @return void */ protected function output_header_table( array $headers, $title ) { echo ''; echo ''; echo ''; echo esc_html( $title ); echo ''; esc_html_e( 'Value', 'query-monitor' ); echo ''; echo ''; foreach ( $headers as $name => $value ) { echo ''; $formatted = str_replace( ' ', '-', ucwords( strtolower( str_replace( array( '-', '_' ), ' ', $name ) ) ) ); printf( '%s', esc_html( $formatted ) ); printf( '
%s
', esc_html( $value ) ); echo ''; } echo ''; echo ''; echo ''; echo ''; esc_html_e( 'Note that header names are not case-sensitive.', 'query-monitor' ); echo ''; echo ''; echo ''; } /** * @param array $menu * @return array */ public function panel_menu( array $menu ) { if ( ! isset( $menu['qm-request'] ) ) { return $menu; } $ids = array( $this->collector->id() => __( 'Request Headers', 'query-monitor' ), $this->collector->id() . '-response' => __( 'Response Headers', 'query-monitor' ), ); foreach ( $ids as $id => $title ) { $menu['qm-request']['children'][] = array( 'id' => $id, 'href' => '#' . $id, 'title' => esc_html( $title ), ); } return $menu; } } /** * @param array $output * @param QM_Collectors $collectors * @return array */ function register_qm_output_html_headers( array $output, QM_Collectors $collectors ) { $collector = QM_Collectors::get( 'raw_request' ); if ( $collector ) { $output['raw_request'] = new QM_Output_Html_Headers( $collector ); } return $output; } add_filter( 'qm/outputter/html', 'register_qm_output_html_headers', 100, 2 );