HEX
Server: LiteSpeed
System: Linux s383.bitcommand.com 5.14.0-687.24.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Jul 9 18:14:06 EDT 2026 x86_64
User: pclast (1605)
PHP: 8.1.34
Disabled: exec,system,passthru,shell_exec,escapeshellarg,escapeshellcmd,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: /home/pclast/public_html/wp-content/plugins/zhaket-updater/includes/HelpersClass/Modules.php
<?php


namespace ZhaketUpdater\HelpersClass;


abstract class Modules
{
    protected $settingKey;
    protected $optionKey;
    protected $defaultSettings;

    public function __construct()
    {
        $this->setDefaultSettings(false);
    }

    public function getSettingKey(){
        return $this->settingKey;
    }
    abstract public function setDefaultSettings($initial);

    protected function extractSetting($setting)
    {
        $moduleSetting = ['is_initialized'=>true];
        if (empty($this->defaultSettings) || !array($this->defaultSettings)){
            return $moduleSetting;
        }
        foreach ($this->defaultSettings as $key => $defaultValue) {
            if (isset($setting[$key])) {
                if (in_array($setting[$key],['true','false'])){
                    $moduleSetting[$key] = filter_var($setting[$key], FILTER_VALIDATE_BOOLEAN);
                }else{
                    $moduleSetting[$key] = $setting[$key];
                }

            }else{
                $moduleSetting[$key]=$defaultValue;
            }
        }
        return $moduleSetting;
    }

    public function getSetting()
    {
        $value = get_option($this->optionKey,[]);
        return $this->extractSetting($value);
    }

    public function getSettingValue($key, $defaultValue = null)
    {
        return $this->getSetting()[$key] ?? $defaultValue;
    }

    public function setSetting(array $full_setting,$initialing=false )
    {
        if ($initialing){
            $full_setting[$this->settingKey]=$this->getSetting();
        }
        $moduleSetting = $this->extractSetting($full_setting[$this->settingKey]??[]);
        update_option($this->optionKey, $moduleSetting,false);
    }

    public function updateSetting(array $full_setting , $autoload =false)
    {
        update_option($this->optionKey, $full_setting,$autoload);
    }
}