function handler_home($page) { $page->assign('MiniModules_COL_LEFT', FrankizMiniModule::get(S::user()->minimodules(FrankizMiniModule::COL_LEFT))); $page->assign('MiniModules_COL_MIDDLE', FrankizMiniModule::get(S::user()->minimodules(FrankizMiniModule::COL_MIDDLE))); $page->assign('MiniModules_COL_RIGHT', FrankizMiniModule::get(S::user()->minimodules(FrankizMiniModule::COL_RIGHT))); $postit = Group::from('postit'); // /!\ : Everybody can read the post-it, you don't have to be member of the group $nf = new NewsFilter(new PFC_And(new NFC_Current(), new NFC_TargetGroup($postit)), new NFO_Begin(true)); $postit_news = $nf->get(true); if ($postit_news) { $postit_news->select(NewsSelect::news()); } $page->assign('postit_news', $postit_news); $page->assign('title', 'Accueil'); $page->changeTpl('frankiz/home.tpl'); }
protected function fetch(User $user) { global $globals; $nf = new NewsFilter(new PFC_And(new NFC_Current(), new NFC_Target($user->targetCastes())), new NFO_Begin(true)); $all_news = $nf->get(); $all_news->select(NewsSelect::news()); $data = array(); foreach ($all_news as $item) { $e = array(); $e['id'] = $item->id(); $e['title'] = '[' . $item->target()->group()->label() . '] ' . $item->title(); $e['news'] = $item; $e['publication'] = $item->begin()->format(); $auth = $item->origin() != false ? '[' . $item->origin()->label() . '] ' : ''; $e['author'] = $auth . $item->writer()->displayName(); $e['link'] = $globals->baseurl . '/news'; $data[] = $e; } return PlIteratorUtils::fromArray($data, 1, true); }
public function run() { // Total Users $f = new UserFilter(null); $users = $f->getTotalCount(); $this->assign('users', $users); // Total Groups $f = new GroupFilter(null); $groups = $f->getTotalCount(); $this->assign('groups', $groups); // Total Castes $f = new CasteFilter(null); $castes = $f->getTotalCount(); $this->assign('castes', $castes); // Total News $f = new NewsFilter(null); $news = $f->getTotalCount(); $this->assign('news', $news); // Total Images $f = new ImageFilter(null); $images = $f->getTotalCount(); $this->assign('images', $images); $this->assign('user', S::user()); }
function viewNews($page, $news, $view, $id = false) { if ($id !== false && !$news->get($id)) { $nf = new NewsFilter(new PFC_And(new NFC_Id($id), new NFC_CanBeSeen(S::user()))); $news->merge($nf->get()); } $news->select(NewsSelect::news()); $page->assign('selected_id', $id); $page->assign('view', $view); $page->assign('user', S::user()); $page->assign('news', $news); $page->addCssLink('news.css'); $page->assign('title', 'Annonces'); $page->changeTpl('news/news.tpl'); }
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)); } }
function handler_group_ajax_news($page, $group) { $group = Group::fromId($group); $news = false; if ($group) { $news = array(); $group->select(GroupSelect::castes()); $filters = new UFC_Group(explode(';', Json::v('promo'))); $onlybefore = new NFC_Begin(new FrankizDateTime(), NFC_Begin::BEFORE); if (S::user()->hasRights($group, Rights::admin()) || S::user()->isWeb()) { $onlybefore = new PFC_True(); } $nf = new NewsFilter(new PFC_And(new NFC_Origin($group), new NFC_CanBeSeen(S::user()), $onlybefore), new NFO_Begin(true)); $ns = $nf->get(new PlLimit(10))->select(NewsSelect::head()); foreach ($ns as $nid => $n) { $page->assign('news', $n); $news[$nid] = $page->fetch(FrankizPage::getTplPath('groups/news.tpl')); } } $page->jsonAssign('news', $news); return PL_JSON; }
public function run() { $nf = new NewsFilter(new PFC_And(new NFC_Current(), new PFC_Or(new PFC_Not(new NFC_Read(S::user())), new NFC_Star(S::user())), new NFC_Target(S::user()->targetCastes()))); $news = $nf->get()->select(NewsSelect::head()); $this->assign('news', $news); }