Ctrl K
ComunidadGuías…

index.php

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
<?php

/*
 @nom: index
 @auteur: Idleman (http://blog.idleman.fr)
 @description:  Page d'accueil et de lecture des flux
*/

require_once('header.php');


Plugin::callHook("index_pre_treatment", array(&$_));

//Récuperation de l'action (affichage) demandée
$action = (isset($_['action'])?$_['action']:'');
$tpl->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');
?>