protected function handler_nb_news(Collection $groups, $fields) { $nf = new NewsFilter(new PFC_And(new PFC_Not(new NFC_Read(S::user())), new NFC_Current(), new NFC_Target(S::user()->targetCastes()))); $ids = $nf->getIDs(); if (empty($ids)) { return; } $iter = XDB::iterRow(' SELECT origin AS gid, COUNT(id) AS n FROM news WHERE id IN {?} AND origin IN {?} GROUP BY origin', $nf->getIDs(), $groups->ids()); $_groups = array(); while (list($gid, $n) = $iter->next()) { $groups->get($gid)->fillFromArray(array('nb_news' => $n)); } }