• File: partial-notifications-template.php
  • Full Path: /home/matthif/www/wp-content/plugins/wordpress-seo/admin/views/partial-notifications-template.php
  • Date Modified: 02/24/2024 11:29 PM
  • File size: 3.9 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php
/**
 * WPSEO plugin file.
 *
 * @package WPSEO\Admin
 *
 * @uses    string $yoast_seo_type
 * @uses    string $yoast_seo_dashicon
 * @uses    string $yoast_seo_i18n_title
 * @uses    string $yoast_seo_i18n_issues
 * @uses    string $yoast_seo_i18n_no_issues
 * @uses    string $yoast_seo_i18n_muted_issues_title
 * @uses    int    $yoast_seo_active_total
 * @uses    int    $yoast_seo_dismissed_total
 * @uses    int    $yoast_seo_total
 * @uses    array  $yoast_seo_active
 * @uses    array  $yoast_seo_dismissed
 */

if ( ! function_exists'_yoast_display_notifications' ) ) {
    
/**
     * Create the notifications HTML with restore/dismiss button.
     *
     * @param array  $notifications_list List of notifications.
     * @param string $status             Status of the notifications (active/dismissed).
     *
     * @return string The output to render.
     */
    
function _yoast_display_notifications$notifications_list$status ) {
        
$notifications '';

        foreach ( 
$notifications_list as $notification ) {

            switch ( 
$status ) {
                case 
'active':
                    
$button sprintf(
                        
'<button type="button" class="button dismiss"><span class="screen-reader-text">%1$s</span><span class="dashicons dashicons-hidden"></span></button>',
                        
/* translators: Hidden accessibility text. */
                        
esc_html__'Hide this item.''wordpress-seo' )
                    );
                    break;

                case 
'dismissed':
                    
$button sprintf(
                        
'<button type="button" class="button restore"><span class="screen-reader-text">%1$s</span><span class="dashicons yoast-svg-icon-eye"></span></button>',
                        
/* translators: Hidden accessibility text. */
                        
esc_html__'Show this item.''wordpress-seo' )
                    );
                    break;
            }

            
$notifications .= sprintf(
                
'<div class="yoast-notification-holder" id="%1$s" data-nonce="%2$s" data-json="%3$s">%4$s%5$s</div>',
                
esc_attr$notification->get_id() ),
                
esc_attr$notification->get_nonce() ),
                
esc_attr$notification->get_json() ),
                
// This needs to be fixed in https://github.com/Yoast/wordpress-seo-premium/issues/2548.
                
$notification,
                
// Note: $button is properly escaped above.
                
$button
            
);
        }

        return 
$notifications;
    }
}

$wpseo_i18n_summary $yoast_seo_i18n_issues;
if ( ! 
$yoast_seo_active ) {
    
$yoast_seo_dashicon 'yes';
    
$wpseo_i18n_summary $yoast_seo_i18n_no_issues;
}

?>
<h3 class="yoast-notifications-header" id="<?php echo esc_attr'yoast-' $yoast_seo_type '-header' ); ?>">
    <span class="dashicons <?php echo esc_attr'dashicons-' $yoast_seo_dashicon ); ?>"></span>
    <?php echo esc_html$yoast_seo_i18n_title ); ?> (<?php echo (int) $yoast_seo_active_total?>)
</h3>

<div id="<?php echo esc_attr'yoast-' $yoast_seo_type ); ?>">

    <?php if ( $yoast_seo_total ) : ?>
        <p><?php echo esc_html$wpseo_i18n_summary ); ?></p>

        <div class="container yoast-notifications-active" id="<?php echo esc_attr'yoast-' $yoast_seo_type '-active' ); ?>">
            <?php
            
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Reason: _yoast_display_notifications() as declared above is safe.
            
echo _yoast_display_notifications$yoast_seo_active'active' );
            
?>
        </div>

        <?php
        
if ( $yoast_seo_dismissed ) {
            
$dismissed_paper = new WPSEO_Paper_Presenter(
                
esc_html$yoast_seo_i18n_muted_issues_title ),
                
null,
                [
                    
'paper_id'                 => esc_attr$yoast_seo_type '-dismissed' ),
                    
'paper_id_prefix'          => 'yoast-',
                    
'class'                    => 'yoast-notifications-dismissed',
                    
'content'                  => _yoast_display_notifications$yoast_seo_dismissed'dismissed' ),
                    
'collapsible'              => true,
                    
'collapsible_header_class' => 'yoast-notification',
                ]
            );
            
// phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- Reason: get_output() output is properly escaped.
            
echo $dismissed_paper->get_output();
        }
        
?>

    <?php else : ?>

        <p><?php echo esc_html$yoast_seo_i18n_no_issues ); ?></p>

    <?php endif; ?>
</div>