public static function media_upload_with_remove_and_preview($args = array()) { $name = isset($args['name']) ? $args['name'] : ''; $value = isset($args['value']) ? $args['value'] : ''; $container_class = isset($args['container_class']) ? $args['container_class'] : ''; $preview = isset($args['preview']) ? $args['preview'] : true; $id = isset($args['id']) ? $args['id'] : ''; $label = isset($args['label']) ? $args['label'] : ''; $upload_button_class = isset($args['upload_button_class']) ? $args['upload_button_class'] : ''; $remove_button_class = isset($args['remove_button_class']) ? $args['remove_button_class'] : ''; if (empty($id) || empty($name)) { return; } $image_preview = ''; $media_detail = SB_Option::get_media_detail($value); $value_id = $media_detail['id']; $value_url = $media_detail['url']; $image_preview_class = 'image-preview'; if (!empty($value_url)) { $image_preview = sprintf('<img src="%s">', $value_url); $image_preview_class .= ' has-image'; } $container_class = SB_PHP::add_string_with_space_before($container_class, 'sb-media-upload'); $upload_button_class = SB_PHP::add_string_with_space_before($upload_button_class, 'sb-button button sb-insert-media sb-add_media'); $remove_button_class = SB_PHP::add_string_with_space_before($remove_button_class, 'sb-button button sb-remove-media sb-remove-image'); $image_preview_div = '<div class="' . $image_preview_class . '">' . $image_preview . '</div>'; $before = isset($args['before']) ? $args['before'] : '<div class="' . $container_class . '"><div class="image-upload-container">'; $after = isset($args['after']) ? $args['after'] : '</div></div>'; echo $before; if ($preview) { echo $image_preview_div; } $args['name'] = $name . '[url]'; $args['before'] = ''; $args['description'] = ''; $args['value'] = $value_url; $args['field_class'] = 'image-url'; $args['autocomplete'] = false; self::text($args); $args['label'] = ''; $args['name'] = $name . '[id]'; $args['field_class'] = 'media-id'; $args['type'] = 'hidden'; $args['value'] = $value_id; self::text($args); $html = new SB_HTML('a'); $atts = array('href' => 'javascript:;', 'class' => $upload_button_class, 'title' => __('Insert image', 'sb-core'), 'text' => __('Upload', 'sb-core')); $html->set_attribute_array($atts); echo $html->build(); $atts = array('href' => 'javascript:;', 'class' => $remove_button_class, 'title' => __('Remove image', 'sb-core'), 'text' => __('Remove', 'sb-core')); $html->set_attribute_array($atts); echo $html->build(); self::the_after($before, $after); }