'',
'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;