Commit Graph

402 Commits

Author SHA1 Message Date
Scott Taylor f7af18e1d6 Audio/Video shortcodes in the media modal:
* Make a generic model, `wp.media.model.PostMedia`, which replaces `wp.media.model.PostAudio` and `wp.media.model.PostVideo`
* Make a generic library, `wp.media.controller.MediaLibrary`, which replaces `wp.media.controller.ReplaceVideo` and `wp.media.controller.ReplaceAudio`
* `wp.media.controller.MediaLibrary` is used to create new states that want to load a library filtered by type, making it incredibly simple to add states to frames. See `wp.media.view.MediaFrame.VideoDetails` and `wp.media.view.MediaFrame.AudioDetails`.

UX changes:

* Add the ability to manage HTML5 fallbacks - add additional `<source>`s or remove specific `<source>`s
* In the Video Details state, add the ability to select a poster image

See #27016.


Built from https://develop.svn.wordpress.org/trunk@27478


git-svn-id: http://core.svn.wordpress.org/trunk@27322 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-09 05:25:15 +00:00
Scott Taylor dc00fc7e7f Audio/Video shortcodes in the media modal:
* Add `embedMimes` to `_wpMediaViewsL10n`
* Use `escape` instead of `interpolate` when setting attributes in Underscore templates
* When creating the `<audio>` and `<video>` tags dynamically, set inner `<source>` nodes instead of the `src` attribute and properly set the mime-type per source as the `type` attribute. This is also drastically reduces the amount of code used to generate the tags.

See #27016.


Built from https://develop.svn.wordpress.org/trunk@27476


git-svn-id: http://core.svn.wordpress.org/trunk@27320 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-09 01:01:14 +00:00
Andrew Nacin fabb6d4898 Allow $crop in add_image_size() to receive crop anchors (top, left, right, bottom, center).
This also applies to set_post_thumbnail_size() and image_resize_dimensions().

props bradt, wonderboymusic, DH-Shredder.
fixes #19393.

Built from https://develop.svn.wordpress.org/trunk@27472


git-svn-id: http://core.svn.wordpress.org/trunk@27317 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-08 06:14:15 +00:00
Helen Hou-Sandí 4bb7e03548 At long last, a first pass at bringing the image editor into the media modal. props gcorne, DH-Shredder, tomauger. see #21811.
Built from https://develop.svn.wordpress.org/trunk@27445


git-svn-id: http://core.svn.wordpress.org/trunk@27292 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-06 22:55:14 +00:00
Scott Taylor ff8844deae Add TinyMCE placeholders for `audio` and `video` shortcodes.
* Add `wp.media.mixin`.
* Add `wp.media.audio` and `wp.media.video`.
* Add `wp.media.model.PostAudio` and `wp.media.model.PostVideo`
* Add `wp.media.controller.AudioDetails` and `wp.media.controller.VideoDetails`.
* Add `wp.media.controller.ReplaceAudio` and `wp.media.controller.ReplaceVideo`.
* Add `wp.media.view.MediaFrame.AudioDetails` and `wp.media.view.MediaFrame.VideoDetails`.
* Add `wp.media.view.AudioDetails` and `wp.media.view.VideoDetails`.
* Update the `wpgallery` TinyMCE plugin.
* Display audio and video players in the media modal when shortcode is clicked.
* Provide a UI to edit shortcode attributes in the media modal.
* Provide a UI to replace the `src` media file in an `audio` or `video` shortcode.

See #27016.


Built from https://develop.svn.wordpress.org/trunk@27411


git-svn-id: http://core.svn.wordpress.org/trunk@27258 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-05 15:06:14 +00:00
Helen Hou-Sandí 886a8e9549 Add a `class` attribute to the caption shortcode to allow for additional classes on the caption container. props rhyswynne, mcadwell. fixes #25295.
Built from https://develop.svn.wordpress.org/trunk@27404


git-svn-id: http://core.svn.wordpress.org/trunk@27251 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-05 04:54:15 +00:00
Andrew Nacin 0422c70fdb Rename maybe_regenerate_attachment_metadata() to wp_maybe_generate_attachment_metadata(), to match wp_generate_attachment_metadata().
fixes #26825.

Built from https://develop.svn.wordpress.org/trunk@27397


git-svn-id: http://core.svn.wordpress.org/trunk@27245 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-04 20:07:14 +00:00
Andrew Nacin 978e394248 Do not output default gallery styles if the theme has opted into HTML5 galleries.
fixes #27045. see #26697.

Built from https://develop.svn.wordpress.org/trunk@27396


git-svn-id: http://core.svn.wordpress.org/trunk@27244 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-04 18:53:13 +00:00
Scott Taylor e92770ba93 * Videos should always render at the same aspect ratio.
* Don't force a pseudo-mime-type for `.m4v` files
* Uniformly adapt to `$content_width` when setting video dimensions on the front end
* Add the `height` attribute to the initial `<video>` in the video playlist JS template
* Add some defensive/responsive CSS for a/v on the Edit Media page

See #27243.


Built from https://develop.svn.wordpress.org/trunk@27328


git-svn-id: http://core.svn.wordpress.org/trunk@27180 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-28 21:28:14 +00:00
Scott Taylor db1a8785b5 Some playlist cleanup:
* Check properties against the `window` object when using `_.isUndefined()` on globals
* Fix a typo for `$safe_type` introduced in [27311]

See #26631.


Built from https://develop.svn.wordpress.org/trunk@27320


git-svn-id: http://core.svn.wordpress.org/trunk@27172 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-27 21:38:17 +00:00
Andrew Ozz 21b74a037d Remove debugging cruft, see #25663
Built from https://develop.svn.wordpress.org/trunk@27318


git-svn-id: http://core.svn.wordpress.org/trunk@27170 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-27 20:15:16 +00:00
Andrew Ozz d896fa2487 Upgrade Plupload to 2.1.1, props kovshenin, see #25663
Built from https://develop.svn.wordpress.org/trunk@27316


git-svn-id: http://core.svn.wordpress.org/trunk@27168 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-27 20:01:16 +00:00
Scott Taylor f931929905 In the tracklist for playlist, fall back to `title` if there is no `caption`.
Props bassgang.
See #26631.


Built from https://develop.svn.wordpress.org/trunk@27312


git-svn-id: http://core.svn.wordpress.org/trunk@27165 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-27 15:22:13 +00:00
Scott Taylor 7d57ca6c2c Add some security hardening to passed playlist attributes.
Props xknown.
See #26631.


Built from https://develop.svn.wordpress.org/trunk@27311


git-svn-id: http://core.svn.wordpress.org/trunk@27164 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-27 15:20:14 +00:00
Andrew Nacin e8819fc636 Introduce HTML5 gallery support.
When a theme supports HTML5 galleries via add_theme_support( 'html5', 'gallery' ), figure and figcaption will be used instead of definition list markup.

props obenland.
fixes #26697.

Built from https://develop.svn.wordpress.org/trunk@27302


git-svn-id: http://core.svn.wordpress.org/trunk@27155 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-26 22:20:31 +00:00
Scott Taylor c4cd842c29 Make sure `data.meta` always exists when rendering tracklists. Use `$theme_width` when rendering media tag in playlist template instead of recalculating.
Props helen.


Built from https://develop.svn.wordpress.org/trunk@27269


git-svn-id: http://core.svn.wordpress.org/trunk@27125 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-25 19:30:14 +00:00
Scott Taylor d5c0574c94 Get the proper image size for an item's thumb in playlist JSON.
See #26631.


Built from https://develop.svn.wordpress.org/trunk@27245


git-svn-id: http://core.svn.wordpress.org/trunk@27102 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-24 21:10:12 +00:00
Scott Taylor d393e38624 Supply mime-type instead of extension for an item's `type` property in playlist JSON.
See #26631.


Built from https://develop.svn.wordpress.org/trunk@27244


git-svn-id: http://core.svn.wordpress.org/trunk@27101 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-24 21:05:16 +00:00
Drew Jaynes de43247d4c Inline documentation improvements for `wp_get_playlist()`.
* Adds a missing `@param` description in the PHPDoc.
* Adds hook documentation for the `post_playlist` filter.
* Other comment cleanup.

Built from https://develop.svn.wordpress.org/trunk@27240


git-svn-id: http://core.svn.wordpress.org/trunk@27097 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-24 19:42:13 +00:00
Scott Taylor 943f295d2e Add core support for Playlists and Video Playlists.
* Playlists operate like galleries in the admin. 
* Provide default UI and JS support in themes using MediaElement and Backbone. 
* The shortcodes are clickable, editable, and configurable using the media modal. 
* Playlists support images for each item, whether or not the current theme supports images for `attachment:audio` and `attachment:video`
* Playlists respond to `$content_width` and resize videos accordingly.
* All playlist data is included inline, using a script tag with `type="application/json"`, allowing anyone to unenqueue the WP playlist JS and roll their own.
* Playlist styles are minimal and work out of the box in the last 5 default themes. They inherit and adapt to the current theme's font styles, and their rules are easily overrideable.

See #26631.


Built from https://develop.svn.wordpress.org/trunk@27239


git-svn-id: http://core.svn.wordpress.org/trunk@27096 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-24 18:08:16 +00:00
Scott Taylor 7ff83d46aa Allow pseudo post types `attachment:audio` and `attachment:video` to get the media modal on Edit Media when they support featured images.
Introduces `post_supports_thumbnails( $post )` and `theme_supports_thumbnails( $post )` to cut down on duplicated code everytime this needs to be checked. There will be more cases forthcoming.

See #26631.


Built from https://develop.svn.wordpress.org/trunk@27209


git-svn-id: http://core.svn.wordpress.org/trunk@27066 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-20 17:50:13 +00:00
Andrew Nacin 65f4497766 has_image_size()'s parameter should be required. see [27139], see #26951.
Built from https://develop.svn.wordpress.org/trunk@27140


git-svn-id: http://core.svn.wordpress.org/trunk@27007 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-08 23:53:12 +00:00
Drew Jaynes 127907a85b Inline documentation tweaks for `has_image_size()` and `remove_image_size()`.
See #26951.

Built from https://develop.svn.wordpress.org/trunk@27139


git-svn-id: http://core.svn.wordpress.org/trunk@27006 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-08 22:55:11 +00:00
Andrew Nacin 53867f3081 Add remove_image_size() and tests for it and has_image_size(), added in [27128].
props mordauk, markoheijnen.
fixes #26768. see #26951.

Built from https://develop.svn.wordpress.org/trunk@27129


git-svn-id: http://core.svn.wordpress.org/trunk@26996 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-08 00:41:13 +00:00
Scott Taylor 2610e6d4ff Introduce `has_image_size( $name )`, a utility function that helps avoid loading the `$_wp_additional_image_sizes` global.
Props mordauk.
Fixes #26951.


Built from https://develop.svn.wordpress.org/trunk@27128


git-svn-id: http://core.svn.wordpress.org/trunk@26995 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-08 00:20:13 +00:00
Scott Taylor 03dda3b273 Introduce `maybe_regenerate_attachment_metadata( $attachment )`. On the Edit Media screen, call it for Audio and Video files.
The functions checks if the item is lacking metadata altogether. If a video or audio file was uploaded prior to 3.6, it does not have any metadata. This tries to fix it. Implements locking via a transient to protect against this running in parallel with another request.

This is the minimum viable product for #26825, but leaving the ticket open unless this function needs to be called in other places.

See #26825.


Built from https://develop.svn.wordpress.org/trunk@27127


git-svn-id: http://core.svn.wordpress.org/trunk@26994 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-07 22:41:12 +00:00
Scott Taylor 228fc639b9 When a video shortcode has content in its body, append it as inner HTML in the resulting `<video>`.
Reverts [27096].
Fixes #26628.
See #27016.


Built from https://develop.svn.wordpress.org/trunk@27097


git-svn-id: http://core.svn.wordpress.org/trunk@26968 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-05 01:43:12 +00:00
Scott Taylor 84911b9707 Let the video shortcode accept a YouTube URL as the value of its `src` attribute, as MediaElement.js supports Chromeless YouTube videos by using a pseudo-mime-type `video/youtube`.
HTTP and HTTPS www, non-www, and short url fronts are supported:
http://www.youtube.com/watch 
https://www.youtube.com/watch
http://youtube.com/watch
https://youtube.com/watch
http://youtu.be
https://youtu.be

Fixes #24764.


Built from https://develop.svn.wordpress.org/trunk@27063


git-svn-id: http://core.svn.wordpress.org/trunk@26936 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-01-31 18:59:13 +00:00
Scott Taylor e1759d668a For starters, [27050] is rad. This just cleans up some extra new lines that were littered about, updates *some* of the inline docs (needs more), moves `wp.media.controller.ImageDetails` closer to its parent class, and de-dupes some code in `media-template.php`.
See #24409.


Built from https://develop.svn.wordpress.org/trunk@27051


git-svn-id: http://core.svn.wordpress.org/trunk@26925 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-01-28 23:21:13 +00:00
Andrew Ozz 33eedc570b Introduce Edit Image (single mode) in the media modal and use it to edit images inserted in the editor. Adds new feature: replace an image in the editor. Props gcorne, see #24409.
Built from https://develop.svn.wordpress.org/trunk@27050


git-svn-id: http://core.svn.wordpress.org/trunk@26924 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-01-28 21:17:12 +00:00
John Blackbourn e6da4eebe9 Inline documentation for core shortcode attributes.
Props DrewAPicture, johnbillion.
Fixes #25661.

Built from https://develop.svn.wordpress.org/trunk@26915


git-svn-id: http://core.svn.wordpress.org/trunk@26796 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-01-07 16:07:12 +00:00
Andrew Nacin b04d321fb9 Allow wp_enqueue_media() to "just work" in a customizer control.
props westonruter.
fixes #25618.

Built from https://develop.svn.wordpress.org/trunk@26589


git-svn-id: http://core.svn.wordpress.org/trunk@26479 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-12-03 20:54:11 +00:00
Scott Taylor e86b10131b Add a `wp-video` class to the `div` that wraps video shortcode output. It was previously hard to target.
Props nofearinc.
Fixes #25896.


Built from https://develop.svn.wordpress.org/trunk@26526


git-svn-id: http://core.svn.wordpress.org/trunk@26419 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-12-02 16:32:10 +00:00
Andrew Nacin 5361a8abca Spell out duplicate hook locations.
props DrewAPicture.
fixes #25658.

Built from https://develop.svn.wordpress.org/trunk@25868


git-svn-id: http://core.svn.wordpress.org/trunk@25868 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-24 22:59:20 +00:00
Andrew Nacin 8ae8e01b67 Remove the old wp_auto_updates_maybe_update cron event. Schedule the new wp_maybe_auto_update event at 7 a.m. and 7 p.m. in the site's timezone.
see #27704.

Built from https://develop.svn.wordpress.org/trunk@25825


git-svn-id: http://core.svn.wordpress.org/trunk@25825 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-24 22:53:14 +00:00
Andrew Nacin 74488bdcb0 Spell out duplicate hook locations.
props DrewAPicture.
fixes #25658.

Built from https://develop.svn.wordpress.org/trunk@25868


git-svn-id: http://core.svn.wordpress.org/trunk@25780 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-22 17:22:11 +00:00
Andrew Nacin f0eb99952c Make sure when resizing an image according to ratio we do not end up with a zero-pixel width or height.
props plocha.
fixes #25038.

Built from https://develop.svn.wordpress.org/trunk@25744


git-svn-id: http://core.svn.wordpress.org/trunk@25657 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-09 19:07:17 +00:00
Dominik Schilling 51ff617278 Allow to filter the `link` attribute via `shortcode_atts_gallery`. props iworks. fixes #24979.
Built from https://develop.svn.wordpress.org/trunk@25665


git-svn-id: http://core.svn.wordpress.org/trunk@25581 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-10-02 20:46:09 +00:00
Sergey Biryukov 7c5d11d671 Make the arguments of 'wp_audio_shortcode_override' and 'wp_video_shortcode_override' more consistent with the ones of 'img_caption_shortcode' and 'post_gallery' filters.
see #25313.
Built from https://develop.svn.wordpress.org/trunk@25485


git-svn-id: http://core.svn.wordpress.org/trunk@25406 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-18 22:06:09 +00:00
Sergey Biryukov dd6e39bfb1 Replace non-functional 'wp_audio_shortcode_handler' and 'wp_video_shortcode_handler' filters with 'wp_audio_shortcode_override' and 'wp_video_shortcode_override'.
props ericlewis, SergeyBiryukov.
fixes #25313.
Built from https://develop.svn.wordpress.org/trunk@25484


git-svn-id: http://core.svn.wordpress.org/trunk@25405 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-18 21:20:09 +00:00
Andrew Nacin 031576d79e Introduce a img_caption_shortcode_width filter for controlling the inline style of the image caption shortcode.
props iandunn for the initial patch.
fixes #14380.

Built from https://develop.svn.wordpress.org/trunk@25444


git-svn-id: http://core.svn.wordpress.org/trunk@25365 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-14 20:45:09 +00:00
Sergey Biryukov 045f93f3b2 Ignore case differences when checking file extension in wp_audio_shortcode() and wp_video_shortcode(). props nofearinc, bhengh. fixes #25140.
Built from https://develop.svn.wordpress.org/trunk@25128


git-svn-id: http://core.svn.wordpress.org/trunk@25108 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-08-26 19:21:10 +00:00
Andrew Nacin 6861353737 Set audio player to width: 100% and avoid breaking the layout in iOS when we fall back to a link.
props markjaquith, davidjlaietta.
fixes #24896.



git-svn-id: http://core.svn.wordpress.org/trunk@24948 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-08-01 14:48:39 +00:00
Andrew Nacin 7d53482cee Use wp_get_mime_types() when calling wp_check_filetype() in the audio and video shortcodes. fixes #24911.
git-svn-id: http://core.svn.wordpress.org/trunk@24944 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-08-01 13:33:15 +00:00
Andrew Nacin bd1d854f10 When rendering an audio or video shortcode in IE 6-8, call document.createElement() as a poor man's HTML5 shiv. see #24902.
git-svn-id: http://core.svn.wordpress.org/trunk@24931 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-07-31 20:36:47 +00:00
Andrew Nacin 70109f6202 Update HTML classes in the audio and video shortcodes. props rfair404. fixes #24820.
git-svn-id: http://core.svn.wordpress.org/trunk@24857 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-07-29 06:51:46 +00:00
Mark Jaquith 0a2ca92b33 Fix a variable typo in `get_post_gallery_images()`.
props rodrigosprimo. Fixes #24202 for trunk.

git-svn-id: http://core.svn.wordpress.org/trunk@24837 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-07-29 00:52:31 +00:00
Mark Jaquith 48eefd5240 Oops. Forgot that we support a PHP version from 2007. Either that or I've been doing a lot of JS.
Props kovshenin. See [24789].

git-svn-id: http://core.svn.wordpress.org/trunk@24792 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-07-24 06:36:29 +00:00
Mark Jaquith 290d61138c Fix some sizing issues with video embeds, and improve video/audio embed shortcode flexibility.
* `loop`, `autoplay`, and `preload` are now available via the shortcode. Use them non-annoyingly, please!
* Attributes that pass through the filters are now proper key/value pairs, not an array of `key="value"` strings.
* `preload` defaults to `metadata` for videos. This fixes the vertical video preview and Safari ogv/webm playback issues.
* Wrap a div around video embeds to combat a ME.js issue with responsive width=100% themes. Props kovshenin.

Fixes #24134, #24798.

git-svn-id: http://core.svn.wordpress.org/trunk@24789 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-07-24 05:52:49 +00:00
Andrew Nacin 2c67dea9bc Media: Add awareness to Attachment Display Settings that audio and video can be embedded.
Also:
 * Add file length metadata to Attachment Details.
 * Round the kb/s bitrate on post.php.

fixes #24449.



git-svn-id: http://core.svn.wordpress.org/trunk@24777 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-07-23 05:39:08 +00:00