You've already forked ProfessionalWebsite
Renamed 'blog' folder to 'posts' to prevent blog.html loading errors (without html extension) Signed-off-by: Alexander Davis alex@adcm.uk
749 lines
58 KiB
HTML
749 lines
58 KiB
HTML
<!DOCTYPE html>
|
||
<html data-bs-theme="auto" lang="en-gb">
|
||
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<!-- Matomo -->
|
||
<script>
|
||
var _paq = window._paq = window._paq || [];
|
||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
|
||
_paq.push(['trackPageView']);
|
||
_paq.push(['enableLinkTracking']);
|
||
(function() {
|
||
var u="//analytics.adcmnetworks.co.uk/";
|
||
_paq.push(['setTrackerUrl', u+'matomo.php']);
|
||
_paq.push(['setSiteId', '1']);
|
||
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
|
||
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
|
||
})();
|
||
</script>
|
||
<!-- End Matomo Code -->
|
||
|
||
<script src="https://kit.fontawesome.com/8970d94f9b.js" crossorigin="anonymous"></script>
|
||
|
||
<meta name="fediverse:creator" content="@MrDavisCSIT@mstdn.social">
|
||
<script src="https://cms.tahdah.me/scripts/publicbadge.js"></script>
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
|
||
<title>Peter Bell Music</title>
|
||
<link rel="canonical" href="https://www.mrdaviscsit.uk/my-work/web-design/peter-bell-music.html">
|
||
<meta property="og:url" content="https://www.mrdaviscsit.uk/my-work/web-design/peter-bell-music.html">
|
||
<meta name="twitter:description" content="The website of Mr. A. Davis, featuring a portfolio of work in computing education, digital projects, and curriculum resources. Explore blog posts, classroom tools, and professional insights focused on innovation, inclusion, and effective IT teaching.">
|
||
<meta property="og:type" content="website">
|
||
<meta name="twitter:card" content="summary">
|
||
<meta name="twitter:title" content="Mr Davis CS & IT">
|
||
<meta property="og:image" content="https://www.mrdaviscsit.uk/assets/img/projects/web_design/peter_bell music/peter_bell_music.webp">
|
||
<meta name="description" content="Responsive site for Peter Bell Music featuring embeds, music portfolio, and future e-commerce tools.">
|
||
<script>
|
||
(function() {
|
||
|
||
// JavaScript snippet handling Dark/Light mode switching
|
||
|
||
const getStoredTheme = () => localStorage.getItem('theme');
|
||
const setStoredTheme = theme => localStorage.setItem('theme', theme);
|
||
const forcedTheme = document.documentElement.getAttribute('data-bss-forced-theme');
|
||
|
||
const getPreferredTheme = () => {
|
||
|
||
if (forcedTheme) return forcedTheme;
|
||
|
||
const storedTheme = getStoredTheme();
|
||
if (storedTheme) {
|
||
return storedTheme;
|
||
}
|
||
|
||
const pageTheme = document.documentElement.getAttribute('data-bs-theme');
|
||
|
||
if (pageTheme) {
|
||
return pageTheme;
|
||
}
|
||
|
||
return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
|
||
}
|
||
|
||
const setTheme = theme => {
|
||
if (theme === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||
document.documentElement.setAttribute('data-bs-theme', 'dark');
|
||
} else {
|
||
document.documentElement.setAttribute('data-bs-theme', theme);
|
||
}
|
||
}
|
||
|
||
setTheme(getPreferredTheme());
|
||
|
||
const showActiveTheme = (theme, focus = false) => {
|
||
const themeSwitchers = [].slice.call(document.querySelectorAll('.theme-switcher'));
|
||
|
||
if (!themeSwitchers.length) return;
|
||
|
||
document.querySelectorAll('[data-bs-theme-value]').forEach(element => {
|
||
element.classList.remove('active');
|
||
element.setAttribute('aria-pressed', 'false');
|
||
});
|
||
|
||
for (const themeSwitcher of themeSwitchers) {
|
||
|
||
const btnToActivate = themeSwitcher.querySelector('[data-bs-theme-value="' + theme + '"]');
|
||
|
||
if (btnToActivate) {
|
||
btnToActivate.classList.add('active');
|
||
btnToActivate.setAttribute('aria-pressed', 'true');
|
||
}
|
||
}
|
||
}
|
||
|
||
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => {
|
||
const storedTheme = getStoredTheme();
|
||
if (storedTheme !== 'light' && storedTheme !== 'dark') {
|
||
setTheme(getPreferredTheme());
|
||
}
|
||
});
|
||
|
||
window.addEventListener('DOMContentLoaded', () => {
|
||
showActiveTheme(getPreferredTheme());
|
||
|
||
document.querySelectorAll('[data-bs-theme-value]')
|
||
.forEach(toggle => {
|
||
toggle.addEventListener('click', (e) => {
|
||
e.preventDefault();
|
||
const theme = toggle.getAttribute('data-bs-theme-value');
|
||
setStoredTheme(theme);
|
||
setTheme(theme);
|
||
showActiveTheme(theme);
|
||
})
|
||
})
|
||
});
|
||
})();
|
||
</script>
|
||
<link rel="icon" type="image/png" sizes="4860x4860" href="../../assets/img/brand/adcm_logo_accent.webp?h=62dbf084286026c4b6de08d0203df501">
|
||
<link rel="icon" type="image/png" sizes="4860x4860" href="../../assets/img/brand/adcm_logo_white.webp?h=7cd31e9469bb0f9d3a4e704b3c0b1445" media="(prefers-color-scheme: dark)">
|
||
<link rel="icon" type="image/png" sizes="4860x4860" href="../../assets/img/brand/adcm_logo_accent.webp?h=62dbf084286026c4b6de08d0203df501">
|
||
<link rel="icon" type="image/png" sizes="4860x4860" href="../../assets/img/brand/adcm_logo_white.webp?h=7cd31e9469bb0f9d3a4e704b3c0b1445" media="(prefers-color-scheme: dark)">
|
||
<link rel="icon" type="image/png" sizes="4860x4860" href="../../assets/img/brand/adcm_logo_accent.webp?h=62dbf084286026c4b6de08d0203df501">
|
||
<link rel="icon" type="image/png" sizes="4860x4860" href="../../assets/img/brand/adcm_logo_accent.webp?h=62dbf084286026c4b6de08d0203df501">
|
||
<link rel="icon" type="image/png" sizes="4860x4860" href="../../assets/img/brand/adcm_logo_accent.webp?h=62dbf084286026c4b6de08d0203df501">
|
||
<link rel="stylesheet" href="../../assets/bootstrap/css/bootstrap.min.css?h=c9d969cca6f72ca8d4dfd457f2e8eff8">
|
||
<link rel="stylesheet" href="../../assets/css/Lato.css?h=873bbfafb3c4aa557ce43c2a271d95aa">
|
||
<link rel="stylesheet" href="../../assets/css/bss-overrides.css?h=15b91a8988c8fc6448a8989802a159de">
|
||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css">
|
||
<link rel="stylesheet" href="../../assets/css/styles.css?h=5a9bcf1f8677fe4d7cfa074be1ac6fbd">
|
||
<link rel="stylesheet" href="../../assets/css/pikaday.min.css?h=a9ab8ca627aa6e8f64b730ca9c2c781d">
|
||
<link rel="stylesheet" href="../../assets/css/CookieConsentComponent.css?h=39af3305e95f4d2a8883e97d7e0cdb14">
|
||
<link rel="stylesheet" href="../../assets/css/animations.compiled.css?h=49917e33fe831aa33e24fb1e8124fdd9">
|
||
<link rel="stylesheet" href="../../assets/css/Carousel---Slider-With-Animation.css?h=63f5768f05d2ae91446ac010bcd4844a">
|
||
</head>
|
||
|
||
<body>
|
||
<nav class="navbar navbar-expand-md fixed-top portfolio-navbar gradient navbar-dark">
|
||
<div class="container-fluid"><a class="navbar-brand logo" href="../../"><img alt="Stylised white microchip icon on a black background, designed as a modern tech-themed logo for ADCM" src="../../assets/img/brand/adcm_logo_white.webp?h=7cd31e9469bb0f9d3a4e704b3c0b1445" width="50" height="50" class="mobile-padding-left"></a><button data-bs-toggle="collapse" class="navbar-toggler" data-bs-target="#navbarNav" style="margin-right: 0.5em;"><span class="visually-hidden">Toggle navigation</span><span class="navbar-toggler-icon"></span></button>
|
||
<div class="collapse navbar-collapse" id="navbarNav">
|
||
<ul class="navbar-nav ms-auto">
|
||
<li class="nav-item mobile-padding-left"><a class="nav-link" href="../../">Home</a></li>
|
||
<li class="nav-item mobile-padding-left"><a class="nav-link" href="../../about">About</a></li>
|
||
<li class="nav-item mobile-padding-left"><a class="nav-link" href="../../projects">My Work</a></li>
|
||
<li class="nav-item mobile-padding-left"><a class="nav-link" href="../../my-work/showreel">Showreel</a></li>
|
||
<li class="nav-item mobile-padding-left"><a class="nav-link" href="../../blog">Blog</a></li>
|
||
<li class="nav-item mobile-padding-left"><a class="nav-link" href="../../contact">Contact</a></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
<main class="page">
|
||
<section class="portfolio-block block-intro">
|
||
<div class="container center-everything">
|
||
<div class="align-content-center heading blog-heading pbm-website">
|
||
<h2 class="text-capitalize">Peter Bell Music</h2>
|
||
<p>Responsive site for Peter Bell Music featuring embeds, music portfolio, and future e-commerce tools.</p>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
<section class="portfolio-block project">
|
||
<div class="container center-everything">
|
||
<div class="swiper project-carousel" id="swiper-1" data-bss-swiper="{"direction":"horizontal","loop":true,"autoplay":{"pauseOnMouseEnter":true},"autoHeight":true,"keyboard":true,"mousewheel":true,"effect":"creative","creativeEffect":{"prev":{"shadow":true,"translate":["-20%",0,-1]},"next":{"translate":["100%",0,0]}},"pagination":{"el":".swiper-pagination","type":"bullets","clickable":true,"dynamicBullets":true},"navigation":{"nextEl":".swiper-button-next","prevEl":".swiper-button-prev"}}">
|
||
<div class="swiper-wrapper">
|
||
<div class="swiper-slide"><img class="img-fluid slider-image-fit" alt="Screenshot of Peter Bell’s homepage displaying a quote about diversity in creative practice and a navigation menu including Compositions, Performances, Open Union, Avant-Bard, About, Catalogue, and Contact." width="1910" height="880" src="../../assets/img/projects/web_design/peter_bell%20music/peter_bell_music.webp?h=bf4c8cb4c7d1ff76ef9bec3bf29df3ae"></div>
|
||
<div class="swiper-slide"><img class="img-fluid slider-image-fit" alt="Screenshot of Peter Bell’s Performances page featuring a background performance image and a grid with project thumbnails including "Modular Set @ BMO July 22", "Wednesday Club", and "Velcro Piece | Alexander Kaniewski"." width="1910" height="880" src="../../assets/img/projects/web_design/peter_bell%20music/peter_bell_music_performances.webp?h=69c1449810aa354b53d947075fae46b3"></div>
|
||
<div class="swiper-slide"><img class="img-fluid slider-image-fit" alt="Screenshot of Peter Bell’s Catalogue page filtered by 'Electronics' showing a list of modular synthesizer works with categories like “Map Music” and “Music To Watch Grey Skies To” alongside a navigation sidebar of other composition types." width="1910" height="880" src="../../assets/img/projects/web_design/peter_bell%20music/peter_bell_music_portfolio.webp?h=e9109ed2136d5f87b6a83f7b68eaf6e9"></div>
|
||
</div>
|
||
<div>
|
||
<div class="swiper-button-prev swiper-control"></div>
|
||
<div class="swiper-button-next swiper-control"></div>
|
||
</div>
|
||
<div class="swiper-pagination swiper-control"></div>
|
||
</div>
|
||
<div class="row">
|
||
<div class="col info">
|
||
<h3>Phase 1 - September 2015</h3>
|
||
<p>In September 2015, I was approached by a Royal Birmingham Conservatoire Composition Student asking to design their website. The project is still ongoing however has started its final stages of quality control.<br><br>I used the WordPress publishing framework with a modified version of the Astra Theme as the student wanted to add their own content as and when it became available. The website also utilises embeds from in-house multimedia platforms and Facebook.</p>
|
||
<h3>Phase 2 - Summer 2025</h3>
|
||
<p>The second phase of this web design project marks a major transformation: a complete redesign and rebuild of the website to support online sales of custom-made pieces. This stage focuses on creating a seamless and visually compelling e-commerce experience, allowing users to browse, select, and purchase works directly through the site. Platforms for the online store are currently being reviewed to ensure the final solution aligns with both creative goals and business needs, with scalability and ease of use as key priorities.<br><br>Owing to other professional commitments, I stepped away from the project and handed it back to the client to oversee its further development and completion.</p>
|
||
</div>
|
||
<div class="col-auto meta project-details">
|
||
<div class="tags"><span class="meta-heading">Project Status</span><span>Development Transferred to Client</span><span class="meta-heading">Client</span><span>Peter Bell Music</span><span class="meta-heading">Date</span><span>September 2015 - July 2025</span><span class="meta-heading">Products Created</span><span>Website and e-commerce store</span><a class="btn btn-primary project-buttons" role="button" href="https://www.peterbellmusic.co.uk/" target="_blank">View Project Website</a></div>
|
||
</div>
|
||
</div>
|
||
<div class="more-projects">
|
||
<h3 class="text-center more-projects-heading">More Projects</h3>
|
||
<div data-bss-type="blog-loop" data-bss-perpage="3" style="display: none !important;">
|
||
<div class="row gy-4 row-cols-1 row-cols-sm-2 row-cols-md-2 row-cols-lg-3 mt-0" data-bss-type="blog-loop-base">
|
||
<div class="post-tag-web-design col" data-bss-type="blog-loop-item">
|
||
<div class="card"><a href="birmingham-city-university-christian-union.html"><img class="img-fluid card-img-top rainbow-border" alt="Screenshot of the BCU Christian Union website homepage showing a group photo of students and the CU banner." width="940" height="500" src="../../assets/img/projects/web_design/bcucu/bcucupreview.webp?h=0c3a26febc398753c8c1cea6d046322f"></a>
|
||
<div class="card-body"><a href="birmingham-city-university-christian-union.html">
|
||
<h4 class="text-body">Birmingham City University Christian Union</h4>
|
||
</a>
|
||
<p class="card-text">Responsive WordPress site for BCUCU with event listings, embeds, and admin access to update content.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="post-tag-web-design col" data-bss-type="blog-loop-item">
|
||
<div class="card"><a href="birmingham-city-university-discover.html"><img class="img-fluid card-img-top rainbow-border" alt="Screenshot of the BCU Dis.Cover homepage showing a blue layout with event widgets and a large yellow and blue accessibility logo." width="940" height="500" src="../../assets/img/projects/web_design/bcu_dis.cover/bcudiscoverpreview.webp?h=a9c8f8deb4fac6c2b1e65e11c6dce8c5"></a>
|
||
<div class="card-body"><a href="birmingham-city-university-discover.html">
|
||
<h4 class="text-body">Birmingham City University Dis.Cover</h4>
|
||
</a>
|
||
<p class="card-text">Responsive WordPress site for BCU Dis.Cover with events, admin panel, and Facebook plus Maps embeds.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="post-tag-web-design col" data-bss-type="blog-loop-item">
|
||
<div class="card"><a href="birmingham-city-university-mental-health-awareness.html"><img class="img-fluid card-img-top rainbow-border" alt="Screenshot of the BCU Mental Health Awareness site homepage with a green mug and notebook background and white header text." width="940" height="500" src="../../assets/img/projects/web_design/bcumha/bcumhapreview.webp?h=59e6f298a7cf791663e3280b7638cc14"></a>
|
||
<div class="card-body"><a href="birmingham-city-university-mental-health-awareness.html">
|
||
<h4 class="text-body">Birmingham City University Mental Health Awareness</h4>
|
||
</a>
|
||
<p class="card-text">Responsive WordPress site for BCU Mental Health Awareness with events, media, updates, and info hub.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="post-tag-web-design col" data-bss-type="blog-loop-item" style="display: none !important;">
|
||
<div class="card"><a href="frizzle-tv.html"><img class="img-fluid card-img-top rainbow-border" alt="Banner section of the Frizzle homepage showing four diverse women representing different hair types and product categories: Natural Hair, Wig & Weave, Relaxed Hair, and Mixed-Race Hair." width="940" height="500" src="../../assets/img/projects/web_design/frizzle/frizzlepreview.webp?h=fe3aa289bd751d93101e7ac02bbe22a3"></a>
|
||
<div class="card-body"><a href="frizzle-tv.html">
|
||
<h4 class="text-body">Frizzle TV</h4>
|
||
</a>
|
||
<p class="card-text">Frizzle.TV promo content and mockups created using Premiere Pro, After Effects, and Photoshop tools.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="post-tag-web-design col" data-bss-type="blog-loop-item" style="display: none !important;">
|
||
<div class="card"><a href="mottashaw-consulting.html"><img class="img-fluid card-img-top rainbow-border" alt="Website preview of Mottashaw Consulting homepage with navigation links and hero section showing lightbulb background and company introduction." width="1910" height="880" src="../../assets/img/projects/web_design/mottashaw/mottashaw-preview.webp?h=c4ff31817c96c7661dbd3bf735b19fa9"></a>
|
||
<div class="card-body"><a href="mottashaw-consulting.html">
|
||
<h4 class="text-body">Mottashaw Consulting</h4>
|
||
</a>
|
||
<p class="card-text">Mottashaw Consulting brochure site with Smart Forms, contact tools, and clearly structured services.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="post-tag-web-design col" data-bss-type="blog-loop-item" style="display: none !important;">
|
||
<div class="card"><a href="st-thomas-church-keresley.html"><img class="img-fluid card-img-top rainbow-border" alt="Homepage of St Thomas’ Church in Keresley, showing a banner image of a lit altar with candles and stained glass, and the title 'Worship & Prayer'." width="1910" height="880" src="../../assets/img/projects/web_design/keresley_church/keresleychurch.webp?h=452ec6d8bd02d324537f2dd100764d76"></a>
|
||
<div class="card-body"><a href="st-thomas-church-keresley.html">
|
||
<h4 class="text-body">St Thomas' Church Keresley</h4>
|
||
</a>
|
||
<p class="card-text">Site for St Thomas’ Church with parish news, historic archives, and searchable burial record access.</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<nav class="d-flex justify-content-center mt-3" data-bss-type="blog-loop-pagination">
|
||
<ul class="pagination">
|
||
<li class="page-item disabled" data-type="prev" data-page="1"><a class="page-link" aria-label="Previous" href="#"><span aria-hidden="true">«</span></a></li>
|
||
<li class="page-item active" data-type="regular" data-page="1"><a class="page-link" href="#">1</a></li>
|
||
<li class="page-item" data-type="regular" data-page="2"><a class="page-link" href="#">2</a></li>
|
||
<li class="page-item" data-type="next" data-page="2"><a class="page-link" aria-label="Next" href="#"><span aria-hidden="true">»</span></a></li>
|
||
</ul>
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</main>
|
||
<footer class="text-body bg-body" id="Light-Footer">
|
||
<div class="container py-4 py-lg-5 center-everything">
|
||
<div class="row justify-content-center">
|
||
<div class="col-sm-3 col-md-6 text-center text-lg-start d-none d-sm-none d-md-none d-lg-flex flex-column">
|
||
<h3 class="fs-6 text-center text-body accreditations-title">Accreditations</h3>
|
||
<div class="swiper text-body w-100" id="light-swiper" data-bss-swiper="{"direction":"horizontal","loop":true,"autoplay":{"pauseOnMouseEnter":true},"autoHeight":true,"effect":"fade","fadeEffect":{"crossFade":true}}">
|
||
<div class="swiper-wrapper">
|
||
<div class="swiper-slide d-flex justify-content-center center-everything">
|
||
<div class="tahdah-badge" data-candidateid="1466454"></div>
|
||
</div>
|
||
<div class="swiper-slide"><a href="https://www.canva.com/design-school/courses/canva-essentials" target="_blank"><img class="img-fluid w-100 accreditation" width="692" height="692" src="../../assets/img/accreditations/canva-essentials-badge.webp?h=bc157efb7620e733f43b4b00981978ea"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.canva.com/design-school/courses/canva-essentials-mobile" target="_blank"><img class="img-fluid w-100 accreditation" width="692" height="692" src="../../assets/img/accreditations/canva-essentials-for-mobile-badge.webp?h=93513f8f560a2e346c12aeb9fb0c18ec"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.canva.com/design-school/courses/graphic-design-essentials" target="_blank"><img class="img-fluid w-100 accreditation" width="692" height="692" src="../../assets/img/accreditations/graphic-design-essentials-badge.webp?h=f5406331e45433f0d8bd6b929f9d113b"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.canva.com/design-school/courses/marketing-with-canva" target="_blank"><img class="img-fluid w-100 accreditation" width="1080" height="1080" src="../../assets/img/accreditations/mr-a-davis-marketing-with-canva-badge.webp?h=f0b802da597c825b7e03378130d94aca"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.canva.com/design-school/courses/canva-for-work" target="_blank"><img class="img-fluid w-100 accreditation" width="2160" height="2160" src="../../assets/img/accreditations/mr-a-davis-canva-for-work-badge.webp?h=b3617633e9d2de429288704f75b304f4"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.canva.com/design-school/courses/teacher-essentials" target="_blank"><img class="img-fluid w-100 accreditation" width="692" height="692" src="../../assets/img/accreditations/teacher-essentials-badge.webp?h=d2d6f962e0b1bbebc68f987d6f156028"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.canva.com/design-school/courses/ai-in-the-classroom" target="_blank"><img class="img-fluid w-100 accreditation" width="1080" height="1080" src="../../assets/img/accreditations/ai-in-the-classroom-badge.webp?h=769458ef2c323729c209855a3cde7312"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/3a49b473-4af9-4c5a-ab38-1c754f181c6e/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " Adobe Creative Educator Level 1"" width="600" height="600" src="../../assets/img/accreditations/3_hours_adobe_creative_educator_level_1.webp?h=45de0c4e8984e885b1153e344e794beb"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/9c9dd6cd-2703-4539-adc9-366069cbc3a9/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " MCE: Microsoft Certified Educator"" width="352" height="352" src="../../assets/img/accreditations/mce_microsoft_certified_educator.webp?h=3e67f154a356cd1ef15c31b0fb42c0c4"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/b5ac17a1-0914-496f-9d85-9608966259ee/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " Microsoft Innovative Educator Expert 2023-2024"" width="600" height="600" src="../../assets/img/accreditations/microsoft_innovative_educator_expert_2023_2024.webp?h=ee882aefba64b3e5b8ea9554eeea3847"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/ad92a7cb-3e4f-46e2-8e73-99dffd0eb69e/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " Microsoft Innovative Educator Expert 2024-2025"" width="600" height="600" src="../../assets/img/accreditations/microsoft_innovative_educator_expert_2024_2025.webp?h=a0b5cb2a639caf0351a977146375667e"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/44756f05-e727-41c8-a352-a656c033c9f0/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " Onscreen Assessment Expert GCSE Computer Science"" width="800" height="800" src="../../assets/img/accreditations/pearson_onscreen_assessment_expert.webp?h=d4e00ea5bfad5a66c619238d7cbdd8db"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/52121ef6-0760-4870-91cc-1cb20001238b/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " Establishing a STEM club - from creation to careers 2021/2022"" width="1200" height="1200" src="../../assets/img/accreditations/establishing_a_stem_club_from_creation_to_careers_2021_2022.webp?h=7f96a591bd4fb09f86da96af8a8a41ef"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/60d50339-2dda-4991-90b5-7ff087975746/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " Secondary Computer Science - Professional Development 2021-2022"" width="1200" height="1200" src="../../assets/img/accreditations/secondary_computer_science_professional_development_2021_2022.webp?h=813dd91393f904969bc3bf184007c8c2"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/e74f9011-4006-4570-824a-f483fdcb5b26/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " Secondary Computing - Professional Development 2023-2024"" width="600" height="600" src="../../assets/img/accreditations/secondary_computing_professional_development_2023_2.webp?h=77ebf2880eb7d342016b83e098d92d23"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/c73720d2-8208-4e2b-a1e5-c473961834d9/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " GCSE Computer Science: Professional Development 2019-2020"" width="1200" height="1200" src="../../assets/img/accreditations/gcse_computer_science_professional_development_2019_2020.webp?h=fef2cee3326aeff9e2f65e86cf5e4fee"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/c486279a-8e97-4779-90c1-56f09622e782/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " GCSE Computer Science - Professional Development 2022-2023"" width="2000" height="2000" src="../../assets/img/accreditations/gcse_computer_science_professional_development_2022_2023.webp?h=0a54c55717b61c0a0b4ed80582d7bfae"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/e76ed57f-2270-47f5-8e7e-4136baa261f3/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " GCSE Computer Science - Professional Development 2023-2024"" width="600" height="600" src="../../assets/img/accreditations/gcse_computer_science_professional_development_2023.webp?h=71b8c59772af539946fb49a210b05758"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/418cfb22-3e37-4b24-b527-652b1ab6ea76/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " A-Level Computer Science - Professional Development 2023-2024"" width="600" height="600" src="../../assets/img/accreditations/a_level_computer_science_professional_development.webp?h=a9cc6f73abdf82ab49e5f8a8695cb557"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/0e46d6b8-1a1b-4d16-a5d5-3b95661fb290/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " Microsoft Office Specialist: Master 2013"" width="352" height="352" src="../../assets/img/accreditations/microsoft_office_specialist_master_2013.webp?h=70d957a5307d38f46b84b6462439afbc"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/287d0ca4-bea1-4e18-b9e7-21f6a5d5d571/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " Microsoft Office Specialist: Word 2013 Expert"" width="352" height="352" src="../../assets/img/accreditations/microsoft_office_specialist_word_2013_expert.webp?h=5bd4ec8c82587201172a8b8e460ff4e6"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/f1831f0e-776b-49aa-8a8d-05817d4b1410/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " Microsoft Office Specialist: Word 2013"" width="352" height="352" src="../../assets/img/accreditations/microsoft_office_specialist_word_2013.webp?h=2b90c5590b7b50f1891a9116fa38ac36"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/2ab55353-3267-46cc-b3f4-3099af54d869/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " Microsoft Office Specialist: Excel 2013"" width="352" height="352" src="../../assets/img/accreditations/microsoft_office_specialist_excel_2013.webp?h=f016925633d0a52b862259a05b396b6a"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/11162aa2-331a-4ec4-a612-665f3bc59cb1/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " Microsoft Office Specialist: PowerPoint 2013"" width="352" height="352" src="../../assets/img/accreditations/microsoft_office_specialist_powerpoint_2013.webp?h=26de9623c491661347998549e10d4353"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/cd328b1d-27b6-4410-be70-0792a99b72ea/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " Microsoft Office Specialist: OneNote 2013"" width="352" height="352" src="../../assets/img/accreditations/microsoft_office_specialist_onenote_2013.webp?h=2ffe41c2a6e37d602469f8158ef13d79"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/da3b3b4c-cec4-4537-bb5b-486ce9ee6ee7/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " MTA: Security Fundamentals - Certified 2016"" width="352" height="352" src="../../assets/img/accreditations/mta_security_fundamentals_certified_2016.webp?h=0df619419a5b6d0eb694dc9363870b20"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/23194bfe-30e4-4f8e-b9ec-338d060136dd/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " MTA: Networking Fundamentals - Certified 2016"" width="352" height="352" src="../../assets/img/accreditations/mta_networking_fundamentals_certified_2016.webp?h=cdc4618c5e86d11aa304cae14c3942bc"></a></div>
|
||
<div class="swiper-slide"><a href="https://www.credly.com/badges/f0f27d87-424b-49e8-a444-95086d640e66/public_url" target="_blank"><img class="img-fluid w-100 accreditation" alt="Accreditation badge for: " MTA: Windows Operating System Fundamentals - Certified 2016"" width="352" height="352" src="../../assets/img/accreditations/mta_windows_operating_system_fundamentals_certified_2016.webp?h=44a6360480ef67ced301c697d31f9fa5"></a></div>
|
||
</div>
|
||
</div>
|
||
<div class="swiper-nav-standalone d-flex justify-content-center accreditations-navigation" data-bss-swiper-target="#light-swiper">
|
||
<div class="swiper-button-prev"><button class="btn btn-primary btn-sm" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-arrow-left">
|
||
<path fill-rule="evenodd" d="M15 8a.5.5 0 0 0-.5-.5H2.707l3.147-3.146a.5.5 0 1 0-.708-.708l-4 4a.5.5 0 0 0 0 .708l4 4a.5.5 0 0 0 .708-.708L2.707 8.5H14.5A.5.5 0 0 0 15 8"></path>
|
||
</svg></button></div>
|
||
<div class="swiper-button-next"><button class="btn btn-primary btn-sm" type="button"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-arrow-right">
|
||
<path fill-rule="evenodd" d="M1 8a.5.5 0 0 1 .5-.5h11.793l-3.147-3.146a.5.5 0 0 1 .708-.708l4 4a.5.5 0 0 1 0 .708l-4 4a.5.5 0 0 1-.708-.708L13.293 8.5H1.5A.5.5 0 0 1 1 8"></path>
|
||
</svg></button></div>
|
||
</div>
|
||
</div>
|
||
<div class="col-md-3 text-center text-lg-start d-flex flex-column"><a class="d-flex w-100 justify-content-center center-everything" href="https://client.brixly.uk/aff.php?aff=837" target="_blank"><img class="img-fluid object-fit-contain w-50" src="https://brixly.uk/wp-content/uploads/2022/06/Artboard-32.jpg"></a></div>
|
||
<div class="col-md-3 text-center text-lg-start d-flex flex-column align-items-center order-first align-items-lg-start order-lg-last">
|
||
<div class="fw-bold d-flex align-items-center mb-2"><img alt="Stylised orange microchip icon on a black background, designed as a modern tech-themed logo for ADCM" src="../../assets/img/brand/adcm_logo_accent.webp?h=62dbf084286026c4b6de08d0203df501" width="50" height="50" class="footer-logo"><span>Mr A Davis</span></div>
|
||
<p>IT professional and Head of Computing in the West Midlands</p>
|
||
</div>
|
||
</div>
|
||
<hr>
|
||
<div class="d-flex justify-content-between align-items-center pt-3">
|
||
<p class="mb-0 footer-copyright">Copyright © 2025 ADCM Networks</p>
|
||
<ul class="list-inline mb-0">
|
||
<li class="list-inline-item"><a rel="me" href="https://mstdn.social/@MrDavisCSIT"><svg class="text-body" xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" width="1em" height="1em" fill="currentColor">
|
||
<!--! Font Awesome Free 6.4.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2023 Fonticons, Inc. -->
|
||
<path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.54 102.54 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"></path>
|
||
</svg></a></li>
|
||
<li class="list-inline-item"><a href="https://bsky.app/profile/adcmnetworks.co.uk"><i class="fa-brands fa-square-bluesky"></i></a></li>
|
||
<li class="list-inline-item"><a href="https://www.linkedin.com/in/MrDavisCSIT/"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-linkedin text-body">
|
||
<path d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854V1.146zm4.943 12.248V6.169H2.542v7.225h2.401m-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248-.822 0-1.359.54-1.359 1.248 0 .694.521 1.248 1.327 1.248h.016zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016a5.54 5.54 0 0 1 .016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225h2.4"></path>
|
||
</svg></a></li>
|
||
<li class="list-inline-item"><a href="https://github.com/MrDavisCSIT"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-github text-body">
|
||
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8"></path>
|
||
</svg></a></li>
|
||
<li class="list-inline-item"><a href="https://www.reddit.com/user/AlexanderEDavis95/"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-reddit text-body">
|
||
<path d="M6.167 8a.831.831 0 0 0-.83.83c0 .459.372.84.83.831a.831.831 0 0 0 0-1.661m1.843 3.647c.315 0 1.403-.038 1.976-.611a.232.232 0 0 0 0-.306.213.213 0 0 0-.306 0c-.353.363-1.126.487-1.67.487-.545 0-1.308-.124-1.671-.487a.213.213 0 0 0-.306 0 .213.213 0 0 0 0 .306c.564.563 1.652.61 1.977.61zm.992-2.807c0 .458.373.83.831.83.458 0 .83-.381.83-.83a.831.831 0 0 0-1.66 0z"></path>
|
||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-3.828-1.165c-.315 0-.602.124-.812.325-.801-.573-1.9-.945-3.121-.993l.534-2.501 1.738.372a.83.83 0 1 0 .83-.869.83.83 0 0 0-.744.468l-1.938-.41a.203.203 0 0 0-.153.028.186.186 0 0 0-.086.134l-.592 2.788c-1.24.038-2.358.41-3.17.992-.21-.2-.496-.324-.81-.324a1.163 1.163 0 0 0-.478 2.224c-.02.115-.029.23-.029.353 0 1.795 2.091 3.256 4.669 3.256 2.577 0 4.668-1.451 4.668-3.256 0-.114-.01-.238-.029-.353.401-.181.688-.592.688-1.069 0-.65-.525-1.165-1.165-1.165z"></path>
|
||
</svg></a></li>
|
||
<li class="list-inline-item"><a href="https://www.youtube.com/channel/UCgDhiQMLbTemv2varDiW2rA"><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 16 16" class="bi bi-youtube text-body">
|
||
<path d="M8.051 1.999h.089c.822.003 4.987.033 6.11.335a2.01 2.01 0 0 1 1.415 1.42c.101.38.172.883.22 1.402l.01.104.022.26.008.104c.065.914.073 1.77.074 1.957v.075c-.001.194-.01 1.108-.082 2.06l-.008.105-.009.104c-.05.572-.124 1.14-.235 1.558a2.007 2.007 0 0 1-1.415 1.42c-1.16.312-5.569.334-6.18.335h-.142c-.309 0-1.587-.006-2.927-.052l-.17-.006-.087-.004-.171-.007-.171-.007c-1.11-.049-2.167-.128-2.654-.26a2.007 2.007 0 0 1-1.415-1.419c-.111-.417-.185-.986-.235-1.558L.09 9.82l-.008-.104A31.4 31.4 0 0 1 0 7.68v-.123c.002-.215.01-.958.064-1.778l.007-.103.003-.052.008-.104.022-.26.01-.104c.048-.519.119-1.023.22-1.402a2.007 2.007 0 0 1 1.415-1.42c.487-.13 1.544-.21 2.654-.26l.17-.007.172-.006.086-.003.171-.007A99.788 99.788 0 0 1 7.858 2h.193zM6.4 5.209v4.818l4.157-2.408z"></path>
|
||
</svg></a></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
<script>
|
||
(function() {
|
||
let collections = document.querySelectorAll('[data-bss-type="blog-loop"]');
|
||
let tagNavs = document.querySelectorAll('[data-bss-type="tag-nav"]');
|
||
let tagLoops = document.querySelectorAll('[data-bss-type="tag-loop"]');
|
||
let authorLoops = document.querySelectorAll('[data-bss-type="author-loop"]');
|
||
let authorNavs = document.querySelectorAll('[data-bss-type="author-nav"]');
|
||
|
||
window.addEventListener("popstate", (e) => {
|
||
for (let collection of collections) {
|
||
updateCollection(collection);
|
||
}
|
||
|
||
for (let tagNav of tagNavs) {
|
||
updateTagNav(tagNav);
|
||
}
|
||
|
||
for (let authorNav of authorNavs) {
|
||
updateAuthorNav(authorNav);
|
||
}
|
||
});
|
||
|
||
for (let collection of collections) {
|
||
|
||
updateCollection(collection);
|
||
|
||
if (!canPaginateCollection(collection)) continue;
|
||
|
||
let pagination = collection.querySelector('[data-bss-type="blog-loop-pagination"]');
|
||
|
||
pagination.addEventListener('click', function(e) {
|
||
let paginationItem = e.target.closest('.page-item');
|
||
if (!paginationItem) return;
|
||
|
||
e.preventDefault();
|
||
|
||
if (paginationItem.classList.contains('disabled') || paginationItem.classList.contains('active')) return;
|
||
|
||
let collection = paginationItem.closest('[data-bss-type="blog-loop"]');
|
||
if (!collection) return;
|
||
|
||
let page = parseInt(paginationItem.dataset.page);
|
||
if (!page) return;
|
||
|
||
let pageParam = getPageParameter(collection);
|
||
|
||
if (pageParam) {
|
||
const url = new URL(window.location);
|
||
url.searchParams.set(pageParam, page);
|
||
history.pushState({
|
||
[pageParam]: page
|
||
}, document.title, url);
|
||
|
||
for (let c of collections) {
|
||
let param = getPageParameter(c);
|
||
if (param !== pageParam) continue;
|
||
updateCollection(c);
|
||
}
|
||
} else {
|
||
updateCollection(collection, page);
|
||
}
|
||
});
|
||
}
|
||
|
||
for (let tagNav of tagNavs) {
|
||
updateTagNav(tagNav);
|
||
tagNav.addEventListener('click', onTagClick);
|
||
}
|
||
|
||
for (let tagLoop of tagLoops) {
|
||
tagLoop.addEventListener('click', onTagClick);
|
||
}
|
||
|
||
for (let authorLoop of authorLoops) {
|
||
authorLoop.addEventListener('click', onAuthorClick);
|
||
}
|
||
|
||
for (let authorNav of authorNavs) {
|
||
updateAuthorNav(authorNav);
|
||
}
|
||
|
||
function onTagClick(e) {
|
||
onBlogFilterClick(e);
|
||
|
||
for (let nav of tagNavs) {
|
||
updateTagNav(nav);
|
||
}
|
||
}
|
||
|
||
function onAuthorClick(e) {
|
||
onBlogFilterClick(e);
|
||
|
||
for (let authorNav of authorNavs) {
|
||
updateAuthorNav(authorNav);
|
||
}
|
||
}
|
||
|
||
function onBlogFilterClick(e) {
|
||
const item = e.target.closest('[data-bss-filter="blog"]');
|
||
if (!item || !item.dataset.hasOwnProperty('bssHref') || !item.dataset.hasOwnProperty('bssFilterParam')) return;
|
||
|
||
const stateNode = item.dataset.hasOwnProperty('bssStateNode') ? item : item.querySelector('[data-bss-state-node]');
|
||
|
||
if (stateNode && (stateNode.classList.contains('disabled') || stateNode.classList.contains('active'))) {
|
||
e.preventDefault();
|
||
return;
|
||
}
|
||
|
||
const link = item.dataset.bssHref;
|
||
if (!linksToCurrentPage(link)) return;
|
||
|
||
e.preventDefault();
|
||
|
||
const url = new URL(window.location);
|
||
const filterParam = item.dataset.bssFilterParam;
|
||
const filterValue = item.dataset.bssFilterValue || '';
|
||
|
||
const collectionsToUpdate = [];
|
||
const newQueryParams = {
|
||
[filterParam]: filterValue
|
||
};
|
||
|
||
for (let c of collections) {
|
||
if (!canFilterCollection(c)) continue;
|
||
collectionsToUpdate.push(c);
|
||
|
||
let pageParam = getPageParameter(c);
|
||
let page = url.searchParams.get(pageParam);
|
||
if (page === null || page == 1) continue;
|
||
|
||
newQueryParams[pageParam] = 1;
|
||
}
|
||
|
||
for (let param in newQueryParams) {
|
||
if (newQueryParams[param]) {
|
||
url.searchParams.set(param, newQueryParams[param]);
|
||
} else {
|
||
url.searchParams.delete(param);
|
||
}
|
||
}
|
||
|
||
history.pushState(newQueryParams, document.title, url);
|
||
|
||
for (let c of collectionsToUpdate) {
|
||
updateCollection(c);
|
||
}
|
||
}
|
||
|
||
function getCollectionFilters(collection) {
|
||
let filters = [];
|
||
|
||
try {
|
||
const parsed = JSON.parse(collection.dataset.bssFilters);
|
||
|
||
if (Array.isArray(parsed)) {
|
||
filters = parsed;
|
||
}
|
||
} catch (e) {}
|
||
|
||
return filters;
|
||
}
|
||
|
||
function getCollectionEmptyFilterAction(collection, filter = '') {
|
||
let emptyFilterActions = [];
|
||
|
||
try {
|
||
const parsed = JSON.parse(collection.dataset.bssEmptyFilterActions);
|
||
|
||
if (Array.isArray(parsed)) {
|
||
emptyFilterActions = parsed;
|
||
}
|
||
} catch (e) {}
|
||
|
||
const action = emptyFilterActions.find(action => action.filter === filter);
|
||
|
||
return action ? action.value : '';
|
||
}
|
||
|
||
function canFilterCollection(collection) {
|
||
return !!getCollectionFilters(collection).length;
|
||
}
|
||
|
||
function canFilterCollectionByTag(collection) {
|
||
return getCollectionFilters(collection).includes('tag');
|
||
}
|
||
|
||
function canFilterCollectionByAuthor(collection) {
|
||
return getCollectionFilters(collection).includes('author');
|
||
}
|
||
|
||
function shouldShowAllItemsForEmptyFilter(collection, filter = '') {
|
||
return getCollectionEmptyFilterAction(collection, filter) === 'show-all';
|
||
}
|
||
|
||
function canPaginateCollection(collection) {
|
||
return !!getCollectionPagination(collection);
|
||
}
|
||
|
||
function getCollectionPagination(collection) {
|
||
return collection.querySelector('[data-bss-type="blog-loop-pagination"]');
|
||
}
|
||
|
||
function getPageParameter(collection) {
|
||
return collection.dataset.bssPageParam;
|
||
}
|
||
|
||
function linksToCurrentPage(path = '') {
|
||
let currentURL, url;
|
||
|
||
try {
|
||
currentURL = new URL(window.location);
|
||
url = new URL(path, window.location.href);
|
||
} catch (e) {
|
||
console.error(e);
|
||
}
|
||
|
||
return currentURL.origin === url.origin && currentURL.pathname === url.pathname;
|
||
}
|
||
|
||
function updateCollection(collection, page, activeTag = '', activeAuthor = '') {
|
||
|
||
const url = new URL(window.location.href);
|
||
|
||
if (canPaginateCollection(collection)) {
|
||
if (!page) {
|
||
let pageParam = getPageParameter(collection);
|
||
page = (pageParam ? url.searchParams.get(pageParam) : 1) || 1;
|
||
}
|
||
}
|
||
|
||
if (canFilterCollectionByTag(collection) && !activeTag) {
|
||
let tagParam = 'tag';
|
||
activeTag = url.searchParams.get(tagParam) || '';
|
||
}
|
||
|
||
if (canFilterCollectionByAuthor(collection) && !activeAuthor) {
|
||
let authorParam = 'author';
|
||
activeAuthor = url.searchParams.get(authorParam) || '';
|
||
}
|
||
|
||
renderCollectionPage(collection, page, activeTag, activeAuthor);
|
||
}
|
||
|
||
function renderCollectionPage(collection, page = 1, activeTag = '', activeAuthor = '') {
|
||
|
||
page = Math.max(parseInt(page, 10), 1);
|
||
|
||
collection.style.removeProperty('display');
|
||
|
||
let loopBase = collection.querySelector('[data-bss-type="blog-loop-base"]');
|
||
loopBase && loopBase.style.removeProperty('display');
|
||
|
||
let emptyState = collection.querySelector('[data-bss-type="empty-state"]');
|
||
emptyState && emptyState.style.setProperty('display', 'none', 'important');
|
||
|
||
let listItems = [].slice.call(collection.querySelectorAll('[data-bss-type="blog-loop-item"]'));
|
||
listItems.forEach(item => item.style.setProperty('display', 'none', 'important'));
|
||
|
||
if (canFilterCollectionByTag(collection)) {
|
||
listItems = listItems.filter(item => activeTag ? item.classList.contains('post-tag-' + activeTag) : shouldShowAllItemsForEmptyFilter(collection, 'tag'));
|
||
}
|
||
|
||
if (canFilterCollectionByAuthor(collection)) {
|
||
listItems = listItems.filter(item => activeAuthor ? item.classList.contains('post-author-' + activeAuthor) : shouldShowAllItemsForEmptyFilter(collection, 'author'));
|
||
}
|
||
|
||
let perPage = collection.dataset.bssPerpage || listItems.length;
|
||
let visibleListItems = listItems.slice((page - 1) * perPage, page * perPage);
|
||
visibleListItems.forEach(item => item.style.removeProperty('display'));
|
||
|
||
let isEmpty = !visibleListItems.length;
|
||
|
||
if (isEmpty) {
|
||
loopBase && loopBase.style.setProperty('display', 'none', 'important');
|
||
emptyState && emptyState.style.removeProperty('display');
|
||
}
|
||
|
||
let itemCount = listItems.length;
|
||
let pageCount = Math.max(Math.ceil(itemCount / perPage), 1);
|
||
|
||
updateCollectionPagination(collection, page, pageCount, isEmpty);
|
||
|
||
if (collection.dataset.bssScrollOnChange) {
|
||
scrollToCollectionTop(collection);
|
||
}
|
||
}
|
||
|
||
function updateCollectionPagination(collection, page, pageCount, isEmpty) {
|
||
let pagination = getCollectionPagination(collection);
|
||
if (!pagination) return;
|
||
|
||
let paginationItems = [].slice.call(pagination.querySelectorAll('.page-item'));
|
||
|
||
if (pageCount === 1 || isEmpty) {
|
||
pagination.style.setProperty('display', 'none', 'important');
|
||
} else {
|
||
pagination.style.removeProperty('display');
|
||
}
|
||
|
||
let previousBtnDisabled = page - 1 <= 0;
|
||
let previousPage = previousBtnDisabled ? 1 : page - 1;
|
||
|
||
let nextBtnDisabled = page + 1 > pageCount;
|
||
let nextPage = nextBtnDisabled ? pageCount : page + 1;
|
||
|
||
for (let i = 0; i < paginationItems.length; i++) {
|
||
let paginationItem = paginationItems[i];
|
||
|
||
paginationItem.classList.remove('active', 'disabled');
|
||
|
||
if (paginationItem.dataset.type === 'prev') {
|
||
paginationItem.dataset.page = previousPage;
|
||
|
||
if (previousBtnDisabled) {
|
||
paginationItem.classList.add('disabled');
|
||
}
|
||
} else if (paginationItem.dataset.type === 'next') {
|
||
paginationItem.dataset.page = nextPage;
|
||
|
||
if (nextBtnDisabled) {
|
||
paginationItem.classList.add('disabled');
|
||
}
|
||
} else {
|
||
if (paginationItem.dataset.page > pageCount) {
|
||
paginationItem.style.setProperty('display', 'none', 'important');
|
||
} else {
|
||
paginationItem.style.removeProperty('display');
|
||
}
|
||
|
||
if (paginationItem.dataset.page == page) {
|
||
paginationItem.classList.add('active');
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
function scrollToCollectionTop(collection) {
|
||
const rect = collection.getBoundingClientRect();
|
||
const viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight);
|
||
const threshold = 100;
|
||
|
||
if (rect.top >= 0 && viewHeight - rect.top > threshold) return;
|
||
|
||
setTimeout(() => {
|
||
collection.scrollIntoView({
|
||
behavior: "smooth",
|
||
block: "start",
|
||
inline: "start"
|
||
});
|
||
}, 0);
|
||
}
|
||
|
||
function updateTagNav(tagNav) {
|
||
const url = new URL(window.location.href);
|
||
|
||
let tagParam = 'tag';
|
||
let tag = url.searchParams.get(tagParam) || '';
|
||
|
||
renderTagNav(tagNav, tag);
|
||
}
|
||
|
||
function renderTagNav(tagNav, activeTag = '') {
|
||
if (!tagNav.dataset.bssSyncUrl) return;
|
||
|
||
let navItems = [].slice.call(tagNav.querySelectorAll('[data-bss-type="tag-loop-item"]'));
|
||
|
||
navItems.forEach(item => {
|
||
const activeClassNode = item.dataset.hasOwnProperty('bssStateNode') ? item : item.querySelector('[data-bss-state-node]');
|
||
if (!activeClassNode) return;
|
||
|
||
activeClassNode.classList.remove('active');
|
||
|
||
const link = item.dataset.bssHref;
|
||
if (!linksToCurrentPage(link) || activeClassNode.classList.contains('disabled')) return;
|
||
|
||
if (item.dataset.bssTag === activeTag) {
|
||
activeClassNode.classList.add('active');
|
||
}
|
||
});
|
||
}
|
||
|
||
function updateAuthorNav(authorNav) {
|
||
const url = new URL(window.location.href);
|
||
|
||
let authorParam = 'author';
|
||
let author = url.searchParams.get(authorParam) || '';
|
||
|
||
renderAuthorNav(authorNav, author);
|
||
}
|
||
|
||
function renderAuthorNav(authorNav, activeAuthor = '') {
|
||
if (!canFilterCollectionByAuthor(authorNav)) return;
|
||
|
||
authorNav.style.removeProperty('display');
|
||
|
||
let items = [].slice.call(authorNav.querySelectorAll('[data-bss-type="author-loop-item"]'));
|
||
items.forEach(item => item.classList.contains('author-' + activeAuthor) ? item.style.removeProperty('display') : item.style.setProperty('display', 'none', 'important'));
|
||
}
|
||
})();
|
||
</script>
|
||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script>
|
||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.6/dist/js/bootstrap.bundle.min.js"></script>
|
||
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
|
||
<script src="../../assets/js/bs-init.js?h=7c6b4c49b8ac0f383799ccb3d5def770"></script>
|
||
<script src="../../assets/js/Carousel---Slider-With-Animation-slider_with_animation.js?h=948f8788fd189b5cc9df01ff4fce4152"></script>
|
||
<script src="../../assets/js/CookieConsentComponent-cookieconsent.js?h=83fbb3192473604d72b00a854c6de4fd"></script>
|
||
<script src="https://kit.fontawesome.com/8970d94f9b.js"></script>
|
||
<script src="../../assets/js/pikaday.min.js?h=039feef26d52ebc5f1260a47208bfa38"></script>
|
||
<script src="../../assets/js/text-carousel.js?h=992f402828c7806b1f3bb7f29232e972"></script>
|
||
<script src="../../assets/js/theme.js?h=aeddb9c3ce5d77b8278c91c07acf30ad"></script>
|
||
</body>
|
||
|
||
</html> |