SettingsController::mobileThemeOptions PHP Method

mobileThemeOptions() public method

Manage options for a mobile theme.
Since: 2.0.0
public mobileThemeOptions ( )
    public function mobileThemeOptions()
    {
        $this->permission('Garden.Settings.Manage');
        try {
            $this->addJsFile('addons.js');
            $this->setHighlightRoute('dashboard/settings/mobilethemeoptions');
            $ThemeManager = Gdn::themeManager();
            $EnabledThemeName = $ThemeManager->mobileTheme();
            $EnabledThemeInfo = $ThemeManager->getThemeInfo($EnabledThemeName);
            $this->setData('ThemeInfo', $EnabledThemeInfo);
            if ($this->Form->authenticatedPostBack()) {
                // Save the styles to the config.
                $StyleKey = $this->Form->getFormValue('StyleKey');
                $ConfigSaveData = array('Garden.MobileThemeOptions.Styles.Key' => $StyleKey, 'Garden.MobileThemeOptions.Styles.Value' => $this->data("ThemeInfo.Options.Styles.{$StyleKey}.Basename"));
                // Save the text to the locale.
                $Translations = array();
                foreach ($this->data('ThemeInfo.Options.Text', array()) as $Key => $Default) {
                    $Value = $this->Form->getFormValue($this->Form->escapeString('Text_' . $Key));
                    $ConfigSaveData["ThemeOption.{$Key}"] = $Value;
                    //$this->Form->setFormValue('Text_'.$Key, $Value);
                }
                saveToConfig($ConfigSaveData);
                $this->fireEvent['AfterSaveThemeOptions'];
                $this->informMessage(t("Your changes have been saved."));
            }
            $this->setData('ThemeOptions', c('Garden.MobileThemeOptions'));
            $StyleKey = $this->data('ThemeOptions.Styles.Key');
            if (!$this->Form->authenticatedPostBack()) {
                foreach ($this->data('ThemeInfo.Options.Text', array()) as $Key => $Options) {
                    $Default = val('Default', $Options, '');
                    $Value = c("ThemeOption.{$Key}", '#DEFAULT#');
                    if ($Value === '#DEFAULT#') {
                        $Value = $Default;
                    }
                    $this->Form->setFormValue($this->Form->escapeString('Text_' . $Key), $Value);
                }
            }
            $this->setData('ThemeFolder', $EnabledThemeName);
            $this->title(t('Mobile Theme Options'));
            $this->Form->addHidden('StyleKey', $StyleKey);
        } catch (Exception $Ex) {
            $this->Form->addError($Ex);
        }
        $this->render('themeoptions');
    }