PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.1.4
Admin Columns v7.1.4
7.1.4 7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Table / InlineStyle / ColumnSize.php
codepress-admin-columns / classes / Table / InlineStyle Last commit date
ColumnSize.php 2 days ago
ColumnSize.php
84 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Table\InlineStyle;
6
7 use AC\ColumnSize\ListStorage;
8 use AC\ColumnSize\UserStorage;
9 use AC\ListScreen;
10 use AC\Type\ColumnId;
11 use AC\Type\ColumnWidth;
12 use AC\Type\TableId;
13 use AC\View;
14
15 class ColumnSize
16 {
17 private ListStorage $list_storage;
18
19 private UserStorage $user_storage;
20
21 public function __construct(ListStorage $list_storage, UserStorage $user_storage)
22 {
23 $this->list_storage = $list_storage;
24 $this->user_storage = $user_storage;
25 }
26
27 public function render(ListScreen $list_screen): string
28 {
29 // auto-width is not supported with wrapping
30 if ('auto' === $list_screen->get_preference('wrapping')) {
31 return '';
32 }
33
34 $html = '';
35 $table_id = $list_screen->get_table_id();
36
37 foreach ($list_screen->get_columns() as $column) {
38 $column_id = $column->get_id();
39 $list_width = $this->list_storage->get($column);
40 $user_width = $this->user_storage->get($list_screen->get_id(), $column_id);
41
42 $html .= $this->render_base_style($table_id, $column_id, $list_width);
43
44 if ($user_width) {
45 $html .= $this->render_user_style($table_id, $column_id, $user_width);
46 }
47 }
48
49 return $html;
50 }
51
52 private function render_base_style(TableId $table_id, ColumnId $column_id, ?ColumnWidth $list_width): string
53 {
54 $view = new View([
55 'table_id' => (string)$table_id,
56 'column_id' => (string)$column_id,
57 'list_width' => $this->format_width($list_width),
58 ]);
59
60 return $view->set_template('table/column-size')->render();
61 }
62
63 private function render_user_style(TableId $table_id, ColumnId $column_id, ColumnWidth $user_width): string
64 {
65 $view = new View([
66 'table_id' => (string)$table_id,
67 'column_id' => (string)$column_id,
68 'user_width' => $this->format_width($user_width),
69 ]);
70
71 return $view->set_template('table/column-size-user')->render();
72 }
73
74 private function format_width(?ColumnWidth $width): ?string
75 {
76 if (! $width) {
77 return null;
78 }
79
80 return $width->get_value() . $width->get_unit();
81 }
82
83 }
84