Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/wp-conte.../plugins/supreme-.../includes
File: class.page-settings.php
<?php
[0] Fix | Delete
/**
[1] Fix | Delete
* WordPress settings API
[2] Fix | Delete
*/
[3] Fix | Delete
if ( ! class_exists( 'DSM_Settings' ) ) :
[4] Fix | Delete
class DSM_Settings {
[5] Fix | Delete
[6] Fix | Delete
private $settings_api;
[7] Fix | Delete
[8] Fix | Delete
function __construct() {
[9] Fix | Delete
$this->settings_api = new DSM_Settings_API();
[10] Fix | Delete
[11] Fix | Delete
add_action( 'admin_init', array( $this, 'admin_init' ) );
[12] Fix | Delete
add_action( 'admin_menu', array( $this, 'admin_menu' ) );
[13] Fix | Delete
}
[14] Fix | Delete
[15] Fix | Delete
function admin_init() {
[16] Fix | Delete
[17] Fix | Delete
// set the settings
[18] Fix | Delete
$this->settings_api->set_sections( $this->get_settings_sections() );
[19] Fix | Delete
$this->settings_api->set_fields( $this->get_settings_fields() );
[20] Fix | Delete
[21] Fix | Delete
// initialize settings
[22] Fix | Delete
$this->settings_api->admin_init();
[23] Fix | Delete
}
[24] Fix | Delete
[25] Fix | Delete
function admin_menu() {
[26] Fix | Delete
$dsm_plugin_menu_icon = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMy4xNiAyNSI+PGRlZnM+PHN0eWxlPi5jbHMtMXtpc29sYXRpb246aXNvbGF0ZTt9LmNscy0ye2ZpbGw6I2ZmZjt9LmNscy0ze2ZpbGw6IzIzMWYyMDtvcGFjaXR5OjAuMjU7bWl4LWJsZW5kLW1vZGU6bXVsdGlwbHk7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5pY29uLTEyOHgxMjg8L3RpdGxlPjxnIGNsYXNzPSJjbHMtMSI+PGcgaWQ9IkxheWVyXzEiIGRhdGEtbmFtZT0iTGF5ZXIgMSI+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMjkuMjYsMTIuNzVBMTIuNDgsMTIuNDgsMCwwLDAsMTcuMzMsNEgxMC40MkEzLjc1LDMuNzUsMCwwLDAsNi42Nyw3Ljc1djcuOTFhMy43NSwzLjc1LDAsMCwwLDMuNzUsMy43NWgwYTMuNzUsMy43NSwwLDAsMCwzLjc1LTMuNzVoMFYxMS40OWgzLjE0YzMsMCw1LDEuNCw1LDQuODJhNi40NCw2LjQ0LDAsMCwxLS4yMywxLjc1LDQuNTUsNC41NSwwLDAsMS00LjE2LDMuNDNIMTAuNDJhMy43NSwzLjc1LDAsMCwwLTMuNzUsMy43NWgwQTMuNzUsMy43NSwwLDAsMCwxMC40MiwyOWg3LjkxYTMuNzcsMy43NywwLDAsMCwxLjE3LS4xOUExMi41LDEyLjUsMCwwLDAsMjkuODMsMTYuNWgwQTEyLjUyLDEyLjUyLDAsMCwwLDI5LjI2LDEyLjc1WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTYuNjcgLTQpIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNMjcuNDgsOS4yYTEyLjU1LDEyLjU1LDAsMCwwLTQuMDctMy42Myw3LjQyLDcuNDIsMCwwLDAtMi4zMi0uMzcsNi43Miw2LjcyLDAsMCwwLTYuOTIsNi4yOWgzLjE0YzMsMCw1LDEuNCw1LDQuODJhNi40NCw2LjQ0LDAsMCwxLS4yMywxLjc1LDQuNTUsNC41NSwwLDAsMS00LjE2LDMuNDMsMTIuNDksMTIuNDksMCwwLDAsOS41OC01LjI0LDYuMDUsNi4wNSwwLDAsMCwwLTdaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNi42NyAtNCkiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0yOC40LDExLjFhNS41Niw1LjU2LDAsMCwxLC4xMywxLjIyYzAsMy41My0zLjExLDYuNTMtNy40NSw3LjY2YTQuNjEsNC42MSwwLDAsMS0zLjE0LDEuNTEsMTIuNDksMTIuNDksMCwwLDAsOS41OC01LjI0QTYsNiwwLDAsMCwyOC40LDExLjFaIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtNi42NyAtNCkiLz48cGF0aCBjbGFzcz0iY2xzLTMiIGQ9Ik0yMi42Nyw1LjM3YTcuNSw3LjUsMCwwLDAtMS41OC0uMTcsNi43Miw2LjcyLDAsMCwwLTYuOTIsNi4yOWgxQTcuNjgsNy42OCwwLDAsMSwyMi42Nyw1LjM3WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTYuNjcgLTQpIi8+PC9nPjwvZz48L3N2Zz4=';
[27] Fix | Delete
add_menu_page( __( 'Divi Supreme', 'dsm-supreme-modules-for-divi' ), __( 'Divi Supreme', 'dsm-supreme-modules-for-divi' ), 'manage_options', 'divi_supreme_settings', array( $this, 'plugin_page' ), $dsm_plugin_menu_icon, 99 );
[28] Fix | Delete
if ( null !== $this->settings_api->get_option( 'dsm_use_header_footer', 'dsm_general' ) && $this->settings_api->get_option( 'dsm_use_header_footer', 'dsm_general' ) === 'on' ) {
[29] Fix | Delete
// add_submenu_page( 'divi_supreme_settings', __( 'Divi Templates', 'dsm-supreme-modules-for-divi' ), __( 'Divi Templates', 'dsm-supreme-modules-for-divi' ), 'manage_options', 'edit.php?post_type=dsm_header_footer' );
[30] Fix | Delete
}
[31] Fix | Delete
}
[32] Fix | Delete
[33] Fix | Delete
function get_settings_sections() {
[34] Fix | Delete
$sections = array(
[35] Fix | Delete
array(
[36] Fix | Delete
'id' => 'dsm_general',
[37] Fix | Delete
'title' => __( 'General Settings', 'dsm-supreme-modules-for-divi' ),
[38] Fix | Delete
),
[39] Fix | Delete
array(
[40] Fix | Delete
'id' => 'dsm_theme_builder',
[41] Fix | Delete
'title' => __( 'Easy Theme Builder', 'dsm-supreme-modules-for-divi' ),
[42] Fix | Delete
),
[43] Fix | Delete
array(
[44] Fix | Delete
'id' => 'dsm_settings_social_media',
[45] Fix | Delete
'title' => __( 'Social Media Settings', 'dsm-supreme-modules-for-divi' ),
[46] Fix | Delete
),
[47] Fix | Delete
array(
[48] Fix | Delete
'id' => 'dsm_settings_misc',
[49] Fix | Delete
'title' => __( 'Misc', 'dsm-supreme-modules-for-divi' ),
[50] Fix | Delete
),
[51] Fix | Delete
);
[52] Fix | Delete
return $sections;
[53] Fix | Delete
}
[54] Fix | Delete
[55] Fix | Delete
/**
[56] Fix | Delete
* Returns all the settings fields
[57] Fix | Delete
*
[58] Fix | Delete
* @return array settings fields
[59] Fix | Delete
*/
[60] Fix | Delete
function get_settings_fields() {
[61] Fix | Delete
$settings_fields = array(
[62] Fix | Delete
'dsm_general' => array(
[63] Fix | Delete
array(
[64] Fix | Delete
'name' => 'dsm_section_subtitle',
[65] Fix | Delete
'class' => 'dsm-section-subtitle',
[66] Fix | Delete
'label' => __( 'Divi Supreme Extensions', 'dsm-supreme-modules-for-divi' ),
[67] Fix | Delete
'desc' => __( 'This is where you can enable Divi Extensions.' ),
[68] Fix | Delete
'type' => 'subheading',
[69] Fix | Delete
),
[70] Fix | Delete
array(
[71] Fix | Delete
'name' => 'dsm_use_scheduled_content',
[72] Fix | Delete
'class' => 'dsm-settings-checkbox',
[73] Fix | Delete
'label' => __( 'Enable Scheduled Content on Section & Row', 'dsm-supreme-modules-for-divi' ),
[74] Fix | Delete
// 'desc' => __( '<span class="slider round"></span>', 'dsm-supreme-modules-for-divi' ),
[75] Fix | Delete
'type' => 'checkbox',
[76] Fix | Delete
'default' => 'off',
[77] Fix | Delete
),
[78] Fix | Delete
/*
[79] Fix | Delete
array(
[80] Fix | Delete
'name' => 'dsm_use_header_footer',
[81] Fix | Delete
'class' => 'dsm-settings-checkbox',
[82] Fix | Delete
'label' => __( 'Enable Divi Templates', 'dsm-supreme-modules-for-divi' ),
[83] Fix | Delete
// 'desc' => __( '<span class="slider round"></span>', 'dsm-supreme-modules-for-divi' ),
[84] Fix | Delete
'type' => 'checkbox',
[85] Fix | Delete
'default' => 'off',
[86] Fix | Delete
),*/
[87] Fix | Delete
array(
[88] Fix | Delete
'name' => 'dsm_use_shortcode',
[89] Fix | Delete
'class' => 'dsm-settings-checkbox',
[90] Fix | Delete
'label' => __( 'Enable Divi Library Shortcodes', 'dsm-supreme-modules-for-divi' ),
[91] Fix | Delete
// 'desc' => __( '<span class="slider round"></span>', 'dsm-supreme-modules-for-divi' ),
[92] Fix | Delete
'type' => 'checkbox',
[93] Fix | Delete
'default' => 'off',
[94] Fix | Delete
),
[95] Fix | Delete
),
[96] Fix | Delete
'dsm_theme_builder' => array(
[97] Fix | Delete
array(
[98] Fix | Delete
'name' => 'dsm_theme_builder_header',
[99] Fix | Delete
'label' => __( 'Theme Builder Header', 'dsm-supreme-modules-for-divi' ),
[100] Fix | Delete
'desc' => __( 'Configure Theme Builder Header settings here.' ),
[101] Fix | Delete
'type' => 'subheading',
[102] Fix | Delete
),
[103] Fix | Delete
array(
[104] Fix | Delete
'name' => 'dsm_theme_builder_header_fixed',
[105] Fix | Delete
'class' => 'dsm-settings-checkbox',
[106] Fix | Delete
'label' => __( 'Enable Fixed Header', 'dsm-supreme-modules-for-divi' ),
[107] Fix | Delete
'desc' => __( 'This will make the Divi Theme Builder Header stay fixed to the top.', 'dsm-supreme-modules-for-divi' ),
[108] Fix | Delete
'type' => 'checkbox',
[109] Fix | Delete
'default' => 'off',
[110] Fix | Delete
),
[111] Fix | Delete
/*
[112] Fix | Delete
array(
[113] Fix | Delete
'name' => 'dsm_theme_builder_header_fixed_devices',
[114] Fix | Delete
'label' => __( 'Disable On', 'dsm-supreme-modules-for-divi' ),
[115] Fix | Delete
'desc' => __( 'This will disable the fixed header on selected devices.', 'dsm-supreme-modules-for-divi' ),
[116] Fix | Delete
'type' => 'multicheck',
[117] Fix | Delete
'options' => array(
[118] Fix | Delete
'desktop' => 'Desktop',
[119] Fix | Delete
'tablet' => 'Tablet',
[120] Fix | Delete
'phone' => 'Phone',
[121] Fix | Delete
),
[122] Fix | Delete
),*/
[123] Fix | Delete
array(
[124] Fix | Delete
'name' => 'dsm_theme_builder_header_auto_calc',
[125] Fix | Delete
'class' => 'dsm-settings-checkbox',
[126] Fix | Delete
'label' => __( 'Push Body Down', 'dsm-supreme-modules-for-divi' ),
[127] Fix | Delete
'desc' => __( 'This will calculate the Divi Theme Builder Header height automatically and apply the height to the body to prevent the first section from overlapping. This will push tbe first section down based on the header height. This is not needed if you have a transparent background for the header.', 'dsm-supreme-modules-for-divi' ),
[128] Fix | Delete
'type' => 'checkbox',
[129] Fix | Delete
'default' => 'off',
[130] Fix | Delete
),
[131] Fix | Delete
array(
[132] Fix | Delete
'name' => 'dsm_theme_builder_header_shrink_break',
[133] Fix | Delete
'desc' => __( '<hr />', 'dsm-supreme-modules-for-divi' ),
[134] Fix | Delete
'type' => 'html',
[135] Fix | Delete
),
[136] Fix | Delete
array(
[137] Fix | Delete
'name' => 'dsm_theme_builder_header_shrink',
[138] Fix | Delete
'class' => 'dsm-settings-checkbox',
[139] Fix | Delete
'label' => __( 'Enable Shrink on Scroll', 'dsm-supreme-modules-for-divi' ),
[140] Fix | Delete
'desc' => __( 'This will shrink your Divi Theme Builder Header and stays fixed when you scroll. For developers, the active shrink CSS Class Selector is ".dsm_fixed_header_shrink_active"', 'dsm-supreme-modules-for-divi' ),
[141] Fix | Delete
'type' => 'checkbox',
[142] Fix | Delete
'default' => 'off',
[143] Fix | Delete
),
[144] Fix | Delete
array(
[145] Fix | Delete
'name' => 'dsm_theme_builder_header_section_padding',
[146] Fix | Delete
'label' => __( 'Shrink Section Padding (px)', 'dsm-supreme-modules-for-divi' ),
[147] Fix | Delete
'desc' => __( 'If Shrink on Scroll is enabled, you can define a custom top and bottom padding in pixel(px) value for the section when shrinked.', 'dsm-supreme-modules-for-divi' ),
[148] Fix | Delete
'type' => 'text',
[149] Fix | Delete
'default' => '',
[150] Fix | Delete
'sanitize_callback' => 'sanitize_text_field',
[151] Fix | Delete
),
[152] Fix | Delete
array(
[153] Fix | Delete
'name' => 'dsm_theme_builder_header_row_padding',
[154] Fix | Delete
'label' => __( 'Shrink Row Padding (px)', 'dsm-supreme-modules-for-divi' ),
[155] Fix | Delete
'desc' => __( 'If Shrink on Scroll is enabled, you can define a custom top and bottom padding in pixel(px) value for the row when shrinked.', 'dsm-supreme-modules-for-divi' ),
[156] Fix | Delete
'type' => 'text',
[157] Fix | Delete
'default' => '',
[158] Fix | Delete
'sanitize_callback' => 'sanitize_text_field',
[159] Fix | Delete
),
[160] Fix | Delete
array(
[161] Fix | Delete
'name' => 'dsm_theme_builder_header_shrink_image',
[162] Fix | Delete
'label' => __( 'Shrink Image (%)', 'dsm-supreme-modules-for-divi' ),
[163] Fix | Delete
'desc' => __( 'If Shrink on Scroll is enabled, you can define a max-width in percentage(%) value when shrinked. (Default: 70)', 'dsm-supreme-modules-for-divi' ),
[164] Fix | Delete
'type' => 'text',
[165] Fix | Delete
'default' => '70',
[166] Fix | Delete
'sanitize_callback' => 'sanitize_text_field',
[167] Fix | Delete
),
[168] Fix | Delete
array(
[169] Fix | Delete
'name' => 'dsm_theme_builder_header_start_threshold',
[170] Fix | Delete
'label' => __( 'Shrink Threshold', 'dsm-supreme-modules-for-divi' ),
[171] Fix | Delete
'desc' => __( 'If Shrink on Scroll is enabled, you can define when the header should shrink after viewport. (Default: 200)', 'dsm-supreme-modules-for-divi' ),
[172] Fix | Delete
'type' => 'text',
[173] Fix | Delete
'default' => '200',
[174] Fix | Delete
'sanitize_callback' => 'sanitize_text_field',
[175] Fix | Delete
),
[176] Fix | Delete
),
[177] Fix | Delete
'dsm_settings_social_media' => array(
[178] Fix | Delete
array(
[179] Fix | Delete
'name' => 'dsm_section_subtitle',
[180] Fix | Delete
'class' => 'dsm-section-subtitle',
[181] Fix | Delete
'label' => __( 'Social Media Settings', 'dsm-supreme-modules-for-divi' ),
[182] Fix | Delete
'desc' => __( 'Configure Social Media settings here.' ),
[183] Fix | Delete
'type' => 'subheading',
[184] Fix | Delete
),
[185] Fix | Delete
'dsm_facebook_app_id' => array(
[186] Fix | Delete
'name' => 'dsm_facebook_app_id',
[187] Fix | Delete
'label' => __( 'Facebook APP ID', 'dsm-supreme-modules-for-divi' ),
[188] Fix | Delete
'desc' => sprintf(
[189] Fix | Delete
__( 'Enter the Facebook App ID. You can go to <a href="%1$s">Facebook Developer</a> and click on Create New App to get one.', 'dsm-supreme-modules-for-divi' ),
[190] Fix | Delete
esc_url( 'https://developers.facebook.com/apps/' )
[191] Fix | Delete
),
[192] Fix | Delete
'default' => ' ',
[193] Fix | Delete
'type' => 'text',
[194] Fix | Delete
'sanitize_callback' => 'sanitize_text_field',
[195] Fix | Delete
),
[196] Fix | Delete
'dsm_facebook_site_lang' => array(
[197] Fix | Delete
'name' => 'dsm_facebook_site_lang',
[198] Fix | Delete
'class' => 'dsm-settings-checkbox',
[199] Fix | Delete
'label' => __( 'Facebook Language', 'dsm-supreme-modules-for-divi' ),
[200] Fix | Delete
'desc' => __( 'Check this box if you would like your Divi Facebook Modules to use your WordPress Site Language instead of the default English(US).', 'dsm-supreme-modules-for-divi' ),
[201] Fix | Delete
'type' => 'checkbox',
[202] Fix | Delete
'default' => 'off',
[203] Fix | Delete
),
[204] Fix | Delete
),
[205] Fix | Delete
'dsm_settings_misc' => array(
[206] Fix | Delete
'dsm_dynamic_assets' => array(
[207] Fix | Delete
'name' => 'dsm_dynamic_assets',
[208] Fix | Delete
'class' => 'dsm-settings-checkbox',
[209] Fix | Delete
'label' => __( 'Enable Dynamic Assets', 'dsm-supreme-modules-for-divi' ),
[210] Fix | Delete
'desc' => sprintf(
[211] Fix | Delete
'Only load CSS/JS files related to Divi Supreme Module and Extension when they are needed on the page. This eliminates all file bloat and greatly improves load times.<br><br>Note: You need to clear <strong>Static CSS File Generation</strong> under Advanced Tab <a href="%1$s" target="_blank">%2$s</a>. Resaving page might be required where the Divi Supreme Modules and Extension are being used if it does not work.',
[212] Fix | Delete
esc_url( admin_url( 'admin.php?page=et_divi_options#wrap-builder' ) ),
[213] Fix | Delete
esc_html__( 'Theme Options', 'dsm-supreme-modules-for-divi' )
[214] Fix | Delete
),
[215] Fix | Delete
'type' => 'checkbox',
[216] Fix | Delete
'default' => 'off',
[217] Fix | Delete
),
[218] Fix | Delete
'dsm_dynamic_assets_compatibility' => array(
[219] Fix | Delete
'name' => 'dsm_dynamic_assets_compatibility',
[220] Fix | Delete
'class' => 'dsm-settings-checkbox',
[221] Fix | Delete
'label' => __( 'Dynamic Assets (Compatibility)', 'dsm-supreme-modules-for-divi' ),
[222] Fix | Delete
'desc' => __( 'Check this box only if you have issue with Dynamic Assets above.', 'dsm-supreme-modules-for-divi' ),
[223] Fix | Delete
'type' => 'checkbox',
[224] Fix | Delete
'default' => 'off',
[225] Fix | Delete
),
[226] Fix | Delete
'dsm_uninstall_on_delete' => array(
[227] Fix | Delete
'name' => 'dsm_uninstall_on_delete',
[228] Fix | Delete
'class' => 'dsm-settings-checkbox',
[229] Fix | Delete
'label' => __( 'Remove Data on Uninstall?', 'dsm-supreme-modules-for-divi' ),
[230] Fix | Delete
'desc' => __( 'Check this box if you would like Divi Supreme to completely remove all of its data when the plugin is deleted.', 'dsm-supreme-modules-for-divi' ),
[231] Fix | Delete
'type' => 'checkbox',
[232] Fix | Delete
),
[233] Fix | Delete
'dsm_allow_mime_json_upload' => array(
[234] Fix | Delete
'name' => 'dsm_allow_mime_json_upload',
[235] Fix | Delete
'class' => 'dsm-settings-checkbox',
[236] Fix | Delete
'label' => __( 'Allow JSON file upload', 'dsm-supreme-modules-for-divi' ),
[237] Fix | Delete
'desc' => __( 'Check this box if you would like allow JSON file through WordPress Media Uploader.', 'dsm-supreme-modules-for-divi' ),
[238] Fix | Delete
'type' => 'checkbox',
[239] Fix | Delete
'default' => 'on',
[240] Fix | Delete
),
[241] Fix | Delete
),
[242] Fix | Delete
);
[243] Fix | Delete
[244] Fix | Delete
return $settings_fields;
[245] Fix | Delete
}
[246] Fix | Delete
[247] Fix | Delete
function plugin_page() {
[248] Fix | Delete
echo '<div class="wrap">';
[249] Fix | Delete
[250] Fix | Delete
$this->settings_api->show_navigation();
[251] Fix | Delete
$this->settings_api->show_forms();
[252] Fix | Delete
[253] Fix | Delete
echo '</div>';
[254] Fix | Delete
}
[255] Fix | Delete
[256] Fix | Delete
/**
[257] Fix | Delete
* Get all the pages
[258] Fix | Delete
*
[259] Fix | Delete
* @return array page names with key value pairs
[260] Fix | Delete
*/
[261] Fix | Delete
function get_pages() {
[262] Fix | Delete
$pages = get_pages();
[263] Fix | Delete
$pages_options = array();
[264] Fix | Delete
if ( $pages ) {
[265] Fix | Delete
foreach ( $pages as $page ) {
[266] Fix | Delete
$pages_options[ $page->ID ] = $page->post_title;
[267] Fix | Delete
}
[268] Fix | Delete
}
[269] Fix | Delete
[270] Fix | Delete
return $pages_options;
[271] Fix | Delete
}
[272] Fix | Delete
[273] Fix | Delete
}
[274] Fix | Delete
endif;
[275] Fix | Delete
new DSM_Settings();
[276] Fix | Delete
[277] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function