Unsere Blogs
window.addEventListener('load', function () {
let query = null;
let page = 1;
const urlSearchParams = new URLSearchParams(window.location.search);
query = urlSearchParams.get('search');
if(query) {
document.getElementById("blog-posts").innerHTML = '';
}
function renderBlogItems(blogs, loadMore = false) {
const blogsContainer = document.getElementById("blog-list");
const blogItems = blogs.map(function(blog) {
if (blog.categories.length > 0 && blog.categories[0].slug) {
return '
';
} else {
return '';
}
}).join("");
if(loadMore) {
blogsContainer.innerHTML += blogItems;
} else {
blogsContainer.innerHTML = '';
blogsContainer.innerHTML += blogItems;
}
}
function renderFeaturedPosts(blogs) {
const blogsContainer = document.getElementById("blog-posts");
const blogFeaturePost = blogs.slice(0, 3).map(function(blog) {
if (blog.categories.length > 0 && blog.categories[0].slug) {
return '
' +
'' +
'
' +
'
' +
'
' +
'
' +
'' +
'
' +
'
' +
'';
} else {
return '';
}
}).join("");
blogsContainer.innerHTML = blogFeaturePost;
}
function fetchAndDisplayBlogs(query = null, loadMore = false) {
var apiUrl = query ?
window.location.origin + '/rest/morgenland-blogs?search=' + query + '&per_page=12&page=' + page :
window.location.origin + '/rest/morgenland-blogs?per_page=12&page=' + page;
fetch(apiUrl).then((response) => response.json()).then((data) => {
if(!query) {
if(!loadMore) {
renderFeaturedPosts(data.data.slice(0, 3));
renderBlogItems(data.data.slice(3));
} else {
renderFeaturedPosts(data.data.slice(0, 3));
renderBlogItems(data.data, true);
}
} else {
if(!loadMore) {
renderBlogItems(data.data.slice(3));
} else {
renderBlogItems(data.data, true);
}
}
const lastPage = data.meta.last_page;
if (page >= lastPage) {
document.querySelector("#load-more").classList.add("d-none");
} else {
document.querySelector("#load-more").classList.remove("d-none");
}
}).catch((error) => {
console.error("Error fetching blogs:", error);
});
}
if (query) {
document.querySelector(".search-results").classList.remove("d-none");
document.querySelector(".blog-results").classList.add("d-none");
document.querySelector("#search-input").value = query;
fetchAndDisplayBlogs(query);
} else {
document.querySelector(".search-results").classList.add("d-none");
document.querySelector(".blog-results").classList.remove("d-none");
fetchAndDisplayBlogs();
}
document.getElementById("load-more").addEventListener("click", () => {
page++;
fetchAndDisplayBlogs(null, true);
});
document.querySelector(".search-form").addEventListener("submit", (event) => {
event.preventDefault();
const searchInput = document.querySelector("#search-input");
const query = searchInput.value;
window.location.href = window.location.origin + '/blog?search=' + query;
});
})