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 / Admin / PageFactory / Columns.php
codepress-admin-columns / classes / Admin / PageFactory Last commit date
Addons.php 3 days ago Columns.php 3 days ago Help.php 3 days ago Settings.php 3 days ago
Columns.php
118 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Admin\PageFactory;
6
7 use AC\Admin;
8 use AC\Admin\Banner\BannerContextResolver;
9 use AC\Admin\MenuFactoryInterface;
10 use AC\Admin\Page;
11 use AC\Admin\PageFactoryInterface;
12 use AC\Admin\Preference;
13 use AC\Admin\View;
14 use AC\AdminColumns;
15 use AC\ColumnGroups;
16 use AC\Integration\IntegrationRepository;
17 use AC\Promo\PromoRepository;
18 use AC\Request;
19 use AC\Storage\Repository\EditorFavorites;
20 use AC\Table\TableScreenRepository;
21 use AC\TableScreen;
22 use AC\Type\ListScreenId;
23 use InvalidArgumentException;
24
25 final class Columns implements PageFactoryInterface
26 {
27 private bool $is_pro_active;
28
29 private AdminColumns $plugin;
30
31 private MenuFactoryInterface $menu_factory;
32
33 private Admin\UninitializedScreens $uninitialized_screens;
34
35 private Admin\MenuListFactory $menu_list_factory;
36
37 private TableScreenRepository $table_screen_repository;
38
39 private EditorFavorites $favorite_repository;
40
41 private ColumnGroups $column_groups;
42
43 private PromoRepository $promos;
44
45 private IntegrationRepository $integration_repository;
46
47 private View\MenuFactory $view_menu_factory;
48
49 private BannerContextResolver $banner_context_resolver;
50
51 public function __construct(
52 bool $is_pro_active,
53 AdminColumns $plugin,
54 MenuFactoryInterface $menu_factory,
55 Admin\UninitializedScreens $uninitialized_screens,
56 Admin\MenuListFactory $menu_list_factory,
57 TableScreenRepository $table_screen_repository,
58 EditorFavorites $favorite_repository,
59 ColumnGroups $column_groups,
60 PromoRepository $promos,
61 IntegrationRepository $integration_repository,
62 View\MenuFactory $view_menu_factory,
63 BannerContextResolver $banner_context_resolver
64 ) {
65 $this->is_pro_active = $is_pro_active;
66 $this->plugin = $plugin;
67 $this->menu_factory = $menu_factory;
68 $this->uninitialized_screens = $uninitialized_screens;
69 $this->menu_list_factory = $menu_list_factory;
70 $this->table_screen_repository = $table_screen_repository;
71 $this->favorite_repository = $favorite_repository;
72 $this->column_groups = $column_groups;
73 $this->promos = $promos;
74 $this->integration_repository = $integration_repository;
75 $this->view_menu_factory = $view_menu_factory;
76 $this->banner_context_resolver = $banner_context_resolver;
77 }
78
79 public function create(): Page\Columns
80 {
81 $request = new Request();
82
83 $request->add_middleware(
84 new Request\Middleware\TableScreenAdmin(
85 new Preference\EditorPreference(),
86 $this->table_screen_repository->find_all_site()
87 )
88 );
89
90 $table_screen = $request->get('table_screen');
91
92 if (! $table_screen instanceof TableScreen) {
93 throw new InvalidArgumentException('Invalid screen.');
94 }
95
96 $list_id = ListScreenId::is_valid_id($request->get('layout_id'))
97 ? new ListScreenId($request->get('layout_id'))
98 : null;
99
100 return new Page\Columns(
101 $this->plugin,
102 $this->uninitialized_screens->find_all_site(),
103 $this->view_menu_factory->create($this->menu_factory, 'columns'),
104 $table_screen,
105 $this->menu_list_factory->create($this->table_screen_repository->find_all_site()),
106 $this->favorite_repository,
107 $this->table_screen_repository,
108 $this->column_groups,
109 $this->promos,
110 $this->integration_repository,
111 $this->is_pro_active,
112 $this->banner_context_resolver,
113 $list_id
114 );
115 }
116
117 }
118