'', 'duplicate' => '', 'delete' => '', 'collapse' => '' ); // pre-ACF 5.9 // duplicate was introduced in ACF 5.9, before that ACFE added a custom "clone" button if(!acfe_is_acf('5.9')){ acfe_unset($icons, 'duplicate'); } return $icons; } /** * layouts_icons_settings * * @param $icons * @param $layout * @param $field * * @return mixed */ function layouts_icons_settings($icons, $layout, $field){ // ACF 6.5+: bail early if(acfe_is_acf('6.5')){ return $icons; } // check setting if(!$field['acfe_flexible_modal_settings']['acfe_flexible_modal_settings_enabled'] || !$layout['acfe_flexible_settings']){ return $icons; } // replace icon if(isset($icons['settings'])){ $icons['settings'] = ''; } return $icons; } /** * layouts_icons_edit * * @param $icons * @param $layout * @param $field * * @return mixed */ function layouts_icons_edit($icons, $layout, $field){ // ACF 6.5+: bail early if(acfe_is_acf('6.5')){ return $icons; } // check setting if(!$field['acfe_flexible_modal_edit']['acfe_flexible_modal_edit_enabled']){ return $icons; } // replace icon if(isset($icons['collapse'])){ $icons['collapse'] = ''; } return $icons; } /** * remove_actions * * @param $should_hide * @param $field * @param $position * * @return false|mixed */ function remove_actions($should_hide, $field, $position){ // pre-ACF 6.5: do not display top actions // this was introduced in ACF 6.5+ if(!acfe_is_acf('6.5') && $position === 'top'){ $should_hide = true; } return $should_hide; } /** * wrapper_attributes * * @param $wrapper * @param $field * * @return mixed */ function wrapper_attributes($wrapper, $field){ // pre-ACF 6.5: add legacy attribute for css compatibility if(!acfe_is_acf('6.5')){ $wrapper['data-acfe-legacy'] = 1; } return $wrapper; } /** * validate_field * * Convert old settings names to new settings * * @param $field * * @return mixed */ function validate_field($field){ /** * Actions */ $actions = acf_get_array($field['acfe_flexible_add_actions']); // acfe_flexible_title_edition if(acf_maybe_get($field, 'acfe_flexible_title_edition')){ acfe_unset($field, 'acfe_flexible_title_edition'); $actions[] = 'title'; } // acfe_flexible_toggle if(acf_maybe_get($field, 'acfe_flexible_toggle')){ acfe_unset($field, 'acfe_flexible_toggle'); $actions[] = 'toggle'; } // acfe_flexible_copy_paste if(acf_maybe_get($field, 'acfe_flexible_copy_paste')){ acfe_unset($field, 'acfe_flexible_copy_paste'); $actions[] = 'copy'; } // acfe_flexible_lock if(acf_maybe_get($field, 'acfe_flexible_lock')){ acfe_unset($field, 'acfe_flexible_lock'); $actions[] = 'lock'; } // acfe_flexible_close_button if(acf_maybe_get($field, 'acfe_flexible_close_button')){ acfe_unset($field, 'acfe_flexible_close_button'); $actions[] = 'close'; } // acfe_flexible_clone if(acf_maybe_get($field, 'acfe_flexible_clone')){ acfe_unset($field, 'acfe_flexible_clone'); $actions[] = 'clone'; } $actions = array_unique($actions); $actions = array_values($actions); $field['acfe_flexible_add_actions'] = $actions; /** * Async Loading */ $async = acf_get_array($field['acfe_flexible_async']); // acfe_flexible_disable_ajax_title if(acf_maybe_get($field, 'acfe_flexible_disable_ajax_title')){ acfe_unset($field, 'acfe_flexible_disable_ajax_title'); $async[] = 'title'; } // acfe_flexible_layouts_ajax if(acf_maybe_get($field, 'acfe_flexible_layouts_ajax')){ acfe_unset($field, 'acfe_flexible_layouts_ajax'); $async[] = 'layout'; } $async = array_unique($async); $async = array_values($async); $field['acfe_flexible_async'] = $async; /** * Remove Buttons */ $hide = acf_get_array($field['acfe_flexible_remove_button']); // acfe_flexible_remove_add_button if(acf_maybe_get($field, 'acfe_flexible_remove_add_button')){ acfe_unset($field, 'acfe_flexible_remove_add_button'); $hide[] = 'add'; } // acfe_flexible_remove_duplicate_button if(acf_maybe_get($field, 'acfe_flexible_remove_duplicate_button')){ acfe_unset($field, 'acfe_flexible_remove_duplicate_button'); $hide[] = 'duplicate'; } // acfe_flexible_remove_delete_button if(acf_maybe_get($field, 'acfe_flexible_remove_delete_button')){ acfe_unset($field, 'acfe_flexible_remove_delete_button'); $hide[] = 'delete'; } $hide = array_unique($hide); $hide = array_values($hide); $field['acfe_flexible_remove_button'] = $hide; /** * Layouts State */ if(acf_maybe_get($field, 'acfe_flexible_layouts_remove_collapse')){ $field['acfe_flexible_layouts_state'] = 'force_open'; acfe_unset($field, 'acfe_flexible_layouts_remove_collapse'); } /** * Modal Edit */ if(isset($field['acfe_flexible_modal_edition'])){ $field['acfe_flexible_modal_edit']['acfe_flexible_modal_edit_enabled'] = $field['acfe_flexible_modal_edition']; acfe_unset($field, 'acfe_flexible_modal_edition'); } /** * Modal Settings */ if(isset($field['acfe_flexible_layouts_settings'])){ $field['acfe_flexible_modal_settings']['acfe_flexible_modal_settings_enabled'] = $field['acfe_flexible_layouts_settings']; acfe_unset($field, 'acfe_flexible_layouts_settings'); } // return return $field; } } acf_new_instance('acfe_field_flexible_content_compatibility'); endif;