Files
Roman Pyrih d6241cfa7a first commit
2024-12-19 15:27:13 +01:00

286 lines
14 KiB
PHP

<?php /**
* @version 1.0
* @package Booking Manager
* @category Content of Settings page
* @author wpdevelop
*
* @web-site https://oplugins.com/
* @email info@oplugins.com
*
* @modified 2015-11-02
*/
if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
/** Show Content
* Update Content
* Define Slug
* Define where to show
*/
class WPBM_Page_SettingsGeneral extends WPBM_Page_Structure {
private $settings_api = false;
public function in_page() {
return 'oplugins';// 'wpbm-settings';
}
/** Get Settings API class - define, show, update "Fields".
*
* @return object Settings API
*/
public function settings_api(){
if ( $this->settings_api === false )
$this->settings_api = new WPBM_Settings_API_General();
return $this->settings_api;
}
public function tabs() {
$tabs = array();
$tabs[ 'wpbm-settings' ] = array(
'title' => __( 'Settings', 'booking-manager' ) // Title of TAB
, 'page_title' => __( 'Settings', 'booking-manager' ) // Title of Page
, 'hint' => __( 'Settings', 'booking-manager' ) // Hint
, 'link' => '' // Can be skiped, then generated link based on Page and Tab tags. Or can be extenral link
, 'position' => '' // 'left' || 'right' || ''
, 'css_classes' => '' // CSS class(es)
, 'icon' => '' // Icon - link to the real PNG img
, 'font_icon' => 'glyphicon glyphicon-cog' // CSS definition of forn Icon
, 'default' => ! true // Is this tab activated by default or not: true || false.
);
$subtabs = array();
/*
$subtabs['wpbm-settings-listing'] = array( 'type' => 'goto-link'
, 'title' => __('Misc', 'booking-manager')
, 'show_section' => 'wpbm_general_settings_wpbm_misc_metabox'
);
$subtabs['wpbm-settings-menu-access'] = array( 'type' => 'goto-link'
, 'title' => __('Plugin Menu', 'booking-manager')
, 'show_section' => 'wpbm_general_settings_permissions_metabox'
);
$subtabs['wpbm-settings-uninstall'] = array( 'type' => 'goto-link'
, 'title' => __('Uninstall', 'booking-manager')
, 'show_section' => 'wpbm_general_settings_uninstall_metabox'
);
$subtabs['wpbm-settings-advanced'] = array( 'type' => 'goto-link'
, 'title' => __('Advanced', 'booking-manager')
, 'show_section' => 'wpbm_general_settings_advanced_metabox'
);
$subtabs['form-save'] = array(
'type' => 'button'
, 'title' => __('Save Changes', 'booking-manager')
, 'form' => 'wpbm_general_settings_form'
);
*/
$subtabs['general'] = array(
'type' => 'subtab' // Required| Possible values: 'subtab' | 'separator' | 'button' | 'goto-link' | 'html'
, 'title' => __('General Settings' , 'booking-manager') // Title of TAB
, 'page_title' => __('General Settings', 'booking-manager') // Title of Page
, 'hint' => __('General Settings' , 'booking-manager') // Hint
, 'link' => '' // link
, 'position' => '' // 'left' || 'right' || ''
, 'css_classes' => '' // CSS class(es)
//, 'icon' => 'http://.../icon.png' // Icon - link to the real PNG img
//, 'font_icon' => 'glyphicon glyphicon-envelope' // CSS definition of Font Icon
, 'default' => true // Is this sub tab activated by default or not: true || false.
, 'disabled' => false // Is this sub tab deactivated: true || false.
, 'checkbox' => false // or definition array for specific checkbox: array( 'checked' => true, 'name' => 'feature1_active_status' ) //, 'checkbox' => array( 'checked' => $is_checked, 'name' => 'enabled_active_status' )
, 'content' => 'content' // Function to load as conten of this TAB
);
$tabs[ 'wpbm-settings' ]['subtabs'] = $subtabs;
return $tabs;
}
public function content() {
// Checking ////////////////////////////////////////////////////////////
do_action( 'wpbm_hook_settings_page_header', array( 'page' => $this->in_page() ) ); // Define Notices Section and show some static messages, if needed.
$is_can = apply_wpbm_filter('recheck_version', true); if ( ! $is_can ) { ?><script type="text/javascript"> jQuery(document).ready(function(){ jQuery( '.wpdvlp-sub-tabs').remove(); }); </script><?php return; }
// Init Settings API & Get Data from DB ////////////////////////////////
$this->settings_api(); // Define all fields and get values from DB
// Submit /////////////////////////////////////////////////////////////
$submit_form_name = 'wpbm_general_settings_form'; // Define form name
if ( isset( $_POST['is_form_sbmitted_'. $submit_form_name ] ) ) {
// Nonce checking {Return false if invalid, 1 if generated between, 0-12 hours ago, 2 if generated between 12-24 hours ago. }
$nonce_gen_time = check_admin_referer( 'wpbm_settings_page_' . $submit_form_name ); // Its stop show anything on submiting, if its not refear to the original page
// Save Changes
$this->update();
}
//$wpbm_user_role_master = get_wpbm_option( 'wpbm_user_role_master' ); // O L D W A Y: Get Fields Data
// JavaScript: Tooltips, Popover, Datepick (js & css) //////////////////
echo '<span class="wpdevelop">';
wpbm_js_for_items_page();
echo '</span>';
?><div class="clear"></div><?php
if ( 1 ) {
// Scroll links ////////////////////////////////////////////////////////
?>
<div class="wpdvlp-sub-tabs" style="background:none;border:none;box-shadow: none;padding:0;"><span class="nav-tabs" style="text-align:right;">
<a onclick="javascript:wpbm_scroll_to('#wpbm_general_settings_wpbm_misc_metabox' );" href="javascript:void(0);" original-title="" class="nav-tab go-to-link"><span><?php
echo ucwords( __('Misc', 'booking-manager') ); ?></span></a>
</span>
<span class="nav-tabs" style="text-align:right;">
<a onclick="javascript:wpbm_scroll_to('#wpbm_general_settings_permissions_metabox' );" href="javascript:void(0);" original-title="" class="nav-tab go-to-link"><span><?php
echo ucwords( __('Plugin Menu', 'booking-manager') ); ?></span></a>
</span><span class="nav-tabs" style="text-align:right;">
<a onclick="javascript:wpbm_scroll_to('#wpbm_general_settings_uninstall_metabox' );" href="javascript:void(0);" original-title="" class="nav-tab go-to-link"><span><?php
echo ucwords( __('Uninstall', 'booking-manager') ); ?></span></a>
</span><span class="nav-tabs" style="text-align:right;">
<a onclick="javascript:wpbm_scroll_to('#wpbm_general_settings_advanced_metabox' );" href="javascript:void(0);" original-title="" class="nav-tab go-to-link"><span><?php
echo ucwords( __('Advanced', 'booking-manager') ); ?></span></a>
</span></div>
<?php
}
// Content ////////////////////////////////////////////////////////////
?>
<div class="clear" style="margin-bottom:10px;"></div>
<span class="metabox-holder">
<form name="<?php echo $submit_form_name; ?>" id="<?php echo $submit_form_name; ?>" action="" method="post">
<?php
// N o n c e field, and key for checking S u b m i t
wp_nonce_field( 'wpbm_settings_page_' . $submit_form_name );
?><input type="hidden" name="is_form_sbmitted_<?php echo $submit_form_name; ?>" id="is_form_sbmitted_<?php echo $submit_form_name; ?>" value="1" />
<div class="wpbm_settings_row wpbm_settings_row_left" >
<?php // wpbm_open_meta_box_section( 'wpbm_general_settings_calendar', __('General', 'booking-manager') ); ?>
<?php // $this->settings_api()->show( 'general' ); ?>
<?php // wpbm_close_meta_box_section(); ?>
<?php wpbm_open_meta_box_section( 'wpbm_general_settings_wpbm_misc', __('Miscellaneous', 'booking-manager') ); ?>
<?php $this->settings_api()->show( 'wpbm_listing' ); ?>
<?php wpbm_close_meta_box_section(); ?>
<?php wpbm_open_meta_box_section( 'wpbm_general_settings_permissions', __('Plugin Menu', 'booking-manager') ); ?>
<?php $this->settings_api()->show( 'permissions' ); ?>
<?php wpbm_close_meta_box_section(); ?>
<?php wpbm_open_meta_box_section( 'wpbm_general_settings_uninstall', __('Uninstall / deactivation', 'booking-manager') ); ?>
<?php $this->settings_api()->show( 'uninstall' ); ?>
<?php wpbm_close_meta_box_section(); ?>
</div>
<div class="wpbm_settings_row wpbm_settings_row_right">
<?php wpbm_open_meta_box_section( 'wpbm_general_settings_information', __('Information', 'booking-manager') ); ?>
<?php $this->settings_api()->show( 'information' ); ?>
<?php wpbm_close_meta_box_section(); ?>
<?php wpbm_open_meta_box_section( 'wpbm_general_settings_advanced', __('Advanced', 'booking-manager') ); ?>
<?php $this->settings_api()->show( 'advanced' ); ?>
<?php wpbm_close_meta_box_section(); ?>
</div>
<div class="clear"></div>
<input type="submit" value="<?php _e('Save Changes', 'booking-manager'); ?>" class="button button-primary wpbm_submit_button" />
</form>
<?php if ( ( isset( $_GET['system_info'] ) ) && ( $_GET['system_info'] == 'show' ) ) { ?>
<div class="clear" style="height:30px;"></div>
<?php wpbm_open_meta_box_section( 'wpbm_general_settings_system_info', 'System Info' ); ?>
<?php wpbm_system_info(); ?>
<?php wpbm_close_meta_box_section(); ?>
<?php } ?>
</span>
<?php
do_action( 'wpbm_hook_settings_page_footer', 'general_settings' );
//debuge( 'Content <strong>' . basename(__FILE__ ) . '</strong> <span style="font-size:9px;">' . __FILE__ . '</span>');
}
public function update() {
//debuge($_POST);
$validated_fields = $this->settings_api()->validate_post(); // Get Validated Settings fields in $_POST request.
$validated_fields = apply_filters( 'wpbm_settings_validate_fields_before_saving', $validated_fields ); //Hook for validated fields.
//debuge($validated_fields);
// Skip saving specific option, for example in Demo mode.
// unset($validated_fields['wpbm_start_day_weeek']);
$this->settings_api()->save_to_db( $validated_fields ); // Save fields to DB
wpbm_show_changes_saved_message();
//debuge( basename(__FILE__), 'UPDATE', $_POST, $validated_fields);
// O L D W A Y: Saving Fields Data
// update_wpbm_option( 'wpbm_is_delete_if_deactive'
// , WPBM_Settings_API::validate_checkbox_post('wpbm_is_delete_if_deactive') );
// ( (isset( $_POST['wpbm_is_delete_if_deactive'] ))?'On':'Off') );
}
}
//if ( $is_other_tab ) {
//
// if ( ( ! isset( $_GET['tab'] ) ) || ( $_GET['tab'] == 'general' ) ) { // If tab was not selected or selected default, then redirect it to the "form" tab.
// $_GET['tab'] = 'form';
// }
//} else {
// add_action('wpbm_menu_created', array( new WPBM_Page_SettingsGeneral() , '__construct') ); // Executed after creation of Menu
//}
add_action('wpbm_menu_created', array( new WPBM_Page_SettingsGeneral() , '__construct') ); // Executed after creation of Menu