Sergey Biryukov
bc1e479fd0
After [35718], update the location of some files in `This filter is documented in` docs.
...
Partially reverts [33954].
Fixes #33413 .
Built from https://develop.svn.wordpress.org/trunk@35725
git-svn-id: http://core.svn.wordpress.org/trunk@35689 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-11-22 03:51:28 +00:00
Andrew Nacin
1579e45d41
Simplify the include graph after work to split out classes.
...
see #33413 . More details there.
Built from https://develop.svn.wordpress.org/trunk@35718
git-svn-id: http://core.svn.wordpress.org/trunk@35682 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-11-20 07:24:30 +00:00
Drew Jaynes
df81151f24
Docs: Clarify the file header summary for wp-includes/meta.php, the top-level file for the core Meta API.
...
Also adds inline DocBlocks for files broken out in #33413 and now brought in via `require_once()`.
See #33413 . See #33701 .
Built from https://develop.svn.wordpress.org/trunk@34407
git-svn-id: http://core.svn.wordpress.org/trunk@34371 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-09-22 13:30:24 +00:00
Scott Taylor
b6c01b80fa
Meta: move `WP_Meta_Query` into its own file. `meta.php` loads the new files, so this is 100% BC if someone is loading `meta.php` directly. New files created using `svn cp`.
...
Creates:
`class-wp-meta-query.php`
`meta-functions.php`
`meta.php` contains only top-level code. Class file only contains the class. Functions file only contains functions.
See #33413 .
Built from https://develop.svn.wordpress.org/trunk@33761
git-svn-id: http://core.svn.wordpress.org/trunk@33729 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-26 13:02:21 +00:00
Drew Jaynes
a7b38bf90a
Docs: Correct the phpDoc type to a boolean for the `$single` parameter in the `get_{$meta_type}_metadata` hook docs.
...
Props dlh.
Fixes #33451 .
Built from https://develop.svn.wordpress.org/trunk@33665
git-svn-id: http://core.svn.wordpress.org/trunk@33632 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-08-20 19:36:25 +00:00
Drew Jaynes
6639c342a5
Fix inline documentation syntax in the DocBlock for `WP_Meta_Query->has_or_relation()`, added in 4.3.
...
See [32713]. See #32891 .
Built from https://develop.svn.wordpress.org/trunk@33231
git-svn-id: http://core.svn.wordpress.org/trunk@33203 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-07-13 21:44:24 +00:00
Boone Gorges
5dfd6a02a7
Avoid returning duplicate matches when using a meta query in `WP_User_Query`.
...
A meta_query containing an `OR` relation can result in the same record matching
multiple clauses, leading to duplicate results. The previous prevention against
duplicates [18178] #17582 became unreliable in 4.1 when `WP_Meta_Query`
introduced support for nested clauses. The current changeset adds a new method
`WP_Meta_Query::has_or_relation()` for checking whether an `OR` relation
appears anywhere in the query, and uses the new method in `WP_User_Query` to
enforce distinct results as necessary.
Props maxxsnake.
Fixes #32592 .
Built from https://develop.svn.wordpress.org/trunk@32713
git-svn-id: http://core.svn.wordpress.org/trunk@32683 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-06-09 17:42:28 +00:00
Scott Taylor
cae2415562
Fix doc blocks for `meta.php`
...
See #32444 .
Built from https://develop.svn.wordpress.org/trunk@32610
git-svn-id: http://core.svn.wordpress.org/trunk@32580 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-26 19:33:25 +00:00
Boone Gorges
11226f02a8
Allow metadata to be deleted when meta_value matches 0 or '0'.
...
In `delete_metadata()`, be stricter about when to ignore a falsey value of
`$meta_value`.
For backward compatibility, an empty string for `$meta_value` is equivalent to
`null` or `false`.
Props sc0ttkclark.
Fixes #32224 .
Built from https://develop.svn.wordpress.org/trunk@32331
git-svn-id: http://core.svn.wordpress.org/trunk@32302 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-05-01 16:38:29 +00:00
Drew Jaynes
156e3d14ed
Add a missing `@access` tag to the DocBlock for the `WP_Meta_Query->$clauses` property.
...
Also adds a missing return description for `WP_Meta_Query::get_clauses()`.
See [31312]. See #31888 .
Built from https://develop.svn.wordpress.org/trunk@32044
git-svn-id: http://core.svn.wordpress.org/trunk@32023 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-04-05 16:11:27 +00:00
Boone Gorges
7bde88d02e
Modify `meta_query orderby syntax to use array keys as clause "handles".
...
The implementation of `meta_query` orderby introduced in [31312] put clause
identifiers into a 'name' parameter of the clause. For greater clarity, this
changeset updates the syntax to use the associative array key used when
defining `meta_query` parameters, instead of the 'name' parameter.
Props Funkatronic, DrewAPicture.
Fixes #31045 .
Built from https://develop.svn.wordpress.org/trunk@31340
git-svn-id: http://core.svn.wordpress.org/trunk@31321 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-05 19:38:23 +00:00
Boone Gorges
ca30c725a0
Improve support for ordering `WP_Query` results by postmeta.
...
`WP_Meta_Query` clauses now support a 'name' parameter. When building a
`WP_Query` object, the value of 'orderby' can reference this 'name', so that
it's possible to order by any clause in a meta_query, not just the first one
(as when using 'orderby=meta_value'). This improvement also makes it possible
to order by multiple meta query clauses (or by any other eligible field plus
a meta query clause), using the array syntax for 'orderby' introduced in [29027].
Props Funkatronic, boonebgorges.
Fixes #31045 .
Built from https://develop.svn.wordpress.org/trunk@31312
git-svn-id: http://core.svn.wordpress.org/trunk@31293 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-31 15:48:24 +00:00
Scott Taylor
bc55996a0b
`@param` cleanup:
...
* `get_metadata()` will return literally anything, needs to be `mixed`
* `wp()` and `WP_Query::__construct()` no longer just take a query string
* Clarify a few others
See #30799 .
Built from https://develop.svn.wordpress.org/trunk@31212
git-svn-id: http://core.svn.wordpress.org/trunk@31193 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-16 19:03:23 +00:00
Scott Taylor
60b0cd7943
The keyword `elseif` should be used instead of `else if` so that all control keywords look like single words.
...
This was a mess, is now standardized across the codebase, except for a few 3rd-party libs.
See #30799 .
Built from https://develop.svn.wordpress.org/trunk@31090
git-svn-id: http://core.svn.wordpress.org/trunk@31071 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-01-08 07:05:25 +00:00
Scott Taylor
42f5acd869
Improve some docs for `@param`. Remove an unneeded `$wpdb` global import.
...
See #30799 .
Built from https://develop.svn.wordpress.org/trunk@30979
git-svn-id: http://core.svn.wordpress.org/trunk@30965 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-12-20 20:56:22 +00:00
Boone Gorges
5eeea164ef
In `WP_Meta_Query`, interpret 'value' correctly when used with EXISTS/NOT EXISTS.
...
As in earlier versions, EXISTS with a value is equivalent to '=', while NOT
EXISTS should always ignore 'value'.
Props barrykooij.
Fixes #30681 for trunk.
Built from https://develop.svn.wordpress.org/trunk@30846
git-svn-id: http://core.svn.wordpress.org/trunk@30836 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-12-14 19:01:26 +00:00
Drew Jaynes
23707b1ada
Convert various uses of `(optional)` in core parameter descriptions to use the style prescribed in the inline documentation standards for PHP.
...
The style for marking parameters optional in inline PHP docs is: `@param type $var Optional. Description. Accepts. Default.`, where Accepts can be omitted on a case-by-case basis.
Props coffee2code.
Fixes #30591 .
Built from https://develop.svn.wordpress.org/trunk@30753
git-svn-id: http://core.svn.wordpress.org/trunk@30743 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-12-06 21:24:45 +00:00
John Blackbourn
d28823df33
Revert r30115 which was a breaking change for code which interacts with the return value of `get_metadata()` when no meta key is specified.
...
See #15030
Built from https://develop.svn.wordpress.org/trunk@30701
git-svn-id: http://core.svn.wordpress.org/trunk@30691 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-12-02 03:35:22 +00:00
Scott Taylor
a0df295f5c
Improve various `@param` docs.
...
See #30224 .
Built from https://develop.svn.wordpress.org/trunk@30674
git-svn-id: http://core.svn.wordpress.org/trunk@30664 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-30 23:24:25 +00:00
Drew Jaynes
d6e6dbf086
Docs Formatting: Backtick-escape inline code for all dynamic hook docs in wp-includes/meta.php.
...
Affects DocBlocks for the following hooks:
* `add_{$meta_type}_metadata`
* `add_{$meta_type}_meta`
* `added_{$meta_type}_meta`
* `update_{$meta_type}_metadata`
* `update_{$meta_type}_meta`
* `updated_{$meta_type}_meta`
* `delete_{$meta_type}_metadata`
* `delete_{$meta_type}_meta`
* `deleted_{$meta_type}_meta`
* `get_{$meta_type}_metadata`
* `delete_{$meta_type}meta`
* `deleted_{$meta_type}meta`
* `sanitize_{$meta_type}_meta_{$meta_key}`
See #30552 .
Built from https://develop.svn.wordpress.org/trunk@30655
git-svn-id: http://core.svn.wordpress.org/trunk@30645 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-30 12:03:24 +00:00
Drew Jaynes
f6fd6e09b1
4.1 Docs Audit: Improve inline documentation for various `WP_Meta_Query` methods introduced or modified in 4.1.
...
See #30469 .
Built from https://develop.svn.wordpress.org/trunk@30617
git-svn-id: http://core.svn.wordpress.org/trunk@30607 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-28 12:02:22 +00:00
Scott Taylor
106da1e9e6
In `WP_Meta_Query->get_sql_for_clause()`, the empty initialization of `$where` is dead code and can be removed.
...
See #30224 .
Built from https://develop.svn.wordpress.org/trunk@30163
git-svn-id: http://core.svn.wordpress.org/trunk@30163 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-01 22:03:22 +00:00
Drew Jaynes
a929ac44e1
Relocate hook docs so they directly precede the hook lines moved into foreach statements in [30140].
...
It's necessary for hook docs to directly precede hook lines so the parser can correctly match them up. This change relocates hook docs for `update_{$meta_type}_meta`, `update_postmeta`, `updated_{$meta_type}_meta`, and `updated_postmeta`.
Fixes #11683 .
Built from https://develop.svn.wordpress.org/trunk@30149
git-svn-id: http://core.svn.wordpress.org/trunk@30149 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-01 04:18:23 +00:00
Boone Gorges
c27548265e
Pass all updated meta IDs to filters in `update_metadata()`.
...
Props wonderboymusic.
Fixes #11683 .
Built from https://develop.svn.wordpress.org/trunk@30140
git-svn-id: http://core.svn.wordpress.org/trunk@30140 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-11-01 02:39:24 +00:00
Drew Jaynes
66c47f29bb
Correct references of `@uses $wpdb` in core documentation to use `@global`.
...
See #30191 , [30105].
Fixes #30217 .
Built from https://develop.svn.wordpress.org/trunk@30122
git-svn-id: http://core.svn.wordpress.org/trunk@30122 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-31 17:56:22 +00:00
Boone Gorges
93ae51e801
Unserialize `get_metadata()` results when 'key' is omitted.
...
Props mattkeys, nacin.
Fixes #15030 .
Built from https://develop.svn.wordpress.org/trunk@30115
git-svn-id: http://core.svn.wordpress.org/trunk@30115 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-30 10:25:22 +00:00
Drew Jaynes
f8657d5890
Remove redundant and erroneous `@uses` tag from most core inline documentation.
...
Per our inline documentation standards, no further use of the `@uses` tag is recommended as used and used-by relationships can be derived through other means. This removes most uses of the tag in core documentation, with remaining tags to be converted to `@global` or `@see` as they apply.
Fixes #30191 .
Built from https://develop.svn.wordpress.org/trunk@30105
git-svn-id: http://core.svn.wordpress.org/trunk@30105 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-30 01:05:24 +00:00
Boone Gorges
b137059656
Make orderby=meta_value compatible with meta_query when relation=OR.
...
Passing orderby=meta_value and meta_key=foo to WP_Query should require that
each matched post have a meta value with the key 'foo'. To make this
requirement compatible with meta_query params that have the relation OR, we
nest the meta_query param, and join it using AND to a meta_query clause
generated from the meta_key/meta_compare/meta_type query vars.
Fixes #25538 .
Built from https://develop.svn.wordpress.org/trunk@29964
git-svn-id: http://core.svn.wordpress.org/trunk@29711 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-19 18:54:19 +00:00
Boone Gorges
09e1239ad6
Remove redundant table alias check in WP_Meta_Query.
...
Also adds documentation for 'meta_query_find_compatible_table_alias' filter.
See #24093 .
Built from https://develop.svn.wordpress.org/trunk@29953
git-svn-id: http://core.svn.wordpress.org/trunk@29701 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-18 02:22:19 +00:00
Boone Gorges
4ca2996eff
Bail from cleaning meta query clause when it's not an array.
...
Later isset() checks on string values were causing notices on PHP < 5.4.
Props jorbin.
See #29642 .
Built from https://develop.svn.wordpress.org/trunk@29941
git-svn-id: http://core.svn.wordpress.org/trunk@29692 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-17 20:25:19 +00:00
Boone Gorges
9345e9ffa5
Overhaul SQL generating logic in WP_Meta_Query to avoid unnecessary table joins.
...
The logic used to generate clause SQL in `WP_Meta_Query` is somewhat arcane,
stemming mostly from an ongoing effort to eliminate costly table joins when
they are not necessary. By systematizing the process of looking for shareable
joins - as was done in `WP_Tax_Query` [29902] - it becomes possible to simplify
the construction of SQL queries in `get_sql_for_clause()`. Moreover, the
simplified logic is actually considerably better at identifying shareable
joins, such that certain uses of `WP_Meta_Query` will see joins reduced by 50%
or more.
Includes integration tests for a representative cross-section of the query
clause combinations that result in shared table aliases.
Props boonebgorges, sc0ttkclark.
See #24093 .
Built from https://develop.svn.wordpress.org/trunk@29940
git-svn-id: http://core.svn.wordpress.org/trunk@29691 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-17 20:21:18 +00:00
Boone Gorges
d64b1ed955
Use only LEFT JOINs when a meta_query contains a NOT EXISTS clause.
...
Mixing LEFT and INNER JOIN in these cases results in posts with no metadata
being improperly excluded from results.
Props johnrom.
Fixes #29062 .
Built from https://develop.svn.wordpress.org/trunk@29890
git-svn-id: http://core.svn.wordpress.org/trunk@29646 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-14 02:17:18 +00:00
Boone Gorges
d1d9915f07
Introduce support for nested queries in WP_Meta_Query.
...
Previously, meta query arguments could be joined by a single AND or OR relation.
Now, these queries can be arbitrarily nested, allowing clauses to be linked
together with multiple relations.
Adds unit tests for the new nesting syntax. Modifies a few existing unit tests
that were overly specific for the old SQL syntax. Backward compatibility with
existing syntax is fully maintained.
Props boonebgorges, DrewAPicture.
See #29642 .
Built from https://develop.svn.wordpress.org/trunk@29887
git-svn-id: http://core.svn.wordpress.org/trunk@29643 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-13 22:03:18 +00:00
Andrew Nacin
9cbad29eb8
Meta Query: Revert [28659] (and [28665]) due to regressions.
...
props boonebgorges.
fixes #29285 . see #25538 .
Built from https://develop.svn.wordpress.org/trunk@29650
git-svn-id: http://core.svn.wordpress.org/trunk@29424 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-08-27 20:23:16 +00:00
Scott Taylor
eb66e40790
After [29339] and [29341], add more unit tests and less ambiguous type-checking before bailing in meta-related functions that expect a numeric value for `$object_id`.
...
Props SergeyBiryukov.
Fixes #28315 .
Built from https://develop.svn.wordpress.org/trunk@29421
git-svn-id: http://core.svn.wordpress.org/trunk@29199 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-08-06 22:08:16 +00:00
Scott Taylor
0d2a5c437e
Bail on `update_user_meta()` when `$object_id` is non-numeric.
...
Adds unit test.
Props jacklenox, wonderboymusic.
Fixes #28315 .
Built from https://develop.svn.wordpress.org/trunk@29339
git-svn-id: http://core.svn.wordpress.org/trunk@29119 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-08-01 17:10:15 +00:00
Scott Taylor
05eeb16e30
Replace all uses of `like_escape()` with `$wpdb->esc_like()`.
...
Props miqrogroove.
See #10041 .
Built from https://develop.svn.wordpress.org/trunk@28712
git-svn-id: http://core.svn.wordpress.org/trunk@28528 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-06-10 00:44:15 +00:00
Scott Taylor
38819880ec
Wrap individual meta query `WHERE` clases in parens, missed in `28659`.
...
Props boonebgorges.
Fixes #25538 .
Built from https://develop.svn.wordpress.org/trunk@28665
git-svn-id: http://core.svn.wordpress.org/trunk@28483 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-06-04 18:21:15 +00:00
Scott Taylor
a7c2180672
Fix SQL generation when `meta_query` has an `'relation' => 'OR'` for its queries and wants to `'orderby' => 'meta_value'`.
...
Adds unit test.
Props jackreichert.
Fixes #25538 .
Built from https://develop.svn.wordpress.org/trunk@28659
git-svn-id: http://core.svn.wordpress.org/trunk@28477 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-06-04 05:48:14 +00:00
Scott Taylor
b539c1cd76
Add missing access modifiers to methods in `WP_Meta_Query`.
...
See #27881 , #22234 .
Built from https://develop.svn.wordpress.org/trunk@28522
git-svn-id: http://core.svn.wordpress.org/trunk@28348 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-19 06:35:14 +00:00
Scott Taylor
b2b25f7326
In `update_metadata_by_mid()`, `$original_value` is unused.
...
See #27882 .
Built from https://develop.svn.wordpress.org/trunk@28328
git-svn-id: http://core.svn.wordpress.org/trunk@28156 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-05-06 21:29:26 +00:00
Drew Jaynes
a10a55cf87
Fix a typo in the `deleted_{$meta_type}_meta` hook description.
...
Props aliso.
Fixes #25826 .
Built from https://develop.svn.wordpress.org/trunk@27723
git-svn-id: http://core.svn.wordpress.org/trunk@27560 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-25 20:34:15 +00:00
Drew Jaynes
97958a3c16
Inline documentation for hooks in wp-includes/meta.php.
...
Props raamdev and kpdesign.
Fixes #25826 .
Built from https://develop.svn.wordpress.org/trunk@27698
git-svn-id: http://core.svn.wordpress.org/trunk@27537 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-25 08:56:14 +00:00
Scott Taylor
0115ba2f30
When using `meta_query` in a `WP_Query`, passing `NOT EXISTS` or `''` to `compare` should not require `value` to be set. The resulting SQL should then produce the appropriate `OR` clause for existence of non-existence after passing the query to the `$key_only_queries` stack internally.
...
Adds unit tests.
Props chrisguitarguy, for the original patch.
Fixes #23268 .
Built from https://develop.svn.wordpress.org/trunk@27689
git-svn-id: http://core.svn.wordpress.org/trunk@27528 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-24 19:57:15 +00:00
Andrew Nacin
0e2a70e8f5
Return false from metadata_exists() if the get_$type_metadata filter returns a false value.
...
props xknown.
fixes #22746 .
Built from https://develop.svn.wordpress.org/trunk@27562
git-svn-id: http://core.svn.wordpress.org/trunk@27405 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-03-17 19:40:16 +00:00
Sergey Biryukov
ab8847316c
Correct return values for update_metadata() and related functions.
...
fixes #21864 .
Built from https://develop.svn.wordpress.org/trunk@27191
git-svn-id: http://core.svn.wordpress.org/trunk@27050 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-02-18 21:36:14 +00:00
Scott Taylor
05b22769e9
In `update_meta_cache()`, ensure that meta is always stored in the same order. Removes an unnecessary `$wpdb->prepare` statement. Adds unit test.
...
Props mattheu.
Fixes #25511 .
Built from https://develop.svn.wordpress.org/trunk@26307
git-svn-id: http://core.svn.wordpress.org/trunk@26211 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-21 19:31:10 +00:00
Scott Taylor
53a2c3a181
Produce proper `CAST` for `DECIMAL` and `NUMERIC` in Meta Query. Adds a bunch of unit tests.
...
Props ericlewis.
Fixes #23033 .
Built from https://develop.svn.wordpress.org/trunk@26055
git-svn-id: http://core.svn.wordpress.org/trunk@25980 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-08 23:11:08 +00:00
Scott Taylor
5129b9d0ff
Respect the `compare` operator value in `meta_query` when `value` evaluates to `null`. Adds Unit Test.
...
Props bradyvercher, gradyetc.
Fixes #22967 .
Built from https://develop.svn.wordpress.org/trunk@26053
git-svn-id: http://core.svn.wordpress.org/trunk@25978 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-11-08 22:52:08 +00:00
Andrew Nacin
4ea86c6b47
Return false in update_metadata() and update_metadata_by_mid() when the DB query fails.
...
props leewillis77.
fixes #24933 .
Built from https://develop.svn.wordpress.org/trunk@25583
git-svn-id: http://core.svn.wordpress.org/trunk@25500 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2013-09-23 20:31:09 +00:00