/** * get profile fields * * @param icms_member_user_Object $thisUser * @return array of profile fields */ public function getProfileFields(&$thisUser) { // get handlers $category_handler = icms_getModuleHandler('category', basename(dirname(dirname(__FILE__))), 'profile'); $profile_handler = icms_getModuleHandler('profile', basename(dirname(dirname(__FILE__))), 'profile'); $visibility_handler = icms_getModuleHandler('visibility', basename(dirname(dirname(__FILE__))), 'profile'); $groups = is_object(icms::$user) ? icms::$user->getGroups() : array(ICMS_GROUP_ANONYMOUS); $criteria = new icms_db_criteria_Compo(); $criteria->setSort("cat_weight"); $categories = $category_handler->getObjects($criteria); $visible_fields = $visibility_handler->getVisibleFields($groups, $thisUser->getGroups()); unset($criteria); $criteria = new icms_db_criteria_Compo(); $criteria->add(new icms_db_criteria_Item('fieldid', '(' . implode(',', $visible_fields) . ')', 'IN')); $criteria->setSort('field_weight'); $fields = $this->getObjects($criteria); $profile = $profile_handler->get($thisUser->getVar('uid')); unset($category_handler, $visibility_handler, $profile_handler, $criteria); $module = icms::handler("icms_module")->getByDirname(basename(dirname(dirname(__FILE__))), TRUE); $rtn = array(); for ($i = 0; $i < count($categories); $i++) { $first_category = true; for ($j = 0; $j < count($fields); $j++) { $value = $fields[$j]->getOutputValue($thisUser, $profile); if ($fields[$j]->getVar('field_show') && $fields[$j]->getVar('catid') == $categories[$i]->getVar('catid') && ($module->config['show_empty'] || trim($value) || $value == '0')) { if ($first_category) { $rtn[$i]['title'] = $categories[$i]->getVar('cat_title'); } $first_category = false; $rtn[$i]['fields'][$j]['image'] = $fields[$j]->getImage(); $rtn[$i]['fields'][$j]['title'] = $fields[$j]->getVar('field_title'); $rtn[$i]['fields'][$j]['value'] = $value; } } } return $rtn; }
*/ // Revert masquerade effect if (isset($_SESSION['masquerade_end']) && $_SESSION['masquerade_end'] == 1) { $masqueradeUser = new icms_member_user_Object($_SESSION['masquerade_xoopsUserId']); unset($_SESSION['masquerade_xoopsUserId']); unset($_SESSION['masquerade_end']); } else { $masqueradeUser = new icms_member_user_Object($_REQUEST['id']); // Save UserId of the actual user if (isset($_SESSION['masquerade_xoopsUserId']) == false) { $_SESSION['masquerade_xoopsUserId'] = $_SESSION['xoopsUserId']; } } // Change effective user $_SESSION['xoopsUserId'] = $masqueradeUser->getVar('uid'); $_SESSION['xoopsUserGroups'] = $masqueradeUser->getGroups(); $_SESSION['xoopsUserLastLogin'] = $masqueradeUser->getVar('last_login'); $_SESSION['xoopsUserLanguage'] = $masqueradeUser->language(); if (isset($_SESSION['XOOPS_TOKEN_SESSION'])) { unset($_SESSION['XOOPS_TOKEN_SESSION']); } $xoops_user_theme = $masqueradeUser->getVar('theme'); if (in_array($xoops_user_theme, $icmsConfig['theme_set_allowed'])) { $_SESSION['xoopsUserTheme'] = $xoops_user_theme; } elseif (isset($_SESSION['xoopsUserTheme'])) { unset($_SESSION['xoopsUserTheme']); } // Redirect user header('Location: ' . SITE_BASE_URL . "/"); die; break;