acf_field_flexible_content::render_field_settingspublicACF 3.6

Renders the flexible content field layouts in the field group editor.

Метод класса: acf_field_flexible_content{}

Возвращает

null. Ничего (null).

Использование

$acf_field_flexible_content = new acf_field_flexible_content();
$acf_field_flexible_content->render_field_settings( $field );
$field(массив) (обязательный)
An array holding all the field's data.

Список изменений

С версии 3.6 Введена.

Код acf_field_flexible_content::render_field_settings() ACF 6.4.2

<?php
public function render_field_settings( $field ) {
	$layout_open = apply_filters( 'acf/fields/flexible_content/layout_default_expanded', false );

	// Load default layout.
	if ( empty( $field['layouts'] ) ) {
		$layout_open      = true;
		$field['layouts'] = array(
			array(),
		);
	}

	$field_settings_class = $layout_open ? 'open' : '';
	$toggle_class         = $layout_open ? 'open' : 'closed';
	$field_settings_style = $layout_open ? '' : 'display: none;';

	// loop through layouts
	foreach ( $field['layouts'] as $layout ) {

		// get valid layout
		$layout = $this->get_valid_layout( $layout );

		// vars
		$layout_prefix = "{$field['prefix']}[layouts][{$layout['key']}]";

		?>
		<div class="acf-field acf-field-setting-fc_layout" data-name="fc_layout" data-setting="flexible_content" data-layout-label="<?php echo esc_attr( $layout['label'] ); ?>" data-layout-name="<?php echo esc_attr( $layout['name'] ); ?>" data-id="<?php echo esc_attr( $layout['key'] ); ?>">
			<div class="acf-label acf-field-settings-fc_head">
				<div class="acf-fc_draggable">
					<label class="acf-fc-layout-label reorder-layout"><?php esc_attr_e( 'Layout', 'acf' ); ?></label>
				</div>

				<div class="acf-fc-layout-name copyable">
					<span class="layout-name"></span>
				</div>

				<ul class="acf-bl acf-fl-actions">
					<li><button class="acf-btn acf-btn-tertiary acf-btn-sm acf-field-setting-fc-delete"><i class="acf-icon acf-icon-trash delete-layout " href="#" title="<?php esc_attr_e( 'Delete Layout', 'acf' ); ?>"></i></button></li>
					<li><button class="acf-btn acf-btn-tertiary acf-btn-sm acf-field-setting-fc-duplicate"><i class="acf-icon -duplicate duplicate-layout" href="#" title="<?php esc_attr_e( 'Duplicate Layout', 'acf' ); ?>"></i></button></li>
					<li class="acf-fc-add-layout"><button class="add-layout acf-btn acf-btn-primary add-field" href="#" title="<?php esc_attr_e( 'Add New Layout', 'acf' ); ?>"><i class="acf-icon acf-icon-plus"></i><?php esc_html_e( 'Add Layout', 'acf' ); ?></button></li>
					<li><button type="button" class="acf-toggle-fc-layout" aria-expanded="true"></li>
					<li><span class="toggle-indicator  <?php echo esc_attr( $toggle_class ); ?>" aria-hidden="true"></span></li>
				</ul>
			</div>
			<div class="acf-input acf-field-layout-settings <?php echo esc_attr( $field_settings_class ); ?>" style="<?php echo esc_attr( $field_settings_style ); ?>">
				<?php

				acf_hidden_input(
					array(
						'id'    => acf_idify( $layout_prefix . '[key]' ),
						'name'  => $layout_prefix . '[key]',
						'class' => 'layout-key',
						'value' => $layout['key'],
					)
				);

				?>
				<ul class="acf-fc-meta acf-bl">
					<li class="acf-fc-meta-label acf-fc-meta-left">
						<?php

						acf_render_field(
							array(
								'type'    => 'text',
								'name'    => 'label',
								'class'   => 'layout-label',
								'prefix'  => $layout_prefix,
								'value'   => $layout['label'],
								'prepend' => __( 'Label', 'acf' ),
							)
						);

						?>
					</li>
					<li class="acf-fc-meta-name acf-fc-meta-right copyable input-copyable">
							<?php

							acf_render_field(
								array(
									'type'       => 'text',
									'name'       => 'name',
									'class'      => 'layout-name',
									'input-data' => array( '1p-ignore' => 'true' ),
									'prefix'     => $layout_prefix,
									'value'      => $layout['name'],
									'prepend'    => __( 'Name', 'acf' ),
								)
							);

							?>
					</li>
					<li class="acf-fc-meta-display acf-fc-meta-left">
						<div class="acf-input-prepend"><?php esc_html_e( 'Layout', 'acf' ); ?></div>
						<div class="acf-input-wrap">
							<?php

							acf_render_field(
								array(
									'type'    => 'select',
									'name'    => 'display',
									'prefix'  => $layout_prefix,
									'value'   => $layout['display'],
									'class'   => 'acf-is-prepended',
									'choices' => array(
										'table' => __( 'Table', 'acf' ),
										'block' => __( 'Block', 'acf' ),
										'row'   => __( 'Row', 'acf' ),
									),
								)
							);

							?>
						</div>
					</li>
					<li class="acf-fc-meta-min">
							<?php

							acf_render_field(
								array(
									'type'    => 'text',
									'name'    => 'min',
									'prefix'  => $layout_prefix,
									'value'   => $layout['min'],
									'prepend' => __( 'Min', 'acf' ),
								)
							);

							?>
					</li>
					<li class="acf-fc-meta-max">
							<?php

							acf_render_field(
								array(
									'type'    => 'text',
									'name'    => 'max',
									'prefix'  => $layout_prefix,
									'value'   => $layout['max'],
									'prepend' => __( 'Max', 'acf' ),
								)
							);

							?>
					</li>
				</ul>
				<div class="acf-input-sub">
				<?php

				// vars
				$args = array(
					'fields'      => $layout['sub_fields'],
					'parent'      => $field['ID'],
					'is_subfield' => true,
				);

				acf_get_view( 'acf-field-group/fields', $args );

				?>
				</div>
			</div>
		</div>
		<?php
	}
}