REDROOM
PHP 8.2.31
Path:
Logout
Edit File
Size: 7.87 KB
Close
/home/nshryvcy/blissfulnepal.com/wp-content/plugins/tourmaster/framework/function/page-option.php
Text
Base64
<?php /* * Goodlayers Plugin Framework * --------------------------------------------------------------------- * creating the page option meta * --------------------------------------------------------------------- */ if( !class_exists('tourmaster_page_option') ){ class tourmaster_page_option{ // creating object private $settings = array(); function __construct( $settings = array() ){ $this->settings = wp_parse_args($settings, array( 'slug' => 'tourmaster-option', 'post_type' => array('page'), 'options' => array(), 'title' => esc_html__('Plugin Options', 'tourmaster'), 'title-icon' => 'fa fa-gears' )); // create custom meta box add_action('add_meta_boxes', array(&$this, 'init_page_option_meta_box')); // save custom metabox foreach( $this->settings['post_type'] as $post_type ){ add_action('save_post_' . $post_type , array(&$this, 'save_page_option_meta_box')); } // ajax save add_action('wp_ajax_tourmaster_save_page_option_data', array(&$this, 'ajax_save_page_option')); // add the script when opening the registered post type add_action('admin_enqueue_scripts', array(&$this, 'load_page_option_script') ); } // function that enqueue page builder script function load_page_option_script( $hook ){ if( ($hook == 'post.php' || $hook == 'post-new.php') && in_array(get_post_type(), $this->settings['post_type']) ){ tourmaster_html_option::include_script(); } } // function that creats page builder meta box function init_page_option_meta_box(){ foreach( $this->settings['post_type'] as $post_type ){ add_meta_box($this->settings['slug'], $this->settings['title'], array(&$this, 'create_page_option_meta_box'), $post_type, 'normal', 'high' ); } } function create_page_option_meta_box( $post ){ $page_option_value = apply_filters($this->settings['slug'] . '-init-value', get_post_meta($post->ID, $this->settings['slug'], true), $post->ID); // add nonce field to validate upon saving wp_nonce_field('tourmaster_page_option', 'plugin_page_option_security'); echo '<input type="hidden" class="tourmaster-page-option-value" name="' . esc_attr($this->settings['slug']). '" value="' . esc_attr(json_encode($page_option_value)) . '" />'; $this->get_option_head(); echo '<div class="tourmaster-page-option-content" >'; $this->get_option_tab($page_option_value, $post); echo '</div>'; } // page option head function get_option_head(){ echo '<div class="tourmaster-page-option-head" >'; echo '<div class="tourmaster-page-option-head-title">'; echo '<i class="' . esc_attr($this->settings['title-icon']) . '"></i>' . $this->settings['title']; echo '</div>'; // tourmaster-page-option-head-title echo '<div class="tourmaster-page-option-head-save" data-post-id="' . esc_attr(get_the_ID()) . '" '; echo 'data-ajax-url="' . esc_url(TOURMASTER_AJAX_URL) . '" '; echo 'data-failed-head="' . esc_attr__('An error occurs', 'goodlayers-core') . '" '; echo 'data-failed-message="' . esc_attr__('Please use wordpress update button to update the page instead.' ,'goodlayers-core') . '" '; echo ' >'; echo '<i class="fa fa-save"></i>'; echo esc_html__('Save Settings', 'goodlayers-core'); echo '</div>'; echo '</div>'; } // page option tab function get_option_tab($option_value, $post = null){ $active = true; echo '<div class="tourmaster-page-option-tab-head clearfix" id="tourmaster-page-option-tab-head" >'; foreach( $this->settings['options'] as $tab_slug => $tab_options ){ echo '<div class="tourmaster-page-option-tab-head-item ' . ($active? 'tourmaster-active': '') . '" data-tab-slug="' . esc_attr($tab_slug) . '" >'; echo $tab_options['title']; echo '</div>'; // tourmaster-page-option-tab-head-item $active = false; } echo '</div>'; // tourmaster-page-option-tab-head $active = true; echo '<div class="tourmaster-page-option-tab-content tourmaster-condition-wrapper" id="tourmaster-page-option-tab-content" >'; foreach( $this->settings['options'] as $tab_slug => $tab_options ){ echo '<div class="tourmaster-page-option-tab-content-item ' . ($active? 'tourmaster-active': '') . '" data-tab-slug="' . esc_attr($tab_slug) . '" >'; foreach( $tab_options['options'] as $option_slug => $option ){ $option['slug'] = $option_slug; if( !empty($option['single']) ){ $option['value'] = get_post_meta($post->ID, $option['single'], true); }else if( isset($option_value[$option_slug]) ){ $option['value'] = $option_value[$option_slug]; } echo tourmaster_html_option::get_element($option); } echo '</div>'; $active = false; } echo '</div>'; // tourmaster-page-option-tab-content } // ajax save meta box function ajax_save_page_option(){ if( !check_ajax_referer('tourmaster_page_option', 'security', false) ){ die(json_encode(array( 'status' => 'failed', 'head' => esc_html__('Invalid Nonce', 'tourmaster'), 'message'=> esc_html__('Please use wordpress update button to update the page instead.' ,'tourmaster') ))); } if( !empty($_POST['name']) && $_POST['name'] == $this->settings['slug'] ){ if( !empty($_POST['post_id']) ){ $value = json_decode(tourmaster_process_post_data($_POST['value']), true); $value = wp_slash($value); if( !empty($value) ){ foreach( $this->settings['options'] as $tab ){ foreach( $tab['options'] as $option_slug => $option ){ if( !empty($option['single']) && isset($value[$option_slug]) ){ update_post_meta($_POST['post_id'], $option['single'], $value[$option_slug]); unset($value[$option_slug]); } } } update_post_meta($_POST['post_id'], $_POST['name'], $value); do_action('tourmaster_after_ajax_save_page_option', $_POST['post_id']); } die(json_encode(array( 'status' => 'success', 'head' => esc_html__('Successfully Save', 'tourmaster'), 'message'=> '' ))); } die(json_encode(array( 'status' => 'success', 'head' => esc_html__('An error occurs', 'tourmaster'), 'message' => esc_html__('Please use wordpress update button to update the page instead.' ,'tourmaster') ))); } } // test save post function save_page_option_meta_box( $post_id ){ // check if nonce is available if( !isset($_POST['plugin_page_option_security']) ){ return; } // vertify that the nonce is vaild if( !wp_verify_nonce($_POST['plugin_page_option_security'], 'tourmaster_page_option') ) { return; } // ignore the auto save if( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ){ return; } // check the user's permissions. if( isset($_POST['post_type']) && 'page' == $_POST['post_type'] ) { if( !current_user_can('edit_page', $post_id) ){ return; } }else{ if( !current_user_can('edit_post', $post_id) ){ return; } } // start updating the meta fields if( !empty($_POST[$this->settings['slug']]) ){ $value = json_decode(tourmaster_process_post_data($_POST[$this->settings['slug']]), true); foreach( $this->settings['options'] as $tab ){ foreach( $tab['options'] as $option_slug => $option ){ if( !empty($option['single']) && isset($value[$option_slug]) ){ update_post_meta($post_id, $option['single'], $value[$option_slug]); unset($value[$option_slug]); } } } update_post_meta($post_id, $this->settings['slug'], $value); } } // convert the data to read able revision format function convert_page_option_revision_data( $data ){ return json_encode($data) . "\n" . ' - convert :) '; } } // tourmaster_page_option } // class_exists
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 8
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
file-system.php
3.52 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
html-option.php
31.81 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
media.php
6.67 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
page-option.php
7.87 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
plugin-option.php
21.14 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
tax-option.php
3.50 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
utility.php
21.48 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
widget-util.php
2.56 KB
lrw-r--r--
2024-05-28 15:48:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).