Files
roi-theme/wp-content/plugins/advanced-ads/includes/load_modules.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

77 lines
2.1 KiB
PHP
Executable File

<?php // phpcs:ignore WordPress.Files.FileName.NotHyphenatedLowercase
use AdvancedAds\Autoloader;
/**
* Class Advanced_Ads_ModuleLoader
*
* phpcs:disable WordPress.NamingConventions.ValidVariableName.VariableNotSnakeCase
* phpcs:disable WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid
*/
final class Advanced_Ads_ModuleLoader {
/**
* Hold modules instances.
*
* @var array
*/
protected static $modules = [];
/**
* Get the Composer autoloader.
*
* @deprecated 1.46.1
*
* @return mixed
*/
public static function getLoader() {
_deprecated_function( __METHOD__, '1.46.1', '\AdvancedAds\Autoloader::get()->get_autoloader()' );
return Autoloader::get()->get_autoloader();
}
/**
* Module loader options:
* - array 'disabled': Pretty name by (module) dirname
*
* @param string $path Path to modules.
* @param array $options Optional. Module loader options.
*/
public static function loadModules( $path, $options = [] ) {
$loader = Autoloader::get()->get_autoloader();
$isAdmin = is_admin();
$disabledModules = (array) ( $options['disabled'] ?? [] );
// Iterate modules.
foreach ( glob( $path . '*/main.php' ) as $module ) {
$modulePath = dirname( $module );
$moduleName = basename( $modulePath );
// Configuration is enabled by default (localisation, autoloading and other undemanding stuff).
if ( file_exists( $modulePath . '/config.php' ) ) {
$config = require $modulePath . '/config.php';
// Append autoload classmap.
if ( isset( $config['classmap'] ) && is_array( $config['classmap'] ) ) {
$loader->addClassmap( $config['classmap'] );
}
}
// Admin is enabled by default.
if ( $isAdmin && is_readable( $modulePath . '/admin.php' ) ) {
include $modulePath . '/admin.php'; // Do not care if this fails.
}
// Skip if disabled.
if ( isset( $disabledModules[ $moduleName ] ) ) {
continue;
}
self::$modules[ $moduleName ] = $modulePath;
}
// Load modules.
foreach ( self::$modules as $name => $path ) {
require_once $path . '/main.php';
}
}
}