Admin_SettingsController::getSystemAction PHP Метод

getSystemAction() публичный Метод

public getSystemAction ( )
    public function getSystemAction()
    {
        $this->checkPermission("system_settings");
        $values = Config::getSystemConfig();
        if (($handle = fopen(PIMCORE_PATH . "/config/data/timezones.csv", "r")) !== false) {
            while (($rowData = fgetcsv($handle, 10000, ",", '"')) !== false) {
                $timezones[] = $rowData[0];
            }
            fclose($handle);
        }
        $locales = Tool::getSupportedLocales();
        $languageOptions = [];
        foreach ($locales as $short => $translation) {
            if (!empty($short)) {
                $languageOptions[] = ["language" => $short, "display" => $translation . " ({$short})"];
                $validLanguages[] = $short;
            }
        }
        $valueArray = $values->toArray();
        $valueArray['general']['validLanguage'] = explode(",", $valueArray['general']['validLanguages']);
        //for "wrong" legacy values
        if (is_array($valueArray['general']['validLanguage'])) {
            foreach ($valueArray['general']['validLanguage'] as $existingValue) {
                if (!in_array($existingValue, $validLanguages)) {
                    $languageOptions[] = ["language" => $existingValue, "display" => $existingValue];
                }
            }
        }
        //cache exclude patterns - add as array
        if (!empty($valueArray['cache']['excludePatterns'])) {
            $patterns = explode(",", $valueArray['cache']['excludePatterns']);
            if (is_array($patterns)) {
                foreach ($patterns as $pattern) {
                    $valueArray['cache']['excludePatternsArray'][] = ["value" => $pattern];
                }
            }
        }
        //remove password from values sent to frontend
        $valueArray['database']["params"]['password'] = "##SECRET_PASS##";
        //admin users as array
        $adminUsers = [];
        $userList = new Model\User\Listing();
        $userList->setCondition("admin = 1 and email is not null and email != ''");
        $users = $userList->load();
        if (is_array($users)) {
            foreach ($users as $user) {
                $adminUsers[] = ["id" => $user->getId(), "username" => $user->getName()];
            }
        }
        $adminUsers[] = ["id" => "", "username" => "-"];
        $response = ["values" => $valueArray, "adminUsers" => $adminUsers, "config" => ["timezones" => $timezones, "languages" => $languageOptions, "client_ip" => Tool::getClientIp(), "google_private_key_exists" => file_exists(\Pimcore\Google\Api::getPrivateKeyPath()), "google_private_key_path" => \Pimcore\Google\Api::getPrivateKeyPath(), "path_separator" => PATH_SEPARATOR]];
        $this->_helper->json($response);
    }