<?php

function ocdi_import_files() {
    return [
      [
        'import_file_name'           => 'Twitch Demo',
        'categories'                 => [ 'Twitch' ],
        'import_file_url'            => 'https://www.streamweasels.com/wp-content/themes/generatepress-child/demos/broadcast/broadcast-lite-demo-1.xml',
        'import_preview_image_url'   => 'https://www.streamweasels.com/wp-content/themes/generatepress-child/demos/broadcast/broadcast-lite-mockup-hearthstone.png',
        'preview_url'                => 'https://broadcast.streamweasels.com/',
      ],
      [
        'import_file_name'           => 'YouTube Demo',
        'categories'                 => [ 'YouTube' ],
        'import_file_url'            => 'https://www.streamweasels.com/wp-content/themes/generatepress-child/demos/broadcast/broadcast-lite-demo-2.xml',
        'import_preview_image_url'   => 'https://www.streamweasels.com/wp-content/themes/generatepress-child/demos/broadcast/broadcast-lite-mockup-gta.png',
        'preview_url'                => 'https://broadcast-2.streamweasels.com/',
      ]      
    ];
  }
  add_filter( 'ocdi/import_files', 'ocdi_import_files' );


function ocdi_register_plugins( $plugins ) {
 
  // List of plugins used by all theme demos.
  $theme_plugins = [
    [ // A WordPress.org plugin repository example.
        'name'     => 'Stackable', // Name of the plugin.
        'slug'     => 'stackable-ultimate-gutenberg-blocks', // Plugin slug - the same as on WordPress.org plugin repository.
        'required' => true,                     // If the plugin is required or not.
    ],
  ];
 
  // Check if user is on the theme recommeneded plugins step and a demo was selected.
  if (
    isset( $_GET['step'] ) &&
    $_GET['step'] === 'import' &&
    isset( $_GET['import'] )
  ) {
 
    // Adding one additional plugin for the first demo import ('import' number = 0).
    if ( $_GET['import'] === '0' ) {
      $theme_plugins[] = [
        'name'     => 'Broadcast Companion (Twitch)',
        'slug'     => 'broadcast-companion',
        'required' => true,
      ];
    }
 
    // List of all plugins only used by second demo import [overwrite the list] ('import' number = 1).
    if ( $_GET['import'] === '1' ) {
      $theme_plugins[] = [
        'name'     => 'Broadcast Companion (YouTube)',
        'slug'     => 'broadcast-companion-youtube',
        'required' => true,
      ];
    }
  }
 
  return array_merge( $plugins, $theme_plugins );
}
add_filter( 'ocdi/register_plugins', 'ocdi_register_plugins' );

function ocdi_plugin_page_setup( $default_settings ) {
    $default_settings['parent_slug'] = 'themes.php';
    $default_settings['page_title']  = esc_html__( 'Broadcast Demo Import' , 'broadcast-lite' );
    $default_settings['menu_title']  = esc_html__( 'Broadcast Demo Import' , 'broadcast-lite' );
    $default_settings['capability']  = 'import';
    $default_settings['menu_slug']   = 'one-click-demo-import';
 
    return $default_settings;
}
add_filter( 'ocdi/plugin_page_setup', 'ocdi_plugin_page_setup' );

function ocdi_after_import_setup( $selected_import ) {

    if ( 'Twitch Demo' === $selected_import['import_file_name'] ) {
        // Assign home page
        $front_page_id = get_page_by_title( 'Broadcast Lite Demo 1' );
        // Assign menu
        $main_menu = get_term_by( 'name', 'Twitch Demo Menu', 'nav_menu' );  
        set_theme_mod('bc_featured_image', media_sideload_image( 'https://www.streamweasels.com/wp-content/themes/generatepress-child/demos/broadcast/twitch/hearthstone-bg.jpg', 1, null, 'src' ));
        set_theme_mod('bc_logo', media_sideload_image( 'https://www.streamweasels.com/wp-content/themes/generatepress-child/demos/broadcast/twitch/broadcast-lite-logo.png', 1, null, 'src' ));
        set_theme_mod('bc_primary_font', 'Luckiest Guy');
        set_theme_mod('bc_secondary_font', 'Roboto');
        set_theme_mod('bc_colour_accent', '#9147ff');
        set_theme_mod('bc_colour_theme', 'light');
        set_theme_mod('bc_affiliate1_image', media_sideload_image( 'https://www.streamweasels.com/wp-content/themes/generatepress-child/demos/broadcast/twitch-250x150.png', 1, null, 'src' ));
        set_theme_mod('bc_affiliate1_link', 'https://www.twitch.tv');
        set_theme_mod('bc_affiliate2_image', media_sideload_image( 'https://www.streamweasels.com/wp-content/themes/generatepress-child/demos/broadcast/weasels-250x150.png', 1, null, 'src' ));
        set_theme_mod('bc_affiliate2_link', 'https://www.streamweasels.com'); 
        set_theme_mod('bc_affiliate3_image', media_sideload_image( 'https://www.streamweasels.com/wp-content/themes/generatepress-child/demos/broadcast/youtube-250x150.png', 1, null, 'src' ));
        set_theme_mod('bc_affiliate3_link', 'https://www.youtube.com'); 
    }

    if ( 'YouTube Demo' === $selected_import['import_file_name'] ) {
        // Assign home page
        $front_page_id = get_page_by_title( 'Broadcast Lite Demo 2' );
        // Assign menu
        $main_menu = get_term_by( 'name', 'YouTube Demo Menu', 'nav_menu' );
        set_theme_mod('bc_featured_image', media_sideload_image( 'https://www.streamweasels.com/wp-content/themes/generatepress-child/demos/broadcast/youtube/gta-bg.jpg', 1, null, 'src' ));
        set_theme_mod('bc_logo', media_sideload_image( 'https://www.streamweasels.com/wp-content/themes/generatepress-child/demos/broadcast/youtube/broadcast-lite-logo.png', 1, null, 'src' ));
        set_theme_mod('bc_primary_font', 'Alfa Slab One');
        set_theme_mod('bc_secondary_font', 'Gentium Basic');
        set_theme_mod('bc_colour_accent', '#ff0000');
        set_theme_mod('bc_colour_theme', 'light');
        set_theme_mod('bc_affiliate1_image', media_sideload_image( 'https://www.streamweasels.com/wp-content/themes/generatepress-child/demos/broadcast/youtube-250x150.png', 1, null, 'src' ));
        set_theme_mod('bc_affiliate1_link', 'https://www.youtube.com');
        set_theme_mod('bc_affiliate2_image', media_sideload_image( 'https://www.streamweasels.com/wp-content/themes/generatepress-child/demos/broadcast/weasels-250x150.png', 1, null, 'src' ));
        set_theme_mod('bc_affiliate2_link', 'https://www.streamweasels.com'); 
        set_theme_mod('bc_affiliate3_image', media_sideload_image( 'https://www.streamweasels.com/wp-content/themes/generatepress-child/demos/broadcast/twitch-250x150.png', 1, null, 'src' ));
        set_theme_mod('bc_affiliate3_link', 'https://www.twitch.tv');     
    }   

    // Set static page and Home and Menus
    update_option( 'show_on_front', 'page' );
    update_option( 'page_on_front', $front_page_id->ID );
    set_theme_mod( 'nav_menu_locations', [
        'main-navigation' => $main_menu->term_id, // replace 'main-menu' here with the menu location identifier from register_nav_menu() function in your theme.
    ]);  
}

add_action( 'ocdi/after_import', 'ocdi_after_import_setup' );
add_filter( 'ocdi/regenerate_thumbnails_in_content_import', '__return_false' );
