????JFIF??x?x????'
Server IP : 79.136.114.73 / Your IP : 3.128.205.62 Web Server : Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.29 OpenSSL/1.0.1f System : Linux b8009 3.13.0-170-generic #220-Ubuntu SMP Thu May 9 12:40:49 UTC 2019 x86_64 User : www-data ( 33) PHP Version : 5.5.9-1ubuntu4.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/www.astacus.se/wp-content/themes/x/framework/functions/global/admin/meta/ |
Upload File : |
<?php // ============================================================================= // FUNCTIONS/GLOBAL/ADMIN/META/SETUP.PHP // ----------------------------------------------------------------------------- // Sets up custom meta boxes utilized throughout the theme in various areas. // ============================================================================= // ============================================================================= // TABLE OF CONTENTS // ----------------------------------------------------------------------------- // 01. Set Path // 02. Add Entry Meta // 03. Create Entry Meta // 04. Save Entry Meta // 05. Include Entry and Taxonomy Meta Box Setup // ============================================================================= // Set Path // ============================================================================= $meta_path = X_TEMPLATE_PATH . '/framework/functions/global/admin/meta'; // Add Entry Meta // ============================================================================= function x_add_meta_box( $meta_box ) { if ( ! is_array( $meta_box ) ) return false; $callback = create_function( '$post,$meta_box', 'x_create_meta_box( $post, $meta_box["args"] );' ); add_meta_box( $meta_box['id'], $meta_box['title'], $callback, $meta_box['page'], $meta_box['context'], $meta_box['priority'], $meta_box ); } // Create Entry Meta // ============================================================================= function x_create_meta_box( $post, $meta_box ) { if ( ! is_array( $meta_box ) ) return false; if ( isset( $meta_box['description'] ) && $meta_box['description'] != '' ) echo '<p>' . $meta_box['description'] . '</p>'; wp_nonce_field( basename( __FILE__ ), 'x_meta_box_nonce' ); echo '<table class="form-table x-form-table">'; foreach( $meta_box['fields'] as $field ) { $meta = ( $post->post_status == 'auto-draft' ) ? $field['std'] : get_post_meta( $post->ID, $field['id'], true ); echo '<tr><th><label for="' . $field['id'] . '"><strong>' . $field['name'] . '</strong> <span>' . $field['desc'] . '</span></label></th>'; switch( $field['type'] ) { case 'text': echo '<td><input type="text" name="x_meta[' . $field['id'] . ']" id="' . $field['id'] . '" value="' . $meta . '" size="30" /></td>'; break; case 'textarea' : echo '<td><textarea name="x_meta[' . $field['id'] . ']" id="' . $field['id'] . '" rows="8" cols="5">' . $meta . '</textarea></td>'; break; case 'select' : echo '<td><select name="x_meta[' . $field['id'] . ']" id="' . $field['id'] . '">'; foreach( $field['options'] as $option ) { echo'<option'; if ( $meta ) { if ( $meta == $option ) echo ' selected="selected"'; } else { if ( $field['std'] == $option ) echo ' selected="selected"'; } echo'>' . $option . '</option>'; } echo '</select></td>'; break; case 'radio' : echo '<td>'; foreach( $field['options'] as $option ) { echo '<label class="radio-label"><input type="radio" name="x_meta[' . $field['id'] . ']" value="' . $option . '" class="radio"'; if ( $meta ) { if ( $meta == $option ) echo ' checked="yes"'; } else { if ( $field['std'] == $option ) echo ' checked="yes"'; } echo ' /> ' . $option . '</label> '; } echo '</td>'; break; case 'checkbox' : echo '<td>'; $val = ''; if ( $meta ) { if ( $meta == 'on' ) $val = ' checked="yes"'; } else { if( $field['std'] == 'on' ) $val = ' checked="yes"'; } echo '<input type="hidden" name="x_meta[' . $field['id'] . ']" value="off" /> <input type="checkbox" id="' . $field['id'] . '" name="x_meta[' . $field['id'] . ']" value="on"' . $val . ' /> '; echo '</td>'; break; case 'color': echo '<td><input type="text" name="x_meta[' . $field['id'] . ']" id="' . $field['id'] . '" class="wp-color-picker" value="' . $meta . '" data-default-color="' . $field['std'] . '" size="30" /></td>'; break; case 'file': echo '<td><input type="text" name="x_meta[' . $field['id'] . ']" id="' . $field['id'] . '" value="' . $meta . '" size="30" class="file" /> <input type="button" class="button" name="'. $field['id'] .'_button" id="'. $field['id'] .'_button" value="Browse" /></td>'; break; case 'images': echo '<td><input type="button" class="button" name="' . $field['id'] . '" id="x_images_upload" value="' . $field['std'] .'" /></td>'; break; case 'uploader' : GLOBAL $post; $output = ''; if ( $meta != '' ) { $thumb = explode( ',', $meta ); foreach ( $thumb as $thumb_image ) { $output .= '<div class="x-uploader-image"><img src="' . $thumb_image . '" alt="" /></div>'; } } echo '<td>' . '<input type="text" name="x_meta[' . $field['id'] . ']" id="' . $field['id'] . '" value="' . $meta . '" class="file" />' . '<input data-id="' . get_the_ID() . '" type="button" class="button" name="' . $field['id'] . '_button" id="' . $field['id'] . '_upload" value="Select Background Image(s)" />' . '<div class="x-meta-box-img-thumb-wrap">' . $output . '</div>' . '</td>'; ?> <script> jQuery(document).ready(function($) { // // 1. If media frame exists, open it. // 2. Set wp.media post ID so the uploader grabs the ID we want when initialized. // 3. Create media frame. // 4. When image selected, run callback. // 5. Restore main post ID. // 6. Restore main ID when media button is pressed. // var x_uploader; var wp_media_post_id = wp.media.model.settings.post.id; $('#<?php echo $field["id"] ?>_upload').on('click', function(e) { e.preventDefault(); var x_button = $(this); var set_to_post_id = x_button.data('id'); if ( x_uploader ) { x_uploader.uploader.uploader.param('post_id', set_to_post_id); x_uploader.open(); // 1 return; } else { wp.media.model.settings.post.id = set_to_post_id; // 2 } x_uploader = wp.media.frames.x_uploader = wp.media({ // 3 title : 'Insert Media', button : { text : 'Select' }, multiple : true }); x_uploader.on('select', function() { // 4 var selection = x_uploader.state().get('selection'); var files = []; selection.map( function( attachment ) { attachment = attachment.toJSON(); files.push(attachment.url); x_button.prev().val(files); }); x_button.next().html(''); for ( var i = 0; i < files.length; i++ ) { var ext = files[i].substr(files[i].lastIndexOf('.') + 1, files[i].length); x_button.next().append('<div class="row-image"><img src="' + files[i] + '" alt="" /></div>'); } wp.media.model.settings.post.id = wp_media_post_id; // 5 }); x_uploader.open(); }); jQuery('a.add_media').on('click', function() { wp.media.model.settings.post.id = wp_media_post_id; // 6 }); }); </script> <?php break; case 'select-portfolio-parent' : $pages = get_pages( array( 'meta_key' => '_wp_page_template', 'meta_value' => 'template-layout-portfolio.php', 'sort_order' => 'ASC', 'sort_column' => 'ID' ) ); echo '<td><select name="x_meta[' . $field['id'] . ']" id="' . $field['id'] . '">'; echo '<option value="Default">Default</option>'; foreach ( $pages as $page ) { echo '<option value="' . $page->ID . '"'; if ( $meta ) { if ( $meta == $page->ID ) echo ' selected="selected"'; } else { if ( $field['std'] == $page->ID ) echo ' selected="selected"'; } echo'>' . $page->post_title . '</option>'; } echo '</select></td>'; break; case 'select-portfolio-category' : $categories = get_terms( 'portfolio-category' ); $meta = ( $meta == '' ) ? array( 0 => 'All Categories' ) : $meta; echo '<td><select name="x_meta[' . $field['id'] . '][]" id="' . $field['id'] . '" multiple="multiple">'; echo '<option value="All Categories" ' . selected( $meta[0], 'All Categories', true ) . '>All Categories</option>'; foreach ( $categories as $category ) { echo '<option value="' . $category->term_id . '"'; if ( in_array( $category->term_id, $meta ) ) echo ' selected="selected"'; echo'>' . $category->name . '</option>'; } echo '</select></td>'; break; case 'radio-portfolio-layout' : echo '<td>'; foreach( $field['options'] as $key => $option ) { echo '<label class="radio-label"><input type="radio" name="x_meta[' . $field['id'] . ']" value="' . $key . '" class="radio"'; if ( $meta ) { if ( $meta == $key ) echo ' checked="yes"'; } else { if ( $field['std'] == $key ) echo ' checked="yes"'; } echo ' /> ' . $option . '</label> '; } echo '</td>'; break; case 'menus' : $menus = get_terms( 'nav_menu', array( 'hide_empty' => true ) ); echo '<td><select name="x_meta[' . $field['id'] . ']" id="' . $field['id'] . '">'; echo '<option>Deactivated</option>'; foreach ( $menus as $menu ) { echo '<option'; if ( $meta ) { if ( $meta == $menu->name ) echo ' selected="selected"'; } else { if ( $field['std'] == $menu->name ) echo ' selected="selected"'; } echo'>' . $menu->name . '</option>'; } echo '</select></td>'; break; case 'sliders' : $sliders = apply_filters( 'x_sliders_meta', array() ); echo '<td><select name="x_meta[' . $field['id'] . ']" id="' . $field['id'] . '">'; echo '<option value="Deactivated">Deactivated</option>'; foreach ( $sliders as $key => $value ) { echo '<option value="' . $key . '"'; if ( $meta ) { if ( $meta == $key || $meta == $value['slug'] ) echo ' selected="selected"'; } echo '>' . $value['source'] . ': ' . $value['name'] . '</option>'; } echo '</select></td>'; break; default : do_action( 'x_add_meta_box_field_type', $field['type'] ); break; } echo '</tr>'; } echo '</table>'; } // Save Entry Meta // ============================================================================= function x_save_meta_box( $post_id ) { if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return; if ( ! isset( $_POST['x_meta'] ) || ! isset( $_POST['x_meta_box_nonce'] ) || ! wp_verify_nonce( $_POST['x_meta_box_nonce'], basename( __FILE__ ) ) ) return; if ( 'page' == $_POST['post_type'] ) { if ( ! current_user_can( 'edit_page', $post_id ) ) return; } else { if ( ! current_user_can( 'edit_post', $post_id ) ) return; } foreach( $_POST['x_meta'] as $key => $val ) { if ( is_array( $val ) ) { update_post_meta( $post_id, $key, $val ); } else { update_post_meta( $post_id, $key, stripslashes( htmlspecialchars( $val ) ) ); } } } add_action( 'save_post', 'x_save_meta_box' ); // Include Entry and Taxonomy Meta Box Setup // ============================================================================= require_once( $meta_path . '/entries.php' ); require_once( $meta_path . '/taxonomies.php' );