one-click-accessibility/includes/manager.php
VasylD a016c8424f
[APP-2207] add dashboard widget (#436)
* [APP-2207] add dashboard widget

* [APP-2207] add dashboard widget

* Update assets/dev/css/ea11y-scanner-admin.scss

Co-authored-by: Rami Yushuvaev <92088692+rami-elementor@users.noreply.github.com>

* Update assets/dev/css/widgets/_ally_dashboard_widget.scss

Co-authored-by: Rami Yushuvaev <92088692+rami-elementor@users.noreply.github.com>

* Update assets/dev/css/widgets/_ally_dashboard_widget.scss

Co-authored-by: Rami Yushuvaev <92088692+rami-elementor@users.noreply.github.com>

* Update assets/dev/css/widgets/_ally_dashboard_widget.scss

Co-authored-by: Rami Yushuvaev <92088692+rami-elementor@users.noreply.github.com>

* [APP-0000] add change log items

* Update modules/dashboard/widgets/ally-dashboard-widget.php

Co-authored-by: Rami Yushuvaev <92088692+rami-elementor@users.noreply.github.com>

* Release/v4.0.2

---------

Co-authored-by: Rami Yushuvaev <92088692+rami-elementor@users.noreply.github.com>
2026-01-27 11:04:13 +01:00

70 lines
1.3 KiB
PHP

<?php
namespace EA11y;
use EA11y\Classes\Module_Base;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
final class Manager {
/**
* @var Module_Base[]
*/
private array $modules = [];
public static function get_module_list(): array {
return [
'Legacy',
'Connect',
'Settings',
'Widget',
'Core',
'Analytics',
'Remediation',
'Scanner',
'Deactivation',
'Reviews',
'Dashboard',
];
}
/**
* @codeCoverageIgnore
*/
public function __construct() {
$modules = self::get_module_list();
foreach ( $modules as $module_name ) {
$class_name = str_replace( '-', ' ', $module_name );
$class_name = str_replace( ' ', '', ucwords( $class_name ) );
$class_name = __NAMESPACE__ . '\\Modules\\' . $class_name . '\Module';
/** @var Module_Base $class_name */
if ( method_exists( $class_name, 'register_required_routes' ) ) {
$class_name::register_required_routes();
}
if ( $class_name::is_active() ) {
$this->modules[ $module_name ] = $class_name::instance();
}
}
}
/**
* @param string $module_name
*
* @return Module_Base|Module_Base[]
*/
public function get_modules( string $module_name ) {
if ( $module_name ) {
if ( isset( $this->modules[ $module_name ] ) ) {
return $this->modules[ $module_name ];
}
return null;
}
return $this->modules;
}
}