You've already forked ProfessionalWebsite
@@ -0,0 +1,783 @@
|
||||
<!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>Birmingham City University Mental Health Awareness</title>
|
||||
<link rel="canonical" href="https://www.mrlyall.uk/my-work/web-design/birmingham-city-university-mental-health-awareness.html">
|
||||
<meta property="og:url" content="https://www.mrlyall.uk/my-work/web-design/birmingham-city-university-mental-health-awareness.html">
|
||||
<meta name="twitter:description" content="The website of Mr. A. Lyall, 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 name="twitter:card" content="summary">
|
||||
<meta property="og:type" content="website">
|
||||
<meta name="twitter:title" content="Mr Lyall">
|
||||
<meta property="og:image" content="https://www.mrlyall.uk/assets/img/projects/web_design/bcumha/bcumhapreview.webp">
|
||||
<meta name="description" content="Responsive WordPress site for BCU Mental Health Awareness with events, media, updates, and info hub.">
|
||||
<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=69bc5b06794edd4ca9a38642d36c83d0">
|
||||
<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=7c67e1bb3df4cb41abaceaf312f03dfa">
|
||||
<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>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
<main class="page">
|
||||
<section class="portfolio-block block-intro">
|
||||
<div class="container center-everything">
|
||||
<!-- Start: portfolio heading -->
|
||||
<div class="align-content-center heading blog-heading bcumha-website">
|
||||
<h2 class="text-capitalize">Birmingham City University Mental Health Awareness</h2>
|
||||
<p>Responsive WordPress site for BCU Mental Health Awareness with events, media, updates, and info hub.</p>
|
||||
</div><!-- End: portfolio heading -->
|
||||
</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="Full-width version of the BCU Mental Health Awareness homepage showing the same mug and notebook banner image with overlay text." width="1260" height="500" src="../../assets/img/projects/web_design/bcumha/bcumhapage.webp?h=1d8df31076b2bf71addf0ba48ec0c766"></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">
|
||||
<p>In June 2016, I was selected and asked to become the president of a new society at Birmingam City University. In August 2016, BCU Mental Health Awareness was officialy formed with myself and 4 other members on the executive committiee and part of my objectives was to update and maintain a website that was formed when the campaign team was originally formed.<br><br>Part of my time as president, I commissioned several pieces of work including a new logo and a 30 minute documentary discussing people living with and around mental health issues.</p>
|
||||
</div>
|
||||
<div class="col-auto meta project-details">
|
||||
<div class="tags"><span class="meta-heading">Project Status</span><span>Ended</span><span class="meta-heading">Client</span><span>Birmingham City University Mental Health Awareness</span><span class="meta-heading">Date</span><span>September 2016</span><span class="meta-heading">Products Created</span><span>Website, Short Films</span><a class="btn btn-primary project-buttons" role="button" href="../extracurricular-projects/i-am-aware.html">Watch Documentary</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="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="peter-bell-music.html"><img class="img-fluid card-img-top rainbow-border" 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"></a>
|
||||
<div class="card-body"><a href="peter-bell-music.html">
|
||||
<h4 class="text-body">Peter Bell Music</h4>
|
||||
</a>
|
||||
<p class="card-text">Responsive site for Peter Bell Music featuring embeds, music portfolio, and future e-commerce 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="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><!-- Start: Footer Multi Column -->
|
||||
<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">
|
||||
<!-- Start: Accreditations -->
|
||||
<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">
|
||||
<!-- Start: Mountain Training -->
|
||||
<div class="swiper-slide d-flex justify-content-center center-everything">
|
||||
<div class="tahdah-badge" data-candidateid="1466454"></div>
|
||||
</div><!-- End: Mountain Training -->
|
||||
<!-- Start: Canva Essentials -->
|
||||
<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><!-- End: Canva Essentials -->
|
||||
<!-- Start: Canva Essentials for Mobile -->
|
||||
<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><!-- End: Canva Essentials for Mobile -->
|
||||
<!-- Start: Canva Graphic Design Essentials -->
|
||||
<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><!-- End: Canva Graphic Design Essentials -->
|
||||
<!-- Start: Marketing with Canva -->
|
||||
<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><!-- End: Marketing with Canva -->
|
||||
<!-- Start: Canva for Work -->
|
||||
<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><!-- End: Canva for Work -->
|
||||
<!-- Start: Canva Teacher Essentials -->
|
||||
<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><!-- End: Canva Teacher Essentials -->
|
||||
<!-- Start: Canva AI in the Classroom -->
|
||||
<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><!-- End: Canva AI in the Classroom -->
|
||||
<!-- Start: Adobe Creative Educator Level 1 -->
|
||||
<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><!-- End: Adobe Creative Educator Level 1 -->
|
||||
<!-- Start: Minecraft Education -->
|
||||
<div class="swiper-slide"><a href="https://www.credly.com/badges/53745c80-7d0a-4428-906a-839e905c139c/public_url" target="_blank"><img class="img-fluid w-100 accreditation" width="600" height="600" src="../../assets/img/accreditations/minecraft-education-ambassador.webp?h=5c614dffa9ab6d6fd77cd805b8397ffd"></a></div><!-- End: Minecraft Education -->
|
||||
<!-- Start: MCE -->
|
||||
<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><!-- End: MCE -->
|
||||
<!-- Start: MIEE 2023-2024 -->
|
||||
<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><!-- End: MIEE 2023-2024 -->
|
||||
<!-- Start: MIEE 2024-2025 -->
|
||||
<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><!-- End: MIEE 2024-2025 -->
|
||||
<!-- Start: Pearson OSA Expert -->
|
||||
<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><!-- End: Pearson OSA Expert -->
|
||||
<!-- Start: STEM 21-22 -->
|
||||
<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><!-- End: STEM 21-22 -->
|
||||
<!-- Start: NCCE Secondary 21-22 -->
|
||||
<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><!-- End: NCCE Secondary 21-22 -->
|
||||
<!-- Start: NCCE Secondary 23-24 -->
|
||||
<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><!-- End: NCCE Secondary 23-24 -->
|
||||
<!-- Start: NCCE GCSE Computer Science 19-20 -->
|
||||
<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><!-- End: NCCE GCSE Computer Science 19-20 -->
|
||||
<!-- Start: NCCE GCSE Computer Science 23-24 -->
|
||||
<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><!-- End: NCCE GCSE Computer Science 23-24 -->
|
||||
<!-- Start: NCCE GCSE Computer Science 23-24 -->
|
||||
<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><!-- End: NCCE GCSE Computer Science 23-24 -->
|
||||
<!-- Start: NCCE A Level Computer Science 23-24 -->
|
||||
<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><!-- End: NCCE A Level Computer Science 23-24 -->
|
||||
<!-- Start: MOS Master -->
|
||||
<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><!-- End: MOS Master -->
|
||||
<!-- Start: MOS Word Expert -->
|
||||
<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><!-- End: MOS Word Expert -->
|
||||
<!-- Start: MOS Word -->
|
||||
<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><!-- End: MOS Word -->
|
||||
<!-- Start: MOS Excel -->
|
||||
<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><!-- End: MOS Excel -->
|
||||
<!-- Start: MOS PowerPoint -->
|
||||
<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><!-- End: MOS PowerPoint -->
|
||||
<!-- Start: MOS OneNote -->
|
||||
<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><!-- End: MOS OneNote -->
|
||||
<!-- Start: MTA Security -->
|
||||
<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><!-- End: MTA Security -->
|
||||
<!-- Start: MTA Networking -->
|
||||
<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><!-- End: MTA Networking -->
|
||||
<!-- Start: MTA Windows OS -->
|
||||
<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><!-- End: MTA Windows OS -->
|
||||
</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><!-- End: Accreditations -->
|
||||
<!-- Start: Spacer -->
|
||||
<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><!-- End: Spacer -->
|
||||
<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 Lyall</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">
|
||||
<!-- Start: Mastodon -->
|
||||
<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><!-- End: Mastodon -->
|
||||
<!-- Start: Bluesky -->
|
||||
<li class="list-inline-item"><a href="https://bsky.app/profile/adcmnetworks.co.uk"><i class="fa-brands fa-square-bluesky"></i></a></li><!-- End: Bluesky -->
|
||||
<!-- Start: LinkedIn -->
|
||||
<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><!-- End: LinkedIn -->
|
||||
<!-- Start: GitHub -->
|
||||
<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><!-- End: GitHub -->
|
||||
<!-- Start: Reddit -->
|
||||
<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><!-- End: Reddit -->
|
||||
<!-- Start: YouTube -->
|
||||
<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><!-- End: YouTube -->
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</footer><!-- End: Footer Multi Column -->
|
||||
<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>
|
||||
Reference in New Issue
Block a user