|
Server : LiteSpeed System : Linux server104.web-hosting.com 4.18.0-513.24.1.lve.1.el8.x86_64 #1 SMP Thu May 9 15:10:09 UTC 2024 x86_64 User : saleoqej ( 6848) PHP Version : 8.0.30 Disable Function : NONE Directory : /home/saleoqej/chijamzacademy.com/wp-content/plugins/notificationx/includes/Core/ |
<?php
/**
* Extension Factory
*
* @package NotificationX\Extensions
*/
namespace NotificationX\Core;
use NotificationX\Admin\Settings;
use NotificationX\GetInstance;
/**
* Modules Class
* @method static Modules get_instance($args = null)
*/
class Modules {
/**
* Instance of Modules
*
* @var Modules
*/
use GetInstance;
protected $modules = [];
/**
* Initially Invoked when initialized.
*/
public function __construct(){
// echo 'ExtensionFactory';
add_filter('nx_settings_page_settings', [$this, 'modules_defaults']);
}
/**
* Adds a Module
*
* @param array $module
* @return array
*/
public function add($module){
$this->modules[$module['value']] = $module;
return $module['value'];
}
/**
* Adds a Module
*
* @param array $module
* @return array
*/
public function update($module, $key, $value){
if( !empty( $this->modules[$module] ) ) {
$this->modules[$module][$key] = $value;
return true;
}
return false;
}
/**
* Checks whether a module is enabled.
*
* @param string $module name of module
* @return boolean
*/
public function is_enabled($module) {
$enabled_types = (array) Settings::get_instance()->get('settings.modules');
if( isset( $enabled_types[ $module ] ) && $enabled_types[$module] ) {
return $enabled_types[$module];
} elseif( ! isset( $enabled_types[ $module ] ) ) {
return true;
}
return false;
}
/**
* Returns all the registered modules.
*
* @return array
*/
public function get_all(){
return $this->modules;
}
public function modules_defaults($settings) {
if (!isset($settings) || !is_array($settings)) {
$settings = [];
}
if( !isset( $settings['modules'] ) || !is_array( $settings['modules'] ) ) {
$settings['modules'] = [];
}
$modules = $this->get_all();
foreach ($modules as $key => $value) {
if (!isset($settings['modules'][$key])) {
$settings['modules'][$key] = true;
}
}
return $settings;
}
}