81 lines
2.6 KiB
PHP
81 lines
2.6 KiB
PHP
<?php
|
|
/**
|
|
* WPSEO plugin file.
|
|
*
|
|
* @package WPSEO\Admin\Formatter
|
|
*/
|
|
|
|
use Yoast\WP\SEO\Config\Schema_Types;
|
|
use Yoast\WP\SEO\Editors\Application\Analysis_Features\Enabled_Analysis_Features_Repository;
|
|
use Yoast\WP\SEO\Editors\Application\Integrations\Integration_Information_Repository;
|
|
|
|
/**
|
|
* This class forces needed methods for the metabox localization.
|
|
*/
|
|
class WPSEO_Metabox_Formatter {
|
|
|
|
/**
|
|
* Object that provides formatted values.
|
|
*
|
|
* @var WPSEO_Metabox_Formatter_Interface
|
|
*/
|
|
private $formatter;
|
|
|
|
/**
|
|
* Setting the formatter property.
|
|
*
|
|
* @param WPSEO_Metabox_Formatter_Interface $formatter Object that provides the formatted values.
|
|
*/
|
|
public function __construct( WPSEO_Metabox_Formatter_Interface $formatter ) {
|
|
$this->formatter = $formatter;
|
|
}
|
|
|
|
/**
|
|
* Returns the values.
|
|
*
|
|
* @return array<string,string|array<string|int|bool>|bool|int>
|
|
*/
|
|
public function get_values() {
|
|
$defaults = $this->get_defaults();
|
|
$values = $this->formatter->get_values();
|
|
|
|
return ( $values + $defaults );
|
|
}
|
|
|
|
/**
|
|
* Returns array with all the values always needed by a scraper object.
|
|
*
|
|
* @return array<string,string|array<string|int|bool>|bool|int> Default settings for the metabox.
|
|
*/
|
|
private function get_defaults() {
|
|
$schema_types = new Schema_Types();
|
|
|
|
$defaults = [
|
|
'author_name' => get_the_author_meta( 'display_name' ),
|
|
'keyword_usage' => [],
|
|
'title_template' => '',
|
|
'metadesc_template' => '',
|
|
'schema' => [
|
|
'displayFooter' => WPSEO_Capability_Utils::current_user_can( 'wpseo_manage_options' ),
|
|
'pageTypeOptions' => $schema_types->get_page_type_options(),
|
|
'articleTypeOptions' => $schema_types->get_article_type_options(),
|
|
],
|
|
'twitterCardType' => 'summary_large_image',
|
|
/**
|
|
* Filter to determine if the markers should be enabled or not.
|
|
*
|
|
* @param bool $showMarkers Should the markers being enabled. Default = true.
|
|
*/
|
|
'show_markers' => apply_filters( 'wpseo_enable_assessment_markers', true ),
|
|
];
|
|
|
|
$integration_information_repo = YoastSEO()->classes->get( Integration_Information_Repository::class );
|
|
|
|
$enabled_integrations = $integration_information_repo->get_integration_information();
|
|
$defaults = array_merge( $defaults, $enabled_integrations );
|
|
$enabled_features_repo = YoastSEO()->classes->get( Enabled_Analysis_Features_Repository::class );
|
|
|
|
$enabled_features = $enabled_features_repo->get_enabled_features()->parse_to_legacy_array();
|
|
return array_merge( $defaults, $enabled_features );
|
|
}
|
|
}
|