Sergey Biryukov
bcc1670ed6
Customizer: Remove HTML tags from two translatable strings.
...
props henrikakselsen.
fixes #32817 .
Built from https://develop.svn.wordpress.org/trunk@33078
git-svn-id: http://core.svn.wordpress.org/trunk@33049 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-03 22:29:25 +00:00
Dominik Schilling
2ecb586214
Customizer: Add an `aria-expanded` attribute to the Add Menu button to improve accessibility.
...
props afercia.
fixes #32791 .
Built from https://develop.svn.wordpress.org/trunk@32971
git-svn-id: http://core.svn.wordpress.org/trunk@32942 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-27 10:05:24 +00:00
Scott Taylor
8b1286417e
`ob_get_contents()` followed by `ob_end_clean()` can be replaced by `ob_get_clean()`.
...
See #32444 .
Built from https://develop.svn.wordpress.org/trunk@32965
git-svn-id: http://core.svn.wordpress.org/trunk@32936 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-27 01:12:24 +00:00
Scott Taylor
eb4cd4880b
Add missing access modifier to `WP_Customize_Sidebar_Section::json()`.
...
See #32444 .
Built from https://develop.svn.wordpress.org/trunk@32877
git-svn-id: http://core.svn.wordpress.org/trunk@32848 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-19 22:06:27 +00:00
Dominik Schilling
2d2445516c
Customizer: Decode HTML entities of panel/section titles.
...
Titles are now passed into Underscore templates but HTML-escaped, see #30737 .
fixes #32670 .
Built from https://develop.svn.wordpress.org/trunk@32822
git-svn-id: http://core.svn.wordpress.org/trunk@32793 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-17 19:48:25 +00:00
Dominik Schilling
62e3a0c15c
Add menu management to the Customizer.
...
This brings in the Menu Customizer plugin: https://wordpress.org/plugins/menu-customizer/ .
props celloexpressions, westonruter, valendesigns, voldemortensen, ocean90, adamsilverstein, kucrut, jorbin, designsimply, afercia, davidakennedy, obenland.
see #32576 .
Built from https://develop.svn.wordpress.org/trunk@32806
git-svn-id: http://core.svn.wordpress.org/trunk@32777 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-16 22:08:26 +00:00
Weston Ruter
98b03d376e
Add JS templates for Customizer Panels and Sections.
...
This extends the approach taken for Customizer Controls in #29572 .
Props celloexpressions, westonruter, ocean90.
See #30737 .
Built from https://develop.svn.wordpress.org/trunk@32658
git-svn-id: http://core.svn.wordpress.org/trunk@32628 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-30 00:03:30 +00:00
Scott Taylor
19a3aacc94
Add `@static*` annotations where they are missing.
...
Initialize all static vars that are not, most to `null`.
See #32444 .
Built from https://develop.svn.wordpress.org/trunk@32650
git-svn-id: http://core.svn.wordpress.org/trunk@32620 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-29 15:43:29 +00:00
Dominik Schilling
fccc19b510
Customizer: Replace accordion behavior of sections with a slide-in navigation.
...
This allows users to focus on the contents of the active section more easily and separating the navigation from the content/controls in the Customizer.
props valendesigns, celloexpressions.
see #31336 .
Built from https://develop.svn.wordpress.org/trunk@32649
git-svn-id: http://core.svn.wordpress.org/trunk@32619 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-29 13:57:26 +00:00
Scott Taylor
b2bbbf9759
In `class-wp-customize-*`, clarify/add some `@param`/`@return` blocks. Disambiguate some functions that are trying to return the `void` response of another function they call internally.
...
See #32444 .
Built from https://develop.svn.wordpress.org/trunk@32535
git-svn-id: http://core.svn.wordpress.org/trunk@32505 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-21 22:05:24 +00:00
Dominik Schilling
d54f1feb6b
Customizer Theme Switcher: Use text input for the search field to prevent double tap issues for Preview and Customize buttons on iOS.
...
see #31794 .
Built from https://develop.svn.wordpress.org/trunk@32127
git-svn-id: http://core.svn.wordpress.org/trunk@32106 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-14 17:45:27 +00:00
Drew Jaynes
8737fcff65
Document the `$theme` property in `WP_Customize_Themes_Section`.
...
Also adds a missing `@access` tag to the DocBlock for `WP_Customize_Themes_Section->render()`.
See [31533]. See #31888 .
Built from https://develop.svn.wordpress.org/trunk@32033
git-svn-id: http://core.svn.wordpress.org/trunk@32012 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-05 15:10:26 +00:00
Dominik Schilling
254b9e3264
Customizer Theme Switcher: Navigation streamlining.
...
* Detach Themes section from other controls
* Move to buttons to navigate back and forth
* Change titles based on current theme status, active/previewing
* Hide the active/previewing theme from the list of available themes
props folletto for the design concepts.
props designsimply, celloexpressions for initial patches.
props Team Gandalf.
see #31289 .
Built from https://develop.svn.wordpress.org/trunk@31975
git-svn-id: http://core.svn.wordpress.org/trunk@31954 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-01 22:51:27 +00:00
Dominik Schilling
57fce2e593
Customizer Theme Switcher: Remove "Add New" references.
...
The current iteration takes you out of the customizer context, which isn't great UX and doesn't really fit into the flows targeted by this particular UI.
fixes #31837 .
Built from https://develop.svn.wordpress.org/trunk@31968
git-svn-id: http://core.svn.wordpress.org/trunk@31947 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-01 19:50:29 +00:00
Dominik Schilling
96b88a391b
Theme Switcher: Use the global panel back button instead of adding a new one.
...
This ensures the back button is visible on iOS devices. Same as in [29610].
see #31794 .
Built from https://develop.svn.wordpress.org/trunk@31918
git-svn-id: http://core.svn.wordpress.org/trunk@31897 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-28 22:09:26 +00:00
Dominik Schilling
55519962cc
Improve newly added strings for i18n:
...
* Use a placeholder for the theme name to be able to reorder words.
* Uppercase D for "Theme Details" to match existing strings.
* Merge two revision date formats.
* Add translator comment to strings with placeholders.
props obenland.
see #31776 .
Built from https://develop.svn.wordpress.org/trunk@31905
git-svn-id: http://core.svn.wordpress.org/trunk@31884 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-03-26 20:56:26 +00:00
Drew Jaynes
2058532f43
Add a missing file header and clean up class DocBlocks in wp-includes/class-wp-customize-section.php.
...
* Adds a file header separate from the `WP_Customize_Section` class block
* Fixes formatting for the `WP_Customize_Section`, `WP_Customize_Themes_Section`, and `WP_Customize_Sidebar_Section` class DocBlocks.
See #31446 .
Built from https://develop.svn.wordpress.org/trunk@31542
git-svn-id: http://core.svn.wordpress.org/trunk@31523 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-25 08:13:26 +00:00
Mark Jaquith
8b180b9a46
Add theme browsing and theme switching to the Customizer
...
* Brings into core the Customizer Theme Switcher feature plugin
* You can now browse, preview, and activate themes right from the Customizer
fixes #31303 .
props celloexpressions, afercia, westonruter, folletto, designsimply
Built from https://develop.svn.wordpress.org/trunk@31533
git-svn-id: http://core.svn.wordpress.org/trunk@31514 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-24 20:31:24 +00:00
Scott Taylor
0a511680f4
Adding a `@return` annotation to constructors is generally not recommended as a constructor does not have a meaningful return value. Constructors do not have meaningful return values, anything that is returned from here is discarded.
...
See #30799 .
Built from https://develop.svn.wordpress.org/trunk@31126
git-svn-id: http://core.svn.wordpress.org/trunk@31107 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-10 06:54:23 +00:00
Scott Taylor
905f35f289
In Customizer classes:
...
* `public final function` methods should be `final public function` - confusing Hack and aligns with PSR2
* Some methods were missing access modifiers
See #30799 .
Built from https://develop.svn.wordpress.org/trunk@31083
git-svn-id: http://core.svn.wordpress.org/trunk@31064 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-08 06:02:24 +00:00
Dominik Schilling
0826f8ede2
Customizer: Add panel/section type as CSS class to the HTML container.
...
see #28709 .
Built from https://develop.svn.wordpress.org/trunk@30714
git-svn-id: http://core.svn.wordpress.org/trunk@30704 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-12-02 22:16:23 +00:00
Drew Jaynes
bffe95d34c
Docs Formatting: Backtick-escape inline code for all remaining dynamic hook docs in wp-includes/*.
...
Affects DocBlocks for the following hooks:
* `auth_post_meta_{$meta_key}`
* `term_links-$taxonomy`
* `customize_render_control_ . $this->id`
* `customize_render_panel_{$this->id}`
* `customize_render_section_{$this->id}`
* `customize_preview_{$this->id}`
* `customize_save_ . $this->id_data[ 'base' ]`
* `customize_update_ . $this->type`
* `customize_value_ . $this->id_data[ 'base' ]`
* `customize_sanitize_js_{$this->id}`
* `comment_form_field_{$name}`
* `comment_{$old_status}_to_{$new_status}`
* `comment_{$new_status}_{$comment->comment_type}`
* `extra_{$context}_headers`
* `get_template_part_{$slug}`
* `get_the_generator_{$type}`
* `get_{$adjacent}_post_join`
* `get_{$adjacent}_post_where`
* `get_{$adjacent}_post_sort`
* `{$adjacent}_post_rel_link`
* `{$adjacent}_post_link`
* `{$adjacent}_image_link`
* `blog_option_{$option}`
* `$permastructname . _rewrite_rules`
* `{$type}_template`
* `theme_mod_{$name}`
* `pre_set_theme_mod_$name`
* `current_theme_supports-{$feature}`
* `get_user_option_{$option}`
* `edit_user_{$field}`
* `pre_user_{$field}`
* `user_{$field}`
See #30552 .
Built from https://develop.svn.wordpress.org/trunk@30656
git-svn-id: http://core.svn.wordpress.org/trunk@30646 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-30 12:10:23 +00:00
Drew Jaynes
49fe81ebeb
4.1 Docs Audit: Improve inline documentation for various properties and methods in the `WP_Customize_Section`, `WP_Customize_Section`, and `WP_Customize_Sidebar_Section` classes.
...
See #30469 .
Built from https://develop.svn.wordpress.org/trunk@30608
git-svn-id: http://core.svn.wordpress.org/trunk@30598 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-28 11:10:22 +00:00
Dominik Schilling
41197a7c31
Customizer: Improve ability to filter active state for widget area Customizer sections.
...
* Mark panels, sections, controls as active if preview explicitly indicates.
* Introduce `WP_Customize_Sidebar_Section` PHP class, and `SidebarSection` JS class.
* Move logic for determining whether a sidebar section is active from the `SidebarControl` to `SidebarSection`.
props westonruter.
fixes #30235 .
Built from https://develop.svn.wordpress.org/trunk@30329
git-svn-id: http://core.svn.wordpress.org/trunk@30328 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-13 12:19:23 +00:00
Dominik Schilling
73b4f6f449
Customizer: Add stable sorting for panels, sections and controls in JS. Improve sorting in PHP.
...
props westonruter.
fixes #30225 .
Built from https://develop.svn.wordpress.org/trunk@30214
git-svn-id: http://core.svn.wordpress.org/trunk@30214 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-03 21:35:23 +00:00
Dominik Schilling
3c962ee5d8
Improve/introduce Customizer JavaScript models for Controls, Sections, and Panels.
...
* Introduce models for panels and sections.
* Introduce API to expand and focus a control, section or panel.
* Allow deep-linking to panels, sections, and controls inside of the Customizer.
* Clean up `accordion.js`, removing all Customizer-specific logic.
* Add initial unit tests for `wp.customize.Class` in `customize-base.js`.
https://make.wordpress.org/core/2014/10/27/toward-a-complete-javascript-api-for-the-customizer/ provides an overview of how to use the JavaScript API.
props westonruter, celloexpressions, ryankienstra.
see #28032 , #28579 , #28580 , #28650 , #28709 , #29758 .
fixes #29529 .
Built from https://develop.svn.wordpress.org/trunk@30102
git-svn-id: http://core.svn.wordpress.org/trunk@30102 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 22:51:22 +00:00
Dominik Schilling
eb0dbc8cb5
Customizer: Increase default priority for a section to 160.
...
props celloexpressions.
fixes #29172 .
Built from https://develop.svn.wordpress.org/trunk@29508
git-svn-id: http://core.svn.wordpress.org/trunk@29285 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-08-15 19:36:16 +00:00
Andrew Nacin
ba9ee74028
Separate WP_Customize_Panel from WP_Customize_Section.
...
props celloexpressions.
fixes #29197 .
Built from https://develop.svn.wordpress.org/trunk@29487
git-svn-id: http://core.svn.wordpress.org/trunk@29265 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-08-14 04:40:17 +00:00
Dominik Schilling
d062663180
Customizer: Fix ID attribute for a panel.
...
props celloexpressions.
fixes #29174 .
Built from https://develop.svn.wordpress.org/trunk@29482
git-svn-id: http://core.svn.wordpress.org/trunk@29260 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-08-13 18:26:15 +00:00
Sergey Biryukov
440be3565d
Customizer: Add screen reader text to announce that panels and sections are expandable.
...
props joedolson, ocean90.
fixes #27591 .
Built from https://develop.svn.wordpress.org/trunk@29240
git-svn-id: http://core.svn.wordpress.org/trunk@29024 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-19 02:37:16 +00:00
Drew Jaynes
20ce795ff2
Inline documentation cleanup for 4.0 audit.
...
phpDoc tweaks for methods added in [28861]:
* `WP_Customize_Panel` constructor method
* `WP_Customize_Panel::render()` method
See #27406 and #28885 .
Built from https://develop.svn.wordpress.org/trunk@29158
git-svn-id: http://core.svn.wordpress.org/trunk@28942 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-14 00:40:15 +00:00
Dominik Schilling
d617598716
Customizer: Make panel title translatable too.
...
props michalzuber.
see #27406 .
Built from https://develop.svn.wordpress.org/trunk@29135
git-svn-id: http://core.svn.wordpress.org/trunk@28919 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-13 15:12:15 +00:00
Dominik Schilling
e8369f9d25
Customizer: Make screen reader text translatable.
...
see #27406 .
Built from https://develop.svn.wordpress.org/trunk@29132
git-svn-id: http://core.svn.wordpress.org/trunk@28917 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-13 10:54:15 +00:00
Helen Hou-Sandí
3575612966
Customizer panels:
...
* Close all accordion sections when going in and out of panels.
* Fix panel positioning when top-level Customizer controls are scrolled down.
* Keyboard accessibility: only focus on visible elements and transfer between them as needed when navigating around panels.
props celloexpressions. see #27406 .
Built from https://develop.svn.wordpress.org/trunk@29035
git-svn-id: http://core.svn.wordpress.org/trunk@28823 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-07-08 20:19:15 +00:00
Helen Hou-Sandí
e1db9240b7
Support descriptions for individual customizer controls.
...
* Control title (label) markup will also only be output if specified.
* Control section descriptions are no longer italicized for visual hierarchy / differentiation.
props celloexpressions. fixes #27981 .
Built from https://develop.svn.wordpress.org/trunk@28927
git-svn-id: http://core.svn.wordpress.org/trunk@28725 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-06-30 15:55:17 +00:00
Dominik Schilling
b7c93eb3d0
Customizer: Introduce a "panel" API to organize multiple sections into a one section.
...
Create a panel via `$GLOBALS['wp_customize']->add_panel( $panel_id, $args )` and use `$panel_id` for the `panel` argument in `$GLOBALS['wp_customize']->add_section( $section_id, $args )`. That's it.
As an example all widget area sections are now summarized into one panel. Feedback appreciated.
props celloexpressions.
see #27406 .
Built from https://develop.svn.wordpress.org/trunk@28861
git-svn-id: http://core.svn.wordpress.org/trunk@28662 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-06-26 20:17:15 +00:00
Sergey Biryukov
c6ef7d05e0
Allow for easier adding of custom class variables when extending WP_Customize_Section or WP_Customize_Setting.
...
props rhurling.
fixes #27315 .
Built from https://develop.svn.wordpress.org/trunk@28827
git-svn-id: http://core.svn.wordpress.org/trunk@28631 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-06-24 22:56:14 +00:00
Scott Taylor
3c209b6f56
Add missing access modifiers to methods/members in `WP_Customize_*`.
...
See #27881 , #22234 .
Built from https://develop.svn.wordpress.org/trunk@28509
git-svn-id: http://core.svn.wordpress.org/trunk@28335 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-19 05:45:16 +00:00
Drew Jaynes
3d2728f7a6
Improve some inline documentation for class properties in `WP_Customize_Section`.
...
Props leewillis77 for the initial patch.
Fixes #26245 .
Built from https://develop.svn.wordpress.org/trunk@27902
git-svn-id: http://core.svn.wordpress.org/trunk@27733 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-04-02 03:02:16 +00:00
Andrew Nacin
f31ac162f5
Update the Customizer API inline docs.
...
props ericlewis.
fixes #27065 .
Built from https://develop.svn.wordpress.org/trunk@27398
git-svn-id: http://core.svn.wordpress.org/trunk@27246 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-04 20:21:14 +00:00
Drew Jaynes
751833c97c
Inline documentation for hooks in wp-includes/class-wp-customize-section.php.
...
Props leewillis77, kpdesign.
Fixes #26196 .
Built from https://develop.svn.wordpress.org/trunk@26892
git-svn-id: http://core.svn.wordpress.org/trunk@26775 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-01-02 02:07:11 +00:00
Helen Hou-Sandí
249bb75f8f
Actually display customizer section descriptions in a meaningful way. props obenland, helen. fixes #24392 .
...
Built from https://develop.svn.wordpress.org/trunk@25102
git-svn-id: http://core.svn.wordpress.org/trunk@25084 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-08-23 16:18:10 +00:00
Mark Jaquith
88f17f77c4
Refactor the Customizer accordion so that it can be used in other locations.
...
fixes #23449 . props lessbloat, aaroncampbell
git-svn-id: http://core.svn.wordpress.org/trunk@23417 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-02-14 22:58:04 +00:00
Andrew Nacin
abe7ee8ec8
Keyboard accessibility for the theme customizer. props lessbloat, jorbin, JustinSainton. fixes #21283 .
...
git-svn-id: http://core.svn.wordpress.org/trunk@22400 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-11-06 14:47:25 +00:00
ryan
564a7db2cb
phpdoc for Customizer classes and methods. Props bananastalktome. see #21303
...
git-svn-id: http://core.svn.wordpress.org/trunk@21354 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-07-26 21:45:33 +00:00
duck_
457d2db64b
Add some missing documentation and fix a couple of typos. Props roscius. Fixes #19756 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20349 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-04 17:32:03 +00:00
koopersmith
30d798ec8d
Create WP_Customize_Control to separate the process of rendering a control from fetching, previewing, and saving its values. see #19910 .
...
Many-to-many mapping between settings and controls.
* Settings and controls have been separated in both the PHP (WP_Customize_Setting, WP_Customize_Control) and the JS (wp.customize.Setting, wp.customize.Control).
* While most settings are tied to a single control, some require multiple controls. The 'header_textcolor' control is a good example: to hide the header text, header_textcolor is set to 'blank'.
Add 'Display Header Text' control.
A handful of miscellaneous bugfixes along the way.
Notes:
* Controls should be separated out a bit more; juggling type-specific arguments in the switch statement is rather inelegant.
* Page dropdowns are currently inactive and need to be re-linked.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20295 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-28 04:14:09 +00:00
koopersmith
5443bec597
Theme Customizer: Add a WP_Customize_Setting->visibility parameter to show/hide a control based upon the value of another control. Also shifts rendering the setting wrapper element into WP_Customize_Setting->render() and adds WP_Customize_Setting->render_content(). see #19910 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20260 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-22 07:17:26 +00:00
koopersmith
dbd50b0972
Theme Customizer: Numerous API refinements and bugfixes. Add a theme_supports check for header_textcolor. see #19910 .
...
* prepare_controls() now removes any settings and sections that return false for check_capabilities().
* Added maybe_render() methods to both settings and sections that call the protected render() methods.
* Stop firing front-end preview functionality when rendering the controls.
* Merged the WP_Customize_Setting->_render_type() method into WP_Customize_Setting->render().
* Removed the 'customize_render_control-' hook; use 'customize_render_setting' instead.
* Added a property to sections and settings so they no longer rely on the global. Hooray for dependency injection.
* Shifted calls to WP_Customize_Setting->enqueue() to the 'customize_controls_enqueue_scripts' action.
* Added a theme_supports check for the header_textcolor setting.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20248 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-21 22:55:43 +00:00
koopersmith
61d7f6a476
Theme Customizer: Improve WP_Customize_Setting->check_capabilities(). Add support for arrays in WP_Customize_Setting->capability and WP_Customize_Setting->theme_supports. Don't bail when WP_Customize_Setting->capability is empty. see #19910 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20232 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-21 04:59:57 +00:00