This commit is contained in:
2026-03-11 15:57:27 +01:00
parent 481271c972
commit b4b460fd21
10775 changed files with 2071579 additions and 26409 deletions

View File

@@ -0,0 +1,60 @@
<?php
/**
* @var $args
*/
use GRIM_SG\Dashboard;
$settings = $args['settings'] ?? new stdClass();
?>
<div class="grim-section">
<h3 class="grim-section-title" data-search-id="video_content_option"><?php esc_html_e( 'Content Options', 'xml-sitemap-generator-for-google' ); ?></h3>
<div class="inside">
<p class="grim-section-desc grim-mb-20"><?php esc_html_e( 'This settings will be used for generating Video Sitemap.', 'xml-sitemap-generator-for-google' ); ?></p>
<table class="grim-table wp-list-table widefat fixed striped">
<thead>
<tr>
<th scope="col"><?php esc_html_e( 'Content', 'xml-sitemap-generator-for-google' ); ?></th>
<th scope="col"><?php esc_html_e( 'Include', 'xml-sitemap-generator-for-google' ); ?></th>
</tr>
</thead>
<tbody>
<?php Dashboard::render_content_field( 'Pages', 'page_video_sitemap', $settings->page->video_sitemap ?? 1 ); ?>
<?php Dashboard::render_content_field( 'Posts', 'post_video_sitemap', $settings->post->video_sitemap ?? 1 ); ?>
</tbody>
</table>
</div>
</div>
<?php if ( ! empty( $args['cpt'] ) ) { ?>
<div class="grim-section <?php echo esc_attr( sgg_pro_class() ); ?>">
<?php sgg_show_pro_badge(); ?>
<h3 class="grim-section-title grim-mb-20" data-search-id="video_custom_post_types">
<?php esc_html_e( 'Custom Post Types', 'xml-sitemap-generator-for-google' ); ?>
</h3>
<div class="pro-wrapper <?php echo esc_attr( sgg_pro_class() ); ?>">
<table class="grim-table wp-list-table widefat fixed striped tags">
<thead>
<tr>
<th scope="col"><?php esc_html_e( 'Content', 'xml-sitemap-generator-for-google' ); ?></th>
<th scope="col"><?php esc_html_e( 'Include', 'xml-sitemap-generator-for-google' ); ?></th>
</tr>
</thead>
<tbody>
<?php
foreach ( $args['cpt'] as $cpt ) {
Dashboard::render_content_field(
$cpt->label,
"{$cpt->name}_video_sitemap",
$settings->cpt[ $cpt->name ]->video_sitemap ?? 0
);
}
?>
</tbody>
</table>
</div>
<?php sgg_show_pro_overlay(); ?>
</div>
<?php } ?>

View File

@@ -0,0 +1,202 @@
<?php
/**
* @var $args
*/
use GRIM_SG\Dashboard;
$settings = $args['settings'] ?? new stdClass();
?>
<div class="grim-section grim-preview-section">
<div class="grim-toggle-section">
<strong>
<?php
Dashboard::render(
'fields/checkbox.php',
array(
'name' => 'enable_video_sitemap',
'value' => $settings->enable_video_sitemap ?? false,
'label' => esc_html__( 'Enable Video Sitemap', 'xml-sitemap-generator-for-google' ),
'class' => 'has-dependency',
'data' => array( 'target' => 'video-sitemap-depended' ),
)
);
?>
</strong>
</div>
<div class="inside">
<p class="grim-mb-20"><?php esc_html_e( 'All below options will be available after enabling Video Sitemap. Sitemap will only include Videos that are used in Content.', 'xml-sitemap-generator-for-google' ); ?></p>
<p class="video-sitemap-depended">
<?php
Dashboard::render(
'partials/preview-urls.php',
array(
'languages_label' => esc_html__( 'Video Sitemap for other languages:', 'xml-sitemap-generator-for-google' ),
'sitemap_url' => $settings->video_sitemap_url,
'sitemap_type' => 'video_sitemap',
'input_name' => 'video_sitemap_url',
'input_value' => $settings->video_sitemap_url,
'input_label' => esc_html__( 'Video Sitemap URL:', 'xml-sitemap-generator-for-google' ),
'input_class' => 'video-sitemap-depended',
'class' => 'video-sitemap-depended',
'notice_show' => false,
)
);
?>
</p>
</div>
<div class="inside">
<div class="grim-mt-20">
<p>
<?php
Dashboard::render(
'fields/checkbox.php',
array(
'name' => 'hide_video_sitemap_xsl',
'class' => 'video-sitemap-depended',
'value' => $settings->hide_video_sitemap_xsl ?? false,
'label' => esc_html__( 'Disable XSL Stylesheet', 'xml-sitemap-generator-for-google' ),
)
);
?>
</p>
<p class="grim-section-desc grim-ml-45 video-sitemap-depended">
<?php
printf(
/* translators: %s: Link to Chrome XSLT deprecation documentation */
esc_html__( 'Remove the XSL stylesheet reference to avoid browser deprecation warnings: %s', 'xml-sitemap-generator-for-google' ),
'<a href="' . esc_url( 'https://developer.chrome.com/docs/web-platform/deprecating-xslt' ) . '" target="_blank" rel="noopener noreferrer">' . esc_html__( 'Chrome XSLT Deprecation', 'xml-sitemap-generator-for-google' ) . '</a>'
);
?>
</p>
</div>
</div>
</div>
<div class="grim-section grim-preview-section <?php echo esc_attr( sgg_pro_class() ); ?>">
<?php sgg_show_pro_badge(); ?>
<div class="grim-section-flex">
<h3 class="grim-section-title video-sitemap-depended" data-search-id="sgg_youtube"><?php esc_html_e( 'YouTube', 'xml-sitemap-generator-for-google' ); ?></h3>
</div>
<div class="inside pro-wrapper <?php echo esc_attr( sgg_pro_class() ); ?>">
<p class="grim-section-desc grim-mb-20 video-sitemap-depended"><?php esc_html_e( 'This is required field for retrieving the data from Youtube embeds if you are using them in Contents.', 'xml-sitemap-generator-for-google' ); ?></p>
<p class="video-sitemap-depended">
<?php
Dashboard::render(
'partials/check-button.php',
array(
'input_name' => 'youtube_api_key',
'input_value' => $settings->youtube_api_key,
'input_label' => esc_html__( 'YouTube Data API v3 Key:', 'xml-sitemap-generator-for-google' ),
'input_class' => 'video-sitemap-depended',
'placeholder' => 'Enter API key',
'description' => 'Get your <a href="https://developers.google.com/youtube/v3/getting-started" target="_blank">YouTube Data API key</a> on <a href="https://console.cloud.google.com/apis/" target="_blank">Google Cloud Platform</a>',
'button_name' => 'youtube_check_api_key',
'button_id' => 'youtube-check-api-key',
'button_text' => esc_html__( 'Check YouTube API Key', 'xml-sitemap-generator-for-google' ),
)
);
?>
</p>
<?php
if ( sgg_pro_enabled() ) {
$sgg_errors = get_settings_errors( Dashboard::$slug );
$youtube_key = array_search( 'youtube_api_key_error', array_column( $sgg_errors, 'code' ), true );
if ( false !== $youtube_key && ! empty( $sgg_errors[ $youtube_key ]['message'] ) ) {
?>
<div class="grim-notice grim-notice-error">
<i class="grim-icon-information"></i>
<p>
<span><?php echo wp_kses_post( $sgg_errors[ $youtube_key ]['message'] ); ?></span>
</p>
</div>
<?php
}
}
?>
</div>
<?php sgg_show_pro_overlay(); ?>
</div>
<div class="grim-section grim-preview-section <?php echo esc_attr( sgg_pro_class() ); ?>">
<?php sgg_show_pro_badge(); ?>
<div class="grim-section-flex">
<h3 class="grim-section-title video-sitemap-depended" data-search-id="sgg_vimeo"><?php esc_html_e( 'Vimeo', 'xml-sitemap-generator-for-google' ); ?></h3>
</div>
<div class="inside pro-wrapper <?php echo esc_attr( sgg_pro_class() ); ?>">
<p class="grim-section-desc grim-mb-20 video-sitemap-depended"><?php esc_html_e( 'This is required field for retrieving the data from Vimeo embeds if you are using them in Contents.', 'xml-sitemap-generator-for-google' ); ?></p>
<p class="video-sitemap-depended">
<?php
Dashboard::render(
'partials/check-button.php',
array(
'input_name' => 'vimeo_api_key',
'placeholder' => 'Enter access token',
'input_value' => $settings->vimeo_api_key,
'input_label' => esc_html__( 'Vimeo Access Token:', 'xml-sitemap-generator-for-google' ),
'input_class' => 'video-sitemap-depended',
'description' => 'Get your <a href="https://developer.vimeo.com/api/guides/start#generate-access-token" target="_blank">Vimeo Access Token</a> from <a href="https://developer.vimeo.com/apps" target="_blank">Vimeo Developer Apps</a>',
'button_name' => 'vimeo_check_api_key',
'button_id' => 'vimeo-check-api-key',
'button_text' => esc_html__( 'Check Vimeo Access Token', 'xml-sitemap-generator-for-google' ),
)
);
?>
</p>
<?php
if ( sgg_pro_enabled() ) {
$sgg_errors = get_settings_errors( Dashboard::$slug );
$vimeo_key = array_search( 'vimeo_api_key_error', array_column( $sgg_errors, 'code' ), true );
if ( false !== $vimeo_key && ! empty( $sgg_errors[ $vimeo_key ]['message'] ) ) {
?>
<div class="grim-notice grim-notice-error">
<i class="grim-icon-information"></i>
<p>
<span><?php echo wp_kses_post( $sgg_errors[ $vimeo_key ]['message'] ); ?></span>
</p>
</div>
<?php
}
}
?>
</div>
<?php sgg_show_pro_overlay(); ?>
</div>
<div class="grim-section grim-button-section <?php echo esc_attr( sgg_pro_class() ); ?>">
<?php sgg_show_pro_badge(); ?>
<div class="grim-toggle-section">
<div class="pro-wrapper <?php echo esc_attr( sgg_pro_class() ); ?>">
<p>
<?php
Dashboard::render(
'fields/checkbox.php',
array(
'name' => 'enable_video_api_cache',
'value' => $settings->enable_video_api_cache ?? true,
'label' => esc_html__( 'API Data Cache', 'xml-sitemap-generator-for-google' ),
'class' => 'video-sitemap-depended',
)
);
?>
</p>
<div class="inside">
<p class="video-sitemap-depended grim-mb-20"><?php esc_html_e( 'Caching API Data improves performance by storing and reusing requested Video data from YouTube, Vimeo, and Twitter API.', 'xml-sitemap-generator-for-google' ); ?></p>
<p class="video-sitemap-depended">
<input type="hidden" name="clear_video_api_cache" value="">
<button type="submit" id="clear-video-api-cache" class="grim-button white video-sitemap-depended">
<span>
<i class="grim-icon-trash"></i><?php esc_html_e( 'Clear API Data Cache', 'xml-sitemap-generator-for-google' ); ?>
</span>
</button>
</p>
</div>
</div>
</div>
<?php sgg_show_pro_overlay(); ?>
</div>