__('Layouts Thumbnails', 'acfe'), 'name' => 'acfe_flexible_layouts_thumbnails', 'key' => 'acfe_flexible_layouts_thumbnails', 'instructions' => __('Set a thumbnail for each layouts', 'acfe') . '. ' . '' . __('See documentation', 'acfe') . '', 'type' => 'true_false', 'message' => '', 'default_value' => false, 'ui' => true, 'ui_on_text' => '', 'ui_off_text' => '', 'conditional_logic' => array( array( array( 'field' => 'acfe_flexible_advanced', 'operator' => '==', 'value' => '1', ), ) ) )); } /** * render_layout_settings * * @param $flexible * @param $layout * @param $prefix */ function render_layout_settings($flexible, $layout, $prefix){ if(!acf_maybe_get($flexible, 'acfe_flexible_layouts_thumbnails')){ return; } // Title echo ''; acf_render_field_wrap(array( 'label' => __('Thumbnail', 'acfe'), 'type' => 'hidden', 'name' => 'acfe_flexible_thumbnail_label', 'wrapper' => array( 'class' => 'acfe-flexible-field-setting', ) ), 'ul'); echo '
  • '; // Fields acf_render_field_wrap(array( 'label' => false, 'name' => 'acfe_flexible_thumbnail', 'type' => 'image', 'class' => '', 'prefix' => $prefix, 'value' => $layout['acfe_flexible_thumbnail'], 'return_format' => 'array', 'preview_size' => 'thumbnail', 'library' => 'all', ), 'ul'); } /** * validate_thumbnail * * @param $field * * @return mixed */ function validate_thumbnail($field){ if(acfe_is_admin_screen()){ return $field; } // Vars $name = $field['name']; $key = $field['key']; foreach($field['layouts'] as &$layout){ // Vars $l_name = $layout['name']; $thumbnail = $layout['acfe_flexible_thumbnail']; // Flexible Thumbnails $thumbnail = apply_filters("acfe/flexible/thumbnail", $thumbnail, $field, $layout); $thumbnail = apply_filters("acfe/flexible/thumbnail/name={$name}", $thumbnail, $field, $layout); $thumbnail = apply_filters("acfe/flexible/thumbnail/key={$key}", $thumbnail, $field, $layout); $thumbnail = apply_filters("acfe/flexible/thumbnail/layout={$l_name}", $thumbnail, $field, $layout); $thumbnail = apply_filters("acfe/flexible/thumbnail/name={$name}&layout={$l_name}", $thumbnail, $field, $layout); $thumbnail = apply_filters("acfe/flexible/thumbnail/key={$key}&layout={$l_name}", $thumbnail, $field, $layout); // Deprecated $thumbnail = apply_filters_deprecated("acfe/flexible/layout/thumbnail/layout={$l_name}", array($thumbnail, $field, $layout), '0.8.6.7', "acfe/flexible/thumbnail/layout={$l_name}"); $thumbnail = apply_filters_deprecated("acfe/flexible/layout/thumbnail/name={$name}&layout={$l_name}", array($thumbnail, $field, $layout), '0.8.6.7', "acfe/flexible/thumbnail/name={$name}&layout={$l_name}"); $thumbnail = apply_filters_deprecated("acfe/flexible/layout/thumbnail/key={$key}&layout={$l_name}", array($thumbnail, $field, $layout), '0.8.6.7', "acfe/flexible/thumbnail/key={$key}&layout={$l_name}"); $layout['acfe_flexible_thumbnail'] = $thumbnail; } return $field; } /** * wrapper_attributes * * @param $wrapper * @param $field * * @return mixed */ function wrapper_attributes($wrapper, $field){ // check setting if(!acf_maybe_get($field, 'acfe_flexible_layouts_thumbnails')){ return $wrapper; } $wrapper['data-acfe-flexible-thumbnails'] = 1; return $wrapper; } /** * label_prepend * * @param $prepend * @param $layout * @param $field * * @return mixed|string */ function label_prepend($prepend, $layout, $field){ if(!acf_maybe_get($field, 'acfe_flexible_layouts_thumbnails')){ return $prepend; } $prepend = array( 'class' => 'acfe-flexible-layout-thumbnail', ); // Modal disabled if(!$field['acfe_flexible_modal']['acfe_flexible_modal_enabled']){ $prepend['class'] .= ' acfe-flexible-layout-thumbnail-no-modal'; } // Thumbnail $thumbnail = $layout['acfe_flexible_thumbnail']; $has_thumbnail = false; if(!empty($thumbnail)){ $has_thumbnail = true; $prepend['style'] = "background-image:url({$thumbnail});"; // Attachment ID if(is_numeric($thumbnail)){ $has_thumbnail = false; if($thumbnail_src = wp_get_attachment_url($thumbnail)){ $has_thumbnail = true; $prepend['style'] = "background-image:url({$thumbnail_src});"; } } } // Thumbnail not found if(!$has_thumbnail){ $prepend['class'] .= ' acfe-flexible-layout-thumbnail-not-found'; } $prepend = '
    '; return $prepend; } /** * layout_title * * @param $title * @param $field * @param $layout * @param $i * * @return array|string|string[]|null */ function layout_title($title, $field, $layout, $i){ $title = preg_replace('#