Commit Graph

33608 Commits

Author SHA1 Message Date
Dominik Schilling
3f3fe5a7ed Themes: Use the attachment ID as the key in get_uploaded_header_images().
Prevents missing header images when an image has the same name as another header image.

Props sirbrillig.
Fixes #31786.
Built from https://develop.svn.wordpress.org/trunk@36539


git-svn-id: http://core.svn.wordpress.org/trunk@36506 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 22:12:27 +00:00
Dominik Schilling
51473acfb3 i18n: Prevent is_textdomain_loaded() from returning true even if there are no translations for the domain.
In `get_translations_for_domain()` don't fill the global `$l10n` with `NOOP_Translations` instances, return a `NOOP_Translations` instance instead.

Props nacin, jrf.
Fixes #21319.
Built from https://develop.svn.wordpress.org/trunk@36538


git-svn-id: http://core.svn.wordpress.org/trunk@36505 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 21:15:29 +00:00
Andrea Fercia
008cba0333 Accessibility: Reduce the WordPress shades of grey, first part.
See #35783.
Built from https://develop.svn.wordpress.org/trunk@36537


git-svn-id: http://core.svn.wordpress.org/trunk@36504 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 16:09:29 +00:00
Ryan McCue
3e65236aa7 REST API: Apply rest_post_dispatch to embedded responses.
Fixes #35628.
Props @danielbachhuber.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36503 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 06:06:27 +00:00
Ryan McCue
03ba67a0b7 REST API: Allow explicit HEAD callbacks.
HEAD callbacks can now be registered independently, with the GET
callback still used as a fallback.

Fixes #34841.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36502 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 05:51:26 +00:00
Ryan McCue
0438795671 REST API: Add routing args to rest_dispatch_request filter.
This allows requests to be hijacked via the filter more easily.

Fixes #35507.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36501 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 04:40:26 +00:00
Ryan McCue
47bee5157b REST API: Add support for CURIEs.
CURIEs are Compact URIs, which provide a more usable way to use
custom relations in the API. The `wp` CURIE is registered by default
for `https://api.w.org/` URI relations.

Fixes #34729.
Props joehoyle.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36500 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 02:19:27 +00:00
Weston Ruter
b5e18056e5 Customize: Add a user-friendly way to preview site responsiveness for desktop, tablet, and mobile.
Introduces `WP_Customize_Manager::get_previewable_devices()` with a `customize_previewable_devices` filter to change the default device and which devices are available for previewing. This is a feature that was first pioneered on WordPress.com.

Props celloexpressions, folletto, valendesigns, westonruter, welcher, adamsilverstein, michaelarestad, Fab1en.
Fixes #31195.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36499 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 01:57:26 +00:00
Ryan McCue
a6b6adb45d REST API: Fix tests from r36529.
See #35329.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36498 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 01:51:25 +00:00
Rachel Baker
85e82cf571 REST API: Don’t display errors during REST API requests.
Uses `wp_debug_mode()` to prevent response from being broken by debug errors. Matches similar behavior of the XML-RPC API.

Props rockwell15.

Fixes #34915.
Built from https://develop.svn.wordpress.org/trunk@36530


git-svn-id: http://core.svn.wordpress.org/trunk@36497 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 01:36:25 +00:00
Ryan McCue
796f0c844c REST API: Add helper function to get server instance.
This allows using rest_do_request() outside of the API itself easily.

Props danielbachhuber, swissspidy.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36496 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-16 01:12:26 +00:00
Andrea Fercia
4ac63be963 Accessibility: improve the color contrast ratio for the TinyMCE button icons.
Also, tries to use the new grays from the Design Handbook wherever applicable.

Props michaelarestad, afercia.
Fixes #35604.
Built from https://develop.svn.wordpress.org/trunk@36528


git-svn-id: http://core.svn.wordpress.org/trunk@36495 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-15 21:11:28 +00:00
Drew Jaynes
e41a0998e6 Docs: Add an internal note to the DocBlock for comment_form_title() explaining restoration of the $comment global.
See [36512]. See #35624.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36494 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-13 19:15:28 +00:00
Boone Gorges
9a178f2510 Introduce {$taxonomy}_term_edit_form_top action to edit-tag-form.php.
This new action gives developers a place to output content at the beginning
of the form element on edit-tags.php.

Props flixos90.
Fixes #35252.
Built from https://develop.svn.wordpress.org/trunk@36526


git-svn-id: http://core.svn.wordpress.org/trunk@36493 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-13 04:01:26 +00:00
Boone Gorges
48b8ea78da Introduce publicly_queryable taxonomy argument.
Taxonomies registered as `publicly_queryable` can be queried as taxonomy
archives.

If not provided explicitly, the value of `publicly_queryable` is inherited
from `public`.

Props Chouby.
Fixes #34491.
Built from https://develop.svn.wordpress.org/trunk@36525


git-svn-id: http://core.svn.wordpress.org/trunk@36492 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-13 03:51:26 +00:00
Boone Gorges
60cf073672 Improve WP_Query lazyloading logic, for better performance.
Lazyloading for comment meta and term meta, introduced into `WP_Query` in
4.4, used flags - `updated_term_meta_cache` and `updated_comment_meta_cache` -
in an attempt to prevent cache priming from happening more than once per query
object. This technique was mostly effective, but not entirely efficient, since
the flag didn't prevent the `lazyload_*_meta` callbacks from running. The
obvious solution - removing the filter callback after it'd be run once - was
dismissed for 4.4 because of concerns that `remove_filter()` could disable
lazyloading too generally in the context of nested queries, due to the way
`_wp_filter_build_unique_id()` doesn't always build sufficiently unique IDs for
similar objects. However, further testing shows that this concern is only valid
in a very small subset of cases, while the cost of keeping the query objects in
memory, via the `$wp_filter` global, is quite significant. As such, this
changeset removes the flags in favor of the `remove_filter()` technique.

See #35454, #35816.
Built from https://develop.svn.wordpress.org/trunk@36524


git-svn-id: http://core.svn.wordpress.org/trunk@36491 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-13 03:05:27 +00:00
Weston Ruter
9343641855 Customize: Ensure that nav menu items can be shift-clicked to edit in secondary instances of the same nav menu.
When the same nav menu is shown multiple times on a page, only the first instance of the nav menu will include `id` attributes. Subsequent instances will have the `id` attributes omitted. However, in both cases the underlying nav menu item's post ID is available among the `class` names, so the post ID can be more reliably obtained from `class` instead of the `id` attribute.  

Amends [36383].
Fixes #32681.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36490 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-13 00:12:25 +00:00
Weston Ruter
453ff22d7f Customize: Hide widgets re-order button when no re-ordering is possible.
Hide the re-order button if there are no widgets in the sidebar, or if there is there is only one sidebar and there is only one widget in the sidebar.

Props rabmalin, westonruter.
Fixes #35533.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36489 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-12 23:52:27 +00:00
Rachel Baker
f99ec3db18 Comments: In the comments list table, only link rows inside the “Submitted On” column to the comment if it is publicly viewable.
The date within the comments list table “Submitted On” column will only be wrapped in `get_comment_link()` if the comment is approved and associated with a valid `comment_post_ID`.

Fixes #35279.
Built from https://develop.svn.wordpress.org/trunk@36521


git-svn-id: http://core.svn.wordpress.org/trunk@36488 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-12 21:43:26 +00:00
Boone Gorges
f846e08f2c Make sure fixtures have empty post_content in search test.
The generator sequence was causing false positives when the search terms
('1' and '0') happened to match the current sequence number (eg,
'Post content 190').

Introduced in [36278].

See #31025.
Built from https://develop.svn.wordpress.org/trunk@36520


git-svn-id: http://core.svn.wordpress.org/trunk@36487 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-12 21:07:25 +00:00
Aaron Jorbin
c521ca706f Improve Automated Feed Tests
Multiple improvements to the RSS2 automated tests along with the addition of Atom tests.
1. General whitespace cleanup (since the rss2 file serves as the base of the atom file).
2. Adds an author and category to the tests.
3. Since the content of the posts is the same, we don't need to test all of the post content.
4. Adds many posts so that the post count can be checked

Props stevenkword
Fixes #35160.


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


git-svn-id: http://core.svn.wordpress.org/trunk@36486 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-12 19:03:26 +00:00
Andrea Fercia
eee7f18225 Customizer: reduce the spinner re-painted area to the smallest possible one.
Also, changes the "customize container" and the theme installer preview
background from white to the default body `#f1f1f1` background.

Fixes #35649.
Built from https://develop.svn.wordpress.org/trunk@36518


git-svn-id: http://core.svn.wordpress.org/trunk@36485 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-12 18:35:25 +00:00
Rachel Baker
cf0288e291 Media: Fix inline docs typo inside wp_calculate_image_srcset() function.
mathces -> matches.

Props neoxx.

Fixes #35714.
Built from https://develop.svn.wordpress.org/trunk@36517


git-svn-id: http://core.svn.wordpress.org/trunk@36484 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-12 18:15:30 +00:00
Boone Gorges
0e27fdcc47 Bail from get_term() if a filter returns an object that is not a WP_Term.
This prevents fatal errors in certain cases.

Props tmuikku.
Fixes #35808.
Built from https://develop.svn.wordpress.org/trunk@36516


git-svn-id: http://core.svn.wordpress.org/trunk@36483 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-12 14:26:27 +00:00
Rachel Baker
58fe478fe1 Comments: Unit test for `wp_get_comment_fields_max_lengths().
This adds tests for the comment form field lengths returned by `wp_get_comment_fields_max_lengths()`. Replaces unit test removed in r36514. 

See #10377.
Built from https://develop.svn.wordpress.org/trunk@36515


git-svn-id: http://core.svn.wordpress.org/trunk@36482 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-12 14:18:26 +00:00
Rachel Baker
8abd201a0b Comments: Change wp_get_comment_column_max_length() function to wp_get_comment_fields_max_lengths() for consolidation and better fallbacks.
Instead of returning a value for each of the related table column lengths, return an array of all of the column lengths used in the comment form.
Better fallback handling, where each field falls back to the expected max_length instead of an arbitrary number.

Props azaozz.

Fixes #10377.
Built from https://develop.svn.wordpress.org/trunk@36514


git-svn-id: http://core.svn.wordpress.org/trunk@36481 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-12 13:55:28 +00:00
Andrew Ozz
a2dddbf8f5 TinyMCE: fix removing a space before inline tags when applying formatting shortcuts.
Fixes #35798.
Built from https://develop.svn.wordpress.org/trunk@36513


git-svn-id: http://core.svn.wordpress.org/trunk@36480 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-12 04:23:26 +00:00
Boone Gorges
1877b8c726 Set the $comment global in comment_form_title().
In [33963], `comment_form_title()` was refactored so that it no longer made
reference to the `$comment` global. This broke some functionality within the
comment form, as certain template would no longer be able to access the
"current" comment.

Props d4z_c0nf, WisdmLabs, boonebgorges.
Fixes #35624.
Built from https://develop.svn.wordpress.org/trunk@36512


git-svn-id: http://core.svn.wordpress.org/trunk@36479 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-12 04:10:25 +00:00
Boone Gorges
3e9c88d75a In delete_metadata(), only invalidate cache for affected objects.
The `$delete_all` flag in `delete_metadata()` triggers cache invalidation for
multiple objects. Previously, invalidation took place for all objects matching
the `$meta_key` parameter, regardless of whether `$meta_value` was also set.
This resulted in overly aggressive invalidation.

Props rahal.aboulfeth.
Fixes #35797.
Built from https://develop.svn.wordpress.org/trunk@36511


git-svn-id: http://core.svn.wordpress.org/trunk@36478 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-12 02:47:26 +00:00
Eric Lewis
2bfc0f5218 Menus: Allow larger menus to be created in the Edit Menu screen.
In the Edit Menu screen, each menu item creates 11 form input elements. In menus with more than 71 menu items, often items after the 71st weren't saved. This was because PHP's runtime configuration `max_input_vars` default value is 1000. Large menus exceed this, so PHP didn't populate the `$_POST` superglobal for the latter menu items.

The entire form is now JSON-encoded into a single input which populates `$_POST` manually on form submission.

This was attempted previously in [36506] which was reverted in [36507]. Some form fields were not being slurped into the form's JSON representation, and it did not scale for a site with many posts. This approach fixes those problems.

Props ocean90, afercia.
See #14134.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36477 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-11 19:08:27 +00:00
Boone Gorges
1370d8b869 Don't double-unslash meta key when update_metadata() falls back on add_metadata().
Props jdgrimes.
Fixes #35795.
Built from https://develop.svn.wordpress.org/trunk@36509


git-svn-id: http://core.svn.wordpress.org/trunk@36476 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-11 17:35:28 +00:00
Boone Gorges
dae31f7d95 Remove unused variable from get_terms().
Unused since [31284].

Props TimothyBlynJacobs.
Fixes #35784.
Built from https://develop.svn.wordpress.org/trunk@36508


git-svn-id: http://core.svn.wordpress.org/trunk@36475 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-11 04:33:29 +00:00
Eric Lewis
a64dbc805b Menus: Revert larger menu support in Edit Menus screen in [36506].
JSON encoding the form as it exists on the page will not scale. 

See #14134.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36474 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-10 14:11:26 +00:00
Eric Lewis
48fdbf96de Menus: Allow larger menus to be created in the Edit Menu screen.
In the Edit Menu screen, each menu item creates 11 form input elements. In menus with more than 71 menu items, often items after the 71st weren't saved. This was because PHP's runtime configuration `max_input_vars` default value is 1000. Large menus exceed this, so PHP didn't populate the `$_POST` superglobal for the latter menu items.

The entire form is now JSON-encoded into a single input which populates `$_POST` manually on form submission.

See #14134.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36473 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-10 03:32:25 +00:00
Dominik Schilling
cbe5fc6fb8 Multisite: Don't show the database upgrade admin notice on the upgrade page itself.
Fixes #35782.
Built from https://develop.svn.wordpress.org/trunk@36505


git-svn-id: http://core.svn.wordpress.org/trunk@36472 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-09 14:30:28 +00:00
Dominik Schilling
d9a5894c2e Users: Display the new user email notice in user admin too.
Also, in `new_user_email_admin_notice()` use the global `$pagenow` and add a translators comment for the placeholder.

Fixes #35767.
Built from https://develop.svn.wordpress.org/trunk@36504


git-svn-id: http://core.svn.wordpress.org/trunk@36471 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-07 13:54:25 +00:00
Dominik Schilling
0eb4f6ccfc Users: Use self_admin_url() for the email change confirmation link.
Prevents sending users to wp-admin/profile.php if they only have access to wp-admin/user/profile.php.

Fixes #35766.
Built from https://develop.svn.wordpress.org/trunk@36503


git-svn-id: http://core.svn.wordpress.org/trunk@36470 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-07 13:26:27 +00:00
Drew Jaynes
deeb5f1471 Themes: Pass information about the old theme in the form of a WP_Theme object when the switch_theme action is fired.
Props MikeHansenMe.
See #22401.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36469 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-07 08:26:25 +00:00
Drew Jaynes
12bdf5a6da Docs: Improove the DocBlock summary for wp_signon().
See #32246.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36468 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-07 08:11:25 +00:00
Drew Jaynes
48988c505f Docs: Make a couple of minor improvements to the DocBlock for wp_get_raw_referer(), introduced in [36266].
* Uses a third-person singular verb in the summary
* Makes the return types more specific with `string|false` vs `string|bool`.

See #27152. See #32246.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36467 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-07 08:09:25 +00:00
Drew Jaynes
b45a6228d0 Docs: Add a changelog entry for the introduction of maxlength character limits for the 'author', 'email', and 'url' fields in comment_form().
Introduced in [36272].

See #10377. See #32246.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36466 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-07 08:05:27 +00:00
Drew Jaynes
c55f447ad4 Docs: Revert unintended changes in wp-includes/post.php, mistakenly included in [36497].
See #34988. See #33701. 

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


git-svn-id: http://core.svn.wordpress.org/trunk@36465 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-07 02:46:25 +00:00
Drew Jaynes
3785385ea2 Docs: Add a missing version to the file header for wp-admin/term.php, introduced in [36308].
See #34988. See #33701.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36464 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-07 02:43:26 +00:00
Drew Jaynes
f3aeb0def3 Docs: Update several function DocBlock summaries in wp-includes/nav-menu.php to use third-person singular verbs.
Also removes some unnecessary capitalizations.

See #32246.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36463 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-07 02:18:26 +00:00
Drew Jaynes
e2cec35437 Docs: Make some minor improvements to inline docs for WP_Site, introduced in [36393].
* Uses third-person singular verbs in method summaries
* Adds an `@static` tag to the `WP_Site::get_instance()` DocBlock
* Adjusts return types for `WP_Site::get_instance()` to the more explicit `WP_Site|false`

See #32450. See #32246.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36462 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-07 02:13:26 +00:00
Drew Jaynes
3e7db642a6 Docs: Slightly simplify the DocBlock summaries for home_url(), get_home_url(), site_url(), and get_site_url().
See #35238. See #32246.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36461 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-07 02:06:26 +00:00
Drew Jaynes
b0ef4d14c5 Docs: Add an @access tag and fix a typo in the DocBlock for wpdb::close().
See #34903. See #32246.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36460 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-07 02:03:26 +00:00
Drew Jaynes
9daf7a88a3 Docs: Add a note to the DocBlock for current_user_can() to explain that it will always return true for super admins, unless specifically denied.
Props finnj.
Fixes #35551.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36459 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-07 01:27:26 +00:00
Drew Jaynes
a06a5ecfe9 Docs: Fix two notations in the DocBlocks for show_admin_bar() and is_admin_bar_showing() to reflect use of the $show_admin_bar global rather than $wp_admin_bar.
Props Frozzare.
Fixes #35686.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36458 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-07 01:22:26 +00:00
Drew Jaynes
b1127321ec Docs: Fix one line of the DocBlock for the JsonSerializable compat interface to use a tab instead of spaces.
Props Frozzare.
Fixes #35699.

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


git-svn-id: http://core.svn.wordpress.org/trunk@36457 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2016-02-07 01:18:27 +00:00