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 1 day ago Admin 1 day ago Ajax 1 day ago ApplyFilter 1 day ago Asset 1 day ago Capabilities 1 day ago Check 1 day ago Collection 1 day ago Column 1 day ago ColumnFactories 1 day ago ColumnFactory 1 day ago ColumnIterator 1 day ago ColumnRepository 1 day ago ColumnSize 1 day ago DI 1 day ago DefaultColumnHandler 1 day ago Deprecated 1 day ago Entity 1 day ago Exception 1 day ago Expression 1 day ago Form 1 day ago Formatter 1 day ago Helper 1 day ago Integration 1 day ago ListScreenRepository 1 day ago ListTable 1 day ago Message 1 day ago Meta 1 day ago Nonce 1 day ago Notice 1 day ago Plugin 1 day ago Preferences 1 day ago Promo 1 day ago Request 1 day ago RequestHandler 1 day ago Response 1 day ago Sanitize 1 day ago Service 1 day ago Setting 1 day ago Settings 1 day ago Storage 1 day ago Table 1 day ago TableIdsFactory 1 day ago TableScreen 1 day ago TableScreenFactory 1 day ago ThirdParty 1 day ago Type 1 day ago Value 1 day ago View 1 day ago Acf.php 1 day ago AdminColumns.php 1 day ago ArrayIterator.php 1 day ago Capabilities.php 1 day ago Collection.php 1 day ago CollectionFormatter.php 1 day ago Column.php 1 day ago ColumnCollection.php 1 day ago ColumnFactoryCollectionFactory.php 1 day ago ColumnFactoryDefinitionCollection.php 1 day ago ColumnGroups.php 1 day ago ColumnIterator.php 1 day ago ColumnNamesTrait.php 1 day ago ColumnRepository.php 1 day ago ColumnTypeRepository.php 1 day ago Config.php 1 day ago DateFormats.php 1 day ago DefaultColumnHandler.php 1 day ago Expirable.php 1 day ago Formatter.php 1 day ago FormatterCollection.php 1 day ago Helper.php 1 day ago ListScreen.php 1 day ago ListScreenCollection.php 1 day ago ListScreenRepository.php 1 day ago ListScreenRepositoryWritable.php 1 day ago ListTable.php 1 day ago ListTableFactory.php 1 day ago Loader.php 1 day ago Message.php 1 day ago MetaType.php 1 day ago Middleware.php 1 day ago OpCacheInvalidateTrait.php 1 day ago PluginActionLinks.php 1 day ago PluginActionUpgrade.php 1 day ago PostType.php 1 day ago PostTypeRepository.php 1 day ago Registerable.php 1 day ago Registry.php 1 day ago Renderable.php 1 day ago Request.php 1 day ago RequestAjaxHandler.php 1 day ago RequestAjaxHandlers.php 1 day ago RequestAjaxParser.php 1 day ago RequestHandler.php 1 day ago RequestHandlerFactory.php 1 day ago Screen.php 1 day ago Services.php 1 day ago TableIdsFactory.php 1 day ago TableScreen.php 1 day ago TableScreenFactory.php 1 day ago Taxonomy.php 1 day ago Transient.php 1 day ago TypedArrayIterator.php 1 day ago View.php 1 day ago WooCommerce.php 1 day ago WpListTableFactory.php 1 day 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