Logica de paginación y de creación dinamica de pagina lista

This commit is contained in:
2021-07-17 23:48:27 -03:00
parent 2befe91efd
commit 88c9787858
13 changed files with 355 additions and 28 deletions

View File

@@ -1 +1 @@
9
14

View File

@@ -1 +1 @@
./news/1.html ./news/2.html ./news/3.html ./news/4.html ./news/5.html ./news/6.html ./news/7.html ./news/8.html ./news/9.html
./news/1.html ./news/2.html ./news/3.html ./news/4.html ./news/5.html ./news/6.html ./news/7.html ./news/8.html ./news/9.html ./news/10.html ./news/11.html ./news/12.html ./news/13.html ./news/14.html

View File

@@ -29,11 +29,13 @@
require 'news_logic.php';
check_news();
$actual_page = 1;
$news_per_page = 10;
$result = bring_the_news_back_home(1, $news_per_page);
check_news($news_per_page, 'mySQLconnect.php');
$result = bring_the_news_back_home($actual_page, $news_per_page, 'mySQLconnect.php');
foreach ($result as $news ) {
$id = $news[0];
@@ -53,19 +55,41 @@
</div>
</div>
</a>";
}
}
?>
<div class="card">
<img src="./img/test.jpg">
<div class="text">
<h2>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Corporis expedita repellendus sunt modi sint earum atque nihil porro neque, excepturi doloremque deserunt nesciunt nemo dolores, veniam error possimus non. Facere.</h2>
<h3>Content... Lorem ipsum dolor sit amet consectetur adipisicing elit. Ut numquam accusamus, voluptas vel et corrupti, dolore maxime ipsum veritatis quae obcaecati magni provident iure possimus praesentium animi debitis, quos consequuntur. Lorem ipsum dolor sit amet consectetur adipisicing elit. Neque, reprehenderit. Voluptatem inventore est necessitatibus blanditiis? Voluptatem pariatur fuga officiis minus, excepturi laudantium assumenda enim, rem officia quis obcaecati facilis consequuntur? Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aspernatur facilis odio blanditiis perspiciatis quaerat quos magni dolor praesentium repellat officia fugit eum natus, impedit quis, quo optio? Similique, temporibus delectus. Lorem ipsum dolor sit amet consectetur adipisicing elit. Doloremque dicta quia minima! Harum, alias maxime, architecto debitis distinctio amet assumenda, fugiat iure quis nesciunt ut laboriosam rem voluptatibus aspernatur nobis!</h3>
</div>
</div>
</div>
<footer class="pagination">
<?php
$pages = glob('./pages/pages-*.php');
$c = 0;
foreach($pages as $page) {
$c++;
if ($c === $actual_page) {
echo "
<a class='page-disabled'>
<div class='page'>
$c
</div>
</a>
";
} else {
echo "
<a href='$page'>
<div class='page'>
$c
</div>
</a>
";
}
}
?>
</footer>
</body>
</html>
</html>

View File

@@ -9,7 +9,7 @@
<?php
require 'news_logic.php';
$requestFromDB = bring_the_choosen_one($_GET['id'])[0];
$requestFromDB = bring_the_choosen_one($_GET['id'], './mySQLconnect.php')[0];
$title = $requestFromDB['title'];
$content = $requestFromDB['content'];

View File

@@ -5,18 +5,27 @@ use JetBrains\PhpStorm\Internal\ReturnTypeContract;
error_reporting(~0);
ini_set('display_errors', 1);
function check_news() {
function check_news($news_per_page, $mySQLconnectRoute) {
$news = glob('./news/*');
$control_variable = 0;
foreach ($news as $news_unique) {
$news_done = file_get_contents('./control-files/00_news_done.txt');
if (!strstr($news_done, $news_unique)) {
$control_variable = 5;
$page = know_page($news_unique);
$author = know_author($page, $news_unique);
create_entry_in_DB($news_unique, $page, $author);
create_entry_in_DB($news_unique, $page, $author, $mySQLconnectRoute);
}
}
if ($control_variable == 5) {
create_new_pages(count($news), $news_per_page);
}
}
function know_page($news_unique) {
@@ -83,8 +92,8 @@ function get_string_between($string, $start, $end){
//! CREDITS: https://stackoverflow.com/a/9826656
}
function create_entry_in_DB($news_unique, $page, $author) {
require 'mySQLconnect.php';
function create_entry_in_DB($news_unique, $page, $author, $mySQLconnectRoute) {
require $mySQLconnectRoute;
$content = file_get_contents($news_unique);
switch ($page) {
@@ -111,7 +120,7 @@ function create_entry_in_DB($news_unique, $page, $author) {
$pre_icon = get_string_between($content, '<div class="visual__image ">', '</div>');
$icon = get_string_between($pre_icon, '992w,', ' 1200w" ');
$inner_HTML = get_string_between($content, '<section class="article-section page-container">', '</section>') . '<script id="script-estructurador" src="./scripts/infobae.js"></script>';
$frist_p = get_string_between($content, '<meta property="og:description" content="', '">');
$frist_p = get_string_between($content, '<meta property="og:description" content="', '"/><meta ');
break;
case $page === 'TN':
@@ -150,10 +159,26 @@ function create_entry_in_DB($news_unique, $page, $author) {
}
function bring_the_news_back_home($actual_page, $news_per_page) {
require './mySQLconnect.php';
function create_new_pages($cant_news, $news_per_page) {
require './pages/print_page_data.php';
$frist_calc = $actual_page * $news_per_page;
$cant_pages = ceil($cant_news / $news_per_page);
for ($i=0; $i < $cant_pages; $i++) {
$num = $i + 1;
file_put_contents("./pages/pages-$num.php", file_get_contents('./pages/template.html'));
foreach( php_code($num, $news_per_page) as $block){
file_put_contents("./pages/pages-$num.php", $block, FILE_APPEND);
}
//file_put_contents("./pages/pages-$num.php", print_template($num)[2], FILE_APPEND);
}
}
function bring_the_news_back_home($actual_page, $news_per_page, $mySQLconnectRoute) {
require $mySQLconnectRoute;
$frist_calc = ($actual_page * $news_per_page) + 1;
$second_calc = ($actual_page * $news_per_page) - $news_per_page;
$prepared_query = $mySQLconnect -> prepare("select id, title, frist_paragraph, icon_route, page_source from noticias where id < ? and id > ?");
@@ -168,8 +193,8 @@ function bring_the_news_back_home($actual_page, $news_per_page) {
return $return;
}
function bring_the_choosen_one($id) {
require './mySQLconnect.php';
function bring_the_choosen_one($id, $mySQLconnectRoute) {
require $mySQLconnectRoute;
$prepared_query = $mySQLconnect -> prepare('select * from noticias where id = ?');
$prepared_query -> bindParam(1, $id, PDO::PARAM_INT);

73
pages/pages-1.php Executable file
View File

@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>All news</title>
<link rel="stylesheet" href="../style.css">
<link rel="icon" href="../img/logo.svg">
</head>
<body>
<header>
<a href="../index.php" class="name">
<img class="logo" src="../img/logo.svg">
<h1>AllNews.com</h1>
</a>
</header>
<noscript>
<div class="noscript">
Please, activate JavaScript for the correct functionality of the webpage.
</div>
</noscript>
<div class="card-container">
<?php
$actual_page = 1;
require "../news_logic.php";
$news_per_page = 10;
$result = bring_the_news_back_home($actual_page, $news_per_page, "../mySQLconnect.php");
require "template-code-blocks.php";
foreach ($result as $news ) {
$id = $news[0];
$title = $news[1];
$frist_p = $news[2];
$icon = $news[3];
$source = $news[4];
echo card_code_block1($id, $icon, $title, $frist_p, $source);
}
?>
<footer class="pagination">
<?php
$pages = glob("./pages-*.php");
$c = 0;
foreach($pages as $page) {
$c++;
if ($c === $actual_page) {
echo code_block2($c);
} else {
echo code_block3($page, $c);
}
}
?>
</footer>
</body>
</html>

73
pages/pages-2.php Executable file
View File

@@ -0,0 +1,73 @@
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>All news</title>
<link rel="stylesheet" href="../style.css">
<link rel="icon" href="../img/logo.svg">
</head>
<body>
<header>
<a href="../index.php" class="name">
<img class="logo" src="../img/logo.svg">
<h1>AllNews.com</h1>
</a>
</header>
<noscript>
<div class="noscript">
Please, activate JavaScript for the correct functionality of the webpage.
</div>
</noscript>
<div class="card-container">
<?php
$actual_page = 2;
require "../news_logic.php";
$news_per_page = 10;
$result = bring_the_news_back_home($actual_page, $news_per_page, "../mySQLconnect.php");
require "template-code-blocks.php";
foreach ($result as $news ) {
$id = $news[0];
$title = $news[1];
$frist_p = $news[2];
$icon = $news[3];
$source = $news[4];
echo card_code_block1($id, $icon, $title, $frist_p, $source);
}
?>
<footer class="pagination">
<?php
$pages = glob("./pages-*.php");
$c = 0;
foreach($pages as $page) {
$c++;
if ($c === $actual_page) {
echo code_block2($c);
} else {
echo code_block3($page, $c);
}
}
?>
</footer>
</body>
</html>

70
pages/print_page_data.php Executable file
View File

@@ -0,0 +1,70 @@
<?php
function php_code($num_page, $news_per_page){
error_reporting(null);
return array(
'
<?php
$actual_page = ', "$num_page;
",
'require "../news_logic.php";
$news_per_page = ', "$news_per_page;",
'
$result = bring_the_news_back_home($actual_page, $news_per_page, "../mySQLconnect.php");
',
'
require "template-code-blocks.php";
foreach ($result as $news ) {
$id = $news[0];
$title = $news[1];
$frist_p = $news[2];
$icon = $news[3];
$source = $news[4];
echo card_code_block1($id, $icon, $title, $frist_p, $source);
}
?>
<footer class="pagination">',
'
<?php
$pages = glob("./pages-*.php");
$c = 0;
',
'
foreach($pages as $page) {
$c++;
if ($c === $actual_page) {
echo code_block2($c);
} else {
echo code_block3($page, $c);
}
}
?>
',
'</footer>
</body>
</html>
'
);
}
?>

36
pages/template-code-blocks.php Executable file
View File

@@ -0,0 +1,36 @@
<?php
function card_code_block1($id, $icon, $title, $frist_p, $source) {
return "<a href='../news.php?id=$id' class='card-link'>
<div class='card'>
<img src=$icon>
<div class='text'>
<h2>$title</h2>
<h3>$frist_p</h3>
<div class='source'>
$source
</div>
</div>
</div>
</a>";
}
function code_block2($c) {
return "
<a class='page-disabled'>
<div class='page'>
$c
</div>
</a>
";
}
function code_block3($page, $c) {
return "
<a href='$page'>
<div class='page'>
$c
</div>
</a>
";
}
?>

27
pages/template.html Executable file
View File

@@ -0,0 +1,27 @@
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>All news</title>
<link rel="stylesheet" href="../style.css">
<link rel="icon" href="../img/logo.svg">
</head>
<body>
<header>
<a href="../index.php" class="name">
<img class="logo" src="../img/logo.svg">
<h1>AllNews.com</h1>
</a>
</header>
<noscript>
<div class="noscript">
Please, activate JavaScript for the correct functionality of the webpage.
</div>
</noscript>
<div class="card-container">

View File

@@ -26,7 +26,7 @@ console.log(all);
//todo - Purificacion de la informacion
for (let i = 0; i < paragraphs.length; i++) {
if (paragraphs[i].innerHTML == "<b>SEGUIR LEYENDO:</b>" || paragraphs[i].innerHTML == "<b>SEGUIR LEYENDO</b>" || paragraphs[i].innerHTML == "<br>") {
if (paragraphs[i].innerHTML == "<b>SEGUIR LEYENDO:</b>" || paragraphs[i].innerHTML == "<b>SEGUIR LEYENDO</b>" || paragraphs[i].innerHTML == "<br>" || paragraphs[i].innerHTML == '<b>Seguir leyendo:</b>') {
console.log("AAAAA");
trash.push(paragraphs[i])

0
scripts/tn.js Normal file → Executable file
View File

View File

@@ -7,7 +7,6 @@ html {
font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
background: rgb(157,211,255);
background: linear-gradient(180deg, rgba(157,211,255,1) 40%, rgba(205,233,255,1) 100%);
}
header {