'; echo ''; foreach ( $quadro_current_fields['fields'] as $field ) { // get current post meta data if ( $field['type'] != 'editor' && $field['type'] != 'prev-editor' && $field['type'] != 'repeatable' && $field['type'] != 'radio' && $field['type'] != 'portfolio-fields-input' ) { $meta = esc_attr( get_post_meta( $post->ID, $field['id'], true ) ); } else { $meta = get_post_meta( $post->ID, $field['id'], true ); } echo ''; echo ''; echo ''; echo ''; } echo '
'; if ( $field['type'] != 'subtitle' ) { echo ''; } else { echo '

' . $field['name'] . '

'; } echo '
'; switch ( $field['type'] ) { case 'subtitle': echo '
'; break; case 'text': echo ''; if ( isset($field['desc']) && $field['desc'] != '' ) echo '
' . $field['desc'] . ''; break; case 'number': echo ''; if ( isset($field['desc']) && $field['desc'] != '' ) echo '' . $field['desc'] . ''; break; case 'textarea': echo '', '
', isset($field['desc']) ? $field['desc'] : ''; break; case 'select': echo ''; echo isset($field['desc']) ? '
' . $field['desc'] . '' : ''; break; case 'double_select': echo ''; break; case 'checkbox': echo ''; break; case 'radio': foreach ($field['options'] as $option) { echo '

'; } echo isset($field['desc']) ? '

' . $field['desc'] . '

' : ''; break; case 'layout-picker': $valid_options = array(); $valid_options = $field['options']; foreach ( $valid_options as $valid_option ) { ?> ' . $field['desc'] . '

' : ''; break; case 'editor': wp_editor( wp_kses_post($meta), $field['id'] ); break; case 'prev-editor': // For backwards compatibility, this editor will first bring // any content that could previously have been in the post editor $content = $meta ? wp_kses_post($meta) : get_post( get_the_id() )->post_content ; wp_editor( $content, $field['id'], array('textarea_rows' => 4) ); break; case 'color': echo '
'; if ( isset($field['desc']) && $field['desc'] != '' ) echo '
' . $field['desc'] . ''; break; case 'upload': ?>

'; echo ''; echo '' . __( 'Open / Close', 'quadro' ) . ''; qi_add_icon_picker( $meta ); break; case 'one_post_picker': // Posts query, bring all of them $args = array( 'post_type' => $field['post_type'], 'posts_per_page' => -1 ); $select_query = get_posts( $args ); // List them if( !empty($select_query) ) : echo ''; endif; wp_reset_postdata(); break; case 'posts_picker' : // First query, bring all of them $args = array( 'post_type' => $field['post_type'], 'posts_per_page' => -1 ); $select_query = get_posts( $args ); $items = 0; // List them if( !empty($select_query) ) : // Leave general edit link for later use echo ''; // Leave general site link for later use echo ''; // Output Posts Selector echo ''; echo '' . __('Add to list', 'quadro') . ''; endif; wp_reset_postdata(); // Ofer link to create Portfolio Modules if it matches the requested module if ( $items == 0 && isset($field['mod_type']) ){ $link = ''; if ( $field['mod_type'] == 'portfolio' ) echo '

' . __('No portfolio modules yet? What about ', 'quadro') . $link . __('adding one right now?', 'quadro') . '

'; if ( $field['mod_type'] == 'blog' ) echo '

' . __('No blog modules yet? What about ', 'quadro') . $link . __('adding one right now?', 'quadro') . '

'; } // Ofer link to create Modules if it matches the requested post type if ( $items == 0 && !isset($field['mod_type']) && $field['post_type'] == 'quadro_mods' ){ $link = ''; echo '

' . __('No modules yet? What about ', 'quadro') . $link . __('adding one right now?', 'quadro') . '

'; } // Ofer link to create Slides if it matches the requested post type if ( $items == 0 && $field['post_type'] == 'quadro_slide' ){ $link = ''; echo '

' . __('No slides yet? What about ', 'quadro') . $link . __('adding one right now?', 'quadro') . '

'; } // Prepare UL for jQuery to add selected items, // and query the items again based on previously // selected and saved in $meta echo '
    '; $sel_posts = explode( ', ', rtrim($meta, ', ') ); // (second query) if( $meta != '' ) : foreach ( $sel_posts as $sel_post ) : $edit_link = get_edit_post_link( $sel_post, '' ); echo '
  • '; endforeach; endif; echo '
'; // Little home for the list to be saved in echo ''; break; case 'authors_picker' : // First query, bring all of them $select_query = get_users( array( 'fields' => array( 'display_name', 'ID' ), 'who' => 'authors' ) ); // List them if( !empty($select_query) ) { echo ''; echo '' . __('Add to list', 'quadro') . ''; } // Prepare UL for jQuery to add selected items, // and query the items again based on previously // selected and saved in $meta echo '
    '; $sel_authors = explode( ', ', rtrim($meta, ', ') ); // (second query) if( $meta != '' ) : foreach ( $sel_authors as $sel_author ) : echo '
  • '; endforeach; endif; echo '
'; // Little home for the list to be saved in echo ''; break; case 'pattern_picker': $quadro_patterns = quadro_get_background_patterns(); echo '' . __( 'Select pattern', 'quadro' ) . ''; echo ''; break; case 'tax_picker' : // First, bring all of them $terms = get_terms( $field['tax_slug'], array( 'hide_empty' => 0 ) ); // List them if ( count($terms) > 0 ) : echo ''; echo '' . __('Add categories to list', 'quadro') . ''; endif; // Prepare UL for jQuery to add selected items, // and query the items again based on previously // selected and saved in $meta echo '
    '; $sel_taxs = explode( ', ', rtrim($meta, ', ') ); // (second query) if( $meta != '' ) : foreach ( $sel_taxs as $sel_tax ) : if ( $tax_object = get_term( $sel_tax, $field['tax_slug'] ) ) echo '
  • '; endforeach; endif; echo '
'; // Little home for the list to be saved in echo ''; break; case 'tax_picker_permanent' : // First, bring all of them $terms = get_terms( $field['tax_slug'], array( 'hide_empty' => 0 ) ); // List them if ( count($terms) > 0 ) : echo ''; echo '' . __('Add categories to list', 'quadro') . ''; endif; // Prepare UL for jQuery to add selected items, // and query the items again based on previously // selected and saved in $meta echo '
    '; $sel_taxs = explode( ', ', rtrim($meta, ', ') ); // (second query) if( $meta != '' ) : foreach ( $sel_taxs as $sel_tax ) : if ( $tax_object = get_term( $sel_tax, $field['tax_slug'] ) ) echo '
  • '; endforeach; endif; echo '
'; // Little home for the list to be saved in echo ''; break; case 'format_picker' : // First, define all of them $post_formats = array( 'standard' => __('Standard', 'quadro'), 'aside' => __('Aside', 'quadro'), 'status' => __('Status', 'quadro'), 'gallery' => __('Gallery', 'quadro'), 'image' => __('Image', 'quadro'), 'audio' => __('Audio', 'quadro'), 'video' => __('Video', 'quadro'), 'quote' => __('Quote', 'quadro'), 'link' => __('Link', 'quadro') ); // Then, list them echo ''; echo '' . __('Add formats to list', 'quadro') . ''; // Prepare UL for jQuery to add selected items, // and query the items again based on previously // selected and saved in $meta echo '
    '; $sel_formats = explode( ', ', rtrim($meta, ', ') ); // (second query) if( $meta != '' ) : foreach ( $sel_formats as $sel_format ) : echo '
  • '; endforeach; endif; echo '
'; // Little home for the list to be saved in echo ''; break; case 'greyed-out': echo '

'; echo '' . $field['pro_desc'] . ''; echo '

'; break; case 'data-fields-picker': // First, bring all of them $data_fields = $quadro_options['portfolio_fields']; // List them if ( count($data_fields) > 0 ) : echo ''; echo '' . __('Add fields to list', 'quadro') . ''; endif; // Prepare UL for jQuery to add selected items, // and query the items again based on previously // selected and saved in $meta echo '
    '; $sel_fields = explode( ', ', rtrim($meta, ', ') ); // (second query) if ( $meta != '' ) : foreach ( $sel_fields as $sel_field ) : foreach($data_fields as $key => $value) { if ( in_array($sel_field, $value) ) break; } echo '
  • '; endforeach; endif; echo '
'; // Little home for the list to be saved in echo ''; break; case 'sidebar_picker': $quadro_sidebars = $quadro_options['quadro_sidebars']; echo ''; break; case 'repeatable': echo '

'.$field['desc'].'

'; echo '
    '; // Make it behave as an array even if it's not if ( !is_array($meta) ) $meta[0] = array(); $i = 0; foreach ( $meta as $row ) { echo '
  • '; // echo ' '; $item_name = isset( $field['item-name'] ) ? $field['item-name'] : __('Item', 'quadro'); echo '

    ' . $item_name . ' ' . ($i + 1) . '

    '; echo '
    '; echo '
    '; foreach ( $field['repeat-fields'] as $this_field ) { echo '
    '; echo '
  • '; $i++; } echo '
'; echo '+ ' . $field['repeat-item'] . ''; break; // end repeatable case 'portfolio-fields-input': echo '' . $field['desc'] . ''; $portfolio_fields = $quadro_options['portfolio_fields']; if ( !is_array($portfolio_fields) ) { echo '

' . __('No fields to fill yet.', 'quadro') . '

'; break; } foreach ($portfolio_fields as $portfolio_field) { $this_slug = esc_attr( $portfolio_field['slug'] ); $this_title = esc_attr( $portfolio_field['title'] ); if ( $this_slug == '' || $this_title == '' ) continue; $this_show = isset($portfolio_field['show']) && 'on' == $portfolio_field['show'] ? true : false; $this_value = is_array($meta) ? esc_attr($meta[$portfolio_field['slug']]['value']) : ''; echo ''; } break; } echo '
'; } /*-----------------------------------------------------------------------------------*/ /* Add the metaboxes /*-----------------------------------------------------------------------------------*/ function quadro_add_cfields_box() { global $quadro_cfields_def; foreach ( $quadro_cfields_def as $quadro_metabox) { add_meta_box( $quadro_metabox['id'], $quadro_metabox['title'], 'quadro_show_boxes', $quadro_metabox['page'], $quadro_metabox['context'], $quadro_metabox['priority'], $quadro_metabox ); } } add_action('add_meta_boxes', 'quadro_add_cfields_box'); /*-----------------------------------------------------------------------------------*/ /* Callback function to show fields in meta boxes /*-----------------------------------------------------------------------------------*/ function quadro_show_boxes( $post, $quadro_current_fields ) { global $quadro_cfields_def, $post; quadro_print_boxes( $quadro_current_fields['args'] ); } /*-----------------------------------------------------------------------------------*/ /* Save data from meta boxes /*-----------------------------------------------------------------------------------*/ function quadro_save_custom_data( $post_id ) { global $quadro_cfields_def; // verify nonce if ( isset($_POST['quadro_meta_box_nonce']) ) { if (!wp_verify_nonce($_POST['quadro_meta_box_nonce'], basename(__FILE__))) return $post_id; } // check autosave if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return $post_id; // check permissions if ( isset($_POST['post_type']) ) { if ('post' == $_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; } } foreach ( $quadro_cfields_def as $quadro_box ) { foreach ( $quadro_box['fields'] as $field ) { if ( isset ($_POST[$field['id']]) ) { $old = get_post_meta( $post_id, $field['id'], true ); $new = $_POST[$field['id']]; if ( $new && $new != $old ) { update_post_meta( $post_id, $field['id'], $new ); } elseif ( '' == $new && $old ) { delete_post_meta( $post_id, $field['id'], $old ); } } } } } add_action('save_post', 'quadro_save_custom_data'); /** * Icon Picker Lightbox */ function qi_add_icon_picker( $meta, $index = '' ) { // Bring icon definitions $icon_list = quadro_awesome_font_def(); // Build icon picker echo ''; } ?>