public function run() { $promos = S::user()->castes()->groups()->filter('ns', Group::NS_PROMO); $promos->add(Group::from('on_platal')); $uf = new UserFilter(new PFC_And(new UFC_Birthday('=', new FrankizDateTime()), new UFC_Group($promos))); $us = $uf->get(); $us->select(UserSelect::birthday()); $formations = array(); $users = array(); foreach ($us as $u) { $study = $u->studies(); $first = array_shift($study); $formations[$first->formation()->abbrev()] = $first->formation(); $users[$first->formation()->abbrev()][$first->promo()][] = $u; } $this->assign('formations', $formations); $this->assign('users', $users); }