Example #1
0
 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');
 }
Example #2
0
 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);
 }
Example #3
0
 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());
 }
Example #4
0
 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');
 }
Example #5
0
 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));
     }
 }
Example #6
0
 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;
 }
Example #7
0
 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);
 }