File: /home/mmickelson/martyknows.com/wp-content/themes/origin/library/functions/media.php
<?php
/**
* Functions for handling media (i.e., attachments) within themes. Most functions are for handling
* the display of appropriate HTML elements on attachment pages.
*
* @package HybridCore
* @subpackage Functions
* @author Justin Tadlock <justin@justintadlock.com>
* @copyright Copyright (c) 2008 - 2013, Justin Tadlock
* @link http://themehybrid.com/hybrid-core
* @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
*/
/* Add all image sizes to the image editor to insert into post. */
add_filter( 'image_size_names_choose', 'hybrid_image_size_names_choose' );
/**
* Adds theme/plugin custom images sizes added with add_image_size() to the image uploader/editor. This
* allows users to insert these images within their post content editor.
*
* @since 1.3.0
* @access private
* @param array $sizes Selectable image sizes.
* @return array $sizes
*/
function hybrid_image_size_names_choose( $sizes ) {
/* Get all intermediate image sizes. */
$intermediate_sizes = get_intermediate_image_sizes();
$add_sizes = array();
/* Loop through each of the intermediate sizes, adding them to the $add_sizes array. */
foreach ( $intermediate_sizes as $size )
$add_sizes[$size] = $size;
/* Merge the original array, keeping it intact, with the new array of image sizes. */
$sizes = array_merge( $add_sizes, $sizes );
/* Return the new sizes plus the old sizes back. */
return $sizes;
}
/**
* Loads the correct function for handling attachments. Checks the attachment mime type to call
* correct function. Image attachments are not loaded with this function. The functionality for them
* should be handled by the theme's attachment or image attachment file.
*
* Ideally, all attachments would be appropriately handled within their templates. However, this could
* lead to messy template files.
*
* @since 0.5.0
* @access public
* @uses get_post_mime_type() Gets the mime type of the attachment.
* @uses wp_get_attachment_url() Gets the URL of the attachment file.
* @return void
*/
function hybrid_attachment() {
$file = wp_get_attachment_url();
$mime = get_post_mime_type();
$mime_type = explode( '/', $mime );
/* Loop through each mime type. If a function exists for it, call it. Allow users to filter the display. */
foreach ( $mime_type as $type ) {
if ( function_exists( "hybrid_{$type}_attachment" ) )
$attachment = call_user_func( "hybrid_{$type}_attachment", $mime, $file );
$attachment = apply_atomic( "{$type}_attachment", $attachment );
}
echo apply_atomic( 'attachment', $attachment );
}
/**
* Handles application attachments on their attachment pages. Uses the <object> tag to embed media
* on those pages.
*
* @since 0.3.0
* @access public
* @param string $mime attachment mime type
* @param string $file attachment file URL
* @return string
*/
function hybrid_application_attachment( $mime = '', $file = '' ) {
$embed_defaults = wp_embed_defaults();
$application = '<object class="text" type="' . esc_attr( $mime ) . '" data="' . esc_url( $file ) . '" width="' . esc_attr( $embed_defaults['width'] ) . '" height="' . esc_attr( $embed_defaults['height'] ) . '">';
$application .= '<param name="src" value="' . esc_url( $file ) . '" />';
$application .= '</object>';
return $application;
}
/**
* Handles text attachments on their attachment pages. Uses the <object> element to embed media
* in the pages.
*
* @since 0.3.0
* @access public
* @param string $mime attachment mime type
* @param string $file attachment file URL
* @return string
*/
function hybrid_text_attachment( $mime = '', $file = '' ) {
$embed_defaults = wp_embed_defaults();
$text = '<object class="text" type="' . esc_attr( $mime ) . '" data="' . esc_url( $file ) . '" width="' . esc_attr( $embed_defaults['width'] ) . '" height="' . esc_attr( $embed_defaults['height'] ) . '">';
$text .= '<param name="src" value="' . esc_url( $file ) . '" />';
$text .= '</object>';
return $text;
}
/**
* Handles audio attachments on their attachment pages. Puts audio/mpeg and audio/wma files into
* an <object> element.
*
* @todo Test out and support more audio types.
*
* @since 0.2.2
* @access public
* @param string $mime attachment mime type
* @param string $file attachment file URL
* @return string
*/
function hybrid_audio_attachment( $mime = '', $file = '' ) {
return do_shortcode( '[audio src="' . esc_url( $file ) . '"]' );
}
/**
* Handles video attachments on attachment pages. Add other video types to the <object> element.
*
* @since 0.2.2
* @access public
* @param string $mime attachment mime type
* @param string $file attachment file URL
* @return string
*/
function hybrid_video_attachment( $mime = false, $file = false ) {
return do_shortcode( '[video src="' . esc_url( $file ) . '"]' );
}
?>