/** Sends user to the welcome page on first activation */ public function welcome() { // Bail if no activation redirect transient is set if (!get_transient('_evo_activation_redirect')) { return; } // Delete the redirect transient delete_transient('_evo_activation_redirect'); // Bail if we are waiting to install or update via the interface update/install links if (get_option('_evo_needs_update') == 1) { return; } // Bail if activating from network, or bulk, or within an iFrame if (is_network_admin() || isset($_GET['activate-multi']) || defined('IFRAME_REQUEST')) { return; } // plugin is updated if (isset($_GET['action']) && 'upgrade-plugin' == $_GET['action'] && (isset($_GET['plugin']) && strstr($_GET['plugin'], 'eventon.php'))) { return; } //wp_safe_redirect( admin_url( 'index.php?page=evo-about&evo-updated=true' ) ); wp_safe_redirect(admin_url('index.php?page=evo-about')); eventon_generate_options_css(); // update dynamic styles as well - 2.3.8 exit; }
/** * Settings page. * * Handles the display of the main EventON settings page in admin. * * @access public * @return void */ function eventon_settings() { global $eventon, $ajde; do_action('eventon_settings_start'); // Settings Tabs array $evcal_tabs = apply_filters('eventon_settings_tabs', array('evcal_1' => __('Settings', 'eventon'), 'evcal_2' => __('Language', 'eventon'), 'evcal_3' => __('Styles', 'eventon'), 'evcal_4' => __('Addons & Licenses', 'eventon'), 'evcal_5' => __('Support', 'eventon'))); // Get current tab/section $focus_tab = isset($_GET['tab']) ? sanitize_text_field(urldecode($_GET['tab'])) : 'evcal_1'; $current_section = isset($_GET['section']) ? sanitize_text_field(urldecode($_GET['section'])) : ''; // Update or add options if (isset($_POST['evcal_noncename']) && isset($_POST)) { if (wp_verify_nonce($_POST['evcal_noncename'], AJDE_EVCAL_BASENAME)) { foreach ($_POST as $pf => $pv) { if ($pf != 'evcal_styles' && $focus_tab != 'evcal_4' || $pf != 'evcal_sort_options') { $pv = is_array($pv) ? $pv : addslashes(esc_html(stripslashes($pv))); $evcal_options[$pf] = $pv; } if ($pf == 'evcal_sort_options') { $evcal_options[$pf] = $pv; } } // General settings page - write styles to head option if ($focus_tab == 'evcal_1' && isset($_POST['evcal_css_head']) && $_POST['evcal_css_head'] == 'yes') { ob_start(); include AJDE_EVCAL_PATH . '/assets/css/dynamic_styles.php'; $evo_dyn_css = ob_get_clean(); update_option('evo_dyn_css', $evo_dyn_css); } //language tab if ($focus_tab == 'evcal_2') { $new_lang_opt = ''; $_lang_version = !empty($_GET['lang']) ? $_GET['lang'] : 'L1'; $lang_opt = get_option('evcal_options_evcal_2'); if (!empty($lang_opt)) { $new_lang_opt[$_lang_version] = $evcal_options; $new_lang_opt = array_merge($lang_opt, $new_lang_opt); } else { $new_lang_opt[$_lang_version] = $evcal_options; } update_option('evcal_options_evcal_2', $new_lang_opt); } elseif ($focus_tab == 'evcal_1' || empty($focus_tab)) { // store custom meta box count $cmd_count = evo_calculate_cmd_count(); $evcal_options['cmd_count'] = $cmd_count; update_option('evcal_options_' . $focus_tab, $evcal_options); // all other settings tabs } else { update_option('evcal_options_' . $focus_tab, $evcal_options); } // STYLES if (isset($_POST['evcal_styles'])) { update_option('evcal_styles', strip_tags(stripslashes($_POST['evcal_styles']))); } $_POST['settings-updated'] = 'true'; eventon_generate_options_css(); // nonce check } else { die(__('Action failed. Please refresh the page and retry.', 'eventon')); } } // Load eventon settings values for current tab $current_tab_number = substr($focus_tab, -1); if (!is_numeric($current_tab_number)) { // if the tab last character is not numeric then get the whole tab name as the variable name for the options $current_tab_number = $focus_tab; } $evcal_opt[$current_tab_number] = get_option('evcal_options_' . $focus_tab); // activation notification if (!$eventon->evo_updater->is_activated('eventon')) { echo '<div class="update-nag">' . __('Your eventON license is not saved. eventON should still work fine. <a href="' . get_admin_url() . 'admin.php?page=eventon&tab=evcal_4">Enter License Now</a>', 'eventon') . '</div>'; } // TABBBED HEADER ?> <div class="wrap" id='evcal_settings'> <h2><?php _e('EventON Settings', 'eventon'); ?> (ver <?php echo get_option('eventon_plugin_version'); ?> ) <?php do_action('eventon_updates_in_settings'); ?> </h2> <h2 class='nav-tab-wrapper' id='meta_tabs'> <?php foreach ($evcal_tabs as $nt => $ntv) { $evo_notification = ''; echo "<a href='?page=eventon&tab=" . $nt . "' class='nav-tab " . ($focus_tab == $nt ? 'nav-tab-active' : null) . " {$nt}' evcal_meta='evcal_{$nt}'>" . $ntv . $evo_notification . "</a>"; } ?> </h2> <div class='evo_settings_box'> <?php // SETTINGS SAVED MESSAGE $updated_code = isset($_POST['settings-updated']) && $_POST['settings-updated'] == 'true' ? '<div class="updated fade"><p>' . __('Settings Saved', 'eventon') . '</p></div>' : null; echo $updated_code; // TABS switch ($focus_tab) { case "evcal_1": // Event type custom taxonomy NAMES $event_type_names = evo_get_ettNames($evcal_opt[1]); $evt_name = $event_type_names[1]; $evt_name2 = $event_type_names[2]; ?> <form method="post" action=""><?php settings_fields('evcal_field_group'); wp_nonce_field(AJDE_EVCAL_BASENAME, 'evcal_noncename'); ?> <div id="evcal_1" class=" evcal_admin_meta evcal_focus"> <div class="evo_inside"> <?php require_once AJDE_EVCAL_PATH . '/includes/admin/settings/class-settings-settings.php'; $settings = new evo_settings_settings($evcal_opt); $ajde->load_ajde_backender(); print_ajde_customization_form($settings->content(), $evcal_opt[1]); ?> </div> </div> <div class='evo_diag'> <input type="submit" class="evo_admin_btn btn_prime" value="<?php _e('Save Changes'); ?> " /> <a id='resetColor' style='display:none' class='evo_admin_btn btn_secondary'><?php _e('Reset to default colors', 'eventon'); ?> </a><br/><br/> <a target='_blank' href='http://www.myeventon.com/support/'><img src='<?php echo AJDE_EVCAL_URL; ?> /assets/images/myeventon_resources.png'/></a> </div> </form> <?php break; // LANGUAGE TAB // LANGUAGE TAB case "evcal_2": require_once AJDE_EVCAL_PATH . '/includes/admin/settings/settings_language_tab.php'; $settings_lang = new evo_settings_lang($evcal_opt); $settings_lang->get_content(); break; // STYLES TAB // STYLES TAB case "evcal_3": echo '<form method="post" action="">'; //settings_fields('evcal_field_group'); wp_nonce_field(AJDE_EVCAL_BASENAME, 'evcal_noncename'); // styles settings tab content require_once AJDE_EVCAL_PATH . '/includes/admin/settings/settings_styles_tab.php'; break; // ADDON TAB // ADDON TAB case "evcal_4": // Addons settings tab content require_once AJDE_EVCAL_PATH . '/includes/admin/settings/settings_addons_tab.php'; break; // support TAB // support TAB case "evcal_5": // Addons settings tab content require_once AJDE_EVCAL_PATH . '/includes/admin/settings/settings_support_tab.php'; break; // ADVANDED extra field // ADVANDED extra field case "extra": // advanced tab content require_once AJDE_EVCAL_PATH . '/includes/admin/settings/settings_advanced_tab.php'; break; default: do_action('eventon_settings_tabs_' . $focus_tab); break; } echo "</div>"; }
/** * Settings page. * * Handles the display of the main EventON settings page in admin. * * @access public * @return void */ function eventon_settings() { global $eventon; do_action('eventon_settings_start'); // Settings Tabs array $evcal_tabs = apply_filters('eventon_settings_tabs', array('evcal_1' => __('Settings', 'eventon'), 'evcal_2' => __('Language', 'eventon'), 'evcal_3' => __('Styles', 'eventon'), 'evcal_4' => __('Addons & Licenses', 'eventon'), 'evcal_5' => __('Support', 'eventon'))); // Get current tab/section $focus_tab = isset($_GET['tab']) ? sanitize_text_field(urldecode($_GET['tab'])) : 'evcal_1'; $current_section = isset($_GET['section']) ? sanitize_text_field(urldecode($_GET['section'])) : ''; $evcal_skins[] = 'slick'; // Update or add options if (isset($_POST['evcal_noncename']) && isset($_POST)) { if (wp_verify_nonce($_POST['evcal_noncename'], AJDE_EVCAL_BASENAME)) { foreach ($_POST as $pf => $pv) { if ($pf != 'evcal_styles' && $focus_tab != 'evcal_4' || $pf != 'evcal_sort_options') { $pv = is_array($pv) ? $pv : $pv; $evcal_options[$pf] = $pv; } if ($pf == 'evcal_sort_options') { $evcal_options[$pf] = $pv; } } // General settings page - write styles to head option if ($focus_tab == 'evcal_1' && isset($_POST['evcal_css_head']) && $_POST['evcal_css_head'] == 'yes') { ob_start(); include AJDE_EVCAL_PATH . '/assets/css/dynamic_styles.php'; $evo_dyn_css = ob_get_clean(); update_option('evo_dyn_css', $evo_dyn_css); } //language tab if ($focus_tab == 'evcal_2') { $new_lang_opt = ''; $_lang_version = !empty($_GET['lang']) ? $_GET['lang'] : 'L1'; $lang_opt = get_option('evcal_options_evcal_2'); if (!empty($lang_opt)) { $new_lang_opt[$_lang_version] = $evcal_options; $new_lang_opt = array_merge($lang_opt, $new_lang_opt); } else { $new_lang_opt[$_lang_version] = $evcal_options; } update_option('evcal_options_evcal_2', $new_lang_opt); } elseif ($focus_tab == 'evcal_1' || empty($focus_tab)) { // store custom meta box count $cmd_count = evo_calculate_cmd_count(); $evcal_options['cmd_count'] = $cmd_count; update_option('evcal_options_' . $focus_tab, $evcal_options); // all other settings tabs } else { update_option('evcal_options_' . $focus_tab, $evcal_options); } // STYLES if (isset($_POST['evcal_styles'])) { update_option('evcal_styles', strip_tags(stripslashes($_POST['evcal_styles']))); } $_POST['settings-updated'] = 'true'; eventon_generate_options_css(); // nonce check } else { die(__('Action failed. Please refresh the page and retry.', 'eventon')); } } // Load eventon settings values for current tab $current_tab_number = substr($focus_tab, -1); if (!is_numeric($current_tab_number)) { // if the tab last character is not numeric then get the whole tab name as the variable name for the options $current_tab_number = $focus_tab; } $evcal_opt[$current_tab_number] = get_option('evcal_options_' . $focus_tab); //print_r(get_option('_evo_licenses')); //print_r($evcal_opt[1]); // activation notification if (!$eventon->evo_updater->is_activated('eventon')) { echo '<div class="update-nag">' . __('Your copy of EventOn is not activated yet some features may be restricted. <a href="' . get_admin_url() . 'admin.php?page=eventon&tab=evcal_4">Activate License Now</a>', 'eventon') . '</div>'; } // TABBBED HEADER ?> <div class="wrap" id='evcal_settings'> <div id='eventon'><div id="icon-themes" class="icon32"></div></div> <h2>EventON Settings (ver <?php echo get_option('eventon_plugin_version'); ?> ) <?php do_action('eventon_updates_in_settings'); ?> </h2> <h2 class='nav-tab-wrapper' id='meta_tabs'> <?php foreach ($evcal_tabs as $nt => $ntv) { $evo_notification = ''; echo "<a href='?page=eventon&tab=" . $nt . "' class='nav-tab " . ($focus_tab == $nt ? 'nav-tab-active' : null) . " {$nt}' evcal_meta='evcal_{$nt}'>" . $ntv . $evo_notification . "</a>"; } ?> </h2> <div class='evo_settings_box'> <?php // SETTINGS SAVED MESSAGE $updated_code = isset($_POST['settings-updated']) && $_POST['settings-updated'] == 'true' ? '<div class="updated fade"><p>' . __('Settings Saved', 'eventon') . '</p></div>' : null; echo $updated_code; // TABS switch ($focus_tab) { case "evcal_1": // Event type custom taxonomy NAMES $event_type_names = evo_get_ettNames($evcal_opt[1]); $evt_name = $event_type_names[1]; $evt_name2 = $event_type_names[2]; ?> <form method="post" action=""><?php settings_fields('evcal_field_group'); wp_nonce_field(AJDE_EVCAL_BASENAME, 'evcal_noncename'); ?> <div id="evcal_1" class=" evcal_admin_meta evcal_focus"> <div class="evo_inside"> <?php require_once AJDE_EVCAL_PATH . '/includes/admin/settings/class-settings-settings.php'; $settings = new evo_settings_settings($evcal_opt); $eventon->load_ajde_backender(); print_ajde_customization_form($settings->content(), $evcal_opt[1]); ?> </div> </div> <div class='evo_diag'> <input type="submit" class="evo_admin_btn btn_prime" value="<?php _e('Save Changes'); ?> " /> <a id='resetColor' style='display:none' class='evo_admin_btn btn_secondary'><?php _e('Reset to default colors', 'eventon'); ?> </a><br/><br/> <a target='_blank' href='http://www.myeventon.com/support/'><img src='<?php echo AJDE_EVCAL_URL; ?> /assets/images/myeventon_resources.png'/></a> </div> </form> <?php break; // LANGUAGE TAB // LANGUAGE TAB case "evcal_2": //print_r($evcal_opt[1]); $__lang_version = !empty($_GET['lang']) ? $_GET['lang'] : 'L1'; $lang_options = !empty($evcal_opt[2][$__lang_version]) ? $evcal_opt[2][$__lang_version] : null; //$lang_options =eventon_process_lang_options($lang_options); $eventon_months = array(1 => 'january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'); $eventon_days = array(1 => 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday'); // Language variations $lang_variations = apply_filters('eventon_lang_variation', array('L1', 'L2', 'L3')); $uri_parts = explode('?', $_SERVER['REQUEST_URI'], 2); ?> <form method="post" action=""><?php settings_fields('evcal_field_group'); wp_nonce_field(AJDE_EVCAL_BASENAME, 'evcal_noncename'); ?> <div id="evcal_2" class="postbox evcal_admin_meta"> <div class="inside"> <h2><?php _e('Type in custom language text for front-end calendar', 'eventon'); ?> </h2> <h4><?php _e('Select your language', 'eventon'); ?> <select id='evo_lang_selection' url=<?php echo 'http://' . $_SERVER['HTTP_HOST'] . $uri_parts[0]; ?> > <?php foreach ($lang_variations as $lang) { echo "<option value='{$lang}' " . ($__lang_version == $lang ? 'selected="select"' : null) . ">{$lang}</option>"; } ?> </select><span class='evoGuideCall'>?<em><?php _e("You can use this to save upto 2 different languages for customized text. Once saved use the shortcode to show calendar text in that customized language. eg. [add_eventon lang='L2']", 'eventon'); ?> </em></span></h4> <p><i><?php _e('Please use the below fields to type in custom language text that will be used to replace the default language text on the front-end of the calendar.', 'eventon'); ?> </i></p> <div class='evoLANG_section_header evo_settings_toghead'><?php _e('Months and Dates', 'eventon'); ?> </div> <div class='evo_settings_togbox'> <div class='evcal_lang_box '> <?php // full month names for ($x = 1; $x < 13; $x++) { $pre_var_name = 'evcal_lang_'; echo "<p class='evcal_lang_p'><input type='text' name='" . $pre_var_name . $x . "' class='evcal_lang' value='"; echo !empty($lang_options[$pre_var_name . $x]) ? $lang_options[$pre_var_name . $x] : $eventon_months[$x]; echo "'/></p>"; } echo "<p class='clear' style='padding-top:5px'></p>"; // 3 letter month names for ($x = 1; $x < 13; $x++) { $pre_var_name = 'evo_lang_3Lm_'; $month_3l = substr($eventon_months[$x], 0, 3); echo "<p class='evcal_lang_p'><input type='text' name='" . $pre_var_name . $x . "' class='evcal_lang' value='"; echo !empty($lang_options[$pre_var_name . $x]) ? $lang_options[$pre_var_name . $x] : $month_3l; echo "'/></p>"; } echo "<p class='clear' style='padding-top:5px'></p>"; // 1 letter month names for ($x = 1; $x < 13; $x++) { $pre_var_name = 'evo_lang_1Lm_'; $month_3l = substr($eventon_months[$x], 0, 1); echo "<p class='evcal_lang_p'><input type='text' name='" . $pre_var_name . $x . "' class='evcal_lang' value='"; echo !empty($lang_options[$pre_var_name . $x]) ? $lang_options[$pre_var_name . $x] : $month_3l; echo "'/></p>"; } echo "<p class='clear' style='padding-top:5px'></p>"; ?> <p style='clear:both'></p> </div> <div class='evcal_lang_box'> <?php // full day names for ($x = 1; $x < 8; $x++) { $num = $x; $pre_var_name = 'evcal_lang_day'; echo "<p class='evcal_lang_p'><input type='text' name='" . $pre_var_name . $num . "' class='evcal_lang' value='"; echo !empty($lang_options[$pre_var_name . $num]) ? $lang_options[$pre_var_name . $num] : $eventon_days[$x]; echo "'/></p>"; } echo "<p class='clear' style='padding-top:5px'></p>"; // 3 letter day names for ($x = 1; $x < 8; $x++) { $num = $x; $pre_var_name = 'evo_lang_3Ld_'; $day_3l = substr($eventon_days[$x], 0, 3); echo "<p class='evcal_lang_p'><input type='text' name='" . $pre_var_name . $num . "' class='evcal_lang' value='"; echo !empty($lang_options[$pre_var_name . $num]) ? $lang_options[$pre_var_name . $num] : $day_3l; echo "'/></p>"; } if (has_action('eventon_lang_after_daynames')) { do_action('eventon_lang_after_daynames'); } ?> <p style='clear:both'></p> </div> </div> <?php require_once AJDE_EVCAL_PATH . '/includes/admin/settings/settings_language_tab.php'; // hook into addons //eventon_settings_lang_tab_content $eventon_custom_language_array_updated = apply_filters('eventon_settings_lang_tab_content', array_filter($eventon_custom_language_array)); foreach ($eventon_custom_language_array_updated as $cl) { if (!empty($cl['type']) && $cl['type'] == 'togheader') { echo "<div class='evoLANG_section_header evo_settings_toghead'>{$cl['name']}</div>\n\t\t\t\t\t\t<div class='evo_settings_togbox'>"; } else { if (!empty($cl['type']) && $cl['type'] == 'togend') { echo '</div>'; } else { if (!empty($cl['type']) && $cl['type'] == 'subheader') { echo '<div class="evoLANG_subheader">' . $cl['label'] . '</div><div class="evoLANG_subsec">'; } else { $val = !empty($lang_options[$cl['name']]) ? $lang_options[$cl['name']] : ''; $placeholder = !empty($cl['placeholder']) ? $cl['placeholder'] : ''; echo "\n\t\t\t\t\t\t<div class='eventon_custom_lang_line'>\n\t\t\t\t\t\t\t<div class='eventon_cl_label_out'>\n\t\t\t\t\t\t\t\t<p class='eventon_cl_label'>{$cl['label']}</p>\n\t\t\t\t\t\t\t</div>"; echo '<input class="eventon_cl_input" type="text" name="' . $cl['name'] . '" placeholder="' . $placeholder . '" value="' . stripslashes($val) . '"/>'; echo "<div class='clear'></div>\n\t\t\t\t\t\t</div>"; echo !empty($cl['legend']) ? "<p class='eventon_cl_legend'>{$cl['legend']}</p>" : null; } } } } ?> </div> </div> <input type="submit" class="evo_admin_btn btn_prime" value="<?php _e('Save Changes', 'eventon'); ?> " style='margin-top:15px'/> </form> <?php break; // STYLES TAB // STYLES TAB case "evcal_3": echo '<form method="post" action="">'; //settings_fields('evcal_field_group'); wp_nonce_field(AJDE_EVCAL_BASENAME, 'evcal_noncename'); // styles settings tab content require_once AJDE_EVCAL_PATH . '/includes/admin/settings/settings_styles_tab.php'; break; // ADDON TAB // ADDON TAB case "evcal_4": // Addons settings tab content require_once AJDE_EVCAL_PATH . '/includes/admin/settings/settings_addons_tab.php'; break; // support TAB // support TAB case "evcal_5": // Addons settings tab content require_once AJDE_EVCAL_PATH . '/includes/admin/settings/settings_support_tab.php'; break; // ADVANDED extra field // ADVANDED extra field case "extra": // advanced tab content require_once AJDE_EVCAL_PATH . '/includes/admin/settings/settings_advanced_tab.php'; break; default: do_action('eventon_settings_tabs_' . $focus_tab); break; } echo "</div>"; }