Backend\Modules\Settings\Actions\Index::loadForm PHP Method

loadForm() private method

Load the form
private loadForm ( )
    private function loadForm()
    {
        // list of default domains
        $defaultDomains = array(str_replace(array('http://', 'www.', 'https://'), '', SITE_URL));
        // create form
        $this->frm = new BackendForm('settingsIndex');
        // general settings
        $this->frm->addText('site_title', $this->get('fork.settings')->get('Core', 'site_title_' . BL::getWorkingLanguage(), SITE_DEFAULT_TITLE));
        $this->frm->addTextarea('site_html_header', $this->get('fork.settings')->get('Core', 'site_html_header', null), 'form-control code', 'form-control danger code', true);
        $this->frm->addTextarea('site_start_of_body_scripts', $this->get('fork.settings')->get('Core', 'site_start_of_body_scripts', null), 'form-control code', 'form-control danger code', true);
        $this->frm->addTextarea('site_html_footer', $this->get('fork.settings')->get('Core', 'site_html_footer', null), 'form-control code', 'form-control danger code', true);
        $this->frm->addTextarea('site_domains', implode("\n", (array) $this->get('fork.settings')->get('Core', 'site_domains', $defaultDomains)), 'form-control code', 'form-control danger code');
        // facebook settings
        $this->frm->addText('facebook_admin_ids', $this->get('fork.settings')->get('Core', 'facebook_admin_ids', null));
        $this->frm->addText('facebook_application_id', $this->get('fork.settings')->get('Core', 'facebook_app_id', null));
        $this->frm->addText('facebook_application_secret', $this->get('fork.settings')->get('Core', 'facebook_app_secret', null));
        // twitter settings
        $this->frm->addText('twitter_site_name', ltrim($this->get('fork.settings')->get('Core', 'twitter_site_name', null), '@'));
        // ckfinder
        $this->frm->addText('ckfinder_license_name', $this->get('fork.settings')->get('Core', 'ckfinder_license_name', null));
        $this->frm->addText('ckfinder_license_key', $this->get('fork.settings')->get('Core', 'ckfinder_license_key', null));
        $this->frm->addText('ckfinder_image_max_width', $this->get('fork.settings')->get('Core', 'ckfinder_image_max_width', 1600));
        $this->frm->addText('ckfinder_image_max_height', $this->get('fork.settings')->get('Core', 'ckfinder_image_max_height', 1200));
        // api keys
        // @TODO should be removed when the api is kicked out
        $this->frm->addText('fork_api_public_key', $this->get('fork.settings')->get('Core', 'fork_api_public_key', null));
        $this->frm->addText('fork_api_private_key', $this->get('fork.settings')->get('Core', 'fork_api_private_key', null));
        // date & time formats
        $this->frm->addDropdown('time_format', BackendModel::getTimeFormats(), $this->get('fork.settings')->get('Core', 'time_format'));
        $this->frm->addDropdown('date_format_short', BackendModel::getDateFormatsShort(), $this->get('fork.settings')->get('Core', 'date_format_short'));
        $this->frm->addDropdown('date_format_long', BackendModel::getDateFormatsLong(), $this->get('fork.settings')->get('Core', 'date_format_long'));
        // number formats
        $this->frm->addDropdown('number_format', BackendModel::getNumberFormats(), $this->get('fork.settings')->get('Core', 'number_format'));
        // create a list of the languages
        foreach ($this->get('fork.settings')->get('Core', 'languages', array('en')) as $abbreviation) {
            // is this the default language
            $defaultLanguage = $abbreviation == SITE_DEFAULT_LANGUAGE ? true : false;
            // attributes
            $activeAttributes = array();
            $activeAttributes['id'] = 'active_language_' . $abbreviation;
            $redirectAttributes = array();
            $redirectAttributes['id'] = 'redirect_language_' . $abbreviation;
            // fetch label
            $label = BL::lbl(mb_strtoupper($abbreviation), 'Core');
            // default may not be unselected
            if ($defaultLanguage) {
                // add to attributes
                $activeAttributes['disabled'] = 'disabled';
                $redirectAttributes['disabled'] = 'disabled';
                // overrule in $_POST
                if (!isset($_POST['active_languages']) || !is_array($_POST['active_languages'])) {
                    $_POST['active_languages'] = array(SITE_DEFAULT_LANGUAGE);
                } elseif (!in_array($abbreviation, $_POST['active_languages'])) {
                    $_POST['active_languages'][] = $abbreviation;
                }
                if (!isset($_POST['redirect_languages']) || !is_array($_POST['redirect_languages'])) {
                    $_POST['redirect_languages'] = array(SITE_DEFAULT_LANGUAGE);
                } elseif (!in_array($abbreviation, $_POST['redirect_languages'])) {
                    $_POST['redirect_languages'][] = $abbreviation;
                }
            }
            // add to the list
            $activeLanguages[] = array('label' => $label, 'value' => $abbreviation, 'attributes' => $activeAttributes, 'variables' => array('default' => $defaultLanguage));
            $redirectLanguages[] = array('label' => $label, 'value' => $abbreviation, 'attributes' => $redirectAttributes, 'variables' => array('default' => $defaultLanguage));
        }
        $hasMultipleLanguages = BackendModel::getContainer()->getParameter('site.multilanguage');
        // create multilanguage checkbox
        $this->frm->addMultiCheckbox('active_languages', $activeLanguages, $this->get('fork.settings')->get('Core', 'active_languages', array($hasMultipleLanguages)));
        $this->frm->addMultiCheckbox('redirect_languages', $redirectLanguages, $this->get('fork.settings')->get('Core', 'redirect_languages', array($hasMultipleLanguages)));
        // api keys are not required for every module
        if ($this->needsAkismet) {
            $this->frm->addText('akismet_key', $this->get('fork.settings')->get('Core', 'akismet_key', null));
        }
        if ($this->needsGoogleMaps) {
            $this->frm->addText('google_maps_key', $this->get('fork.settings')->get('Core', 'google_maps_key', null));
        }
        // cookies
        $this->frm->addCheckbox('show_cookie_bar', $this->get('fork.settings')->get('Core', 'show_cookie_bar', false));
    }