WP Seasonal Logo Rotator (Auto-Scan Hack)

WP Seasonal Logo Rotator (Auto-Scan Hack) 1.0.0

No permission to download
XF Compatibility
  1. 2.3.x
Short Description
A lightweight template hack to automatically rotate forum logos for seasons, events, or subtle brand
WP Seasonal Logo Rotator (Auto-Scan Hack)

A lightweight template hack to automatically rotate forum logos for seasons, events, or subtle brand refreshes simply by dropping images into a folder.

No add-ons.
No filename editing.
No maintenance.

What This Does
Scans a logo folder automatically
Selects one image at random on each page load
Updates instantly when images are added or removed
Ideal for seasonal or event-based branding

Installation

1. Create a logo folder

Create this folder on your server:
/styles/season_logos/
2. Add list.php

Create list.php inside the same folder.
PHP:
<?php
header('Content-Type: application/json');
$allowed = ['webp', 'png', 'jpg', 'jpeg', 'gif', 'svg'];
$files = [];
foreach (scandir(__DIR__) as $file) {
    if ($file === '.' || $file === '..' || $file === 'list.php') continue;
    if (in_array(strtolower(pathinfo($file, PATHINFO_EXTENSION)), $allowed, true)) {
        $files[] = $file;
    }
}
echo json_encode($files);
Optional check:
3. Add CSS

Admin Panel → Appearance → Styles → Templates → extra.less
CSS:
.p-header-logo {
    position: relative;
    width: 350px;
    height: 300px;
}
.p-header-logo img {
    visibility: hidden;
}
.p-header-logo::before {
    content: "";
    position: absolute;
    inset: 0;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}
Adjust width/height to match your logo.



4. Add JavaScript

Admin Panel → Appearance → Templates → PAGE_CONTAINER
Paste after {$ldJsonHtml|raw}
Code:
<script>
(async function () {
    const folderPath = '/styles/season_logos/';
    try {
        const res = await fetch(folderPath + 'list.php');
        if (!res.ok) return;
        const logos = await res.json();
        if (!logos.length) return;
        const logo = logos[Math.floor(Math.random() * logos.length)];
        const style = document.createElement('style');
        style.textContent = `
            .p-header-logo::before {
                background-image: url("${folderPath}${logo}");
            }
        `;
        document.head.appendChild(style);
    } catch (e) {}
})();
</script>
Notes
  • Logo changes on each page load
  • Clear browser cache after setup
  • Mobile sizing may need adjustment in extra.less
  • list.php exposes image filenames only



Disclaimer
This is a simple template hack, not an add-on.
Use only if you are comfortable exposing logo filenames via list.php.
  • Like
Reactions: l1admin689
Author
axtona
Views
142
Extension type
rar
File size
489 bytes
First release
Last update
Ratings 0.00 star(s) 0 ratings
Link was Broken? Please Send message to the Website Team and we will assist you quickly!
Support Developer If you are satisfied with the test or your project has earned you money, Click the More Information button to support the developer by purchasing.

More resources from axtona

payment Profile: Authorize.Net with ARB A
This add-on extends XenForo 2 payment profile system to accept payment via Authorize.Net.
Payment Refunds A
This add-on adds two capabilities missing from XenForo's payment system: Admin-initiated refunds
[ForoPL] Tacs Plus A
A lightweight add-on that enhances thread tags with two features:

Similar resources

German translation for [021] ChatGPT Autoresponder W
the german translation Deutsch (Du) for the [021] ChatGPT Autoresponder add-on
Top