<?php

session_start();
//*****+++++++++++++++++++++++++++++++++++++++++++++++++++
//error_reporting(E_ALL); //DEVELOPMING
error_reporting(0);//PRODUCTION
//*****+++++++++++++++++++++++++++++++++++++++++++++++++++
//Contstants
define('THEMEMAKERS_THEME_URI', get_template_directory_uri());
define('THEMEMAKERS_THEME_PATH', get_template_directory());

define('THEMEMAKERS_APPLICATION_URI', THEMEMAKERS_THEME_URI . "/admin/applications");
define('THEMEMAKERS_APPLICATION_PATH', THEMEMAKERS_THEME_PATH . "/admin/applications");


//Theme data
define('THEMEMAKERS_THEME_NAME', 'Games');
define('THEMEMAKERS_THEME_FOLDER_NAME', 'games');
define('THEMEMAKERS_THEME_PREFIX', 'thememakers_');
define('THEMEMAKERS_FRAMEWORK_VERSION', '1.0.9');
define('THEMEMAKERS_THEME_LINK', 'http://20script.ir');
define('THEMEMAKERS_THEME_FORUM_LINK', 'http://20script.ir');


include_once THEMEMAKERS_THEME_PATH . '/admin/classes/view.php';
include_once THEMEMAKERS_THEME_PATH . '/admin/classes/model.php';
include_once THEMEMAKERS_THEME_PATH . '/admin/options.php';
include_once THEMEMAKERS_THEME_PATH . '/admin/types_registration.php';
//********************************************************************

add_theme_support('post-thumbnails');
add_editor_style();

add_theme_support('automatic-feed-links');
add_filter('widget_text', 'do_shortcode');
register_nav_menu('primary', 'Primary Menu');
register_nav_menu('secondary', 'Secondary Menu');
load_theme_textdomain(THEMEMAKERS_THEME_FOLDER_NAME, THEMEMAKERS_THEME_PATH . '/languages');


if (isset($_REQUEST['action'])) {
    if ($_REQUEST['action'] == 'add_sidebar') {
        $_REQUEST = ThemeMakersHelper::db_quotes_shield($_REQUEST);
    }
}



//static attributes
$before_widget = '<div id="%1$s" class="widget %2$s">';
$after_widget = '</div>';
$before_title = '<h3 class="widget-title">';
$after_title = '</h3>';

//default widget areas
register_sidebar(array(
    'name' => __('Thememakers Default Sidebar', THEMEMAKERS_THEME_FOLDER_NAME),
    'id' => 'thememakers_default_sidebar',
    'before_widget' => $before_widget,
    'after_widget' => $after_widget,
    'before_title' => $before_title,
    'after_title' => $after_title
));

register_sidebar(array(
    'name' => __('Footer First Sidebar', THEMEMAKERS_THEME_FOLDER_NAME),
    'id' => 'footer_first_sidebar',
    'before_widget' => $before_widget,
    'after_widget' => $after_widget,
    'before_title' => $before_title,
    'after_title' => $after_title
));

register_sidebar(array(
    'name' => __('Footer Second Sidebar', THEMEMAKERS_THEME_FOLDER_NAME),
    'id' => 'footer_second_sidebar',
    'before_widget' => $before_widget,
    'after_widget' => $after_widget,
    'before_title' => $before_title,
    'after_title' => $after_title
));

register_sidebar(array(
    'name' => __('Footer Third Sidebar', THEMEMAKERS_THEME_FOLDER_NAME),
    'id' => 'footer_third_sidebar',
    'before_widget' => $before_widget,
    'after_widget' => $after_widget,
    'before_title' => $before_title,
    'after_title' => $after_title
));


register_sidebar(array(
    'name' => __('Footer Fourth Sidebar', THEMEMAKERS_THEME_FOLDER_NAME),
    'id' => 'footer_fourth_sidebar',
    'before_widget' => $before_widget,
    'after_widget' => $after_widget,
    'before_title' => $before_title,
    'after_title' => $after_title
));


//custom widget areas





//*************************************************************************

$theme_image_sizes = ThemeMakersHelper::get_theme_image_sizes();
if (!empty($theme_image_sizes)) {
    foreach ($theme_image_sizes as $key => $value) {
        add_image_size($key, $value['width'], $value['height'], $value['crop']);
    }
}


//add_filter('image_size_names_choose', 'custom_image_sizes_choose');

function custom_image_sizes_choose($sizes) {
    $custom_sizes = array();
    $theme_image_sizes = ThemeMakersHelper::get_theme_image_sizes();
    if (!empty($theme_image_sizes)) {
        foreach ($theme_image_sizes as $key => $value) {
            $custom_sizes[$key] = $value['name'];
        }
    }

    return array_merge($sizes, $custom_sizes);
}

if ( is_user_logged_in() ) {
	 if (current_user_can('contributor')) {
		function remove_menus () {
		global $menu;
			$restricted = array( __('Links'), __('Comments'), __('Tools'), __('Dashboard'), __('Posts'), __('Games') );
			end ($menu);
			while (prev($menu)){
				$value = explode(' ',$menu[key($menu)][0]);
				if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){unset($menu[key($menu)]);}
			}
		}
		add_action('admin_menu', 'remove_menus');
	 }
}

function is_cons() {
	global $wp_query;

	if ( ! isset( $wp_query ) ) {
		_doing_it_wrong( __FUNCTION__, __( 'Conditional query tags do not work before the query is run. Before then, they always return false.' ), '3.1' );
		return false;
	}

	return $wp_query->is_cons();
}

/**
 * Include the TGM_Plugin_Activation class.
 */
require_once THEMEMAKERS_THEME_PATH. '/admin/classes/class-tgm-plugin-activation.php';
 
add_action( 'tgmpa_register', 'my_theme_register_required_plugins' );
/**
 * Register the required plugins for this theme.
 *
 * In this example, we register two plugins - one included with the TGMPA library
 * and one from the .org repo.
 *
 * The variable passed to tgmpa_register_plugins() should be an array of plugin
 * arrays.
 *
 * This function is hooked into tgmpa_init, which is fired within the
 * TGM_Plugin_Activation class constructor.
 */
function my_theme_register_required_plugins() {
 
    /**
     * Array of plugin arrays. Required keys are name, slug and required.
     * If the source is NOT from the .org repo, then source is also required.
     */
    $plugins = array(
    
 
        // This is an example of how to include a plugin from the WordPress Plugin Repository
        array(
            'name'      => 'bbPress',
            'slug'      => 'bbPress',
            'required'  => false,
			'version'	=> '2.2.4'
        ),
		array(
            'name'      => 'WooCommerce',
            'slug'      => 'WooCommerce',
            'required'  => false,
			'version'	=> '1.6.6'
        )
    );
 
    // Change this to your theme text domain, used for internationalising strings
    $theme_text_domain = 'tgmpa';
 
    /**
     * Array of configuration settings. Amend each line as needed.
     * If you want the default strings to be available under your own theme domain,
     * leave the strings uncommented.
     * Some of the strings are added into a sprintf, so see the comments at the
     * end of each line for what each argument will be.
     */
    $config = array(
        'domain'            => $theme_text_domain,           // Text domain - likely want to be the same as your theme.
        'default_path'      => '',                           // Default absolute path to pre-packaged plugins
        'parent_menu_slug'  => 'themes.php',         // Default parent menu slug
        'parent_url_slug'   => 'themes.php',         // Default parent URL slug
        'menu'              => 'install-required-plugins',   // Menu slug
        'has_notices'       => true,                         // Show admin notices or not
        'is_automatic'      => false,            // Automatically activate plugins after installation or not
        'message'           => '',               // Message to output right before the plugins table
        'strings'           => array(
            'page_title'                                => __( 'Install Required Plugins', $theme_text_domain ),
            'menu_title'                                => __( 'Install Plugins', $theme_text_domain ),
            'installing'                                => __( 'Installing Plugin: %s', $theme_text_domain ), // %1$s = plugin name
            'oops'                                      => __( 'Something went wrong with the plugin API.', $theme_text_domain ),
            'notice_can_install_required'               => _n_noop( 'This theme requires the following plugin: %1$s.', 'This theme requires the following plugins: %1$s.' ), // %1$s = plugin name(s)
            'notice_can_install_recommended'            => _n_noop( 'This theme recommends the following plugin: %1$s.', 'This theme recommends the following plugins: %1$s.' ), // %1$s = plugin name(s)
            'notice_cannot_install'                     => _n_noop( 'Sorry, but you do not have the correct permissions to install the %s plugin. Contact the administrator of this site for help on getting the plugin installed.', 'Sorry, but you do not have the correct permissions to install the %s plugins. Contact the administrator of this site for help on getting the plugins installed.' ), // %1$s = plugin name(s)
            'notice_can_activate_required'              => _n_noop( 'The following required plugin is currently inactive: %1$s.', 'The following required plugins are currently inactive: %1$s.' ), // %1$s = plugin name(s)
            'notice_can_activate_recommended'           => _n_noop( 'The following recommended plugin is currently inactive: %1$s.', 'The following recommended plugins are currently inactive: %1$s.' ), // %1$s = plugin name(s)
            'notice_cannot_activate'                    => _n_noop( 'Sorry, but you do not have the correct permissions to activate the %s plugin. Contact the administrator of this site for help on getting the plugin activated.', 'Sorry, but you do not have the correct permissions to activate the %s plugins. Contact the administrator of this site for help on getting the plugins activated.' ), // %1$s = plugin name(s)
            'notice_ask_to_update'                      => _n_noop( 'The following plugin needs to be updated to its latest version to ensure maximum compatibility with this theme: %1$s.', 'The following plugins need to be updated to their latest version to ensure maximum compatibility with this theme: %1$s.' ), // %1$s = plugin name(s)
            'notice_cannot_update'                      => _n_noop( 'Sorry, but you do not have the correct permissions to update the %s plugin. Contact the administrator of this site for help on getting the plugin updated.', 'Sorry, but you do not have the correct permissions to update the %s plugins. Contact the administrator of this site for help on getting the plugins updated.' ), // %1$s = plugin name(s)
            'install_link'                              => _n_noop( 'Begin installing plugin', 'Begin installing plugins' ),
            'activate_link'                             => _n_noop( 'Activate installed plugin', 'Activate installed plugins' ),
            'return'                                    => __( 'Return to Required Plugins Installer', $theme_text_domain ),
            'plugin_activated'                          => __( 'Plugin activated successfully.', $theme_text_domain ),
            'complete'                                  => __( 'All plugins installed and activated successfully. %s', $theme_text_domain ) // %1$s = dashboard link
        )
    );
 
    tgmpa( $plugins, $config );
 
}


       