?> </div> <div class='mpp-item-entry mpp-media-entry mpp-photo-entry'> <a href="<?php mpp_media_permalink(); ?> " <?php mpp_media_html_attributes(array('class' => 'mpp-item-thumbnail mpp-media-thumbnail mpp-photo-thumbnail')); ?> > <img src="<?php mpp_media_src('thumbnail'); ?> " alt="<?php echo esc_attr(mpp_get_media_title()); ?> "/> </a> </div> <div class="mpp-item-actions mpp-media-actions mpp-photo-actions"> <?php mpp_media_action_links(); ?> </div> <div class="mpp-item-meta mpp-media-meta mpp-media-meta-bottom"> <?php do_action('mpp_media_meta'); ?>
/** * Action links like view/edit/dele/upload to show on indiavidula media * * @param type $media * @return type */ function mpp_get_media_action_links($media = null) { $links = array(); $media = mpp_get_media($media); //$links ['view'] = sprintf( '<a href="%1$s" title="view %2$s" class="mpp-view-media">%3$s</a>', mpp_get_media_permalink( $media ), esc_attr( $media->title ), __( 'view', 'mediapress' ) ); //upload? if (mpp_user_can_edit_media($media->id)) { $links['edit'] = sprintf('<a href="%s" alt="' . __('Edit %s', 'mediapress') . '">%s</a>', mpp_get_media_edit_url($media), mpp_get_media_title($media), __('edit', 'mediapress')); } //delete if (mpp_user_can_delete_media($media)) { $links['delete'] = sprintf('<a href="%s" alt="' . __('delete %s', 'mediapress') . '" class="confirm mpp-confirm mpp-delete mpp-delete-media">%s</a>', mpp_get_media_delete_url($media), mpp_get_media_title($media), __('delete', 'mediapress')); } return apply_filters('mpp_media_actions_links', join(' ', $links), $links, $media); }
/** * Prepare Media for JSON * this is a copy from send json for attachment, we will improve it in our 1.1 release * @todo refactor * @param type $attachment * @return type */ function mpp_media_to_json($attachment) { if (!($attachment = get_post($attachment))) { return; } if ('attachment' != $attachment->post_type) { return; } //the attachment can be either a media or a cover //in case of media, if it is non photo, we need the thumb.url to point to the cover(or generated cover) //in case of cover, we don't care $media = mpp_get_media($attachment->ID); $meta = wp_get_attachment_metadata($attachment->ID); if (false !== strpos($attachment->post_mime_type, '/')) { list($type, $subtype) = explode('/', $attachment->post_mime_type); } else { list($type, $subtype) = array($attachment->post_mime_type, ''); } $attachment_url = wp_get_attachment_url($attachment->ID); $response = array('id' => $media->id, 'title' => mpp_get_media_title($media), 'filename' => wp_basename($attachment->guid), 'url' => $attachment_url, 'link' => mpp_get_media_permalink($media), 'alt' => mpp_get_media_title($media), 'author' => $media->user_id, 'description' => $media->description, 'caption' => $media->excerpt, 'name' => $media->slug, 'status' => $media->status, 'parent_id' => $media->gallery_id, 'date' => strtotime($attachment->post_date_gmt) * 1000, 'modified' => strtotime($attachment->post_modified_gmt) * 1000, 'menuOrder' => $attachment->menu_order, 'mime' => $attachment->post_mime_type, 'type' => $media->type, 'subtype' => $subtype, 'dateFormatted' => mysql2date(get_option('date_format'), $attachment->post_date), 'meta' => false); if ($attachment->post_parent) { $post_parent = get_post($attachment->post_parent); $parent_type = get_post_type_object($post_parent->post_type); if ($parent_type && $parent_type->show_ui && current_user_can('edit_post', $attachment->post_parent)) { $response['uploadedToLink'] = get_edit_post_link($attachment->post_parent, 'raw'); } $response['uploadedToTitle'] = $post_parent->post_title ? $post_parent->post_title : __('(no title)'); } $attached_file = get_attached_file($attachment->ID); if (file_exists($attached_file)) { $bytes = filesize($attached_file); $response['filesizeInBytes'] = $bytes; $response['filesizeHumanReadable'] = size_format($bytes); } if ($meta && 'image' === $type) { $sizes = array(); /** This filter is documented in wp-admin/includes/media.php */ $possible_sizes = apply_filters('image_size_names_choose', array('thumbnail' => __('Thumbnail'), 'medium' => __('Medium'), 'large' => __('Large'), 'full' => __('Full Size'))); unset($possible_sizes['full']); // Loop through all potential sizes that may be chosen. Try to do this with some efficiency. // First: run the image_downsize filter. If it returns something, we can use its data. // If the filter does not return something, then image_downsize() is just an expensive // way to check the image metadata, which we do second. foreach ($possible_sizes as $size => $label) { /** This filter is documented in wp-includes/media.php */ if ($downsize = apply_filters('image_downsize', false, $attachment->ID, $size)) { if (!$downsize[3]) { continue; } $sizes[$size] = array('height' => $downsize[2], 'width' => $downsize[1], 'url' => $downsize[0], 'orientation' => $downsize[2] > $downsize[1] ? 'portrait' : 'landscape'); } elseif (isset($meta['sizes'][$size])) { if (!isset($base_url)) { $base_url = str_replace(wp_basename($attachment_url), '', $attachment_url); } // Nothing from the filter, so consult image metadata if we have it. $size_meta = $meta['sizes'][$size]; // We have the actual image size, but might need to further constrain it if content_width is narrower. // Thumbnail, medium, and full sizes are also checked against the site's height/width options. list($width, $height) = image_constrain_size_for_editor($size_meta['width'], $size_meta['height'], $size, 'edit'); $sizes[$size] = array('height' => $height, 'width' => $width, 'url' => $base_url . $size_meta['file'], 'orientation' => $height > $width ? 'portrait' : 'landscape'); } } $sizes['full'] = array('url' => $attachment_url); if (isset($meta['height'], $meta['width'])) { $sizes['full']['height'] = $meta['height']; $sizes['full']['width'] = $meta['width']; $sizes['full']['orientation'] = $meta['height'] > $meta['width'] ? 'portrait' : 'landscape'; } $response = array_merge($response, array('sizes' => $sizes), $sizes['full']); } elseif ($meta && 'video' === $type) { if (isset($meta['width'])) { $response['width'] = (int) $meta['width']; } if (isset($meta['height'])) { $response['height'] = (int) $meta['height']; } } if ($meta && ('audio' === $type || 'video' === $type)) { if (isset($meta['length_formatted'])) { $response['fileLength'] = $meta['length_formatted']; } $response['meta'] = array(); foreach (wp_get_attachment_id3_keys($attachment, 'js') as $key => $label) { $response['meta'][$key] = false; if (!empty($meta[$key])) { $response['meta'][$key] = $meta[$key]; } } $id = mpp_get_media_cover_id($attachment->ID); if (!empty($id)) { list($url, $width, $height) = wp_get_attachment_image_src($id, 'full'); $response['image'] = compact('url', 'width', 'height'); list($url, $width, $height) = wp_get_attachment_image_src($id, 'thumbnail'); $response['thumb'] = compact('url', 'width', 'height'); } else { $url = mpp_get_media_cover_src('thumbnail', $media->id); $width = 48; $height = 64; $response['image'] = compact('url', 'width', 'height'); $response['thumb'] = compact('url', 'width', 'height'); } } if (!in_array($type, array('image', 'audio', 'video'))) { //inject thumbnail $url = mpp_get_media_cover_src('thumbnail', $media->id); $width = 48; $height = 64; $response['image'] = compact('url', 'width', 'height'); $response['thumb'] = compact('url', 'width', 'height'); } //do a final check here to see if the sizes array is set but we don't have a thumbnail if (!empty($response['sizes']) && empty($response['sizes']['thumbnail'])) { $thumb_dimension = mpp_get_media_size('thumbnail'); $url = mpp_get_media_cover_src('thumbnail', $media->id); $width = $thumb_dimension['width']; $height = $thumb_dimension['height']; $response['sizes']['thumbnail'] = compact('url', 'width', 'height'); //$response['thumb'] = compact( 'url', 'width', 'height' ); } return apply_filters('mpp_prepare_media_for_js', $response, $attachment, $meta); }
/** * Generate/Display breadcrumb * @param array $args * @return string|null */ function mpp_gallery_breadcrumb($args = null) { $default = array('separator' => '/', 'before' => '', 'after' => '', 'show_home' => false); $args = wp_parse_args($args, $default); extract($args); $crumbs = array(); $component = mpp_get_current_component(); $component_id = mpp_get_current_component_id(); if (mediapress()->is_bp_active() && bp_is_active('groups') && bp_is_group()) { $name = bp_get_group_name(groups_get_current_group()); } elseif (mediapress()->is_bp_active() && bp_is_user()) { $name = bp_get_displayed_user_fullname(); } elseif ($component == 'sitewide') { $name = ''; } $my_or_his_gallery = ''; if ($name) { $my_or_his_gallery = sprintf(__("%s's gallery", 'mediapress'), $name); } if (function_exists('bp_is_my_profile') && bp_is_my_profile()) { $my_or_his_gallery = __('Your Galleries', 'mediapress'); } if (mpp_is_media_management()) { $crumbs[] = ucwords(mediapress()->get_edit_action()); } if (mpp_is_single_media()) { $media = mpp_get_current_media(); if (mpp_is_media_management()) { $crumbs[] = sprintf('<a href="%s">%s</a>', mpp_get_media_permalink($media), mpp_get_media_title($media)); } else { $crumbs[] = sprintf('<span>%s</span>', mpp_get_media_title($media)); } } if (mpp_is_gallery_management()) { $crumbs[] = ucwords(mediapress()->get_edit_action()); } if (mpp_is_single_gallery()) { $gallery = mpp_get_current_gallery(); if (mpp_is_gallery_management() || mpp_is_single_media()) { $crumbs[] = sprintf('<a href="%s">%s</a>', mpp_get_gallery_permalink($gallery), mpp_get_gallery_title($gallery)); } else { $crumbs[] = sprintf('<span>%s</span>', mpp_get_gallery_title($gallery)); } } if ($my_or_his_gallery) { $crumbs[] = sprintf('<a href="%s">%s</a>', mpp_get_gallery_base_url($component, $component_id), $my_or_his_gallery); } if (count($crumbs) <= 1 && !$show_home) { return; } $crumbs = array_reverse($crumbs); echo join($separator, $crumbs); }
function mpp_media_title($media = false) { echo mpp_get_media_title($media); }