SettingsController::previewTheme PHP Method

previewTheme() public method

Show a preview of a theme.
Since: 2.0.0
public previewTheme ( string $ThemeName = '', string $transientKey = '' )
$ThemeName string Unique ID.
$transientKey string
    public function previewTheme($ThemeName = '', $transientKey = '')
    {
        $this->permission('Garden.Settings.Manage');
        if (Gdn::session()->validateTransientKey($transientKey)) {
            $ThemeInfo = Gdn::themeManager()->getThemeInfo($ThemeName);
            $PreviewThemeName = $ThemeName;
            $displayName = val('Name', $ThemeInfo);
            $IsMobile = val('IsMobile', $ThemeInfo);
            // If we failed to get the requested theme, cancel preview
            if ($ThemeInfo === false) {
                $PreviewThemeName = '';
            }
            if ($IsMobile) {
                Gdn::session()->setPreference(['PreviewMobileThemeFolder' => $PreviewThemeName, 'PreviewMobileThemeName' => $displayName]);
            } else {
                Gdn::session()->setPreference(['PreviewThemeFolder' => $PreviewThemeName, 'PreviewThemeName' => $displayName]);
            }
            $this->fireEvent('PreviewTheme', ['ThemeInfo' => $ThemeInfo]);
            redirect('/');
        } else {
            redirect('settings/themes');
        }
    }