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 / Loader.php
codepress-admin-columns / classes Last commit date
Acf 2 days ago Admin 2 days ago Ajax 2 days ago ApplyFilter 2 days ago Asset 2 days ago Capabilities 2 days ago Check 2 days ago Collection 2 days ago Column 2 days ago ColumnFactories 2 days ago ColumnFactory 2 days ago ColumnIterator 2 days ago ColumnRepository 2 days ago ColumnSize 2 days ago DI 2 days ago DefaultColumnHandler 2 days ago Deprecated 2 days ago Entity 2 days ago Exception 2 days ago Expression 2 days ago Form 2 days ago Formatter 2 days ago Helper 2 days ago Integration 2 days ago ListScreenRepository 2 days ago ListTable 2 days ago Message 2 days ago Meta 2 days ago Nonce 2 days ago Notice 2 days ago Plugin 2 days ago Preferences 2 days ago Promo 2 days ago Request 2 days ago RequestHandler 2 days ago Response 2 days ago Sanitize 2 days ago Service 2 days ago Setting 2 days ago Settings 2 days ago Storage 2 days ago Table 2 days ago TableIdsFactory 2 days ago TableScreen 2 days ago TableScreenFactory 2 days ago ThirdParty 2 days ago Type 2 days ago Value 2 days ago View 2 days ago Acf.php 2 days ago AdminColumns.php 2 days ago ArrayIterator.php 2 days ago Capabilities.php 2 days ago Collection.php 2 days ago CollectionFormatter.php 2 days ago Column.php 2 days ago ColumnCollection.php 2 days ago ColumnFactoryCollectionFactory.php 2 days ago ColumnFactoryDefinitionCollection.php 2 days ago ColumnGroups.php 2 days ago ColumnIterator.php 2 days ago ColumnNamesTrait.php 2 days ago ColumnRepository.php 2 days ago ColumnTypeRepository.php 2 days ago Config.php 2 days ago DateFormats.php 2 days ago DefaultColumnHandler.php 2 days ago Expirable.php 2 days ago Formatter.php 2 days ago FormatterCollection.php 2 days ago Helper.php 2 days ago ListScreen.php 2 days ago ListScreenCollection.php 2 days ago ListScreenRepository.php 2 days ago ListScreenRepositoryWritable.php 2 days ago ListTable.php 2 days ago ListTableFactory.php 2 days ago Loader.php 2 days ago Message.php 2 days ago MetaType.php 2 days ago Middleware.php 2 days ago OpCacheInvalidateTrait.php 2 days ago PluginActionLinks.php 2 days ago PluginActionUpgrade.php 2 days ago PostType.php 2 days ago PostTypeRepository.php 2 days ago Registerable.php 2 days ago Registry.php 2 days ago Renderable.php 2 days ago Request.php 2 days ago RequestAjaxHandler.php 2 days ago RequestAjaxHandlers.php 2 days ago RequestAjaxParser.php 2 days ago RequestHandler.php 2 days ago RequestHandlerFactory.php 2 days ago Screen.php 2 days ago Services.php 2 days ago TableIdsFactory.php 2 days ago TableScreen.php 2 days ago TableScreenFactory.php 2 days ago Taxonomy.php 2 days ago Transient.php 2 days ago TypedArrayIterator.php 2 days ago View.php 2 days ago WooCommerce.php 2 days ago WpListTableFactory.php 2 days ago
Loader.php
249 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC;
6
7 use AC;
8 use AC\Admin\MenuGroupFactory;
9 use AC\Admin\MenuGroupFactory\DefaultGroups;
10 use AC\Admin\PageFactory;
11 use AC\Admin\PageRequestHandler;
12 use AC\Admin\PageRequestHandlers;
13 use AC\ListScreenRepository\Storage;
14 use AC\Plugin\SetupFactory;
15 use AC\RequestHandler\Ajax;
16 use AC\Service\View;
17 use AC\Table\ManageHeading;
18 use AC\Table\ManageValue\ListScreenServiceFactory;
19 use AC\Table\SaveHeading;
20 use AC\Value\Extended\MediaPreview;
21 use AC\Value\Extended\Posts;
22 use AC\Value\ExtendedValueRegistry;
23
24 class Loader
25 {
26 private bool $is_pro_active;
27
28 public function __construct(AC\DI\Container $container, bool $is_pro_active = false)
29 {
30 $this->is_pro_active = $is_pro_active;
31
32 $this->load($container);
33 }
34
35 protected function load(AC\DI\Container $container): void
36 {
37 $this->register_factories($container);
38 $this->register_page_handlers($container);
39 $this->register_services($container);
40
41 // Setup Registry for API
42 Registry::set(Storage::class, static function () use ($container) {
43 return $container->get(Storage::class);
44 });
45
46 $plugin = $container->get(AdminColumns::class);
47
48 /**
49 * @param AC\DI\Container $container A PSR-11 dependency injection container.
50 * @param AdminColumns $plugin The plugin instance.
51 */
52 do_action('ac/init', $container, $plugin);
53 }
54
55 private function register_factories(AC\DI\Container $container): void
56 {
57 foreach ($this->get_table_screen_factory_classes() as $class) {
58 TableScreenFactory\Aggregate::add($container->get($class));
59 }
60
61 foreach ($this->get_column_factory_classes() as $class) {
62 ColumnFactories\Aggregate::add($container->get($class));
63 }
64
65 ExtendedValueRegistry::add($container->get(MediaPreview::class));
66 ExtendedValueRegistry::add($container->get(Posts::class));
67
68 MenuGroupFactory\Aggregate::add($container->get(DefaultGroups::class));
69
70 foreach ($this->get_menu_group_factory_classes() as $class) {
71 MenuGroupFactory\Aggregate::add(new $class(), 5);
72 }
73 TableIdsFactory\Aggregate::add($container->get(TableIdsFactory\BaseFactory::class));
74 TableScreen\TableRowsFactory\Aggregate::add(new TableScreen\TableRowsFactory\BaseFactory());
75
76 foreach ($this->get_manage_value_factory_classes() as $class) {
77 Service\ManageValue::add(
78 $container->make(ListScreenServiceFactory::class, ['factory' => $container->get($class)])
79 );
80 }
81
82 Service\ManageHeadings::add($container->get(ManageHeading\WpListTableFactory::class));
83 Service\SaveHeadings::add($container->get(SaveHeading\WpListTableFactory::class));
84 }
85
86 private function get_table_screen_factory_classes(): array
87 {
88 return [
89 TableScreenFactory\CommentFactory::class,
90 TableScreenFactory\MediaFactory::class,
91 TableScreenFactory\PostFactory::class,
92 TableScreenFactory\UserFactory::class,
93 ];
94 }
95
96 private function get_column_factory_classes(): array
97 {
98 $classes = [
99 ColumnFactories\OriginalFactory::class,
100 ColumnFactories\PostFactory::class,
101 ColumnFactories\CommentFactory::class,
102 ColumnFactories\MediaFactory::class,
103 ColumnFactories\UserFactory::class,
104 ];
105
106 if (! $this->is_pro_active) {
107 $classes[] = ColumnFactories\ThirdPartyFactory::class;
108 $classes[] = ColumnFactories\IntegrationFactory::class;
109 }
110
111 return $classes;
112 }
113
114 private function get_manage_value_factory_classes(): array
115 {
116 return [
117 TableScreen\ManageValue\PostServiceFactory::class,
118 TableScreen\ManageValue\UserServiceFactory::class,
119 TableScreen\ManageValue\MediaServiceFactory::class,
120 TableScreen\ManageValue\CommentServiceFactory::class,
121 ];
122 }
123
124 /**
125 * @return array<class-string<MenuGroupFactory>>
126 */
127 private function get_menu_group_factory_classes(): array
128 {
129 return [
130 MenuGroupFactory\WooCommerceGroups::class,
131 MenuGroupFactory\BuddyPressGroups::class,
132 MenuGroupFactory\EventsCalendarGroups::class,
133 MenuGroupFactory\GravityFormsGroups::class,
134 MenuGroupFactory\JetEngineGroups::class,
135 MenuGroupFactory\MediaLibraryAssistantGroups::class,
136 MenuGroupFactory\MetaBoxGroups::class,
137 MenuGroupFactory\BeaverBuilderGroups::class,
138 ];
139 }
140
141 private function register_page_handlers(AC\DI\Container $container): void
142 {
143 $page_handler = new PageRequestHandler();
144 $page_handler
145 ->add('columns', $container->get(PageFactory\Columns::class))
146 ->add('settings', $container->get(PageFactory\Settings::class))
147 ->add('addons', $container->get(PageFactory\Addons::class))
148 ->add('help', $container->get(PageFactory\Help::class));
149
150 PageRequestHandlers::add_handler($page_handler);
151 }
152
153 private function get_ajax_handler_classes(): array
154 {
155 return [
156 'ac-list-screen-settings' => Ajax\ListScreenSettings::class,
157 'ac-list-screen-save' => Ajax\ListScreenSave::class,
158 'ac-list-screen-add-column' => Ajax\ListScreenAddColumn::class,
159 'ac-number-format' => Ajax\NumberFormat::class,
160 'ac-list-screen-default-columns' => Ajax\ListScreenOriginalColumns::class,
161 'ac-list-screen-select-column' => Ajax\ListScreenSelectColumn::class,
162 'ac-editor-menu-status' => Ajax\EditorMenuStatus::class,
163 'ac-editor-menu-favorites' => Ajax\EditorMenuFavorites::class,
164 'ac-custom-field-keys' => Ajax\CustomFieldKeys::class,
165 'ac-get-network-post-statuses' => Ajax\NetworkPostStati::class,
166 'ac-admin-screen-options' => Ajax\ScreenOptions::class,
167 'ac-extended-value' => Ajax\ExtendedValue::class,
168 'ac-persist-admin-general-option' => Ajax\AdminGeneralOptionsPersist::class,
169 'ac-get-admin-general-option' => Ajax\AdminGeneralOptionsGet::class,
170 'ac-restore-settings' => Ajax\RestoreSettingsRequest::class,
171 'ac-integration-toggle' => Ajax\IntegrationToggle::class,
172 'ac-integrations' => Ajax\Integrations::class,
173 'ac-list-screen-delete' => Ajax\ListScreenDelete::class,
174 'ac-acf-add-column' => AC\Acf\RequestHandler\FieldSettingsAddColumn::class,
175 ];
176 }
177
178 private function get_service_classes(): array
179 {
180 $classes = [
181 PluginActionLinks::class,
182 Screen::class,
183 Admin\Admin::class,
184 Admin\Scripts::class,
185 Admin\Notice\DatabaseMissing::class,
186 ThirdParty\AdvancedCustomFields::class,
187 ThirdParty\NinjaForms::class,
188 ThirdParty\MediaLibraryAssistant\MediaLibraryAssistant::class,
189 ThirdParty\WooCommerce::class,
190 ThirdParty\WPML::class,
191 Capabilities\Manage::class,
192 Service\QuickEdit::class,
193 Service\CurrentTable::class,
194 Service\CommonAssets::class,
195 Service\Colors::class,
196 Service\TableRows::class,
197 Service\ManageValue::class,
198 Service\ManageHeadings::class,
199 Service\SaveHeadings::class,
200 Service\AdminBarEditColumns::class,
201 Service\PluginUpdate::class,
202 Service\Tooltips::class,
203 AC\Acf\Service\DateSaveFormat::class,
204 AC\Acf\FieldGroupCache::class,
205 ];
206
207 if (! $this->is_pro_active) {
208 $classes[] = Service\PromoChecks::class;
209 $classes[] = Service\NoticeChecks::class;
210 $classes[] = PluginActionUpgrade::class;
211 $classes[] = AC\Acf\Service\FieldSettings::class;
212 }
213
214 return $classes;
215 }
216
217 private function register_services(AC\DI\Container $container): void
218 {
219 $services = [];
220
221 foreach ($this->get_service_classes() as $class) {
222 $services[] = $container->get($class);
223 }
224
225 $plugin = $container->get(AdminColumns::class);
226 $setup_factory = $container->get(SetupFactory\AdminColumns::class);
227
228 $services[] = new View($plugin->get_location());
229 $services[] = new Service\Setup($setup_factory->create(SetupFactory::SITE));
230
231 if ($plugin->is_network_active()) {
232 $services[] = new Service\Setup($setup_factory->create(SetupFactory::NETWORK));
233 }
234
235 $request_ajax_handlers = new RequestAjaxHandlers();
236
237 foreach ($this->get_ajax_handler_classes() as $key => $class) {
238 $request_ajax_handlers->add($key, $container->get($class));
239 }
240
241 $services[] = new RequestAjaxParser($request_ajax_handlers);
242
243 foreach ($services as $service) {
244 $service->register();
245 }
246 }
247
248 }
249