File "Modules.php"
Full Path: /home/jlklyejr/public_html/post-date/wp-content/plugins/kirki/kirki-packages/compatibility/src/Modules.php
File size: 3.1 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/**
* Handles modules loading.
*
* @package Kirki
* @category Modules
* @author Themeum
* @copyright Copyright (c) 2023, Themeum
* @license https://opensource.org/licenses/MIT
* @since 3.0.0
*/
namespace Kirki\Compatibility;
/**
* The Modules class.
*/
class Modules {
/**
* An array of available modules.
*
* @static
* @access private
* @since 3.0.0
* @var array
*/
private static $modules = [];
/**
* An array of active modules (objects).
*
* @static
* @access private
* @since 3.0.0
* @var array
*/
private static $active_modules = [];
/**
* Constructor.
*
* @access public
* @since 3.0.0
*/
public function __construct() {
add_action( 'after_setup_theme', [ $this, 'setup_default_modules' ], 10 );
add_action( 'after_setup_theme', [ $this, 'init' ], 11 );
}
/**
* Set the default modules and apply the 'kirki_modules' filter.
* In v3.0.35 this method was renamed from default_modules to setup_default_modules,
* and its visibility changed from private to public to fix https://github.com/aristath/kirki/issues/2023
*
* @access public
* @since 3.0.0
*/
public function setup_default_modules() {
self::$modules = apply_filters(
'kirki_modules',
[
'css' => '\Kirki\Module\CSS',
'tooltips' => '\Kirki\Module\Tooltips',
'postMessage' => '\Kirki\Module\Postmessage',
'selective-refresh' => '\Kirki\Module\Selective_Refresh',
'field-dependencies' => '\Kirki\Module\Field_Dependencies',
'webfonts' => '\Kirki\Module\Webfonts',
'preset' => '\Kirki\Module\Preset',
'gutenberg' => '\Kirki\Module\Editor_Styles',
'section-icons' => '\Kirki\Module\Section_Icons',
]
);
}
/**
* Instantiates the modules.
* In v3.0.35 the visibility for this method was changed
* from private to public to fix https://github.com/aristath/kirki/issues/2023
*
* @access public
* @since 3.0.0
*/
public function init() {
foreach ( self::$modules as $module_class ) {
if ( class_exists( $module_class ) ) {
new $module_class();
}
}
}
/**
* Add a module.
*
* @static
* @access public
* @param string $module The classname of the module to add.
* @since 3.0.0
*/
public static function add_module( $module ) {
if ( ! in_array( $module, self::$modules, true ) ) {
self::$modules[] = $module;
}
}
/**
* Remove a module.
*
* @static
* @access public
* @param string $module The classname of the module to add.
* @since 3.0.0
*/
public static function remove_module( $module ) {
$key = array_search( $module, self::$modules, true );
if ( false !== $key ) {
unset( self::$modules[ $key ] );
}
}
/**
* Get the modules array.
*
* @static
* @access public
* @since 3.0.0
* @return array
*/
public static function get_modules() {
return self::$modules;
}
/**
* Get the array of active modules (objects).
*
* @static
* @access public
* @since 3.0.0
* @return array
*/
public static function get_active_modules() {
return self::$active_modules;
}
}