From 57798af4a27be8f1c05968892e96d475e53fa8c9 Mon Sep 17 00:00:00 2001 From: Jonas Leder <git@jonasled.de> Date: Mon, 12 Apr 2021 19:45:30 +0200 Subject: [PATCH] get blog on index page from API --- js/customElements/blogIndex.js | 26 ++++++++++++++++++++++++++ js/script.js | 3 ++- public/index.php | 28 +--------------------------- 3 files changed, 29 insertions(+), 28 deletions(-) create mode 100644 js/customElements/blogIndex.js diff --git a/js/customElements/blogIndex.js b/js/customElements/blogIndex.js new file mode 100644 index 0000000..3d46573 --- /dev/null +++ b/js/customElements/blogIndex.js @@ -0,0 +1,26 @@ +class BlogIndex extends HTMLElement { + constructor() { + super(); + let xhr = new XMLHttpRequest(); + let ul = document.createElement("ul"); + xhr.onreadystatechange = () => { + if(xhr.readyState === 4 && xhr.status === 200){ + let blog = JSON.parse(xhr.responseText); + blog.forEach((element) => { + this.innerHTML += ` + <article class="breakWord"> + <h2>${element["title"]}</h2> + <p breakWord>${element["content"]}</p> + <p class="center"><a href="/post.php?id=${element["id"]}"><button>Mehr lesen</button></a></p> + </article> + `; + }); + this.appendChild(ul); + } + } + xhr.open("GET", "/API/getBlogElements.php?position=index"); + xhr.send(); + } +} + +customElements.define("jl-blog_index", BlogIndex); \ No newline at end of file diff --git a/js/script.js b/js/script.js index 5946440..a10a207 100644 --- a/js/script.js +++ b/js/script.js @@ -7,4 +7,5 @@ require("./ntpMenu"); require("./customElements/cookie"); require("./customElements/svgLoader"); -require("./customElements/blogFooter"); \ No newline at end of file +require("./customElements/blogFooter"); +require("./customElements/blogIndex"); \ No newline at end of file diff --git a/public/index.php b/public/index.php index 9a06a50..2cc6ab0 100644 --- a/public/index.php +++ b/public/index.php @@ -21,33 +21,7 @@ getHeader("Jonas Leder", "home"); <div class="spacer"></div> <h2>Blog</h2> - <div id="blog"> - <?php - $result = $conn->query("SELECT * FROM posts order by id desc limit $homeMaxPost"); - if ($result->num_rows > 0) { - while($row = $result->fetch_assoc()) { - $title = $row["title"]; - $id = $row["id"]; - $content = explode(" ", $row["content"]); - $contentNew = ""; - if(count($content) > 800){ - $temp = str_split($content, 800); - $contentNew = $temp[0]; - $contentNew = $content . explode(" ", $temp[1])[0] . " ..."; - } else { - $contentNew = $row["content"]; - } - echo(<<<EOF - <article class="breakWord"> - <h2>$title</h2> - <p breakWord>$contentNew</p> - <p class="center"><a href="/post.php?id=$id"><button>Mehr lesen</button></a></p> - </article> - EOF); - } - } - ?> - </div> + <jl-blog_index id="blog"></jl-blog_index> <div id="banner"> <h2>Banner</h2> <a target="_blank" href="https://ipv6.he.net"><img src="<?php echo($heIMG); ?>" data-noPreview="true"></a> -- GitLab