Sindbad~EG File Manager
<?php
/**
* Methods used for adding and saving meta data for WP Featherlight.
*
* @package WPFeatherlight\Admin
* @copyright Copyright (c) 2018, Cipher Development, LLC
* @license GPL-2.0+
* @since 0.1.0
*/
/**
* The main featherlight admin meta box and related methods.
*
* @since 0.1.0
*/
class WP_Featherlight_Admin_Meta {
/**
* Name for the nonce field
*
* @var string
*/
private $nonce_name = 'wp_featherlight_metabox_nonce';
/**
* Name for the nonce action
*
* @var string
*/
private $nonce_action = 'save_wp_featherlight_metabox';
/**
* Determine if the request to save data should be allowed to proceed.
*
* @since 1.0.0
* @access protected
* @param int $post_id Post ID.
* @return bool Whether or not this is a valid request to save our data.
*/
protected function validate_request( $post_id ) {
if ( 'POST' !== $_SERVER['REQUEST_METHOD'] ) { // Input var okay.
return false;
}
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
return false;
}
if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
return false;
}
if ( defined( 'DOING_CRON' ) && DOING_CRON ) {
return false;
}
if ( ! current_user_can( 'edit_post', $post_id ) ) {
return false;
}
if ( ! isset( $_POST[ $this->nonce_name ] ) ) { // Input var okay.
return false;
}
if ( ! wp_verify_nonce( sanitize_key( $_POST[ $this->nonce_name ] ), $this->nonce_action ) ) { // Input var okay.
return false;
}
// @link http://make.marketpress.com/multilingualpress/2014/10/how-to-disable-broken-save_post-callbacks/
if ( is_multisite() && ms_is_switched() ) {
return false;
}
return wp_unslash( $_POST ); // Input var okay.
}
/**
* Output the content of our metabox.
*
* @since 1.0.0
* @access public
*
* @param object $post Post object.
* @return void
*/
public function meta_box_view( $post ) {
if ( empty( $post ) ) {
$post = get_post();
}
if ( ! is_object( $post ) || ! isset( $post->post_type ) ) {
return;
}
$type = get_post_type_object( $post->post_type );
if ( ! is_object( $type ) ) {
return;
}
if ( current_user_can( $type->cap->edit_post, $post->ID ) && $type->public ) {
$disable = get_post_meta( $post->ID, 'wp_featherlight_disable', true );
$checked = empty( $disable ) ? '' : $disable;
require_once wp_featherlight()->get_dir() . 'admin/views/meta-box.php';
}
}
/**
* Callback function for saving our meta box data.
*
* @since 1.0.0
* @access public
* @param int $post_id Post ID.
* @return bool Whether or not data has been saved.
*/
public function save_meta_boxes( $post_id ) {
if ( ! $valid_request = $this->validate_request( $post_id ) ) {
return false;
}
$value = isset( $valid_request['wp_featherlight_disable'] ) ? 'yes' : '';
return (bool) update_post_meta( $post_id, 'wp_featherlight_disable', $value );
}
/**
* Add a metabox to control featherlight display options.
*
* @since 0.1.0
* @access public
* @param string $post_type the current post type.
* @return void
*/
public function add_meta_boxes( $post_type ) {
$type = get_post_type_object( $post_type );
if ( is_object( $type ) && $type->public ) {
add_meta_box(
'wp_featherlight_options',
__( 'WP Featherlight', 'wp-featherlight' ),
array( $this, 'options_callback' ),
null,
'side'
);
}
}
/**
* Output the content of our metabox.
*
* @deprecated 1.0.0
* @access public
*
* @param WP_Post $post Post object.
* @return void
*/
public function options_callback( WP_Post $post ) {
wp_featherlight()->i18n->load();
$disable = get_post_meta( $post->ID, 'wp_featherlight_disable', true );
$checked = empty( $disable ) ? '' : $disable;
require_once wp_featherlight()->get_dir() . 'admin/views/meta-box.php';
}
/**
* Hook into WordPress.
*
* @since 1.3.1
* @access protected
* @return void
*/
protected function wp_hooks() {
add_action( 'add_meta_boxes', array( $this, 'add_meta_boxes' ) );
if ( 'POST' === $_SERVER['REQUEST_METHOD'] ) {
$this->user_data = $_POST;
add_action( 'save_post', array( $this, 'save_meta_boxes' ) );
}
}
/**
* Get the class running!
*
* @since 0.1.0
* @deprecated 1.0.0
* @access public
* @return void
*/
public function run() {
$this->wp_hooks();
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists