static function set($user, $detailsVisible, $userPrefs, $skin, $widgetMask) { if ($user) { $user->detailsVisible = $detailsVisible; $user->preferences = $userPrefs; if (session_isValidSkin($skin)) { $user->skin = $skin; } $user->widgetMask = $widgetMask; $user->widgetCount = Widget::WIDGET_COUNT; $user->save(); session_setVariable('user', $user); } else { session_setAnonymousPrefs($userPrefs); if (session_isValidSkin($skin)) { session_setSkin($skin); } // Set the widgetMask / widgetCount cookies. This is a bit complex because we want to delete the cookie when the settings are all default. if ($widgetMask == Widget::getDefaultWidgetMask()) { session_setWidgetMask(null); session_setWidgetCount(null); } else { session_setWidgetMask($widgetMask); session_setWidgetCount(Widget::WIDGET_COUNT); } } }
<?php require_once "../phplib/util.php"; require_once "../phplib/userPreferences.php"; util_assertNotLoggedIn(); $sendButton = util_getRequestParameter('send'); if ($sendButton) { $userPrefs = util_getRequestCheckboxArray('userPrefs', ','); $skin = util_getRequestParameter('skin'); session_setAnonymousPrefs($userPrefs); if (session_isValidSkin($skin)) { session_setSkin($skin); } FlashMessage::add('Preferințele au fost salvate.', 'info'); util_redirect('preferinte'); } else { $userPrefs = session_getAnonymousPrefs(); $skin = session_getSkin(); } foreach (preg_split('/,/', $userPrefs) as $pref) { if (isset($userPreferencesSet[$pref])) { $userPreferencesSet[$pref]['checked'] = true; } } smarty_assign('userPrefs', $userPreferencesSet); smarty_assign('skin', $skin); smarty_assign('availableSkins', pref_getServerPreference('skins')); smarty_assign('page_title', 'Preferințe'); smarty_displayCommonPageWithSkin('preferinte.ihtml');