HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/confeduphaar/backip-old-files/administrator/components/com_acym/classes/configuration.php
<?php
defined('_JEXEC') or die('Restricted access');
?><?php

class acymconfigurationClass extends acymClass
{
    var $table = 'configuration';
    var $pkey = 'name';
    var $values = [];

    public function load()
    {
        $this->values = acym_loadObjectList('SELECT * FROM #__acym_configuration', 'name');
    }

    public function get($namekey, $default = '')
    {
        if (isset($this->values[$namekey])) {
            return $this->values[$namekey]->value;
        }

        return $default;
    }

    public function save($newConfig)
    {
        $query = 'REPLACE INTO #__acym_configuration (`name`, `value`) VALUES ';

        $params = [];
        foreach ($newConfig as $name => $value) {
            if (strpos($name, 'password') !== false && !empty($value) && trim($value, '*') == '') {
                continue;
            }

            if ($name === 'multilingual' && $value === '1') {
                $remindme = json_decode($this->get('remindme', '[]'), true);
                if (!in_array('multilingual', $remindme)) {
                    $remindme[] = 'multilingual';
                    $this->save(['remindme' => json_encode($remindme)]);
                }
            }

            if (is_array($value)) {
                $value = implode(',', $value);
            }

            if (empty($this->values[$name])) {
                $this->values[$name] = new stdClass();
            }
            $this->values[$name]->value = $value;

            $params[] = '('.acym_escapeDB(strip_tags($name)).','.acym_escapeDB(strip_tags($value)).')';
        }

        if (empty($params)) return true;

        $query .= implode(',', $params);

        try {
            $status = acym_query($query);
        } catch (Exception $e) {
            $status = false;
        }
        if ($status === false) {
            acym_display(isset($e) ? $e->getMessage() : substr(strip_tags(acym_getDBError()), 0, 200).'...', 'error');
        }

        return $status;
    }

    public function setLicenseKeyByDomain()
    {
        if (!acym_level(1)) return true;
        $licenseKey = $this->config->get('license_key', '');
        if (!empty($licenseKey)) return true;

        $url = ACYM_UPDATEMEURL.'license&task=getLicenseKeyByWebsite';

        $result = acym_makeCurlCall($url, ['domain' => ACYM_LIVE]);

        if (empty($result) || empty($result['message']) || $result['type'] == 'error') {
            acym_enqueueMessage(acym_translation('ACYM_COULD_SET_LICENSE_KEY'), 'warning');

            return false;
        }

        if (!empty($result['message'])) {
            $this->config->save(['license_key' => $result['message']]);

            return true;
        }
    }
}