'9539', 'slug' => 'broadcast-lite', 'premium_slug' => 'broadcast-pro', 'type' => 'theme', 'public_key' => 'pk_a149fe038fa2453666fe235168f81', 'is_premium' => false, 'has_addons' => false, 'has_paid_plans' => false, 'menu' => array( 'slug' => 'broadcast' ) ) ); } return $bro_fs; } // Init Freemius. bro_fs(); // Signal that SDK was initiated. do_action( 'bro_fs_loaded' ); } // Theme Setup function broadcast_setup() { register_nav_menus( array( 'main-navigation' => 'Main Navigation', 'footer-navigation' => 'Footer Navigation', ) ); add_theme_support( 'post-thumbnails' ); add_theme_support( 'automatic-feed-links' ); add_theme_support( 'title-tag' ); add_theme_support( 'wp-block-styles' ); add_theme_support( 'align-wide' ); add_theme_support( 'responsive-embeds' ); add_theme_support( 'html5', array( 'comment-list', 'comment-form', 'search-form', 'gallery', 'caption' ) ); // Define image sizes here for auto-cropping add_image_size( '1920x1080', 1920, 1080, array('center', 'center') ); add_image_size( '1920x490', 1920, 490, array('center', 'center') ); } add_action( 'after_setup_theme', 'broadcast_setup' ); function broadcast_admin_scripts() { wp_enqueue_style( 'broadcast-admin-css', get_template_directory_uri().'/css/main-admin.css', '', null ); } add_action( 'admin_enqueue_scripts', 'broadcast_admin_scripts' ); function broadcast_menu() { add_menu_page( 'Broadcast', 'Broadcast Theme', 'manage_options', 'broadcast', 'broadcast_options', get_template_directory_uri().'/img/weasels-icon.png' ); } add_action( 'admin_menu', 'broadcast_menu' ); function broadcast_options() { // Include the template include get_template_directory() . '/includes/welcome.php'; } // Colour Scheme require ('includes/functions/colourScheme.php'); // Scripts & Styles function broadcast_scripts_styles() { global $wp_styles; global $post; // Use Wordpress' jQuery wp_enqueue_script('jquery'); // Main + Plugins JS wp_enqueue_script( 'broadcast-plugins', get_template_directory_uri() . '/js/plugins.js', '', filemtime(get_template_directory() . '/js/plugins.js'), true ); wp_enqueue_script( 'broadcast-main', get_template_directory_uri() . '/dist/main.min.js', '', filemtime(get_template_directory() . '/dist/main.min.js'), true ); // Main CSS wp_enqueue_style( 'broadcast-style', get_template_directory_uri() . '/dist/main.min.css', '', filemtime(get_template_directory() . '/dist/main.min.css')); wp_enqueue_style( 'broadcast-quicksand', 'https://fonts.googleapis.com/css?family=Quicksand:300,400,500,700|Khand:300,400', '', null ); $bc_custom_css = broadcast_get_css(); wp_add_inline_style( 'broadcast-style', $bc_custom_css ); $primaryFont = (get_theme_mod( 'bc_primary_font' ) ? get_theme_mod( 'bc_primary_font' ) : 'Luckiest Guy'); $secondaryFont = (get_theme_mod( 'bc_secondary_font' ) ? get_theme_mod( 'bc_secondary_font' ) : 'Roboto'); if ( ($primaryFont !== '') && (strpos( $primaryFont, 'serif' ) == false)) { wp_enqueue_style( 'broadcast-google-primary-font', 'https://fonts.googleapis.com/css?family=' . $primaryFont, '', null ); } if ( ($secondaryFont !== '') && (strpos( $secondaryFont, 'serif' ) == false)) { wp_enqueue_style( 'broadcast-google-secondary-font', 'https://fonts.googleapis.com/css?family=' . $secondaryFont, '', null ); } $mastheadEffects = get_theme_mod( 'bc_featured_image_effects' ); if ($mastheadEffects == 'dots') { wp_enqueue_script( 'broadcast-canvas-dots', get_template_directory_uri() . '/js/canvas/dots.js', '', filemtime(get_template_directory() . '/js/canvas/dots.js'), true ); } if ($mastheadEffects == 'pixelation') { wp_enqueue_script( 'broadcast-canvas-pixelation', get_template_directory_uri() . '/js/canvas/pixelation.js', '', filemtime(get_template_directory() . '/js/canvas/pixelation.js'), true ); } if ($mastheadEffects == 'stars') { wp_enqueue_script( 'broadcast-canvas-stars', get_template_directory_uri() . '/js/canvas/stars.js', '', filemtime(get_template_directory() . '/js/canvas/stars.js'), true ); } } add_action( 'wp_enqueue_scripts', 'broadcast_scripts_styles' ); function bc_admin_scripts() { wp_enqueue_script( 'broadcast-admin', get_template_directory_uri() . '/includes/functions/js/adminNotices.js', '', null, true ); $primaryFont = (get_theme_mod( 'bc_primary_font' ) ? get_theme_mod( 'bc_primary_font' ) : 'Luckiest Guy'); $secondaryFont = (get_theme_mod( 'bc_secondary_font' ) ? get_theme_mod( 'bc_secondary_font' ) : 'Roboto'); $primaryFontStyle = (get_theme_mod( 'bc_primary_font_style' ) ? get_theme_mod( 'bc_primary_font_style' ) : []); if ( ($primaryFont !== '') && (strpos( $primaryFont, 'serif' ) == false)) { wp_enqueue_style( 'broadcast-google-primary-font', 'https://fonts.googleapis.com/css?family=' . $primaryFont, '', null ); } if ( ($secondaryFont !== '') && (strpos( $secondaryFont, 'serif' ) == false)) { wp_enqueue_style( 'broadcast-google-secondary-font', 'https://fonts.googleapis.com/css?family=' . $secondaryFont, '', null ); } $fontWeight = (in_array('bold', $primaryFontStyle) ? 'bold' : 'normal'); $fontStyle = (in_array('italic', $primaryFontStyle) ? 'italic' : 'normal'); $textDecoration = (in_array('underline', $primaryFontStyle) ? 'underline' : 'normal'); $textTransform = (in_array('uppercase', $primaryFontStyle) ? 'uppercase' : 'normal'); $primaryBgColourBlocks = (get_theme_mod( 'bc_colour_picker_primary' ) ? get_theme_mod( 'bc_colour_picker_primary' ) : ''); $primaryBgColourBlocks = (get_theme_mod( 'bc_front_page_bg_color' ) ? get_theme_mod( 'bc_front_page_bg_color' ) : $primaryBgColourBlocks); $textColourBlocks = (get_theme_mod( 'bc_colour_picker_text' ) ? get_theme_mod( 'bc_colour_picker_text' ) : ''); $textColourBlocks = (get_theme_mod( 'bc_front_page_text_color' ) ? get_theme_mod( 'bc_front_page_text_color' ) : $textColourBlocks); $frontPageTitleColor = (get_theme_mod( 'bc_colour_picker_text' ) ? get_theme_mod( 'bc_colour_picker_text' ) : ''); $frontPageTitleColor = (get_theme_mod( 'bc_front_page_title_color' ) ? get_theme_mod( 'bc_front_page_title_color' ) : $frontPageTitleColor); $linkColour = (get_theme_mod( 'bc_front_page_link_color' ) ? get_theme_mod( 'bc_front_page_link_color' ) : ''); wp_register_style( 'broadcast-admin-vars', false ); wp_enqueue_style( 'broadcast-admin-vars' ); $broadcastCssVars = ' :root { --blockHeaderFont: '.$primaryFont.'; --blockHeaderFontWeight: '.$fontWeight.'; --blockHeaderFontStyle: '.$fontStyle.'; --blockHeaderTextDecoration: '.$textDecoration.'; --blockHeaderTextTransform: '.$textTransform.'; } .editor-styles-wrapper .edit-post-visual-editor__post-title-wrapper > h1 { color: '.$frontPageTitleColor.'!important; } .editor-styles-wrapper { background-color:'.$primaryBgColourBlocks.'; color: '.$textColourBlocks.'; font-family: '.$secondaryFont.'!important; } .editor-styles-wrapper a { color: '.$linkColour.'; }'; wp_add_inline_style( 'broadcast-admin-vars', $broadcastCssVars ); } // Define the function to check for plugin classes function bc_check_plugins() { $active_classes = []; // Status Bar if (class_exists('Streamweasels_Status_Bar')) { $active_classes[] = 'status-bar'; } // Twitch Integration if (class_exists('Streamweasels')) { $active_classes[] = 'twitch-integration'; } // YouTube Integration if (class_exists('Streamweasels_Youtube')) { $active_classes[] = 'youtube-integration'; } // Kick Integration if (class_exists('Streamweasels_Kick_Integration')) { $active_classes[] = 'kick-integration'; } // Broadcast Companion if (function_exists('bc_companion_options')) { if (!class_exists('Streamweasels_Status_Bar')) { $active_classes[] = 'broadcast-companion'; } } // Demo Import if (class_exists('OCDI_Plugin')) { $active_classes[] = 'demo-import'; } return $active_classes; } // Add body classes based on active plugin classes function bc_add_plugin_body_classes($classes) { $active_classes = bc_check_plugins(); foreach ($active_classes as $class) { $classes[] = 'plugin-active--' . $class; } return $classes; } add_filter('body_class', 'bc_add_plugin_body_classes'); add_action( 'admin_enqueue_scripts', 'bc_admin_scripts' ); add_action( 'customize_register', 'broadcast_load_customize_controls', 0 ); // Custom checkbox controls for customizer function broadcast_load_customize_controls() { require_once( trailingslashit( get_template_directory() ) . 'includes/functions/customizer/control-checkbox.php' ); require_once( trailingslashit( get_template_directory() ) . 'includes/functions/customizer/alphaColorPicker.php' ); } // Customizer require ('includes/functions/customizer.php'); require ('includes/functions/customizerPro.php'); require ('includes/functions/customizer/mastheadSettings.php'); require ('includes/functions/customizer/sitelogoSettings.php'); require ('includes/functions/customizer/watchnowSettings.php'); require ('includes/functions/customizer/watchNowHeaderSettings.php'); require ('includes/functions/customizer/navSettings.php'); require ('includes/functions/customizer/fontSettings.php'); require ('includes/functions/customizer/frontPageSettings.php'); require ('includes/functions/customizer/blogSettings.php'); require ('includes/functions/customizer/blogSingleSettings.php'); require ('includes/functions/customizer/vodSettings.php'); require ('includes/functions/customizer/affiliatesSettings.php'); require ('includes/functions/customizer/socialSettings.php'); require ('includes/functions/customizer/scheduleSettings.php'); require ('includes/functions/customizer/colorSettings.php'); require ('includes/functions/customizer/footerSettings.php'); require ('includes/functions/bc-customize-pro/broadcast-lite/class-customize.php'); // TGM require ('includes/functions/class-tgm-plugin-activation.php'); // Body Class require ('includes/functions/bodyClass.php'); // Custom Nav require ('includes/functions/nav.php'); // Content Width require ('includes/functions/contentWidth.php'); // Admin Notices require ('includes/functions/adminNotices.php'); // Timezones require ('includes/functions/dateTimeZone.php'); // Timezones require ('includes/functions/countdown.php'); // Inline Styles require ('includes/functions/inlineStyles.php'); require_once(ABSPATH . 'wp-admin/includes/media.php'); require_once(ABSPATH . 'wp-admin/includes/file.php'); require_once(ABSPATH . 'wp-admin/includes/image.php'); // Demos // coming back soon // require ('includes/functions/oneClickDemoImport.php');