Date.php
1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
namespace ACA\MetaBox\Search\Factory;
use ACA\MetaBox\Column;
use ACA\MetaBox\Search;
use ACP;
use ACP\Search\Comparison;
final class Date extends Search\Factory
implements Search\CloneableFactory, Search\TableStorageFactory {
public function create_table_storage( Column $column, Comparison $default ) {
switch ( true ) {
case $default instanceof ACP\Search\Comparison\Meta\DateTime\Timestamp:
return new Search\Comparison\Table\Timestamp( $default->get_operators(), $column->get_storage_table(), $column->get_meta_key() );
default:
return new Search\Comparison\Table\DateIso( $default->get_operators(), $column->get_storage_table(), $column->get_meta_key() );
}
}
public function create_default( Column $column ) {
/** @var Column\Date $column */
switch ( $column->get_saved_format() ) {
case 'U':
return new ACP\Search\Comparison\Meta\DateTime\Timestamp( $column->get_meta_key(), $column->get_meta_type() );
case 'Y-m-d':
case 'Y-m-d H:i':
case 'Y-m-d H:i:s':
return new ACP\Search\Comparison\Meta\DateTime\ISO( $column->get_meta_key(), $column->get_meta_type() );
default:
return false;
}
}
public function create_cloneable( Column $column ) {
return false;
}
}