296 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			296 lines
		
	
	
		
			8.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
// global
 | 
						|
global $field_group;
 | 
						|
 | 
						|
// UI needs at lease 1 location rule
 | 
						|
if ( empty( $field_group['location'] ) ) {
 | 
						|
	$field_group['location'] = array(
 | 
						|
		// Group 0.
 | 
						|
		array(
 | 
						|
			// Rule 0.
 | 
						|
			array(
 | 
						|
				'param'    => 'post_type',
 | 
						|
				'operator' => '==',
 | 
						|
				'value'    => 'post',
 | 
						|
			),
 | 
						|
		),
 | 
						|
	);
 | 
						|
 | 
						|
	$acf_use_post_type    = acf_get_post_type_from_request_args( 'add-fields' );
 | 
						|
	$acf_use_taxonomy     = acf_get_taxonomy_from_request_args( 'add-fields' );
 | 
						|
	$acf_use_options_page = acf_get_ui_options_page_from_request_args( 'add-fields' );
 | 
						|
 | 
						|
	if ( $acf_use_post_type && ! empty( $acf_use_post_type['post_type'] ) ) {
 | 
						|
		$field_group['location'] = array(
 | 
						|
			array(
 | 
						|
				array(
 | 
						|
					'param'    => 'post_type',
 | 
						|
					'operator' => '==',
 | 
						|
					'value'    => $acf_use_post_type['post_type'],
 | 
						|
				),
 | 
						|
			),
 | 
						|
		);
 | 
						|
	}
 | 
						|
 | 
						|
	if ( $acf_use_taxonomy && ! empty( $acf_use_taxonomy['taxonomy'] ) ) {
 | 
						|
		$field_group['location'] = array(
 | 
						|
			array(
 | 
						|
				array(
 | 
						|
					'param'    => 'taxonomy',
 | 
						|
					'operator' => '==',
 | 
						|
					'value'    => $acf_use_taxonomy['taxonomy'],
 | 
						|
				),
 | 
						|
			),
 | 
						|
		);
 | 
						|
	}
 | 
						|
 | 
						|
	if ( $acf_use_options_page && ! empty( $acf_use_options_page['menu_slug'] ) ) {
 | 
						|
		$field_group['location'] = array(
 | 
						|
			array(
 | 
						|
				array(
 | 
						|
					'param'    => 'options_page',
 | 
						|
					'operator' => '==',
 | 
						|
					'value'    => $acf_use_options_page['menu_slug'],
 | 
						|
				),
 | 
						|
			),
 | 
						|
		);
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
foreach ( acf_get_combined_field_group_settings_tabs() as $tab_key => $tab_label ) {
 | 
						|
	acf_render_field_wrap(
 | 
						|
		array(
 | 
						|
			'type'          => 'tab',
 | 
						|
			'label'         => $tab_label,
 | 
						|
			'key'           => 'acf_field_group_settings_tabs',
 | 
						|
			'settings-type' => $tab_key,
 | 
						|
		)
 | 
						|
	);
 | 
						|
 | 
						|
	switch ( $tab_key ) {
 | 
						|
		case 'location_rules':
 | 
						|
			echo '<div class="field-group-locations field-group-settings-tab">';
 | 
						|
				acf_get_view( 'acf-field-group/locations' );
 | 
						|
			echo '</div>';
 | 
						|
			break;
 | 
						|
		case 'presentation':
 | 
						|
			echo '<div class="field-group-setting-split-container field-group-settings-tab">';
 | 
						|
			echo '<div class="field-group-setting-split">';
 | 
						|
 | 
						|
			// style
 | 
						|
			acf_render_field_wrap(
 | 
						|
				array(
 | 
						|
					'label'        => __( 'Style', 'acf' ),
 | 
						|
					'instructions' => '',
 | 
						|
					'type'         => 'button_group',
 | 
						|
					'name'         => 'style',
 | 
						|
					'prefix'       => 'acf_field_group',
 | 
						|
					'value'        => $field_group['style'],
 | 
						|
					'choices'      => array(
 | 
						|
						'default'  => __( 'Standard (WP metabox)', 'acf' ),
 | 
						|
						'seamless' => __( 'Seamless (no metabox)', 'acf' ),
 | 
						|
					),
 | 
						|
				)
 | 
						|
			);
 | 
						|
 | 
						|
 | 
						|
			// position
 | 
						|
			acf_render_field_wrap(
 | 
						|
				array(
 | 
						|
					'label'         => __( 'Position', 'acf' ),
 | 
						|
					'instructions'  => '',
 | 
						|
					'type'          => 'button_group',
 | 
						|
					'name'          => 'position',
 | 
						|
					'prefix'        => 'acf_field_group',
 | 
						|
					'value'         => $field_group['position'],
 | 
						|
					'choices'       => array(
 | 
						|
						'acf_after_title' => __( 'High (after title)', 'acf' ),
 | 
						|
						'normal'          => __( 'Normal (after content)', 'acf' ),
 | 
						|
						'side'            => __( 'Side', 'acf' ),
 | 
						|
					),
 | 
						|
					'default_value' => 'normal',
 | 
						|
				)
 | 
						|
			);
 | 
						|
 | 
						|
 | 
						|
			// label_placement
 | 
						|
			acf_render_field_wrap(
 | 
						|
				array(
 | 
						|
					'label'        => __( 'Label Placement', 'acf' ),
 | 
						|
					'instructions' => '',
 | 
						|
					'type'         => 'button_group',
 | 
						|
					'name'         => 'label_placement',
 | 
						|
					'prefix'       => 'acf_field_group',
 | 
						|
					'value'        => $field_group['label_placement'],
 | 
						|
					'choices'      => array(
 | 
						|
						'top'  => __( 'Top aligned', 'acf' ),
 | 
						|
						'left' => __( 'Left aligned', 'acf' ),
 | 
						|
					),
 | 
						|
				)
 | 
						|
			);
 | 
						|
 | 
						|
 | 
						|
			// instruction_placement
 | 
						|
			acf_render_field_wrap(
 | 
						|
				array(
 | 
						|
					'label'        => __( 'Instruction Placement', 'acf' ),
 | 
						|
					'instructions' => '',
 | 
						|
					'type'         => 'button_group',
 | 
						|
					'name'         => 'instruction_placement',
 | 
						|
					'prefix'       => 'acf_field_group',
 | 
						|
					'value'        => $field_group['instruction_placement'],
 | 
						|
					'choices'      => array(
 | 
						|
						'label' => __( 'Below labels', 'acf' ),
 | 
						|
						'field' => __( 'Below fields', 'acf' ),
 | 
						|
					),
 | 
						|
				)
 | 
						|
			);
 | 
						|
 | 
						|
 | 
						|
			// menu_order
 | 
						|
			acf_render_field_wrap(
 | 
						|
				array(
 | 
						|
					'label'        => __( 'Order No.', 'acf' ),
 | 
						|
					'instructions' => __( 'Field groups with a lower order will appear first', 'acf' ),
 | 
						|
					'type'         => 'number',
 | 
						|
					'name'         => 'menu_order',
 | 
						|
					'prefix'       => 'acf_field_group',
 | 
						|
					'value'        => $field_group['menu_order'],
 | 
						|
				),
 | 
						|
				'div',
 | 
						|
				'field'
 | 
						|
			);
 | 
						|
 | 
						|
			echo '</div>';
 | 
						|
			echo '<div class="field-group-setting-split">';
 | 
						|
 | 
						|
			// hide on screen
 | 
						|
			$choices = array(
 | 
						|
				'permalink'       => __( 'Permalink', 'acf' ),
 | 
						|
				'the_content'     => __( 'Content Editor', 'acf' ),
 | 
						|
				'excerpt'         => __( 'Excerpt', 'acf' ),
 | 
						|
				'custom_fields'   => __( 'Custom Fields', 'acf' ),
 | 
						|
				'discussion'      => __( 'Discussion', 'acf' ),
 | 
						|
				'comments'        => __( 'Comments', 'acf' ),
 | 
						|
				'revisions'       => __( 'Revisions', 'acf' ),
 | 
						|
				'slug'            => __( 'Slug', 'acf' ),
 | 
						|
				'author'          => __( 'Author', 'acf' ),
 | 
						|
				'format'          => __( 'Format', 'acf' ),
 | 
						|
				'page_attributes' => __( 'Page Attributes', 'acf' ),
 | 
						|
				'featured_image'  => __( 'Featured Image', 'acf' ),
 | 
						|
				'categories'      => __( 'Categories', 'acf' ),
 | 
						|
				'tags'            => __( 'Tags', 'acf' ),
 | 
						|
				'send-trackbacks' => __( 'Send Trackbacks', 'acf' ),
 | 
						|
			);
 | 
						|
			if ( acf_get_setting( 'remove_wp_meta_box' ) ) {
 | 
						|
				unset( $choices['custom_fields'] );
 | 
						|
			}
 | 
						|
 | 
						|
			acf_render_field_wrap(
 | 
						|
				array(
 | 
						|
					'label'        => __( 'Hide on screen', 'acf' ),
 | 
						|
					'instructions' => __( '<b>Select</b> items to <b>hide</b> them from the edit screen.', 'acf' ) . '<br /><br />' . __( "If multiple field groups appear on an edit screen, the first field group's options will be used (the one with the lowest order number)", 'acf' ),
 | 
						|
					'type'         => 'checkbox',
 | 
						|
					'name'         => 'hide_on_screen',
 | 
						|
					'prefix'       => 'acf_field_group',
 | 
						|
					'value'        => $field_group['hide_on_screen'],
 | 
						|
					'toggle'       => true,
 | 
						|
					'choices'      => $choices,
 | 
						|
				),
 | 
						|
				'div',
 | 
						|
				'label',
 | 
						|
				true
 | 
						|
			);
 | 
						|
 | 
						|
			echo '</div>';
 | 
						|
			echo '</div>';
 | 
						|
			break;
 | 
						|
		case 'group_settings':
 | 
						|
			echo '<div class="field-group-settings field-group-settings-tab">';
 | 
						|
 | 
						|
			// active
 | 
						|
			acf_render_field_wrap(
 | 
						|
				array(
 | 
						|
					'label'        => __( 'Active', 'acf' ),
 | 
						|
					'instructions' => '',
 | 
						|
					'type'         => 'true_false',
 | 
						|
					'name'         => 'active',
 | 
						|
					'prefix'       => 'acf_field_group',
 | 
						|
					'value'        => $field_group['active'],
 | 
						|
					'ui'           => 1,
 | 
						|
				// 'ui_on_text'  => __('Active', 'acf'),
 | 
						|
				// 'ui_off_text' => __('Inactive', 'acf'),
 | 
						|
				)
 | 
						|
			);
 | 
						|
 | 
						|
			// Show fields in REST API.
 | 
						|
			if ( acf_get_setting( 'rest_api_enabled' ) ) {
 | 
						|
				acf_render_field_wrap(
 | 
						|
					array(
 | 
						|
						'label'        => __( 'Show in REST API', 'acf' ),
 | 
						|
						'instructions' => '',
 | 
						|
						'type'         => 'true_false',
 | 
						|
						'name'         => 'show_in_rest',
 | 
						|
						'prefix'       => 'acf_field_group',
 | 
						|
						'value'        => $field_group['show_in_rest'],
 | 
						|
						'ui'           => 1,
 | 
						|
					// 'ui_on_text'  => __('Active', 'acf'),
 | 
						|
					// 'ui_off_text' => __('Inactive', 'acf'),
 | 
						|
					)
 | 
						|
				);
 | 
						|
			}
 | 
						|
 | 
						|
			// description
 | 
						|
			acf_render_field_wrap(
 | 
						|
				array(
 | 
						|
					'label'        => __( 'Description', 'acf' ),
 | 
						|
					'instructions' => __( 'Shown in field group list', 'acf' ),
 | 
						|
					'type'         => 'text',
 | 
						|
					'name'         => 'description',
 | 
						|
					'prefix'       => 'acf_field_group',
 | 
						|
					'value'        => $field_group['description'],
 | 
						|
				),
 | 
						|
				'div',
 | 
						|
				'field'
 | 
						|
			);
 | 
						|
 | 
						|
			/* translators: 1: Post creation date 2: Post creation time */
 | 
						|
			$acf_created_on = sprintf( __( 'Created on %1$s at %2$s', 'acf' ), get_the_date(), get_the_time() );
 | 
						|
			?>
 | 
						|
			<div class="acf-field-group-settings-footer">
 | 
						|
				<span class="acf-created-on"><?php echo esc_html( $acf_created_on ); ?></span>
 | 
						|
				<a href="<?php echo get_delete_post_link(); ?>" class="acf-btn acf-btn-tertiary  acf-delete-field-group">
 | 
						|
					<i class="acf-icon acf-icon-trash"></i>
 | 
						|
					<?php esc_html_e( 'Delete Field Group', 'acf' ); ?>
 | 
						|
				</a>
 | 
						|
			</div>
 | 
						|
			<?php
 | 
						|
			echo '</div>';
 | 
						|
			break;
 | 
						|
		default:
 | 
						|
			echo '<div class="field-group-' . esc_attr( $tab_key ) . ' field-group-settings-tab">';
 | 
						|
			do_action( 'acf/field_group/render_group_settings_tab/' . $tab_key, $field_group );
 | 
						|
			echo '</div>';
 | 
						|
			break;
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
// 3rd party settings
 | 
						|
do_action( 'acf/render_field_group_settings', $field_group );
 | 
						|
?>
 | 
						|
 | 
						|
<div class="acf-hidden">
 | 
						|
	<input type="hidden" name="acf_field_group[key]" value="<?php echo $field_group['key']; ?>" />
 | 
						|
</div>
 | 
						|
<script type="text/javascript">
 | 
						|
if( typeof acf !== 'undefined' ) {
 | 
						|
 | 
						|
	acf.newPostbox({
 | 
						|
		'id': 'acf-field-group-options',
 | 
						|
		'label': 'top'
 | 
						|
	});
 | 
						|
 | 
						|
}
 | 
						|
</script>
 |