/** * Retrieve HTML content of icon attachment image element. * * @since 2.0.0 * @deprecated 2.5.0 * @deprecated Use wp_get_attachment_image() * @see wp_get_attachment_image() * * @param int $id Optional. Post ID. * @param bool $fullsize Optional, default to false. Whether to have full size image. * @param array $max_dims Optional. Dimensions of image. * @return string HTML content. */ function get_attachment_icon($id = 0, $fullsize = false, $max_dims = false) { _deprecated_function(__FUNCTION__, '2.5', 'wp_get_attachment_image()'); $id = (int) $id; if (!($post = get_post($id))) { return false; } if (!($src = get_attachment_icon_src($post->ID, $fullsize))) { return false; } list($src, $src_file) = $src; // Do we need to constrain the image? if (($max_dims = apply_filters('attachment_max_dims', $max_dims)) && file_exists($src_file)) { $imagesize = getimagesize($src_file); if ($imagesize[0] > $max_dims[0] || $imagesize[1] > $max_dims[1]) { $actual_aspect = $imagesize[0] / $imagesize[1]; $desired_aspect = $max_dims[0] / $max_dims[1]; if ($actual_aspect >= $desired_aspect) { $height = $actual_aspect * $max_dims[0]; $constraint = "width='{$max_dims[0]}' "; $post->iconsize = array($max_dims[0], $height); } else { $width = $max_dims[1] / $actual_aspect; $constraint = "height='{$max_dims[1]}' "; $post->iconsize = array($width, $max_dims[1]); } } else { $post->iconsize = array($imagesize[0], $imagesize[1]); $constraint = ''; } } else { $constraint = ''; } $post_title = esc_attr($post->post_title); $icon = "<img src='{$src}' title='{$post_title}' alt='{$post_title}' {$constraint}/>"; return apply_filters('attachment_icon', $icon, $post->ID); }
function get_media_item($attachment_id, $args = null) { $default_args = array('errors' => null, 'send' => true, 'delete' => true, 'toggle' => true); $args = wp_parse_args($args, $default_args); extract($args, EXTR_SKIP); global $post_mime_types; if (($attachment_id = intval($attachment_id)) && ($thumb_url = get_attachment_icon_src($attachment_id))) { $thumb_url = $thumb_url[0]; } else { return false; } $title_label = __('Title'); $description_label = __('Description'); $tags_label = __('Tags'); $toggle_on = __('Show'); $toggle_off = __('Hide'); $post = get_post($attachment_id); $filename = basename($post->guid); $title = attribute_escape($post->post_title); $description = attribute_escape($post->post_content); if ($_tags = get_the_tags($attachment_id)) { foreach ($_tags as $tag) { $tags[] = $tag->name; } $tags = attribute_escape(join(', ', $tags)); } if (isset($post_mime_types)) { $keys = array_keys(wp_match_mime_types(array_keys($post_mime_types), $post->post_mime_type)); $type = array_shift($keys); $type = "<input type='hidden' id='type-of-{$attachment_id}' value='" . attribute_escape($type) . "' />"; } $form_fields = get_attachment_fields_to_edit($post, $errors); if ($toggle) { $class = empty($errors) ? 'startclosed' : 'startopen'; $toggle_links = "\n\t<a class='toggle describe-toggle-on' href='#'>{$toggle_on}</a>\n\t<a class='toggle describe-toggle-off' href='#'>{$toggle_off}</a>"; } else { $class = 'form-table'; $toggle_links = ''; } $display_title = !empty($title) ? $title : $filename; // $title shouldn't ever be empty, but just in case $item = "\n\t{$type}\n\t{$toggle_links}\n\t<div class='filename new'>{$display_title}</div>\n\t<table class='slidetoggle describe {$class}'>\n\t\t<thead class='media-item-info'>\n\t\t<tr>\n\t\t\t<td class='A1B1' rowspan='4'><img class='thumbnail' src='{$thumb_url}' alt='' /></td>\n\t\t\t<td>{$filename}</td>\n\t\t</tr>\n\t\t<tr><td>{$post->post_mime_type}</td></tr>\n\t\t<tr><td>" . mysql2date($post->post_date, get_option('time_format')) . "</td></tr>\n\t\t<tr><td>" . apply_filters('media_meta', '', $post) . "</td></tr>\n\t\t</thead>\n\t\t<tbody>\n"; $defaults = array('input' => 'text', 'required' => false, 'value' => '', 'extra_rows' => array()); $delete_href = wp_nonce_url("post.php?action=delete-post&post={$attachment_id}", 'delete-post_' . $attachment_id); if ($send) { $send = "<input type='submit' class='button' name='send[{$attachment_id}]' value='" . attribute_escape(__('Insert into Post')) . "' />"; } if ($delete) { $delete = "<a href='{$delete_href}' id='del[{$attachment_id}]' disabled='disabled' class='delete'>" . __('Delete') . "</button>"; } if (($send || $delete) && !isset($form_fields['buttons'])) { $form_fields['buttons'] = array('tr' => "\t\t<tr class='submit'><td></td><td class='savesend'>{$send} {$delete}</td></tr>\n"); } $hidden_fields = array(); foreach ($form_fields as $id => $field) { if ($id[0] == '_') { continue; } if (!empty($field['tr'])) { $item .= $field['tr']; continue; } $field = array_merge($defaults, $field); $name = "attachments[{$attachment_id}][{$id}]"; if ($field['input'] == 'hidden') { $hidden_fields[$name] = $field['value']; continue; } $required = $field['required'] ? '<abbr title="required" class="required">*</abbr>' : ''; $class = $id; $class .= $field['required'] ? ' form-required' : ''; $item .= "\t\t<tr class='{$class}'>\n\t\t\t<th valign='top' scope='row' class='label'><label for='{$name}'><span class='alignleft'>{$field['label']}</span><span class='alignright'>{$required}</span><br class='clear' /></label></th>\n\t\t\t<td class='field'>"; if (!empty($field[$field['input']])) { $item .= $field[$field['input']]; } elseif ($field['input'] == 'textarea') { $item .= "<textarea type='text' id='{$name}' name='{$name}'>" . attribute_escape($field['value']) . "</textarea>"; } else { $item .= "<input type='text' id='{$name}' name='{$name}' value='" . attribute_escape($field['value']) . "' />"; } if (!empty($field['helps'])) { $item .= "<p class='help'>" . join("</p>\n<p class='help'>", array_unique((array) $field['helps'])) . '</p>'; } $item .= "</td>\n\t\t</tr>\n"; $extra_rows = array(); if (!empty($field['errors'])) { foreach (array_unique((array) $field['errors']) as $error) { $extra_rows['error'][] = $error; } } if (!empty($field['extra_rows'])) { foreach ($field['extra_rows'] as $class => $rows) { foreach ((array) $rows as $html) { $extra_rows[$class][] = $html; } } } foreach ($extra_rows as $class => $rows) { foreach ($rows as $html) { $item .= "\t\t<tr><td></td><td class='{$class}'>{$html}</td></tr>\n"; } } } if (!empty($form_fields['_final'])) { $item .= "\t\t<tr class='final'><td colspan='2'>{$form_fields['_final']}</td></tr>\n"; } $item .= "\t</tbody>\n"; $item .= "\t</table>\n"; foreach ($hidden_fields as $name => $value) { $item .= "\t<input type='hidden' name='{$name}' id='{$name}' value='" . attribute_escape($value) . "' />\n"; } return $item; }
/** * Retrieve HTML form for modifying the image attachment. * * @since unknown * * @param int $attachment_id Attachment ID for modification. * @param string|array $args Optional. Override defaults. * @return string HTML form for attachment. */ function get_media_item($attachment_id, $args = null) { global $redir_tab; $default_args = array('errors' => null, 'send' => true, 'delete' => true, 'toggle' => true, 'show_title' => true); $args = wp_parse_args($args, $default_args); extract($args, EXTR_SKIP); global $post_mime_types; if (($attachment_id = intval($attachment_id)) && ($thumb_url = get_attachment_icon_src($attachment_id))) { $thumb_url = $thumb_url[0]; } else { return false; } $toggle_on = __('Show'); $toggle_off = __('Hide'); $post = get_post($attachment_id); $filename = basename($post->guid); $title = esc_attr($post->post_title); if ($_tags = get_the_tags($attachment_id)) { foreach ($_tags as $tag) { $tags[] = $tag->name; } $tags = esc_attr(join(', ', $tags)); } $type = ''; if (isset($post_mime_types)) { $keys = array_keys(wp_match_mime_types(array_keys($post_mime_types), $post->post_mime_type)); $type = array_shift($keys); $type = "<input type='hidden' id='type-of-{$attachment_id}' value='" . esc_attr($type) . "' />"; } $form_fields = get_attachment_fields_to_edit($post, $errors); if ($toggle) { $class = empty($errors) ? 'startclosed' : 'startopen'; $toggle_links = "\r\n\t<a class='toggle describe-toggle-on' href='#'>{$toggle_on}</a>\r\n\t<a class='toggle describe-toggle-off' href='#'>{$toggle_off}</a>"; } else { $class = 'form-table'; $toggle_links = ''; } $display_title = !empty($title) ? $title : $filename; // $title shouldn't ever be empty, but just in case $display_title = $show_title ? "<div class='filename new'>" . wp_html_excerpt($display_title, 60) . "</div>" : ''; $gallery = isset($_REQUEST['tab']) && 'gallery' == $_REQUEST['tab'] || isset($redir_tab) && 'gallery' == $redir_tab ? true : false; $order = ''; foreach ($form_fields as $key => $val) { if ('menu_order' == $key) { if ($gallery) { $order = '<div class="menu_order"> <input class="menu_order_input" type="text" id="attachments[' . $attachment_id . '][menu_order]" name="attachments[' . $attachment_id . '][menu_order]" value="' . $val['value'] . '" /></div>'; } else { $order = '<input type="hidden" name="attachments[' . $attachment_id . '][menu_order]" value="' . $val['value'] . '" />'; } unset($form_fields['menu_order']); break; } } $item = "\r\n\t{$type}\r\n\t{$toggle_links}\r\n\t{$order}\r\n\t{$display_title}\r\n\t<table class='slidetoggle describe {$class}'>\r\n\t\t<thead class='media-item-info'>\r\n\t\t<tr>\r\n\t\t\t<td class='A1B1' rowspan='4'><img class='thumbnail' src='{$thumb_url}' alt='' /></td>\r\n\t\t\t<td>{$filename}</td>\r\n\t\t</tr>\r\n\t\t<tr><td>{$post->post_mime_type}</td></tr>\r\n\t\t<tr><td>" . mysql2date($post->post_date, get_option('time_format')) . "</td></tr>\r\n\t\t<tr><td>" . apply_filters('media_meta', '', $post) . "</td></tr>\r\n\t\t</thead>\r\n\t\t<tbody>\n"; $defaults = array('input' => 'text', 'required' => false, 'value' => '', 'extra_rows' => array()); $delete_href = wp_nonce_url("post.php?action=delete-post&post={$attachment_id}", 'delete-post_' . $attachment_id); if ($send) { $send = "<input type='submit' class='button' name='send[{$attachment_id}]' value='" . esc_attr__('Insert into Post') . "' />"; } if ($delete) { $delete = "<a href=\"#\" class=\"del-link\" onclick=\"document.getElementById('del_attachment_{$attachment_id}').style.display='block';return false;\">" . __('Delete') . "</a>"; } if (($send || $delete) && !isset($form_fields['buttons'])) { $form_fields['buttons'] = array('tr' => "\t\t<tr class='submit'><td></td><td class='savesend'>{$send} {$delete}\r\n\t\t<div id=\"del_attachment_{$attachment_id}\" class=\"del-attachment\" style=\"display:none;\">" . sprintf(__("You are about to delete <strong>%s</strong>."), $filename) . " <a href=\"{$delete_href}\" id=\"del[{$attachment_id}]\" class=\"delete\">" . __('Continue') . "</a>\r\n\t\t<a href=\"#\" class=\"del-link\" onclick=\"this.parentNode.style.display='none';return false;\">" . __('Cancel') . "</a></div></td></tr>\n"); } $hidden_fields = array(); foreach ($form_fields as $id => $field) { if ($id[0] == '_') { continue; } if (!empty($field['tr'])) { $item .= $field['tr']; continue; } $field = array_merge($defaults, $field); $name = "attachments[{$attachment_id}][{$id}]"; if ($field['input'] == 'hidden') { $hidden_fields[$name] = $field['value']; continue; } $required = $field['required'] ? '<abbr title="required" class="required">*</abbr>' : ''; $aria_required = $field['required'] ? " aria-required='true' " : ''; $class = $id; $class .= $field['required'] ? ' form-required' : ''; $item .= "\t\t<tr class='{$class}'>\n\t\t\t<th valign='top' scope='row' class='label'><label for='{$name}'><span class='alignleft'>{$field['label']}</span><span class='alignright'>{$required}</span><br class='clear' /></label></th>\n\t\t\t<td class='field'>"; if (!empty($field[$field['input']])) { $item .= $field[$field['input']]; } elseif ($field['input'] == 'textarea') { $item .= "<textarea type='text' id='{$name}' name='{$name}'" . $aria_required . ">" . esc_html($field['value']) . "</textarea>"; } else { $item .= "<input type='text' id='{$name}' name='{$name}' value='" . esc_attr($field['value']) . "'" . $aria_required . "/>"; } if (!empty($field['helps'])) { $item .= "<p class='help'>" . join("</p>\n<p class='help'>", array_unique((array) $field['helps'])) . '</p>'; } $item .= "</td>\n\t\t</tr>\n"; $extra_rows = array(); if (!empty($field['errors'])) { foreach (array_unique((array) $field['errors']) as $error) { $extra_rows['error'][] = $error; } } if (!empty($field['extra_rows'])) { foreach ($field['extra_rows'] as $class => $rows) { foreach ((array) $rows as $html) { $extra_rows[$class][] = $html; } } } foreach ($extra_rows as $class => $rows) { foreach ($rows as $html) { $item .= "\t\t<tr><td></td><td class='{$class}'>{$html}</td></tr>\n"; } } } if (!empty($form_fields['_final'])) { $item .= "\t\t<tr class='final'><td colspan='2'>{$form_fields['_final']}</td></tr>\n"; } $item .= "\t</tbody>\n"; $item .= "\t</table>\n"; foreach ($hidden_fields as $name => $value) { $item .= "\t<input type='hidden' name='{$name}' id='{$name}' value='" . esc_attr($value) . "' />\n"; } if ($post->post_parent < 1 && isset($_REQUEST['post_id'])) { $parent = (int) $_REQUEST['post_id']; $parent_name = "attachments[{$attachment_id}][post_parent]"; $item .= "\t<input type='hidden' name='{$parent_name}' id='{$parent_name}' value='" . $parent . "' />\n"; } return $item; }
function wp_upload_display($dims = false, $href = '') { global $post; $id = get_the_ID(); $attachment_data = wp_get_attachment_metadata($id); $is_image = (int) wp_attachment_is_image(); $filesystem_path = get_attached_file($id); if (!isset($attachment_data['width']) && $is_image) { if ($image_data = getimagesize($filesystem_path)) { $attachment_data['width'] = $image_data[0]; $attachment_data['height'] = $image_data[1]; wp_update_attachment_metadata($id, $attachment_data); } } if (isset($attachment_data['width'])) { list($width, $height) = wp_shrink_dimensions($attachment_data['width'], $attachment_data['height'], 171, 128); } $post_title = attribute_escape(the_title('', '', false)); $post_content = attribute_escape(apply_filters('content_edit_pre', $post->post_content)); $class = 'text'; $innerHTML = get_attachment_innerHTML($id, false, $dims); if ($image_src = get_attachment_icon_src()) { $image_rel = wp_make_link_relative($image_src); $innerHTML = ' ' . str_replace($image_src, $image_rel, $innerHTML); $class = 'image'; } $src_base = wp_get_attachment_url(); $src = wp_make_link_relative($src_base); $src_base = str_replace($src, '', $src_base); if (!trim($post_title)) { $post_title = basename($src); } $r = ''; if ($href) { $r .= "<a id='file-link-{$id}' href='{$href}' title='{$post_title}' class='file-link {$class}'>\n"; } if ($href || $image_src) { $r .= "\t\t\t{$innerHTML}"; } if ($href) { $r .= "</a>\n"; } $size = @filesize($filesystem_path); if (!empty($size)) { $r .= "\t\t\t\t<span class='upload-file-size'>" . size_format($size) . "</span>\n"; } $r .= "\n\t\t<div class='upload-file-data'>\n\t\t\t<p>\n"; $r .= "\t\t\t\t<input type='hidden' name='attachment-url-{$id}' id='attachment-url-{$id}' value='{$src}' />\n"; $r .= "\t\t\t\t<input type='hidden' name='attachment-url-base-{$id}' id='attachment-url-base-{$id}' value='{$src_base}' />\n"; if (!($thumb_base = wp_get_attachment_thumb_url())) { $thumb_base = wp_mime_type_icon(); } if ($thumb_base) { $thumb_rel = wp_make_link_relative($thumb_base); $thumb_base = str_replace($thumb_rel, '', $thumb_base); $r .= "\t\t\t\t<input type='hidden' name='attachment-thumb-url-{$id}' id='attachment-thumb-url-{$id}' value='{$thumb_rel}' />\n"; $r .= "\t\t\t\t<input type='hidden' name='attachment-thumb-url-base-{$id}' id='attachment-thumb-url-base-{$id}' value='{$thumb_base}' />\n"; } $r .= "\t\t\t\t<input type='hidden' name='attachment-is-image-{$id}' id='attachment-is-image-{$id}' value='{$is_image}' />\n"; if (isset($width)) { $r .= "\t\t\t\t<input type='hidden' name='attachment-width-{$id}' id='attachment-width-{$id}' value='{$width}' />\n"; $r .= "\t\t\t\t<input type='hidden' name='attachment-height-{$id}' id='attachment-height-{$id}' value='{$height}' />\n"; } $r .= "\t\t\t\t<input type='hidden' name='attachment-page-url-{$id}' id='attachment-page-url-{$id}' value='" . get_attachment_link($id) . "' />\n"; $r .= "\t\t\t\t<input type='hidden' name='attachment-title-{$id}' id='attachment-title-{$id}' value='{$post_title}' />\n"; $r .= "\t\t\t\t<input type='hidden' name='attachment-description-{$id}' id='attachment-description-{$id}' value='{$post_content}' />\n"; $r .= "\t\t\t</p>\n\t\t</div>\n"; return $r; }
function wp_upload_display( $dims = false, $href = '' ) { global $post; $id = get_the_ID(); $attachment_data = wp_get_attachment_metadata( $id ); $is_image = (int) wp_attachment_is_image(); if ( !isset($attachment_data['width']) && $is_image ) { if ( $image_data = getimagesize( get_attached_file( $id ) ) ) { $attachment_data['width'] = $image_data[0]; $attachment_data['height'] = $image_data[1]; wp_update_attachment_metadata( $id, $attachment_data ); } } if ( isset($attachment_data['width']) ) list($width,$height) = wp_shrink_dimensions($attachment_data['width'], $attachment_data['height'], 171, 128); ob_start(); the_title(); $post_title = attribute_escape(ob_get_contents()); ob_end_clean(); $post_content = attribute_escape(apply_filters( 'content_edit_pre', $post->post_content )); $class = 'text'; $innerHTML = get_attachment_innerHTML( $id, false, $dims ); if ( $image_src = get_attachment_icon_src() ) { $image_rel = wp_make_link_relative($image_src); $innerHTML = ' ' . str_replace($image_src, $image_rel, $innerHTML); $class = 'image'; } $src_base = wp_get_attachment_url(); $src = wp_make_link_relative( $src_base ); $src_base = str_replace($src, '', $src_base); $r = ''; if ( $href ) $r .= "<a id='file-link-$id' href='$href' title='$post_title' class='file-link $class'>\n"; if ( $href || $image_src ) $r .= "\t\t\t$innerHTML"; if ( $href ) $r .= "</a>\n"; $r .= "\n\t\t<div class='upload-file-data'>\n\t\t\t<p>\n"; $r .= "\t\t\t\t<input type='hidden' name='attachment-url-$id' id='attachment-url-$id' value='$src' />\n"; $r .= "\t\t\t\t<input type='hidden' name='attachment-url-base-$id' id='attachment-url-base-$id' value='$src_base' />\n"; if ( !$thumb_base = wp_get_attachment_thumb_url() ) $thumb_base = wp_mime_type_icon(); if ( $thumb_base ) { $thumb_rel = wp_make_link_relative( $thumb_base ); $thumb_base = str_replace( $thumb_rel, '', $thumb_base ); $r .= "\t\t\t\t<input type='hidden' name='attachment-thumb-url-$id' id='attachment-thumb-url-$id' value='$thumb_rel' />\n"; $r .= "\t\t\t\t<input type='hidden' name='attachment-thumb-url-base-$id' id='attachment-thumb-url-base-$id' value='$thumb_base' />\n"; } $r .= "\t\t\t\t<input type='hidden' name='attachment-is-image-$id' id='attachment-is-image-$id' value='$is_image' />\n"; if ( isset($width) ) { $r .= "\t\t\t\t<input type='hidden' name='attachment-width-$id' id='attachment-width-$id' value='$width' />\n"; $r .= "\t\t\t\t<input type='hidden' name='attachment-height-$id' id='attachment-height-$id' value='$height' />\n"; } $r .= "\t\t\t\t<input type='hidden' name='attachment-page-url-$id' id='attachment-page-url-$id' value='" . get_attachment_link( $id ) . "' />\n"; $r .= "\t\t\t\t<input type='hidden' name='attachment-title-$id' id='attachment-title-$id' value='$post_title' />\n"; $r .= "\t\t\t\t<input type='hidden' name='attachment-description-$id' id='attachment-description-$id' value='$post_content' />\n"; $r .= "\t\t\t</p>\n\t\t</div>\n"; return $r; }
function get_attachment_icon( $id = 0, $fullsize = false, $max_dims = false ) { $id = (int) $id; if ( !$post = & get_post($id) ) return false; if ( !$src = get_attachment_icon_src( $post->ID, $fullsize ) ) return false; list($src, $src_file) = $src; // Do we need to constrain the image? if ( ($max_dims = apply_filters('attachment_max_dims', $max_dims)) && file_exists($src_file) ) { $imagesize = getimagesize($src_file); if (($imagesize[0] > $max_dims[0]) || $imagesize[1] > $max_dims[1] ) { $actual_aspect = $imagesize[0] / $imagesize[1]; $desired_aspect = $max_dims[0] / $max_dims[1]; if ( $actual_aspect >= $desired_aspect ) { $height = $actual_aspect * $max_dims[0]; $constraint = "width='{$max_dims[0]}' "; $post->iconsize = array($max_dims[0], $height); } else { $width = $max_dims[1] / $actual_aspect; $constraint = "height='{$max_dims[1]}' "; $post->iconsize = array($width, $max_dims[1]); } } else { $post->iconsize = array($imagesize[0], $imagesize[1]); } } $post_title = attribute_escape($post->post_title); $icon = "<img src='$src' title='$post_title' alt='$post_title' $constraint/>"; return apply_filters( 'attachment_icon', $icon, $post->ID ); }
/** * Retrieves a sepecific playlist item. In this case it is a media attachment. * @global string $redir_tab The tab to redirect to. * @param int $attachment_id The id of the attachment we are retrieving. * @param array $args Any additional arguments for query the database. * @param int $current_playlist The currently selected playlist. * @return string The HTML representing the playlist item. */ function get_jw_playlist_item($attachment_id, $args, $current_playlist, $prefix = "") { global $redir_tab, $p_items; if (($attachment_id = intval($attachment_id)) && ($thumb_url = get_attachment_icon_src($attachment_id))) { $thumb_url = $thumb_url[0]; } else { return false; } $default_args = array('errors' => null, 'send' => true, 'delete' => true, 'toggle' => true, 'show_title' => true); $args = wp_parse_args($args, $default_args); extract($args, EXTR_SKIP); $post = get_post($attachment_id); $filename = basename($post->guid); $title = esc_attr($post->post_title); if ($_tags = get_the_tags($attachment_id)) { foreach ($_tags as $tag) { $tags[] = $tag->name; } $tags = esc_attr(join(', ', $tags)); } $post_mime_types = get_post_mime_types(); $keys = array_keys(wp_match_mime_types(array_keys($post_mime_types), $post->post_mime_type)); $type = array_shift($keys); $type_html = "<input type='hidden' id='type-of-{$attachment_id}' value='" . esc_attr($type) . "' />"; $form_fields = get_attachment_fields_to_edit($post, $errors); $display_title = !empty($title) ? $title : $filename; // $title shouldn't ever be empty, but just in case $display_title = $show_title ? "<div class='filename new'><span class='title'>" . wp_html_excerpt($display_title, 60) . "</span></div>" : ''; $gallery = isset($_REQUEST['tab']) && 'gallery' == $_REQUEST['tab'] || isset($redir_tab) && 'gallery' == $redir_tab ? true : false; $order = ''; $checked = ""; foreach ($p_items as $playlist_item) { if ($playlist_item == $attachment_id) { $checked = "checked='true'"; break; } } foreach ($form_fields as $key => $val) { if ('menu_order' == $key) { if (true) { $order = '<div class="menu_order">'; $order .= '<input class="menu_order_input" type="checkbox" id="' . $prefix . 'attachments[' . $attachment_id . '][enabled]" name="' . $prefix . 'attachments[' . $attachment_id . '][enabled]" value="' . $val['value'] . '"' . $checked . ' onclick="updatePlaylist(this);" /></div>'; } else { $order = '<input type="hidden" name="' . $prefix . 'attachments[' . $attachment_id . '][menu_order]" value="' . $val['value'] . '" />'; } unset($form_fields['menu_order']); break; } } $media_dims = ''; $meta = wp_get_attachment_metadata($post->ID); if (is_array($meta) && array_key_exists('width', $meta) && array_key_exists('height', $meta)) { $media_dims .= "<span id='playlist-dims-{$post->ID}'>{$meta['width']} × {$meta['height']}</span> "; } $media_dims = apply_filters('media_meta', $media_dims, $post); $image_edit_button = ''; if (gd_edit_image_support($post->post_mime_type)) { $nonce = wp_create_nonce("image_editor-{$post->ID}"); $image_edit_button = "<input type='button' id='imgedit-open-btn-{$post->ID}' onclick='imageEdit.open({$post->ID}, \"{$nonce}\")' class='button' value='" . esc_attr__('Edit image') . "' /> <img src='images/wpspin_light.gif' class='imgedit-wait-spin' alt='' />"; } $item = "\n\t{$type_html}\n\t{$toggle_links}\n\t{$order}\n\t{$display_title}\n <table class='slidetoggle describe startclosed'>\n\t\t<thead class='media-item-info' id='media-head-{$post->ID}'>\n\t\t<tr>\n\t\t\t<td class='A1B1' id='thumbnail-head-{$post->ID}' rowspan='5'><img class='thumbnail' src='{$thumb_url}' alt='' /></td>\n\t\t\t<td><strong>" . __('File name:') . "</strong> {$filename}</td>\n\t\t</tr>\n\t\t<tr><td><strong>" . __('File type:') . "</strong> {$post->post_mime_type}</td></tr>\n\t\t<tr><td><strong>" . __('Upload date:') . "</strong> " . mysql2date(get_option('date_format'), $post->post_date) . "</td></tr>\n"; if (!empty($media_dims)) { $item .= "<tr><td><strong>" . __('Dimensions:') . "</strong> {$media_dims}</td></tr>\n"; } $item .= "\n\t\t<tr><td class='A1B1'>{$image_edit_button}</td></tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t<tr><td colspan='2' class='imgedit-response' id='imgedit-response-{$post->ID}'></td></tr>\n\t\t<tr><td style='display:none' colspan='2' class='image-editor' id='image-editor-{$post->ID}'></td></tr>\n"; $defaults = array('input' => 'text', 'required' => false, 'value' => '', 'extra_rows' => array()); $thumbnail = ''; $calling_post_id = 0; if (isset($_GET['post_id'])) { $calling_post_id = $_GET['post_id']; } elseif (isset($_POST) && count($_POST)) { // Like for async-upload where $_GET['post_id'] isn't set $calling_post_id = $post->post_parent; } if ('image' == $type && $calling_post_id && current_theme_supports('post-thumbnails', get_post_type($calling_post_id)) && get_post_thumbnail_id($calling_post_id) != $attachment_id) { $thumbnail = "<a class='wp-post-thumbnail' id='wp-post-thumbnail-" . $attachment_id . "' href='#' onclick='WPSetAsThumbnail(\"{$attachment_id}\");return false;'>" . esc_html__("Use as thumbnail") . "</a>"; } if (($send || $thumbnail || $delete) && !isset($form_fields['buttons'])) { $form_fields['buttons'] = array('tr' => "\t\t<tr class='submit'><td></td><td class='savesend'>{$send} {$thumbnail} {$delete}</td></tr>\n"); } $hidden_fields = array(); foreach ($form_fields as $id => $field) { if ($id[0] == '_') { continue; } if (!empty($field['tr'])) { $item .= $field['tr']; continue; } $field = array_merge($defaults, $field); $name = "attachments[{$attachment_id}][{$id}]"; if ($field['input'] == 'hidden') { $hidden_fields[$name] = $field['value']; continue; } $required = $field['required'] ? '<abbr title="required" class="required">*</abbr>' : ''; $aria_required = $field['required'] ? " aria-required='true' " : ''; $class = $id; $class .= $field['required'] ? ' form-required' : ''; $item .= "\t\t<tr class='{$class}'>\n\t\t\t<th valign='top' scope='row' class='label'><label for='{$name}'><span class='alignleft'>{$field['label']}</span><span class='alignright'>{$required}</span><br class='clear' /></label></th>\n\t\t\t<td class='field'>"; if (!empty($field[$field['input']])) { $item .= $field[$field['input']]; } elseif ($field['input'] == 'textarea') { $item .= "<textarea type='text' id='{$name}' name='{$name}'" . $aria_required . ">" . esc_html($field['value']) . "</textarea>"; } else { $item .= "<input type='text' class='text' id='{$name}' name='{$name}' value='" . esc_attr($field['value']) . "'" . $aria_required . "/>"; } if (!empty($field['helps'])) { $item .= "<p class='help'>" . join("</p>\n<p class='help'>", array_unique((array) $field['helps'])) . '</p>'; } $item .= "</td>\n\t\t</tr>\n"; $extra_rows = array(); if (!empty($field['errors'])) { foreach (array_unique((array) $field['errors']) as $error) { $extra_rows['error'][] = $error; } } if (!empty($field['extra_rows'])) { foreach ($field['extra_rows'] as $class => $rows) { foreach ((array) $rows as $html) { $extra_rows[$class][] = $html; } } } foreach ($extra_rows as $class => $rows) { foreach ($rows as $html) { $item .= "\t\t<tr><td></td><td class='{$class}'>{$html}</td></tr>\n"; } } } if (!empty($form_fields['_final'])) { $item .= "\t\t<tr class='final'><td colspan='2'>{$form_fields['_final']}</td></tr>\n"; } $item .= "\t</tbody>\n"; $item .= "\t</table>\n"; // $item .= "<img class='thumbnail hidden' src='$thumb_url' alt='' />"; foreach ($hidden_fields as $name => $value) { $item .= "\t<input type='hidden' name='{$name}' id='{$name}' value='" . esc_attr($value) . "' />\n"; } if ($post->post_parent < 1 && isset($_REQUEST['post_id'])) { $parent = (int) $_REQUEST['post_id']; $parent_name = $prefix . "attachments[{$attachment_id}][post_parent]"; $item .= "\t<input type='hidden' name='{$parent_name}' id='{$parent_name}' value='" . $parent . "' />\n"; } return $item; }
function make_file($name, $sid, $cftnum, $size, $hideKey, $label, $class, $style, $before, $after, $multipleButton, $relation, $mediaLibrary, $mediaPicker) { $options = $this->get_custom_field_template_data(); $title = $name; $name = $this->sanitize_name($name); if (isset($_REQUEST['post']) && $_REQUEST['post'] > 0 && $_REQUEST['default'] != true) { $value = $this->get_post_meta($_REQUEST['post'], $title); $ct_value = count($value); if ($value) { $value = $value[$cftnum]; } } else { $value = $default; } if (empty($ct_value)) { $ct_value = 1; } if ($hideKey == true) { $hide = ' class="hideKey"'; } if (!empty($class)) { $class = ' class="' . $class . '"'; } if (!empty($style)) { $style = ' style="' . $style . '"'; } if (!empty($label) && $options['custom_field_template_replace_keys_by_labels']) { $title = stripcslashes($label); } if ($multipleButton == true && $ct_value == $cftnum) { $addfield .= '<div style="margin-top:-1em;">'; $addfield .= '<a href="#clear" onclick="jQuery(this).parent().parent().parent().clone().insertAfter(jQuery(this).parent().parent().parent()).find(' . "'input'" . ').val(' . "''" . ');jQuery(this).parent().css(' . "'visibility','hidden'" . ');jQuery(this).parent().prev().css(' . "'visibility','hidden'" . '); return false;">' . __('Add New', 'custom-field-template') . '</a>'; $addfield .= '</div>'; } if ($relation == true) { $tab = 'gallery'; } else { $tab = 'library'; } $media_upload_iframe_src = "media-upload.php"; $image_upload_iframe_src = apply_filters('image_upload_iframe_src', "{$media_upload_iframe_src}?type=image&tab=library"); if ($mediaPicker == true) { $picker = __(' OR ', 'custom-field-template'); $picker .= '<a href="' . $image_upload_iframe_src . '&post_id=' . $_REQUEST['post'] . '&TB_iframe=1&tab=' . $tab . '&cftid=' . $name . $sid . '_' . $cftnum . '" class="thickbox" onclick="jQuery(' . "'#cft_clicked_id'" . ').val(' . "'" . $name . $sid . '_' . $cftnum . "'" . ');">' . __('Select by Media Picker', 'custom-field-template') . '</a>'; } $out .= '<dl id="dl_' . $name . $sid . '_' . $cftnum . '" class="dl_file">' . '<dt><span' . $hide . '><label for="' . $name . $sid . '_' . $cftnum . '">' . $title . '</label></span>' . $addfield . '</dt>' . '<dd>'; if (!empty($label) && !$options['custom_field_template_replace_keys_by_labels']) { $out .= '<p class="label">' . stripcslashes($label) . '</p>'; } $out .= trim($before) . '<input id="' . $name . $sid . '_' . $cftnum . '" name="' . $name . '[' . $sid . '][]" type="file" size="' . $size . '"' . $class . $style . ' onchange="if (jQuery(this).val()) { jQuery(\'#cft_save_button\').attr(\'disabled\', true); jQuery(\'#post-preview\').hide(); } else { jQuery(\'#cft_save_button\').attr(\'disabled\', false); jQuery(\'#post-preview\').show(); }" />' . trim($after) . $picker; if (($value = intval($value)) && ($thumb_url = get_attachment_icon_src($value))) { $thumb_url = $thumb_url[0]; $post = get_post($value); $filename = basename($post->guid); $title = attribute_escape(trim($post->post_title)); if (!empty($mediaLibrary)) { $title = '<a href="' . $image_upload_iframe_src . '&post_id=' . $_REQUEST['post'] . '&TB_iframe=1&tab=' . $tab . '" class="thickbox">' . $title . '</a>'; } $out .= '<p><label for="' . $name . $sid . '_' . $cftnum . '_delete"><input type="checkbox" name="' . $name . '_delete[' . $sid . '][' . $cftnum . ']" id="' . $name . $sid . '_' . $cftnum . '_delete" value="1" class="delete_file_checkbox" />' . __('Delete', 'custom-field-template') . '</label> <img src="' . $thumb_url . '" width="32" height="32" style="vertical-align:middle;" /> ' . $title . ' </p>'; $out .= '<input type="hidden" id="' . $name . $sid . '_' . $cftnum . '_hide" name="' . $name . '[' . $sid . '][' . $cftnum . ']" value="' . $value . '" />'; } else { $out .= '<input type="hidden" id="' . $name . $sid . '_' . $cftnum . '_hide" name="' . $name . '[' . $sid . '][' . $cftnum . ']" value="" />'; } $out .= '</dd></dl>' . "\n"; return $out; }
public function get_thumb($id, $size = 'full') { global $wp_version; /* Get the originally uploaded size path. */ list($img_url, $img_path) = get_attachment_icon_src($id, true); if ($size == 'full') { return $img_url; } /* Attepmt to get custom intermediate size. */ $img = image_get_intermediate_size($id, $size); //detail /* If custom intermediate size cannot be found, attempt to create it. */ if (!$img) { /* Need to check to see if fullsize path can be found - sometimes this disappears during import/export. */ if (!is_file($img_path)) { $wp_upload_dir = wp_upload_dir(); $img_path = $wp_upload_dir['path'] . get_post_meta($id, '_wp_attached_file', true); } if (is_file($img_path)) { $new = image_resize($img_path, $this->detail_size[0], $this->detail_size[1], $this->detail_size[2]); if (!is_wp_error($new)) { $meta = wp_generate_attachment_metadata($id, $img_path); wp_update_attachment_metadata($id, $meta); $img = image_get_intermediate_size($id, $size); } } } /* Custom intermediate size cannot be created, try for thumbnail. */ if (!$img) { $img = image_get_intermediate_size($id, 'thumbnail'); //echo "3:";print_r($img); } /* Thumbnail cannot be found, try fullsize. */ if (!$img) { $img['url'] = wp_get_attachment_url($id); } /* Administration */ if (isset($img['url']) && !empty($img['url'])) { return $img['url']; } else { if (is_admin()) { return $this->url . 'deleted-image.png'; } } return false; }
function wp_save_image($post_id) { $msg = ''; $success = $delete = $full_resized = false; $post = get_post($post_id); @ini_set('memory_limit', '256M'); $img = load_image_to_edit($post); if (!is_resource($img)) { return 'error=' . __('Unable to create new image.'); } $fwidth = !empty($_REQUEST['fwidth']) ? intval($_REQUEST['fwidth']) : 0; $fheight = !empty($_REQUEST['fheight']) ? intval($_REQUEST['fheight']) : 0; $target = !empty($_REQUEST['target']) ? preg_replace('/[^a-z0-9_-]+/i', '', $_REQUEST['target']) : ''; if (!empty($_REQUEST['history'])) { $changes = json_decode(stripslashes($_REQUEST['history'])); if ($changes) { $img = image_edit_apply_changes($img, $changes); } } if ($fwidth > 0 && $fheight > 0) { // scale the full size image $dst = wp_imagecreatetruecolor($fwidth, $fheight); if (imagecopyresampled($dst, $img, 0, 0, 0, 0, $fwidth, $fheight, imagesx($img), imagesy($img))) { imagedestroy($img); $img = $dst; $full_resized = true; } } if (!$changes && !$full_resized) { return 'error=' . __('Nothing to save, the image is not changed.'); } $meta = wp_get_attachment_metadata($post_id, false, false); if (!is_array($meta)) { $meta = array(); } if (!isset($meta['sizes']) || !is_array($meta['sizes'])) { $meta['sizes'] = array(); } // generate new filename $path = get_attached_file($post_id); $path_parts = pathinfo52($path); $filename = $path_parts['filename']; $suffix = time() . rand(100, 999); while (true) { $filename = preg_replace('/-e([0-9]+)$/', '', $filename); $filename .= "-e{$suffix}"; $new_filename = "{$filename}.{$path_parts['extension']}"; $new_path = "{$path_parts['dirname']}/{$new_filename}"; if (file_exists($new_path)) { $suffix++; } else { break; } } // save the full-size file, also needed to create sub-sizes if (!wp_save_image_file($new_path, $img, $post->post_mime_type, $post_id)) { return 'error=' . __('Unable to save the image.'); } if ('full' == $target || 'all' == $target || $full_resized) { $meta['sizes']["backup-{$suffix}-full"] = array('width' => $meta['width'], 'height' => $meta['height'], 'file' => $path_parts['basename']); $success = update_attached_file($post_id, $new_path); $meta['file'] = get_attached_file($post_id, true); // get the path unfiltered $meta['width'] = imagesx($img); $meta['height'] = imagesy($img); list($uwidth, $uheight) = wp_shrink_dimensions($meta['width'], $meta['height']); $meta['hwstring_small'] = "height='{$uheight}' width='{$uwidth}'"; if ($success && $target == 'all') { $sizes = apply_filters('intermediate_image_sizes', array('large', 'medium', 'thumbnail')); } $msg .= "full={$meta['width']}x{$meta['height']}!"; } elseif (array_key_exists($target, $meta['sizes'])) { $sizes = array($target); $success = $delete = true; } if (isset($sizes)) { foreach ($sizes as $size) { if (isset($meta['sizes'][$size])) { $meta['sizes']["backup-{$suffix}-{$size}"] = $meta['sizes'][$size]; } $resized = image_make_intermediate_size($new_path, get_option("{$size}_size_w"), get_option("{$size}_size_h"), get_option("{$size}_crop")); if ($resized) { $meta['sizes'][$size] = $resized; } else { unset($meta['sizes'][$size]); } } } if ($success) { wp_update_attachment_metadata($post_id, $meta); if ($target == 'thumbnail' || $target == 'all' || $target == 'full' && !array_key_exists('thumbnail', $meta['sizes'])) { if ($thumb_url = get_attachment_icon_src($post_id)) { $msg .= "thumbnail={$thumb_url[0]}"; } } } else { $delete = true; } if ($delete) { $delpath = apply_filters('wp_delete_file', $new_path); @unlink($delpath); } imagedestroy($img); return $msg; }