} break; case 'templates': $tpls = CMS_pageTemplatesCatalog::getAll(true, '', array(), '', array_keys($results)); foreach ($tpls as $tpl) { $items[] = $tpl->getJSonDescription($cms_user, $cms_language, false); } break; case 'users': $users = CMS_profile_usersCatalog::getAll(false, false, true, array('id_pru' => array_keys($results))); foreach ($users as $user) { $items[] = $user->getJSonDescription($cms_user, $cms_language, false); } break; case 'groups': $groups = CMS_profile_usersGroupsCatalog::search('', '', false, array_keys($results)); foreach ($groups as $group) { $items[] = $group->getJSonDescription($cms_user, $cms_language, false); } break; default: $module = CMS_modulesCatalog::getByCodename($type); $items = $module->getSearchResults(array_keys($results), $cms_user); break; } //set each results items as right position foreach ($items as $item) { if ($item['id']) { $resultsDatas['results'][$results[$item['id']]] = $item; //rewrite id to avoid overwrite $resultsDatas['results'][$results[$item['id']]]['id'] = md5($type . $item['id']);
if ($userId) { $userGroups = CMS_profile_usersGroupsCatalog::getGroupsOfUser($userId, true); } else { $userGroups = array(); } if ($userId && $filter) { //search users $groups = CMS_profile_usersGroupsCatalog::search($search, $letter, $userId, array(), $sort, $dir, $start, $limit); } else { //search users $groups = CMS_profile_usersGroupsCatalog::search($search, $letter, false, array(), $sort, $dir, $start, $limit); } //loop over groups to get all required infos foreach ($groups as $group) { $datas = array('id' => $group->getGroupId(), 'label' => $group->getLabel(), 'description' => $group->getDescription()); if ($userId) { $datas['belong'] = isset($userGroups[$group->getGroupId()]); } else { $datas['users'] = sizeof($group->getUsersRef()); } $groupsDatas['groups'][] = $datas; } if ($userId && $filter) { //total users count for search $groupsDatas['totalCount'] = sizeof(CMS_profile_usersGroupsCatalog::search($search, $letter, $userId, array(), $sort, $dir, 0, 0, false)); } else { //total users count for search $groupsDatas['totalCount'] = sizeof(CMS_profile_usersGroupsCatalog::search($search, $letter, false, array(), $sort, $dir, 0, 0, false)); } $view->setContent($groupsDatas); $view->show();