Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // enqueue scripts and styles, but only if is_admin
- if(is_admin()) {
- wp_enqueue_script('custom-js', get_template_directory_uri().'/js/custom-js.js');
- wp_enqueue_script('jquery.confirm.min', get_template_directory_uri().'/js/jquery.confirm.min.js');
- wp_enqueue_script('bootstrap.min', get_template_directory_uri().'/js/bootstrap/js/bootstrap.min.js');
- wp_enqueue_script('edit-box', get_template_directory_uri().'/js/edit-box.js');
- wp_enqueue_style('jquery-ui-custom', get_template_directory_uri().'/css/jquery-ui-custom.css');
- wp_enqueue_style('page-builder', get_template_directory_uri().'/css/page-builder.css');
- wp_enqueue_style('bootstrap', get_template_directory_uri().'/js/bootstrap/css/bootstrap.css');
- }
- // Add the Meta Box
- function add_custom_meta_box() {
- add_meta_box(
- 'custom_meta_box', // $id
- 'Custom Meta Box', // $title
- 'show_custom_meta_box', // $callback
- 'page', // $page
- 'normal', // $context
- 'high'); // $priority
- }
- add_action('add_meta_boxes', 'add_custom_meta_box');
- $custom_meta_fields = array(
- 'Divider' =>array(
- 'text'=>array(
- 'title'=> 'BACK TO TOP TEXT',
- 'name'=> 'page-option-item-divider-text',
- 'type'=> 'inputtext'
- )
- ),
- 'Column'=>array(
- 'column-text'=>array(
- 'title' => 'Column Text',
- 'name' => 'page-option-item-column-text',
- 'type' => 'textarea'
- )
- ),
- 'Quote'=>array(
- 'quote-text'=>array(
- 'title' => 'Quote Text',
- 'name' => 'page-option-item-quote-text',
- 'type' => 'textarea'
- )
- )
- );
- ?>
- <?php
- // The Callback
- function show_custom_meta_box() {
- global $custom_meta_fields, $post;
- $values = get_post_custom( $post->ID );
- $selected = isset( $values['page-selected-elements'] ) ? $values['page-selected-elements'][0] : '';
- echo '<div id="gdl-overlay-wrapper">';
- default_items();
- echo '<div class="page-element-lists" id="page-element-lists">';
- page_items();
- echo '</div>';
- clone_to();
- echo '</div>';
- // Use nonce for verification
- echo '<input type="hidden" name="custom_meta_box_nonce" value="'.wp_create_nonce(basename(__FILE__)).'" />';
- }
- // Select Add options
- function default_items(){
- global $custom_meta_fields, $post;
- ?>
- <div class="page-select-element-list-wrapper combobox">
- <select id="page-select-element-list">
- <option>Select an item</option>
- <?php
- foreach ($custom_meta_fields as $page_meta_box => $value) {
- echo '<option>' .$page_meta_box. '</option>';
- }
- ?>
- </select>
- </div>
- <input type="button" value="Add item" class="page-add-item-button" id="page-add-item-button">
- <?php
- }
- // Elements to clone
- function page_items(){
- global $custom_meta_fields, $post;
- foreach( $custom_meta_fields as $page_meta_box => $value ){
- if($page_meta_box == 'Column'){
- $size = 'element1-4';
- $defaultsize = '1/4';
- }
- elseif($page_meta_box == 'Divider'){
- $size = 'element1-1';
- $defaultsize = '1/1';
- }
- ?>
- <div id="page-element" class="page-element <?php echo $size; ?>" rel="<?php echo $page_meta_box; ?>">
- <div class="page-element-item">
- <div class="left-side">
- <input type="button" class="increase-size" value="+"/>
- <input type="button" class="decrease-size" value="-"/>
- <span class="element-description"> <?php echo $page_meta_box; ?> </span>
- </div>
- <input type="hidden" name="" value="Tab" class="page-option-item-type" id="page-option-item-type">
- <input type="hidden" name="" value="element1-4" class="page-option-item-size" id="page-option-item-size">
- <div class="right-side">
- <span class="element-size-text" id="element-size-text"><?php echo $defaultsize; ?></span>
- <div class="change-element-property">
- <a title="Edit"><div class="edit-element" id="page-element-edit-box" rel="gdl-edit-box"></div></a>
- <a title="Delete"><div id="delete-element" class="remove-element"></div></a>
- </div>
- </div>
- </div>
- <div class="page-element-edit" id="my_modal">
- <?php
- if($page_meta_box == 'Column'){
- echo 'Title: <input type="text"/>';
- echo 'Content: <textarea></textarea>';
- }
- elseif($page_meta_box == 'Divider'){
- echo '<hr>';
- }
- elseif($page_meta_box == 'Quote'){
- echo 'Content: <textarea></textarea>';
- }
- ?>
- </div>
- </div>
- <?php
- }
- }
- // Area for added elements
- function clone_to(){
- ?>
- <div class="page-methodology">
- <div class="page-selected-elements-wrapper">
- <div id="page-selected-elements" class="page-selected-elements page-no-sidebar ui-sortable">
- <?php
- $meta_value = get_post_meta( $post_id, $meta_key, true );
- ?>
- </div>
- </div>
- </div>
- <?php
- }
- function remove_taxonomy_boxes() {
- remove_meta_box('categorydiv', 'post', 'side');
- }
- add_action( 'admin_menu' , 'remove_taxonomy_boxes' );
- // Save the Data THIS IS FROM THE EXAMPLE NEED TO FIGURE OUT HOW TO SAVE NEW DATA
- add_action('save_post', 'save_custom_meta');
- function save_custom_meta($post_id) {
- global $custom_meta_fields;
- // verify nonce
- if (!wp_verify_nonce($_POST['custom_meta_box_nonce'], basename(__FILE__)))
- return $post_id;
- // check autosave
- if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
- return $post_id;
- // check permissions
- if ('page' == $_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;
- }
- /* Get the posted data and sanitize it for use as an HTML class. */
- $new_meta_value = ( isset( $_POST['page-selected-elements'] ) ? sanitize_html_class( $_POST['page-selected-elements'] ) : '' );
- /* Get the meta key. */
- $meta_key = 'page-selected-elements';
- /* Get the meta value of the custom field key. */
- $meta_value = get_post_meta( $post_id, $meta_key, true );
- /* If a new meta value was added and there was no previous value, add it. */
- if ( $new_meta_value && '' == $meta_value )
- add_post_meta( $post_id, $meta_key, $new_meta_value, true );
- /* If the new meta value does not match the old value, update it. */
- elseif ( $new_meta_value && $new_meta_value != $meta_value )
- update_post_meta( $post_id, $meta_key, $new_meta_value );
- /* If there is no new meta value but an old value exists, delete it. */
- elseif ( '' == $new_meta_value && $meta_value )
- delete_post_meta( $post_id, $meta_key, $meta_value );
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement