add pagination

master
Bastien OLLIER 3 years ago
parent 5760a97ab6
commit e290ee0a7a

@ -26,9 +26,19 @@ class controllerAdmin {
$this->setNbArticlesParPage($_REQUEST["nbSourceParPage"]);
break;
default:
$gateway = new GatewayNews(new Connection($dsn,$user,$pass));
$listeNews = $gateway->getNews();
//echo $vues['listeNews'];
$gatewayNews = new GatewayNews(new Connection($dsn,$user,$pass));
$page = 1;
if(isset($_GET['page'])){
$page = $_GET['page'];
}
$listeNews = $gatewayNews->getNews($page,10);
$pageAvant = $page - 1;
$pageApres = $page + 1;
$pageMAX = $gatewayNews->getNbNews()/10 + 1;
require($vues['listeNews']);
break;
}

@ -19,16 +19,24 @@ class GatewayNews
);
}
public function getNews()
public function getNews($page,$nbArticlePage)
{
$query = "SELECT * FROM news order by pubdate;";
$this->con->executeQuery($query, array());
$query = "SELECT * FROM news order by pubdate LIMIT :debut,:fin;";
$this->con->executeQuery($query, array(':debut' => array($nbArticlePage * ($page-1),PDO::PARAM_INT),
':fin' => array($nbArticlePage,PDO::PARAM_INT)
));
$results=$this->con->getResults();
Foreach ($results as $article){
$listeNews[] = new News($article["title"],$article['description'],$article['pubdate'],$article['link']);
}
return $listeNews;
}
public function getNbNews(){
$query = "SELECT count(*) FROM news;";
$this->con->executeQuery($query, array());
return $this->con->getResults()[0]["count(*)"];
}
}
?>

@ -1,8 +1,4 @@
<?php
require('gatewayAdmins.php');
require('config.php');
class MdlAdmin
{
public function connection($login, $mdp){

@ -4,11 +4,11 @@ class RssParser
public function getResultFlux($url)
{
ini_set('display_errors', 1);
ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1');
ini_set('user_agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1');
$listeArticles = array();
$listeArticles = array();
if (!($x = simplexml_load_file($url)))
if (!($x = simplexml_load_file($url)))
return;
foreach ($x->channel->item as $item)

@ -1,6 +1,15 @@
<?php
require_once("../usages/config.php");
$user= 'jeducourth';
$pass='achanger';
$dsn='mysql:host=localhost;dbname=dbjeducourth';
require_once("../usages/connection.php");
require_once("../models/news.php");
require_once("../models/sources.php");
require_once("../gateways/gatewayNews.php");
require_once("../gateways/gatewaySources.php");
require("RssParser.php");
$parser = new RssParser();

@ -17,4 +17,18 @@
echo "</br>";
}
?>
<?php
if($pageAvant > 0) {
echo '<form action = "index.php" >';
echo "<input type = 'hidden' name = 'page' value = $pageAvant />";
echo '<button >'.$pageAvant.'</button >';
echo '</form >';
}
if($pageApres <= $pageMAX){
echo '<form action = "index.php" >';
echo "<input type = 'hidden' name = 'page' value = $pageApres />";
echo '<button >'.$pageApres.'</button >';
echo '</form >';
}
?>
</html>
Loading…
Cancel
Save