$report_group ) {
echo '' . esc_html( $report_group[ 'title' ] ) . ' ';
}
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound -- Existing public Property Hive extension hook ph_reports_tabs; changing the established name would detach installed callbacks.
do_action( 'ph_reports_tabs' );
?>
1 ) {
?>
$report ) {
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound -- Template-local report navigation markup.
$link = '' . esc_html( $report['title'] ) . ' ';
// phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound -- Template-local variable in an admin view; PHPCS analyzes the view file standalone even though WordPress includes it inside a method/function scope.
$links[] = $link;
}
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Locally assembled navigation links: URLs and titles are escaped above; class values and separators are fixed markup.
echo implode( ' | ', $links );
?>
' . esc_html( $report['title'] ) . '';
} else {
echo '' . esc_html( $report['title'] ) . ' ';
}
if ( $report['description'] ) {
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Trusted HTML from PHP report registrations via propertyhive_admin_reports (core descriptions are empty). Extension callbacks own escaping of dynamic values in their descriptions.
echo '' . $report['description'] . '
';
}
if ( $report['callback'] && ( is_callable( $report['callback'] ) ) ) {
call_user_func( $report['callback'], $current_report );
}
}
?>