/**
  * Returns form fields in boxes in columns
  * 
  * @return array $columns Array of form fields.
  */
 protected static function get_form_fields()
 {
     $pt_obj = get_post_type_object(GS_Featured_Content::$widget_instance['post_type']);
     $box = array('widget_title_link' => array('label' => __('Link Title?', 'gsfc'), 'description' => '', 'type' => 'checkbox', 'requires' => ''), 'widget_title_link_href' => array('label' => __('Link', 'gsfc'), 'description' => __('Please include the entire link.', 'gsfc'), 'type' => 'text', 'requires' => array('widget_title_link', '', true)));
     $box_1 = array('post_type' => array('label' => __('Content Type', 'gsfc'), 'description' => '', 'type' => 'post_type_select', 'requires' => ''), 'page_id' => array('label' => __('Page', 'gsfc'), 'description' => '', 'type' => 'page_select', 'requires' => array('post_type', 'page', false)), 'posts_term' => array('label' => __('Taxonomy and Terms', 'gsfc'), 'description' => '', 'type' => 'select_taxonomy', 'requires' => array('post_type', 'page', true)), 'exclude_terms' => array('label' => sprintf(__('Exclude Terms by ID %s (comma separated list)', 'gsfc'), '<br />'), 'description' => '', 'type' => 'text', 'requires' => array('post_type', 'page', true)), 'include_exclude' => array('label' => __('Include/Exclude', 'gsfc'), 'description' => '', 'type' => 'select', 'options' => array('' => __('Select', 'gsfc'), 'include' => __('Include', 'gsfc'), 'exclude' => __('Exclude', 'gsfc')), 'requires' => array('post_type', 'page', true)), 'post_id' => array('label' => sprintf('<span class="gs-post-type-label">%s</span>', $pt_obj->name) . ' ' . __('ID', 'gsfc'), 'description' => '', 'type' => 'text', 'requires' => array('include_exclude', '', true)), 'posts_num' => array('label' => sprintf('%s %s %s', __('Number of', 'gsfc'), $pt_obj->label, __('to Show', 'gsfc')), 'description' => '', 'type' => 'text_small', 'requires' => array('post_type', 'page', true)), 'posts_offset' => array('label' => sprintf('%s %s %s', __('Number of', 'gsfc'), $pt_obj->label, __('to Offset', 'gsfc')), 'description' => '', 'type' => 'text_small', 'requires' => array('post_type', 'page', true)), 'orderby' => array('label' => __('Order By', 'gsfc'), 'description' => '', 'type' => 'select', 'options' => array('date' => __('Date', 'gsfc'), 'title' => __('Title', 'gsfc'), 'parent' => __('Parent', 'gsfc'), 'ID' => __('ID', 'gsfc'), 'comment_count' => __('Comment Count', 'gsfc'), 'rand' => __('Random', 'gsfc'), 'meta_value' => __('Meta Value', 'gsfc'), 'meta_value_num' => __('Numeric Meta Value', 'gsfc')), 'requires' => array('post_type', 'page', true)), 'order' => array('label' => __('Sort Order', 'gsfc'), 'description' => '', 'type' => 'select', 'options' => array('DESC' => __('Descending (3, 2, 1)', 'gsfc'), 'ASC' => __('Ascending (1, 2, 3)', 'gsfc')), 'requires' => array('post_type', 'page', true)), 'meta_key' => array('label' => __('Meta Key', 'gsfc'), 'description' => '', 'type' => 'text', 'requires' => array('orderby', array('meta_value', 'meta_value_num'), false)), 'paged' => array('label' => __('Work with Pagination', 'gsfc'), 'description' => '', 'type' => 'checkbox', 'requires' => array('post_type', 'page', true)), 'show_paged' => array('label' => __('Show Page Navigation', 'gsfc'), 'description' => '', 'type' => 'checkbox', 'requires' => array('post_type', 'page', true)), 'exclude_displayed' => array('label' => __('Exclude Previously Displayed Posts?', 'gsfc'), 'description' => '', 'type' => 'checkbox', 'requires' => ''));
     $box_2 = array('show_gravatar' => array('label' => __('Show Author Gravatar', 'gsfc'), 'description' => '', 'type' => 'checkbox', 'requires' => ''), 'gravatar_size' => array('label' => __('Gravatar Size', 'gsfc'), 'description' => '', 'type' => 'select', 'options' => array('45' => __('Small (45px)', 'gsfc'), '65' => __('Medium (65px)', 'gsfc'), '85' => __('Large (85px)', 'gsfc'), '125' => __('Extra Large (125px)', 'gsfc')), 'requires' => array('show_gravatar', '', true)), 'link_gravatar' => array('label' => __('Link Gravatar', 'gsfc'), 'description' => '', 'type' => 'select', 'options' => array('' => __('Do not link gravatar', 'gsfc'), 'archive' => __('Link to author archive', 'gsfc'), 'website' => __('Link to author website', 'gsfc')), 'requires' => array('show_gravatar', '', true)), 'gravatar_alignment' => array('label' => __('Gravatar Alignment', 'gsfc'), 'description' => '', 'type' => 'select', 'options' => array('' => __('None', 'gsfc'), 'alignleft' => __('Left', 'gsfc'), 'alignright' => __('Right', 'gsfc')), 'requires' => array('show_gravatar', '', true)));
     $box_3 = array('class' => array('label' => __('Class', 'gsfc'), 'description' => __('Fill in this field if you want to add a custom post class.', 'gsfc'), 'type' => 'text', 'requires' => ''), 'add_column_classes' => array('label' => __('Need to add column classes?', 'gsfc'), 'description' => 'Check to add column classes to your site.', 'type' => 'checkbox', 'requires' => ''), 'column_class' => array('label' => __('Column Class', 'gsfc'), 'description' => __('Fill in this field if you want to add a custom post class. Will automagically add <code>first</code> where appropriate.', 'gsfc'), 'type' => 'select', 'options' => array('' => __('Select Class', 'gsfc'), 'one-half' => __('One Half', 'gsfc'), 'one-third' => __('One Third', 'gsfc'), 'one-fourth' => __('One Fourth', 'gsfc'), 'one-fifth' => __('One Fifth', 'gsfc'), 'one-sixth' => __('One Sixth', 'gsfc'), 'two-thirds' => __('Two Thirds', 'gsfc'), 'three-fourths' => __('Three Fourths', 'gsfc'), 'two-fifths' => __('Two Fifths', 'gsfc'), 'three-fifths' => __('Three Fifths', 'gsfc'), 'four-fifths' => __('Four Fifths', 'gsfc'), 'five-sixths' => __('Five Sixths', 'gsfc')), 'requires' => ''));
     $box_4 = array('optimize' => array('label' => __('Optimize?', 'gsfc'), 'description' => 'Check to optimize WP_Query & enable site transients for the query results. Instance Identification Field must be filled in, which will be auto-populated based on your widget title.', 'type' => 'checkbox', 'requires' => ''), 'optimize_more_1' => array('description' => 'Your main widget transient id: gsfc_main_' . GS_Featured_Content::$widget_instance['custom_field'], 'type' => 'description', 'requires' => array('optimize', '', true)), 'optimize_more_2' => array('description' => 'Your extra posts transient id: gsfc_extra_' . GS_Featured_Content::$widget_instance['custom_field'], 'type' => 'description', 'requires' => array('optimize', '', true)), 'delete_transients' => array('label' => __('Delete Transients?', 'gsfc'), 'description' => '', 'type' => 'checkbox', 'requires' => ''), 'transients_time' => array('label' => __('Set Transients Expiration (seconds)', 'gsfc'), 'description' => '', 'type' => 'text', 'requires' => ''), 'custom_field' => array('label' => __('Instance Identification Field', 'gsfc'), 'description' => __('Fill in this field if you need to test against an $instance value not included in the form', 'gsfc'), 'type' => 'text', 'requires' => ''));
     $box_5 = array('show_image' => array('label' => __('Show Featured Image', 'gsfc'), 'description' => '', 'type' => 'checkbox', 'requires' => ''), 'link_image' => array('label' => __('Image Link', 'gsfc'), 'description' => '', 'type' => 'select', 'options' => array('1' => __('Link Image to Post', 'gsfc'), '2' => __('Don\'t Link Image', 'gsfc')), 'requires' => array('show_image', '', true)), 'link_image_field' => array('label' => __('Link ( Defaults to Permalink )'), 'description' => '', 'type' => 'text', 'requires' => array('link_image', '1', false)), 'image_size' => array('label' => __('Image Size', 'gsfc'), 'description' => '', 'type' => 'select', 'options' => GS_Featured_Content::get_image_size_options(), 'requires' => array('show_image', '', true)), 'image_position' => array('label' => __('Image Placement', 'gsfc'), 'description' => '', 'type' => 'select', 'options' => array('before-title' => __('Before Title', 'gsfc'), 'after-title' => __('After Title', 'gsfc'), 'after-content' => __('After Content', 'gsfc')), 'requires' => array('show_image', '', true)), 'image_alignment' => array('label' => __('Image Alignment', 'gsfc'), 'description' => '', 'type' => 'select', 'options' => array('' => __('None', 'gsfc'), 'alignleft' => __('Left', 'gsfc'), 'alignright' => __('Right', 'gsfc'), 'aligncenter' => __('Center', 'gsfc')), 'requires' => array('show_image', '', true)));
     //* Box 2
     $box_6 = array('show_title' => array('label' => __('Show Post Title', 'gsfc'), 'description' => '', 'type' => 'checkbox', 'requires' => ''), 'title_limit' => array('label' => __('Limit title to', 'gsfc'), 'description' => __(' characters', 'gsfc'), 'type' => 'text_small', 'requires' => array('show_title', '', true)), 'title_cutoff' => array('label' => __('Title Cutoff Symbol', 'gsfc'), 'description' => '', 'type' => 'text_small', 'requires' => array('show_title', '', true)), 'link_title' => array('label' => __('Link Title', 'gsfc'), 'description' => '', 'type' => 'select', 'options' => array('1' => __('Link Title to Post', 'gsfc'), '2' => __('Don\'t Link Title', 'gsfc')), 'requires' => array('show_title', '', true)), 'link_title_field' => array('label' => __('Link (Defaults to Permalink)', 'gsfc'), 'description' => '', 'type' => 'text', 'requires' => array('link_title', '1', false)), 'show_byline' => array('label' => __('Show Post Info', 'gsfc'), 'description' => '', 'type' => 'checkbox', 'requires' => ''), 'byline_position' => array('label' => __('Post Info Placement', 'gsfc'), 'description' => '', 'type' => 'select', 'options' => array('before-title' => __('Before Title', 'gsfc'), 'after-title' => __('After Title', 'gsfc')), 'requires' => array('show_byline', '', true)), 'post_info' => array('label' => __('Post Info', 'gsfc'), 'description' => '', 'type' => 'text', 'requires' => array('show_byline', '', true)), 'show_content' => array('label' => __('Content Type', 'gsfc'), 'description' => '', 'type' => 'select', 'options' => array('content' => __('Show Content', 'gsfc'), 'excerpt' => __('Show Excerpt', 'gsfc'), 'content-limit' => __('Show Content Limit', 'gsfc'), '' => __('No Content', 'gsfc')), 'requires' => ''), 'content_limit' => array('label' => __('Limit content to', 'gsfc'), 'description' => __(' characters', 'gsfc'), 'type' => 'text_small', 'requires' => array('show_content', 'content-limit', false)), 'excerpt_limit' => array('label' => __('Limit excerpt to', 'gsfc'), 'description' => __(' words', 'gsfc'), 'type' => 'text_small', 'requires' => array('show_content', 'excerpt', false)), 'excerpt_cutoff' => array('label' => __('Title Cutoff Symbol', 'gsfc'), 'description' => '', 'type' => 'text_small', 'requires' => array('show_content', 'excerpt', false)), 'show_archive_line' => array('label' => __('Show Post Meta', 'gsfc'), 'description' => '', 'type' => 'checkbox', 'requires' => array('post_type', 'page', true)), 'post_meta' => array('label' => __('Post Meta', 'gsfc'), 'description' => '', 'type' => 'text', 'requires' => array('show_archive_line', '', true)), 'more_text' => array('label' => __('More Text (if applicable)', 'gsfc'), 'description' => '', 'type' => 'text', 'requires' => ''));
     $box_7 = array('extra_posts' => array('label' => __('Display List of Additional Posts', 'gsfc'), 'description' => '', 'type' => 'checkbox', 'requires' => array('page_id', '', false)), 'extra_title' => array('label' => __('Title', 'gsfc'), 'description' => '', 'type' => 'text', 'requires' => array('extra_posts', '', true)), 'extra_num' => array('label' => __('Number of Posts to Show', 'gsfc'), 'description' => '', 'type' => 'text_small', 'requires' => array('extra_posts', '', true)), 'extra_format' => array('label' => __('Extra Post Format', 'gsfc'), 'description' => '', 'type' => 'select', 'options' => array('ul' => __('Unordered List', 'gsfc'), 'ol' => __('Ordered List', 'gsfc'), 'drop_down' => __('Drop Down', 'gsfc')), 'requires' => array('extra_posts', '', true)), 'more_from_category' => array('label' => __('Show Category Archive Link', 'gsfc'), 'description' => '', 'type' => 'checkbox', 'requires' => array('posts_term', '', true)), 'more_from_category_text' => array('label' => __('Link Text', 'gsfc'), 'description' => '', 'type' => 'text', 'requires' => array('more_from_category', '', true)), 'archive_link' => array('label' => __('Fill in this value with a URL if you wish to display an archive link when showing all terms or to override the normal archive link to another URL', 'gsfc'), 'description' => '', 'type' => 'text', 'requires' => array('more_from_category', '', true)));
     $columns = array('col' => array($box), 'col1' => array($box_1, $box_2, $box_3, $box_4), 'col2' => array($box_5, $box_6, $box_7));
     return apply_filters('gsfc_form_fields', $columns, GS_Featured_Content::$widget_instance, compact("box_1", "box_2", "box_3", "box_4", "box_5", "box_6", "box_7"));
 }