Table.php
2.31 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?php
namespace ACP\ConditionalFormat\Asset;
use AC\Asset\Location\Absolute;
use AC\Asset\Script;
use AC\Type\Url\Documentation;
use ACP\ConditionalFormat\Operators;
use ACP\ConditionalFormat\RuleCollection;
final class Table extends Script {
/**
* @var Operators
*/
private $operators;
/**
* @var RuleCollection
*/
private $rules;
/**
* @var array
*/
private $columns;
public function __construct( Absolute $location, Operators $operators, RuleCollection $rules, array $columns ) {
parent::__construct( 'acp-cf-table', $location );
$this->operators = $operators;
$this->rules = $rules;
$this->columns = $columns;
}
public function register(): void {
parent::register();
$rules = [];
foreach ( $this->rules as $rule ) {
$rules[] = [
'column_name' => $rule->get_column_name(),
'format' => (string) $rule->get_format(),
'operator' => $rule->get_operator(),
'fact' => $rule->has_fact() ? $rule->get_fact() : null,
];
}
$this->add_inline_variable( 'acp_cf_settings', [
'operators' => array_values( $this->operators->get_operators() ),
'rules' => $rules,
'columns' => $this->columns,
] );
wp_localize_script( $this->get_handle(), 'acp_cf_settings_i18n', [
'between_and' => _x( 'and', 'between_operator', 'codepress-admin-columns' ),
'save_apply' => __( 'Save & Apply', 'codepress-admin-columns' ),
'cancel' => __( 'Cancel', 'codepress-admin-columns' ),
'add_rule' => __( 'Add Rule', 'codepress-admin-columns' ),
'add_another_condition' => __( 'Add condition', 'codepress-admin-columns' ),
'conditional_formatting' => __( 'Conditional Formatting', 'codepress-admin-columns' ),
'formatting' => __( 'Conditional Formatting', 'codepress-admin-columns' ),
'formatting_style' => __( 'Formatting Style', 'codepress-admin-columns' ),
'documentation_link' => $this->get_documentation_link(),
] );
}
private function get_documentation_link(): string {
$url = Documentation::create_with_path( Documentation::ARTICLE_CONDITIONAL_FORMATTING );
return sprintf(
'<a href="%s" class="ac-external" target="_blank">%s</a><span class="dashicons dashicons-external"></span>',
$url->get_url(),
__( 'documentation', 'codepress-admin-columns' )
);
}
}