ElggInstaller::validateSettingsVars PHP Method

validateSettingsVars() protected method

Validate the site settings form variables
protected validateSettingsVars ( array $submissionVars, array $formVars ) : boolean
$submissionVars array Submitted vars
$formVars array Vars in the form
return boolean
    protected function validateSettingsVars($submissionVars, $formVars)
    {
        foreach ($formVars as $field => $info) {
            $submissionVars[$field] = trim($submissionVars[$field]);
            if ($info['required'] == TRUE && $submissionVars[$field] === '') {
                $name = _elgg_services()->translator->translate("install:settings:label:{$field}");
                register_error(_elgg_services()->translator->translate('install:error:requiredfield', array($name)));
                return FALSE;
            }
        }
        // check that data root is absolute path
        if (stripos(PHP_OS, 'win') === 0) {
            if (strpos($submissionVars['dataroot'], ':') !== 1) {
                $msg = _elgg_services()->translator->translate('install:error:relative_path', array($submissionVars['dataroot']));
                register_error($msg);
                return FALSE;
            }
        } else {
            if (strpos($submissionVars['dataroot'], '/') !== 0) {
                $msg = _elgg_services()->translator->translate('install:error:relative_path', array($submissionVars['dataroot']));
                register_error($msg);
                return FALSE;
            }
        }
        // check that data root exists
        if (!file_exists($submissionVars['dataroot'])) {
            $msg = _elgg_services()->translator->translate('install:error:datadirectoryexists', array($submissionVars['dataroot']));
            register_error($msg);
            return FALSE;
        }
        // check that data root is writable
        if (!is_writable($submissionVars['dataroot'])) {
            $msg = _elgg_services()->translator->translate('install:error:writedatadirectory', array($submissionVars['dataroot']));
            register_error($msg);
            return FALSE;
        }
        if (!isset($this->CONFIG->data_dir_override) || !$this->CONFIG->data_dir_override) {
            // check that data root is not subdirectory of Elgg root
            if (stripos($submissionVars['dataroot'], $submissionVars['path']) === 0) {
                $msg = _elgg_services()->translator->translate('install:error:locationdatadirectory', array($submissionVars['dataroot']));
                register_error($msg);
                return FALSE;
            }
        }
        // check that email address is email address
        if ($submissionVars['siteemail'] && !is_email_address($submissionVars['siteemail'])) {
            $msg = _elgg_services()->translator->translate('install:error:emailaddress', array($submissionVars['siteemail']));
            register_error($msg);
            return FALSE;
        }
        // @todo check that url is a url
        // @note filter_var cannot be used because it doesn't work on international urls
        return TRUE;
    }