__('Default Layouts State', 'acfe'), 'name' => 'acfe_flexible_layouts_state', 'key' => 'acfe_flexible_layouts_state', 'instructions' => __('Force layouts to be collapsed or opened', 'acfe'), 'type' => 'radio', 'layout' => 'horizontal', 'default_value' => 'user', 'placeholder' => __('Default (User preference)', 'acfe'), 'choices' => array( 'user' => 'User preference', 'collapse' => 'Collapsed', 'open' => 'Opened', 'force_open' => 'Always opened', ), 'conditional_logic' => array( array( array( 'field' => 'acfe_flexible_advanced', 'operator' => '==', 'value' => '1', ), array( 'field' => 'acfe_flexible_modal_edit_enabled', 'operator' => '!=', 'value' => '1', ) ) ) )); } function validate_state($field){ if(!acf_maybe_get($field, 'acfe_flexible_layouts_remove_collapse')) return $field; $field['acfe_flexible_layouts_state'] = 'force_open'; return $field; } function wrapper_attributes($wrapper, $field){ // Check setting if(($field['acfe_flexible_layouts_state'] !== 'open' && $field['acfe_flexible_layouts_state'] !== 'force_open') || $field['acfe_flexible_modal_edit']['acfe_flexible_modal_edit_enabled']) return $wrapper; $wrapper['data-acfe-flexible-open'] = 1; return $wrapper; } function layout_div($div, $layout, $field){ if($field['acfe_flexible_layouts_state'] !== 'collapse') return $div; // Already in class if(in_array('-collapsed', explode(' ', $div['class']))) return $div; $div['class'] .= ' -collapsed'; return $div; } function layout_placeholder($placeholder, $layout, $field){ if($field['acfe_flexible_layouts_state'] === 'collapse' || $field['acfe_flexible_modal_edit']['acfe_flexible_modal_edit_enabled']) return $placeholder; // Already in class if(in_array('acf-hidden', explode(' ', $placeholder['class']))) return $placeholder; $placeholder['class'] .= ' acf-hidden'; return $placeholder; } function layout_handle($handle, $layout, $field){ if($field['acfe_flexible_layouts_state'] !== 'force_open') return $handle; acfe_unset($handle, 'data-name'); return $handle; } function layout_icons($icons, $layout, $field){ if($field['acfe_flexible_layouts_state'] !== 'force_open') return $icons; acfe_unset($icons, 'collapse'); return $icons; } } acf_new_instance('acfe_field_flexible_content_state'); endif;