325 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			325 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| //phpcs:disable WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedVariableFound -- included template file.
 | |
| 
 | |
| // Define input name prefix using unique identifier.
 | |
| $input_prefix = 'acf_fields[' . $field['ID'] . ']';
 | |
| $input_id     = acf_idify( $input_prefix );
 | |
| 
 | |
| // Update field props.
 | |
| $field['prefix'] = $input_prefix;
 | |
| 
 | |
| // Elements.
 | |
| $div_attrs = array(
 | |
| 	'class'     => 'acf-field-object acf-field-object-' . acf_slugify( $field['type'] ),
 | |
| 	'data-id'   => $field['ID'],
 | |
| 	'data-key'  => $field['key'],
 | |
| 	'data-type' => $field['type'],
 | |
| );
 | |
| 
 | |
| // Add additional class if the field is an endpoint.
 | |
| if ( isset( $field['endpoint'] ) && $field['endpoint'] ) {
 | |
| 	$div_attrs['class'] .= ' acf-field-is-endpoint';
 | |
| }
 | |
| 
 | |
| // Misc template vars.
 | |
| $field_label      = acf_get_field_label( $field, 'admin' );
 | |
| $field_type_label = acf_get_field_type_label( $field['type'] );
 | |
| 
 | |
| if ( ! isset( $num_field_groups ) ) {
 | |
| 	$num_field_groups = 0;
 | |
| }
 | |
| 
 | |
| $conditional_logic_class = $conditional_logic_text = '';
 | |
| if ( isset( $field['conditional_logic'] ) && is_array( $field['conditional_logic'] ) && count( $field['conditional_logic'] ) > 0 ) {
 | |
| 	$conditional_logic_class = ' is-enabled';
 | |
| 	$conditional_logic_text  = __( 'Active', 'acf' );
 | |
| }
 | |
| 
 | |
| ?>
 | |
| <div <?php echo acf_esc_attrs( $div_attrs ); ?>>
 | |
| 
 | |
| 	<div class="meta">
 | |
| 		<?php
 | |
| 		$meta_inputs = array(
 | |
| 			'ID'         => $field['ID'],
 | |
| 			'key'        => $field['key'],
 | |
| 			'parent'     => $field['parent'],
 | |
| 			'menu_order' => $i,
 | |
| 			'save'       => '',
 | |
| 		);
 | |
| 		foreach ( $meta_inputs as $k => $v ) :
 | |
| 			acf_hidden_input(
 | |
| 				array(
 | |
| 					'name'  => $input_prefix . '[' . $k . ']',
 | |
| 					'value' => $v,
 | |
| 					'id'    => $input_id . '-' . $k,
 | |
| 				)
 | |
| 			);
 | |
| 		endforeach;
 | |
| 		?>
 | |
| 	</div>
 | |
| 
 | |
| 	<div class="handle">
 | |
| 		<ul class="acf-hl acf-tbody">
 | |
| 			<li class="li-field-order">
 | |
| 				<span class="acf-icon acf-sortable-handle" title="<?php _e( 'Drag to reorder', 'acf' ); ?>"><?php echo ( $i + 1 ); ?></span>
 | |
| 			</li>
 | |
| 			<li class="li-field-label">
 | |
| 				<strong>
 | |
| 					<a class="edit-field" title="<?php _e( 'Edit field', 'acf' ); ?>" href="#"><?php echo acf_esc_html( $field_label ); ?></a>
 | |
| 				</strong>
 | |
| 				<div class="row-options">
 | |
| 					<a class="edit-field" title="<?php _e( 'Edit field', 'acf' ); ?>" href="#"><?php _e( 'Edit', 'acf' ); ?></a>
 | |
| 					<a class="duplicate-field" title="<?php _e( 'Duplicate field', 'acf' ); ?>" href="#"><?php _e( 'Duplicate', 'acf' ); ?></a>
 | |
| 					<?php if ( $num_field_groups > 1 ) : ?>
 | |
| 					<a class="move-field" title="<?php _e( 'Move field to another group', 'acf' ); ?>" href="#"><?php _e( 'Move', 'acf' ); ?></a>
 | |
| 					<?php endif; ?>
 | |
| 					<a class="delete-field" title="<?php _e( 'Delete field', 'acf' ); ?>" href="#"><?php _e( 'Delete', 'acf' ); ?></a>
 | |
| 				</div>
 | |
| 			</li>
 | |
| 			<li class="li-field-name"><span class="copyable"><?php echo esc_html( $field['name'] ); ?></span></li>
 | |
| 			<li class="li-field-key"><span class="copyable"><?php echo esc_html( $field['key'] ); ?></span></li>
 | |
| 			<li class="li-field-type">
 | |
| 				<i class="field-type-icon field-type-icon-<?php echo acf_slugify( $field['type'] ); ?>"></i>
 | |
| 				<span class="field-type-label">
 | |
| 					<?php echo acf_esc_html( $field_type_label ); ?>
 | |
| 				</span>
 | |
| 			</li>
 | |
| 		</ul>
 | |
| 	</div>
 | |
| 
 | |
| 	<div class="settings">
 | |
| 		<div class="acf-field-editor">
 | |
| 			<div class="acf-field-settings acf-fields">
 | |
| 
 | |
| 				<?php
 | |
| 				foreach ( acf_get_combined_field_type_settings_tabs() as $tab_key => $tab_label ) {
 | |
| 					$field_to_render = array(
 | |
| 						'type'          => 'tab',
 | |
| 						'label'         => $tab_label,
 | |
| 						'key'           => 'acf_field_settings_tabs',
 | |
| 						'settings-type' => $tab_key,
 | |
| 					);
 | |
| 
 | |
| 					if ( $tab_key === 'conditional_logic' ) {
 | |
| 						$field_to_render['label'] = __( 'Conditional Logic', 'acf' ) . '<i class="conditional-logic-badge' . $conditional_logic_class . '">' . $conditional_logic_text . '</i>';
 | |
| 					}
 | |
| 
 | |
| 					acf_render_field_wrap( $field_to_render );
 | |
| 					?>
 | |
| 					<?php
 | |
| 					$wrapper_class = str_replace( '_', '-', $tab_key );
 | |
| 					?>
 | |
| 					<div class="acf-field-settings-main acf-field-settings-main-<?php echo esc_attr( $wrapper_class ); ?>">
 | |
| 						<?php
 | |
| 						switch ( $tab_key ) {
 | |
| 							case 'general':
 | |
| 								$field_type_select_class = 'field-type';
 | |
| 								if ( ! apply_filters( 'acf/field_group/enable_field_type_select2', true ) ) {
 | |
| 									$field_type_select_class .= ' disable-select2';
 | |
| 								}
 | |
| 								// type
 | |
| 								acf_render_field_setting(
 | |
| 									$field,
 | |
| 									array(
 | |
| 										'label'        => __( 'Field Type', 'acf' ),
 | |
| 										'instructions' => '',
 | |
| 										'type'         => 'select',
 | |
| 										'name'         => 'type',
 | |
| 										'choices'      => acf_get_grouped_field_types(),
 | |
| 										'class'        => $field_type_select_class,
 | |
| 									),
 | |
| 									true
 | |
| 								);
 | |
| 
 | |
| 								if ( apply_filters( 'acf/field_group/enable_field_browser', true ) ) {
 | |
| 									?>
 | |
| 									<div class="acf-field acf-field-setting-browse-fields" data-append="type">
 | |
| 										<div class="acf-input">
 | |
| 											<button class="acf-btn browse-fields">
 | |
| 												<i class="acf-icon acf-icon-dots-grid"></i>
 | |
| 												<?php _e( 'Browse Fields', 'acf' ); ?>
 | |
| 											</button>
 | |
| 										</div>
 | |
| 									</div>
 | |
| 									<?php
 | |
| 								}
 | |
| 
 | |
| 								// label
 | |
| 								acf_render_field_setting(
 | |
| 									$field,
 | |
| 									array(
 | |
| 										'label'        => __( 'Field Label', 'acf' ),
 | |
| 										'instructions' => __( 'This is the name which will appear on the EDIT page', 'acf' ),
 | |
| 										'name'         => 'label',
 | |
| 										'type'         => 'text',
 | |
| 										'class'        => 'field-label',
 | |
| 									),
 | |
| 									true
 | |
| 								);
 | |
| 
 | |
| 								// name
 | |
| 								acf_render_field_setting(
 | |
| 									$field,
 | |
| 									array(
 | |
| 										'label'        => __( 'Field Name', 'acf' ),
 | |
| 										'instructions' => __( 'Single word, no spaces. Underscores and dashes allowed', 'acf' ),
 | |
| 										'name'         => 'name',
 | |
| 										'type'         => 'text',
 | |
| 										'class'        => 'field-name',
 | |
| 									),
 | |
| 									true
 | |
| 								);
 | |
| 
 | |
| 								// 3rd party settings
 | |
| 								do_action( 'acf/render_field_settings', $field );
 | |
| 								do_action( "acf/field_group/render_field_settings_tab/{$tab_key}", $field );
 | |
| 								?>
 | |
| 								<div class="acf-field-type-settings" data-parent-tab="<?php echo esc_attr( $tab_key ); ?>">
 | |
| 									<?php
 | |
| 									do_action( "acf/render_field_settings/type={$field['type']}", $field );
 | |
| 									do_action( "acf/field_group/render_field_settings_tab/{$tab_key}/type={$field['type']}", $field );
 | |
| 									do_action( "acf/render_field_{$tab_key}_settings/type={$field['type']}", $field );
 | |
| 									?>
 | |
| 								</div>
 | |
| 								<?php
 | |
| 								break;
 | |
| 							case 'validation':
 | |
| 								// required
 | |
| 								acf_render_field_setting(
 | |
| 									$field,
 | |
| 									array(
 | |
| 										'label'        => __( 'Required', 'acf' ),
 | |
| 										'instructions' => '',
 | |
| 										'type'         => 'true_false',
 | |
| 										'name'         => 'required',
 | |
| 										'ui'           => 1,
 | |
| 										'class'        => 'field-required',
 | |
| 									),
 | |
| 									true
 | |
| 								);
 | |
| 
 | |
| 								do_action( "acf/field_group/render_field_settings_tab/{$tab_key}", $field );
 | |
| 								?>
 | |
| 								<div class="acf-field-type-settings" data-parent-tab="<?php echo esc_attr( $tab_key ); ?>">
 | |
| 									<?php
 | |
| 									do_action( "acf/field_group/render_field_settings_tab/{$tab_key}/type={$field['type']}", $field );
 | |
| 									do_action( "acf/render_field_{$tab_key}_settings/type={$field['type']}", $field );
 | |
| 									?>
 | |
| 								</div>
 | |
| 								<?php
 | |
| 								break;
 | |
| 							case 'presentation':
 | |
| 								acf_render_field_setting(
 | |
| 									$field,
 | |
| 									array(
 | |
| 										'label'        => __( 'Instructions', 'acf' ),
 | |
| 										'instructions' => __( 'Instructions for authors. Shown when submitting data', 'acf' ),
 | |
| 										'type'         => 'textarea',
 | |
| 										'name'         => 'instructions',
 | |
| 										'rows'         => 5,
 | |
| 									),
 | |
| 									true
 | |
| 								);
 | |
| 
 | |
| 								acf_render_field_wrap(
 | |
| 									array(
 | |
| 										'label'        => '',
 | |
| 										'instructions' => '',
 | |
| 										'type'         => 'text',
 | |
| 										'name'         => 'class',
 | |
| 										'prefix'       => $field['prefix'] . '[wrapper]',
 | |
| 										'value'        => $field['wrapper']['class'],
 | |
| 										'prepend'      => __( 'class', 'acf' ),
 | |
| 										'wrapper'      => array(
 | |
| 											'data-append' => 'wrapper',
 | |
| 										),
 | |
| 									),
 | |
| 									'div'
 | |
| 								);
 | |
| 
 | |
| 								acf_render_field_wrap(
 | |
| 									array(
 | |
| 										'label'        => '',
 | |
| 										'instructions' => '',
 | |
| 										'type'         => 'text',
 | |
| 										'name'         => 'id',
 | |
| 										'prefix'       => $field['prefix'] . '[wrapper]',
 | |
| 										'value'        => $field['wrapper']['id'],
 | |
| 										'prepend'      => __( 'id', 'acf' ),
 | |
| 										'wrapper'      => array(
 | |
| 											'data-append' => 'wrapper',
 | |
| 										),
 | |
| 									),
 | |
| 									'div'
 | |
| 								);
 | |
| 
 | |
| 								do_action( "acf/field_group/render_field_settings_tab/{$tab_key}", $field );
 | |
| 								?>
 | |
| 								<div class="acf-field-type-settings" data-parent-tab="<?php echo esc_attr( $tab_key ); ?>">
 | |
| 									<?php
 | |
| 									do_action( "acf/field_group/render_field_settings_tab/{$tab_key}/type={$field['type']}", $field );
 | |
| 									do_action( "acf/render_field_{$tab_key}_settings/type={$field['type']}", $field );
 | |
| 									?>
 | |
| 								</div>
 | |
| 								<?php
 | |
| 
 | |
| 								acf_render_field_wrap(
 | |
| 									array(
 | |
| 										'label'        => __( 'Wrapper Attributes', 'acf' ),
 | |
| 										'instructions' => '',
 | |
| 										'type'         => 'number',
 | |
| 										'name'         => 'width',
 | |
| 										'prefix'       => $field['prefix'] . '[wrapper]',
 | |
| 										'value'        => $field['wrapper']['width'],
 | |
| 										'prepend'      => __( 'width', 'acf' ),
 | |
| 										'append'       => '%',
 | |
| 										'wrapper'      => array(
 | |
| 											'data-name' => 'wrapper',
 | |
| 											'class'     => 'acf-field-setting-wrapper',
 | |
| 										),
 | |
| 									),
 | |
| 									'div'
 | |
| 								);
 | |
| 								break;
 | |
| 							case 'conditional_logic':
 | |
| 								acf_get_view( 'acf-field-group/conditional-logic', array( 'field' => $field ) );
 | |
| 
 | |
| 								do_action( "acf/field_group/render_field_settings_tab/{$tab_key}", $field );
 | |
| 								?>
 | |
| 								<div class="acf-field-type-settings" data-parent-tab="<?php echo esc_attr( $tab_key ); ?>">
 | |
| 									<?php
 | |
| 									do_action( "acf/field_group/render_field_settings_tab/{$tab_key}/type={$field['type']}", $field );
 | |
| 									do_action( "acf/render_field_{$tab_key}_settings/type={$field['type']}", $field );
 | |
| 									?>
 | |
| 								</div>
 | |
| 								<?php
 | |
| 								break;
 | |
| 							default:
 | |
| 								// Global action hook for custom tabs.
 | |
| 								do_action( "acf/field_group/render_field_settings_tab/{$tab_key}", $field );
 | |
| 								?>
 | |
| 								<div class="acf-field-type-settings" data-parent-tab="<?php echo esc_attr( $tab_key ); ?>">
 | |
| 									<?php
 | |
| 									// Type-specific action hook for custom tabs.
 | |
| 									do_action( "acf/field_group/render_field_settings_tab/{$tab_key}/type={$field['type']}", $field );
 | |
| 									do_action( "acf/render_field_{$tab_key}_settings/type={$field['type']}", $field );
 | |
| 									?>
 | |
| 								</div>
 | |
| 								<?php
 | |
| 						}
 | |
| 						?>
 | |
| 					</div>
 | |
| 					<?php
 | |
| 				}
 | |
| 
 | |
| 				?>
 | |
| 				<div class="acf-field-settings-footer">
 | |
| 					<a class="button close-field edit-field" title="<?php _e( 'Close Field', 'acf' ); ?>" href="#"><?php _e( 'Close Field', 'acf' ); ?></a>
 | |
| 				</div>
 | |
| 			</div>
 | |
| 		</div>
 | |
| 	</div>
 | |
| 
 | |
| </div>
 |