File "Json_Ld.php"
Full Path: /home/romayxjt/public_html/wp-content/plugins/the-events-calendar/common/src/Tribe/Debug_Bar/Panels/Json_Ld.php
File size: 2.16 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* JSON-LD information Debug Bar panel.
*
* @since 4.11.2
*
* @package Tribe\Debug_Bar\Panels
*/
class Tribe__Debug_Bar__Panels__Json_Ld extends Debug_Bar_Panel {
/**
* Returns the Panel name.
*
* @since 4.11.2
*
* @param null $title The panel input title.
*
* @return string The panel title
*/
public function title( $title = null ) {
return __( 'The Events Calendar JSON-LD Data', 'tribe-common' );
}
/**
* Renders the panel contents.
*
* @since 4.9.5
*/
public function render() {
$html = '<style>
#mt-debug-bar .mt-debug-bar-title {
margin-bottom: 1em;
}
#mt-debug-bar .mt-debug-bar-section {
padding: .5em .5em .5em 1em;
}
</style>';
$html .= '<div id="mt-debug-bar" class="mt-debug-bar-json-ld">';
$html .= '<header class="mt-debug-bar-title"><h2>' . esc_html__( 'The Events Calendar JSON-LD Data',
'tribe-common' ) . '</h2></header>';
$json_ld_data = array_filter( (array) tribe_cache()['json-ld-data'] );
if ( ! empty( $json_ld_data ) ) {
$html .= '<div class="mt-debug-bar-section">';
$html .= sprintf(
'<header>The request produced %d JSON-LD data %s.</header><br>',
count( $json_ld_data ),
count( $json_ld_data ) > 1 ? 'scripts' : 'script'
);
$html .= '<p>Copy the code below and paste it into ' .
'<a href="https://search.google.com/structured-data/testing-tool/u/0/" target="_blank">' .
'Google\'s Structured Data Testing Tool' .
'</a>' .
' to test it using the Code Snippet option.</p><br>';
foreach ( $json_ld_data as $full_entry ) {
preg_match(
'/(?<open>^\\s*<script[^>]*?>\\s*)(?<json>.*)(?<close>\\s<\\/script>)$/uism',
$full_entry,
$frags
);
if ( isset( $frags['open'], $frags['json'], $frags['close'] ) ) {
// Let's try and format it if we've got all the pieces.
$full_entry = $frags['open']
. json_encode( json_decode( $frags['json'], true ), JSON_PRETTY_PRINT )
. $frags['close'];
}
$html .= sprintf( '<pre><code>%s</code></pre>', esc_html( $full_entry ) );
}
$html .= '</div>';
}
$html .= '</div>';
echo $html;
}
}