assign('action',$action); if($isAlwaysDisplayed) { //Récuperation des dossiers de flux par ordre de nom $tpl->assign('folders',$folderManager->populate('name')); //Recuperation de tous les non Lu $tpl->assign('unread',$feedManager->countUnreadEvents()); //recuperation de tous les flux $allFeeds = $feedManager->getFeedsPerFolder(); $tpl->assign('allFeeds',$allFeeds); //recuperation de tous les flux par dossier $tpl->assign('allFeedsPerFolder',$allFeeds['folderMap']); //recuperation de tous les event nons lu par dossiers $tpl->assign('allEvents',$eventManager->getEventCountPerFolder()); //utilisé pour récupérer le statut d'un feed dans le template (en erreur ou ok) $feedState = new Feed(); $tpl->assign('feedState',$feedState); } $articleDisplayAuthor = $configurationManager->get('articleDisplayAuthor'); $articleDisplayDate = $configurationManager->get('articleDisplayDate'); $articleDisplayFolderSort = $configurationManager->get('articleDisplayFolderSort'); $articleDisplayHomeSort = $configurationManager->get('articleDisplayHomeSort'); $articleDisplayLink = $configurationManager->get('articleDisplayLink'); $articleDisplayMode = $configurationManager->get('articleDisplayMode'); $articlePerPages = (int) $configurationManager->get('articlePerPages'); $displayOnlyUnreadFeedFolder = $configurationManager->get('displayOnlyUnreadFeedFolder'); if (!isset($displayOnlyUnreadFeedFolder)) $displayOnlyUnreadFeedFolder=false; ($displayOnlyUnreadFeedFolder=='true')?$displayOnlyUnreadFeedFolder_reverse='false':$displayOnlyUnreadFeedFolder_reverse='true'; $optionFeedIsVerbose = $configurationManager->get('optionFeedIsVerbose'); $page = isset($_['page']) && (int) $_['page'] > 1 ? (int) $_['page'] : 1; $startArticle = ($page - 1) * $articlePerPages; $numberOfItem= 0; $tpl->assign('articleDisplayAuthor',$articleDisplayAuthor); $tpl->assign('articleDisplayDate',$articleDisplayDate); $tpl->assign('articleDisplayFolderSort',$articleDisplayFolderSort); $tpl->assign('articleDisplayHomeSort',$articleDisplayHomeSort); $tpl->assign('articleDisplayLink',$articleDisplayLink); $tpl->assign('articleDisplayMode',$articleDisplayMode); $tpl->assign('articlePerPages',$articlePerPages); $tpl->assign('displayOnlyUnreadFeedFolder',$displayOnlyUnreadFeedFolder); $tpl->assign('displayOnlyUnreadFeedFolder_reverse',$displayOnlyUnreadFeedFolder_reverse); $target = '`'.MYSQL_PREFIX.'event`.`title`,`'.MYSQL_PREFIX.'event`.`unread`,`'.MYSQL_PREFIX.'event`.`favorite`,`'.MYSQL_PREFIX.'event`.`feed`,'; if($articleDisplayMode=='summary') $target .= '`'.MYSQL_PREFIX.'event`.`description`,'; if($articleDisplayMode=='content') $target .= '`'.MYSQL_PREFIX.'event`.`content`,'; if($articleDisplayLink) $target .= '`'.MYSQL_PREFIX.'event`.`link`,'; if($articleDisplayDate) $target .= '`'.MYSQL_PREFIX.'event`.`pubdate`,'; if($articleDisplayAuthor) $target .= '`'.MYSQL_PREFIX.'event`.`creator`,'; $target .= '`'.MYSQL_PREFIX.'event`.`id`'; $tpl->assign('target',$target); $tpl->assign('feeds',[]); $tpl->assign('order',''); $tpl->assign('unreadEventsForFolder',0); $tpl->assign('currentFeed', null); $pagesArray = array(); switch($action){ /* AFFICHAGE DES EVENEMENTS D'UN FLUX EN PARTICULIER */ case 'selectedFeed': $currentFeed = $feedManager->getById($_['feed']); if(!is_object($currentFeed)) { header('location: ./'); exit; } $tpl->assign('currentFeed',$currentFeed); $numberOfItem = $eventManager->rowCount(array('feed'=>$currentFeed->getId())); $allowedOrder = array( 'date' => 'pubdate DESC', 'older' => 'pubdate', 'unread' => 'unread DESC,pubdate DESC' ); $orderKey = isset($_['order']) && array_key_exists($_['order'], $allowedOrder) ? $_['order'] : 'unread'; $order = $allowedOrder[$orderKey]; $events = $currentFeed->getEvents($order,$startArticle,$articlePerPages,$target); $tpl->assign('order', $orderKey); break; /* AFFICHAGE DES EVENEMENTS D'UN DOSSIER EN PARTICULIER */ case 'selectedFolder': $currentFolder = $folderManager->getById($_['folder']); if(!is_object($currentFolder)) { header('location: ./'); exit; } $tpl->assign('currentFolder',$currentFolder); $numberOfItem = $currentFolder->unreadCount(); if($articleDisplayFolderSort) {$order = '`'.MYSQL_PREFIX.'event`.`pubdate` desc';} else {$order = '`'.MYSQL_PREFIX.'event`.`pubdate` asc';} $events = $currentFolder->getEvents($order,$startArticle,$articlePerPages,$target); break; /* AFFICHAGE DES EVENEMENTS FAVORIS */ case 'favorites': $numberOfItem = $eventManager->rowCount(array('favorite'=>1)); $events = $eventManager->loadAllOnlyColumn($target,array('favorite'=>1),'pubdate DESC',$startArticle.','.$articlePerPages); $tpl->assign('numberOfItem',$numberOfItem); break; /* AFFICHAGE DES EVENEMENTS NON LUS (COMPORTEMENT PAR DEFAUT) */ case 'unreadEvents': case 'wrongLogin': $wrongLogin = true; default: $wrongLogin = !empty($wrongLogin); $tpl->assign('wrongLogin',$wrongLogin); if(!$isAlwaysDisplayed) { break; } $filter = array('unread'=>1); if($optionFeedIsVerbose) { $numberOfItem = $eventManager->rowCount($filter); } else { $numberOfItem = $eventManager->getEventCountNotVerboseFeed(); } if($articleDisplayHomeSort) {$order = 'pubdate desc';} else {$order = 'pubdate asc';} if($optionFeedIsVerbose) { $events = $eventManager->loadAllOnlyColumn($target,$filter,$order,$startArticle.','.$articlePerPages); } else { $events = $eventManager->getEventsNotVerboseFeed($order,$startArticle,$articlePerPages,$target); } $tpl->assign('numberOfItem',$numberOfItem); break; } $pages = ceil($numberOfItem/$articlePerPages); $tpl->assign('pages',$pages); $tpl->assign('page',$page); $paginationScale = $configurationManager->get('paginationScale'); if (empty($paginationScale)) { $configurationManager->put('paginationScale', 5); $paginationScale = $configurationManager->get('paginationScale'); } for($i=($page-$paginationScale<=0?1:$page-$paginationScale);$i<($page+$paginationScale>$pages+1?$pages+1:$page+$paginationScale);$i++){ $pagesArray[]=$i; } $tpl->assign('pagesArray',$pagesArray); $tpl->assign('previousPages',($page-$paginationScale<0?-1:$page-$paginationScale-1)); $tpl->assign('nextPages',($page+$paginationScale>$pages+1?-1:$page+$paginationScale)); Plugin::callHook("index_post_treatment", array(&$events)); $tpl->assign('events',$events); $tpl->assign('time',$_SERVER['REQUEST_TIME']); $tpl->assign('hightlighted',0); $tpl->assign('scroll',false); $view = 'index'; require_once('footer.php'); ?>