Current File : /home/jeconsul/public_html/wp-content/plugins/presto-player/inc/Services/Settings.php |
<?php
namespace PrestoPlayer\Services;
use PrestoPlayer\Plugin;
use PrestoPlayer\Models\Setting;
class Settings {
/**
* Register our settings
*
* @return void
*/
public function register() {
add_action( 'admin_init', array( $this, 'registerSettings' ) );
add_action( 'rest_api_init', array( $this, 'registerSettings' ) );
}
public function registerSettings() {
/**
* Analytics settings
*/
\register_setting(
'presto_player',
'presto_player_analytics',
array(
'type' => 'object',
'description' => __( 'Analytics settings.', 'presto-player' ),
'show_in_rest' => array(
'name' => 'presto_player_analytics',
'type' => 'object',
'schema' => array(
'properties' => array(
'enable' => array(
'type' => 'boolean',
),
'purge_data' => array(
'type' => 'boolean',
),
),
),
),
'default' => array(
'enable' => false,
'purge_data' => true,
),
)
);
/**
* Branding settings
*/
\register_setting(
'presto_player',
'presto_player_branding',
array(
'type' => 'object',
'description' => __( 'Branding settings.', 'presto-player' ),
'show_in_rest' => array(
'name' => 'presto_player_branding',
'type' => 'object',
'schema' => array(
'properties' => array(
'logo' => array(
'type' => 'string',
'sanitize_callback' => 'esc_url_raw',
),
'logo_width' => array(
'type' => 'number',
'sanitize_callback' => 'intval',
),
'color' => array(
'type' => 'string',
'sanitize_callback' => 'sanitize_hex_color',
),
'player_css' => array(
'type' => 'string',
),
),
),
),
'default' => array(
'logo' => '',
'logo_width' => 150,
'color' => Setting::getDefaultColor(),
'player_css' => '',
),
)
);
\register_setting(
'presto_player',
'presto_player_performance',
array(
'type' => 'object',
'description' => __( 'Performance settings.', 'presto-player' ),
'show_in_rest' => array(
'name' => 'presto_player_performance',
'type' => 'object',
'schema' => array(
'properties' => array(
'module_enabled' => array(
'type' => 'boolean',
),
'automations' => array(
'type' => 'boolean',
),
),
),
),
'default' => array(
'module_enabled' => false,
'automations' => true,
),
)
);
/**
* Uninstall settings
*/
\register_setting(
'presto_player',
'presto_player_uninstall',
array(
'type' => 'object',
'description' => __( 'Uninstall settings.', 'presto-player' ),
'show_in_rest' => array(
'name' => 'presto_player_uninstall',
'type' => 'object',
'schema' => array(
'properties' => array(
'uninstall_data' => array(
'type' => 'boolean',
),
),
),
),
'default' => array(
'uninstall_data' => false,
),
)
);
/**
* Analytics settings
*/
\register_setting(
'presto_player',
'presto_player_google_analytics',
array(
'type' => 'object',
'description' => __( 'Google Analytics settings.', 'presto-player' ),
'show_in_rest' => array(
'name' => 'presto_player_google_analytics',
'type' => 'object',
'schema' => array(
'properties' => array(
'enable' => array(
'type' => 'boolean',
),
'use_existing_tag' => array(
'type' => 'boolean',
),
'measurement_id' => array(
'type' => 'string',
),
),
),
),
'default' => array(
'enable' => false,
'use_existing_tag' => false,
'measurement_id' => '',
),
)
);
/**
* General settings
*/
\register_setting(
'presto_player',
'presto_player_presets',
array(
'type' => 'object',
'description' => __( 'Preset settings.', 'presto-player' ),
'show_in_rest' => array(
'name' => 'presto_player_presets',
'type' => 'object',
'schema' => array(
'properties' => array(
'default_player_preset' => array(
'type' => 'integer',
'sanitize_callback' => 'intval',
),
),
),
),
'default' => array(
'default_player_preset' => 1,
),
)
);
\register_setting(
'presto_player',
'presto_player_audio_presets',
array(
'type' => 'object',
'description' => __( 'Preset settings.', 'presto-player' ),
'show_in_rest' => array(
'name' => 'presto_player_audio_presets',
'type' => 'object',
'schema' => array(
'properties' => array(
'default_player_preset' => array(
'type' => 'integer',
'sanitize_callback' => 'intval',
),
),
),
),
'default' => array(
'default_player_preset' => 1,
),
)
);
/**
* Youtube Settings
*/
\register_setting(
'presto_player',
'presto_player_youtube',
array(
'type' => 'object',
'description' => __( 'Youtube settings.', 'presto-player' ),
'show_in_rest' => array(
'name' => 'presto_player_youtube',
'type' => 'object',
'schema' => array(
'properties' => array(
'nocookie' => array(
'type' => 'boolean',
),
'channel_id' => array(
'type' => 'string',
),
),
),
),
'default' => array(
'nocookie' => false,
'channel_id' => '',
),
)
);
/**
* Instant Video Width Setting
*/
\register_setting(
'presto_player',
'presto_player_instant_video_width',
array(
'type' => 'string',
'description' => __( 'Instant video width.', 'presto-player' ),
'show_in_rest' => array(
'name' => 'presto_player_instant_video_width',
'type' => 'string',
'schema' => array(
'type' => 'string',
'default' => '800px',
),
),
'default' => '800px',
)
);
/**
* Set the default for media hub sync setting.
*/
\register_setting(
'presto_player',
'presto_player_media_hub_sync_default',
array(
'type' => 'boolean',
'description' => __( 'Set the default for media hub sync setting.', 'presto-player' ),
'show_in_rest' => array(
'name' => 'presto_player_media_hub_sync_default',
'type' => 'boolean',
'schema' => array(
'type' => 'boolean',
'default' => true,
),
),
'default' => true,
)
);
}
public static function template() {
?>
<?php do_action( 'presto_player_settings_header' ); ?>
<div class="presto-player-dashboard__header">
<img class="presto-player-dashboard__logo" src="<?php echo esc_url( PRESTO_PLAYER_PLUGIN_URL . '/img/logo.svg' ); ?>" />
<div class="presto-player-dashboard__version">v<?php echo esc_html( Plugin::version() ); ?></div>
</div>
<div id="presto-settings-page"></div>
<?php wp_auth_check_html(); ?>
<?php do_action( 'presto_player_settings_footer' ); ?>
<?php
}
}