$groups_member = new Collection('Group'); $groups_friend = new Collection('Group'); while ($g_datas = $g_iter->next()) { $g = new Group($g_datas['binet_id']); if (preg_match('/ympath?isant/', $g_datas['remarque'])) { $groups_friend->add($g); } else { $groups_member->add($g); } $u->comments($g, conv($g_datas['remarque'])); if ($g->id() == 1 && strlen(conv_name($u->nickname())) > 1) { $u->addStudy(0, $datas['promo'], (int) $datas['promo'] + 4, $datas['promo'], conv_name($u->nickname())); } } $temp = new Collection('Group'); $temp->safeMerge(array($groups_member, $groups_friend)); $temp->select(GroupSelect::castes()); foreach ($groups_member as $g) { $g->caste(Rights::member())->addUser($u); } foreach ($groups_friend as $g) { $g->caste(Rights::friend())->addUser($u); } $k++; echo 'User ' . str_pad($k, 4, '0', STR_PAD_LEFT) . '/' . $users . ' : ' . str_pad($u->id(), 5, '0', STR_PAD_LEFT) . ' - ' . $datas['promo'] . ' - ' . str_pad($groups_member->count(), 2, '0', STR_PAD_LEFT) . " members - " . str_pad($groups_friend->count(), 2, '0', STR_PAD_LEFT) . " friends - " . substr(microtime(true) - $t, 0, 5) . ' ' . $u->login() . "\n"; } echo "-----------------------------------------------\n"; XDB::execute('UPDATE account SET skin = "default"'); echo "default skin set \n"; XDB::execute('INSERT INTO users_minimodules (SELECT uid, "birthday", "COL_LEFT", 0 FROM account WHERE uid > 0)');
protected function handler_defaultfilters(Collection $users, $fields) { foreach ($users as $u) { $u->fillFromArray(array('defaultfilters' => new Collection('Group'))); } $iter = XDB::iterRow('SELECT uid AS id, defaultfilters FROM users_defaultfilters WHERE uid IN {?}', $users->ids()); $groups = new Collection('Group'); while (list($uid, $defaultfilters) = $iter->next()) { $defaultfilters = json_decode($defaultfilters); $defaultgroups = new Collection('Group'); $defaultgroups->add($defaultfilters); $groups->safeMerge($defaultgroups); $users->get($uid)->fillFromArray(array('defaultfilters' => $defaultgroups)); } if (!empty($groups) && !empty($this->subs['defaultfilters'])) { $groups->select($this->subs['defaultfilters']); } }
function handler_group_ajax_users($page) { $group = Json::i('gid'); $limit = 25; $group = Group::fromId($group); $users = false; if ($group) { $users = array(); $group->select(GroupSelect::castes()); $order = new UFO_Name(UFO_Name::LASTNAME); $filters = new PFC_True(); if (strlen(Json::t('promo')) > 0) { $filters = new UFC_Group(explode(';', Json::v('promo'))); } $uf = new UserFilter(new PFC_And(new UFC_Caste($group->caste(Rights::admin())), $filters), $order); $admins = $uf->get(new PlLimit($limit, (Json::i('admin_page', 1) - 1) * $limit)); $admins_total = $uf->getTotalCount(); $uf = new UserFilter(new PFC_And(new UFC_Caste(array($group->caste(Rights::member()), $group->caste(Rights::logic()))), $filters), $order); $members = $uf->get(new PlLimit($limit, (Json::i('member_page', 1) - 1) * $limit)); $members_total = $uf->getTotalCount(); $uf = new UserFilter(new PFC_And(new UFC_Caste($group->caste(Rights::friend())), $filters), $order); $friends = $uf->get(new PlLimit($limit, (Json::i('friend_page', 1) - 1) * $limit)); $friends_total = $uf->getTotalCount(); $all = new Collection('User'); $all->safeMerge(array($admins, $members, $friends)); $all->select(UserSelect::base()); $admins_export = $admins->export(User::EXPORT_MICRO, true); $members_export = $members->export(User::EXPORT_MICRO, true); $friends_export = $friends->export(User::EXPORT_MICRO, true); if ($all->count() > 0) { $iter = XDB::iterRow('SELECT uid, comment FROM users_comments WHERE gid = {?} AND uid IN {?}', $group->id(), $all->ids()); while (list($uid, $comment) = $iter->next()) { if ($admins_export[$uid]) { $admins_export[$uid]['comments'] = $comment; } if ($members_export[$uid]) { $members_export[$uid]['comments'] = $comment; } if ($friends_export[$uid]) { $friends_export[$uid]['comments'] = $comment; } } } $users['admin'] = array('total' => $admins_total, 'users' => $admins_export); $users['member'] = array('total' => $members_total, 'users' => $members_export); $users['friend'] = array('total' => $friends_total, 'users' => $friends_export); } $page->jsonAssign('limit', $limit); $page->jsonAssign('users', $users); return PL_JSON; }