Untitled
unknown
plain_text
10 months ago
5.6 kB
7
Indexable
/**
* Core plugin functionality.
*
* @package BmacxCore
*/
namespace BmacxCore\Core;
use BmacxCore\KitForms;
use BmacxCore\Settings;
use BlackstoneCore\EnableDarkTheme;
use BlackstoneCore\CampaignHeader;
use BlackstoneCore\FootnoteModals;
use BlackstoneCore\Settings\SiteWideModal as SettingsSiteWideModal;
use function BlackstoneCore\Utility\should_not_hide_content;
use function BlackstoneCore\Utility\get_current_site;
/**
* Default setup routine
*
* @return void
*/
function setup() {
$n = function( $function ) {
return __NAMESPACE__ . "\\$function";
};
add_filter( 'bx_site_post_types', function() {
return [
'press-release',
'document',
'people',
'reusable-content',
'insight',
'modal',
'navigation-widget',
'portfolio-company',
'footnote'
];
});
add_action( 'init', $n( 'init' ) );
add_filter( 'body_class', $n( 'body_classes' ) );
add_filter( 'blackstone_main_current_site', $n( 'set_current_site' ) );
// Add condition for Gutenberg block options specific to bmacx site.
add_action( 'enqueue_block_editor_assets', $n( 'customize_gutenberg_template_options' ) );
add_action( 'after_setup_theme', $n( 'theme_setup' ) );
add_filter( 'bx_header_logo_link', $n( 'disable_header_logo_link' ) );
add_action( 'admin_init', $n( 'enable_theme_dark_theme_for_footer' ) );
do_action( 'bmacx_core_loaded' );
}
/**
* Initializes the plugin and fires an action other plugins can hook into.
*
* @return void
*/
function init() {
$campaign_header = new CampaignHeader();
$campaign_header->register();
$settings_enable_dark_theme = new EnableDarkTheme();
$settings_enable_dark_theme->register();
$footnotemodal = new FootnoteModals();
$footnotemodal->register();
do_action( 'bmacx_core_init' );
}
function theme_setup() {
add_theme_support( 'announcement-banner' );
}
/**
* Add additional body classes.
*
* @param array $classes Body classes.
* @return array
*/
function body_classes( $classes ) {
if ( should_not_hide_content() ) {
return $classes;
}
$classes[] = 'hide-site-content';
return $classes;
}
/**
* Set the Current Site Slug
*
* @return string
*/
function set_current_site() {
return 'bmacx'; // For bmacx site, returns the site slug
}
/**
* Customize Gutenberg Template Options for bmacx Site
*/
function customize_gutenberg_template_options() {
$current_site = get_current_site();
// Check if we are on bmacx site and in the Blackstone V2 theme
if ( $current_site === 'bmacx' && wp_get_theme()->get( 'Name' ) === 'Blackstone V2' ) {
// Enqueue script to remove unnecessary options
wp_add_inline_script(
'wp-block-editor',
'
wp.hooks.addFilter(
"editor.PluginDocumentSettingPanel",
"bmacx/remove-unused-template-options",
function( Panel ) {
return function( props ) {
const allowedOptions = [ "no_header_nav_key", "no_footer_nav_key" ];
return (
<Panel { ...props }>
{ props.children.filter( child => allowedOptions.includes( child.props.metaKey ) ) }
</Panel>
);
};
}
);
',
'after'
);
}
}
/**
* Disable Header Logo Link
*
* @param bool $enabled Logo link.
* @return bool
*/
function disable_header_logo_link( $enabled ) {
return $enabled;
}
/**
* Enable Theme Dark Theme for Footer
*/
function enable_theme_dark_theme_for_footer() {
register_setting(
'reading',
'bx_v2_theme_footer_color_theme',
[
'type' => 'string',
'sanitize_callback' => 'sanitize_text_field',
]
);
add_settings_section(
'bx_theme_switcher_reading',
esc_html__( 'Blackstone V2 Theme Switcher', 'blackstone' ),
'__return_false',
'reading'
);
add_settings_field(
'bx_v2_theme_footer_color_theme',
esc_html__( 'Footer Color Theme', 'blackstone' ),
function() {
$color_themes = get_v2_color_themes();
$selected = get_option( 'bx_v2_theme_footer_color_theme', 'default' );
?>
<select name="bx_v2_theme_footer_color_theme">
<?php foreach ( $color_themes as $color_theme ) { ?>
<option
value="<?php echo esc_attr( $color_theme['value'] ); ?>"
<?php selected( $selected, $color_theme['value'] ); ?>
>
<?php echo esc_html( $color_theme['label'] ); ?>
</option>
<?php } ?>
</select>
<p class="description"><?php esc_html_e( 'The color theme of the V2 Theme\'s Footer.', 'blackstone' ); ?></p>
<?php
},
'reading',
'bx_theme_switcher_reading'
);
}
function get_v2_color_themes() {
return [
[ 'label' => 'Default', 'value' => 'default' ],
[ 'label' => 'Dark', 'value' => 'dark' ],
];
}
Editor is loading...
Leave a Comment