View file vmag/inc/metabox/vmag-page-metabox.php

File size: 6.87Kb
<?php
/**
 * Functions for rendering metaboxes in post area
 * 
 * @package VMag
 */

add_action( 'add_meta_boxes', 'vmag_page_metabox' );

if( !function_exists( 'vmag_page_metabox' ) ):
	function vmag_page_metabox() {
		add_meta_box(
			'vmag_post_metabox_settings', // $id
			esc_html__( 'Page Options', 'vmag' ), // $title
			'vmag_page_metabox_settings_callback', // $callback
			'page', // $page
			'normal', // $context
			'high'
        ); // $priority
	}
endif; //vmag_page_metabox

$vmag_page_sidebar = array(
        'default-layout' => array(
                        'value'     => 'default_sidebar',
                        'label'     => esc_html__( 'Default Sidebar', 'vmag' ),
                        'thumbnail' => get_template_directory_uri() . '/inc/assets/images/default-sidebar.png'
                    ), 
        'right-sidebar' => array(
                        'value'     => 'right_sidebar',
                        'label'     => esc_html__( 'Right sidebar', 'vmag' ),
                        'thumbnail' => get_template_directory_uri() . '/inc/assets/images/right-sidebar.png'
                    ),
        'left-sidebar' => array(
                        'value'     => 'left_sidebar',
                        'label'     => esc_html__( 'Left sidebar', 'vmag' ),
                        'thumbnail' => get_template_directory_uri() . '/inc/assets/images/left-sidebar.png'
                    ),
        'no-sidebar' => array(
                        'value'     => 'no_sidebar',
                        'label'     => esc_html__( 'No sidebar Full width', 'vmag' ),
                        'thumbnail' => get_template_directory_uri() . '/inc/assets/images/no-sidebar.png'
                    ),
        
        'no-sidebar-center' => array(
                        'value'     => 'no_sidebar_center',
                        'label'     => esc_html__( 'No sidebar Centered', 'vmag' ),
                        'thumbnail' => get_template_directory_uri() . '/inc/assets/images/no-sidebar-center.png'
                    )    

    );

/**
 * Call back function for post option
 */
if( !function_exists( 'vmag_page_metabox_settings_callback' ) ):

	function vmag_page_metabox_settings_callback() {
		global $post, $vmag_page_sidebar;
		wp_nonce_field( basename( __FILE__ ), 'vmag_page_meta_nonce' );
?>
	<ul class="vmag-page-meta-tabs">
        <li class="meta-menu-titlebar active" atr="pg-metabox-info"><i class="fa fa-info"></i><?php esc_html_e( 'Information', 'vmag' ); ?></li>
        <li class="meta-menu-sidebars" atr="pg-metabox-sidebars"><i class="fa fa-map-o"></i><?php esc_html_e( 'Sidebars', 'vmag' ); ?></li>
    </ul><!--.tmp-page-meta-tabs-->
    <div class="pg-metabox">
            <!-- Header -->
            <div id="pg-metabox-info" class="pg-metabox-inside">
                <h3><?php esc_html_e( 'About Metabox Options', 'vmag' ); ?></h3>
                <hr />
                <ul>
                    <li><?php esc_html_e( 'This option allows to set a specific layout for this post.', 'vmag' ); ?></li>
                </ul>
            </div><!-- #pg-metabox-info-->

            <!-- Page sidebars -->
            <div id="pg-metabox-sidebars" class="pg-metabox-inside">
            	<div class="meta-row">
                    <div class="meta-title"> <?php esc_html_e( 'Available Sidebars', 'vmag' ); ?> </div>
                    <span class="section-desc"><em><?php esc_html_e( 'Choose between available layouts.', 'vmag' ); ?></em></span>
                    <div class="meta-options">
                        <div class="layout-thmub-section">
			                <ul class="single-sidebar-layout" id="vmag-img-container-meta">
			                <?php
			                    $img_count = 0 ; 
			                   foreach ( $vmag_page_sidebar as $field ) {
			                        $img_count++;
			                        $vmag_sidebar_meta_layout = get_post_meta( $post->ID, 'vmag_page_sidebar', true );
			                        $default_class ='';
			                        if( empty( $vmag_sidebar_meta_layout ) && $img_count == 1 ){
			                            $default_class = 'vmag-radio-img-selected';
			                        }
			                        $img_class = ( $field['value'] == $vmag_sidebar_meta_layout )?'vmag-radio-img-selected vmag-radio-img-img':'vmag-radio-img-img'; 
			                ?>
			                    <li>
			                        <label>
			                            <img class="<?php echo esc_attr( $default_class.' '.$img_class );?>" src="<?php echo esc_url( $field['thumbnail'] ); ?>" alt="<?php echo esc_attr( $field['label'] );?>" title="<?php echo esc_attr( $field['label'] );?>" />
			                            <input style = 'display:none' type="radio" value="<?php echo esc_attr( $field['value'] ); ?>" name="vmag_page_sidebar" <?php checked( $field['value'], $vmag_sidebar_meta_layout ); if( empty( $vmag_sidebar_meta_layout ) && $field['value'] == 'default_sidebar' ){ echo "checked='checked'";}  ?> />
			                        </label>
			                    </li>
			                    
			                <?php } ?>
			                </ul>
			            </div><!-- .layout-thmub-section -->
                    </div><!-- .meta-options -->
                </div>
            </div><!-- #pg-metabox-sidebars -->
        </div><!--.pg-metabox-->
    <div class="clear"></div>
<?php
	}
endif;

/**
 * Function for save sidebar layout of post
 */
add_action( 'save_post', 'vmag_save_page_settings' );

if( ! function_exists( 'vmag_save_page_settings' ) ):

function vmag_save_page_settings( $post_id ) {

    global $post, $vmag_page_sidebar;
    // Verify the nonce before proceeding.
    if ( !isset( $_POST[ 'vmag_page_meta_nonce' ] ) || !wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST[ 'vmag_page_meta_nonce' ] ) ), basename( __FILE__ ) ) )
        return;

    // Stop WP from clearing custom fields on autosave
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE) {
    	return;
    }        
        
    if ( isset( $_POST['post_type'] ) && 'page' == sanitize_text_field( wp_unslash( $_POST['post_type'] ) ) ) {
        if ( !current_user_can( 'edit_page', $post_id ) ){
        	return $post_id;  
        }            
    } elseif ( !current_user_can( 'edit_post', $post_id ) ) {  
            return $post_id;  
    }

    //$page_template_value = the_monday_get_page_template( $post->ID );    

    /*Post sidebar*/    
    $old = get_post_meta( $post_id, 'vmag_page_sidebar', true ); 
    $new = isset( $_POST['vmag_page_sidebar'] ) ? sanitize_text_field( wp_unslash( $_POST['vmag_page_sidebar'] ) ) : '';
    if ( $new && $new != $old ) {  
        update_post_meta ( $post_id, 'vmag_page_sidebar', $new );  
    } elseif ( '' == $new && $old ) {  
        delete_post_meta( $post_id,'vmag_page_sidebar', $old );  
    }

}
endif;