Compatible with: Joomla 6.1.1 · PHP 8.x (verified on PHP 8.3.31) · Bootstrap 5
First Joomla 6 native release. Projecta has been rebuilt from the ground up for Joomla 6.1.1 + PHP 8.3 + Bootstrap 5 + Swiper 11, with no carry-over of the bundled jQuery 1.8.1, the Camera slideshow library, the Superfish menu init, the owl.carousel + nicescroll + elevateZoom + selectric stack, the IE-era polyfills (Modernizr/Selectivizr/Flexibility), or the Joomla 3 / Joomla 4 compatibility shims that defined earlier releases. This is the first Projecta release that ships with full Joomla 6 namespace compliance, modern 13-network social parity with real ET brand data wired in, a hardened output-escaping pass across the admin-controlled echo sites, and J5/J6-native admin form switchers throughout the Template Style fieldset.
Added
Joomla 6 native API
- Full Joomla 6 namespace compliance across the template entry-point, helpers, and parameter-echo paths —
JFactory → Factory, JText → Text, JRoute → Route, JUri → Uri, JHtml → HTMLHelper, JComponentHelper → ComponentHelper, JPluginHelper → PluginHelper, and the rest of the deprecated J* static-class family.
templateDetails.xml rewritten to the J6 manifest schema with method="upgrade" declared so existing customers can install in place without uninstall-first. Extension-version declaration bumped to 6.1.0.
- Native Joomla 6 jQuery (loaded via the CMS) used in place of the previously-bundled jQuery 1.8.1 — one shared instance across the page, current security patches included.
- Mixed-namespace cleanup in
html/mod_login/default.php — three stragglers (JRoute, JHtml, TEXT uppercase typo) corrected to Route, HTMLHelper, Text alongside the file's already-modern use statements.
Swiper 11 slideshow
- The legacy Camera slideshow plugin has been replaced with Swiper 11 — CDN-loaded (
swiper-bundle.min.{css,js}), touch-friendly, accessible, and actively maintained. Same visual look and feel as the prior slideshow; modern engine underneath.
- Slideshow markup updated to Swiper's expected DOM shape (
<div class="swiper camera_wrap"> → <div class="swiper-wrapper"> → per-slide <div class="swiper-slide" style="background-image: url(/...); background-size:cover">); the legacy camera_caption markup is preserved verbatim so existing caption CSS keeps matching.
- Swiper init honours the donor's existing
cam_time + cam_pagination parameters with effect: 'fade', loop, and autoplay.
- Slide container sizing:
aspect-ratio: 3/1; max-height: 480px; min-height: 280px; — banner proportions matching the original Camera plugin's apparent height. Required because Swiper slides with only a background-image (no text/img children) collapse to 0 height by default.
- K2 Slider override re-platformed onto Swiper 11 with the auto-wrap-children-in-load handler pattern, so any K2 module declaring the legacy
owl.carousel CSS hooks renders correctly under the new engine without admin re-configuration.
Modern social-network support (13-network parity + real ET brand data)
- Social-media set parity — added Threads, Bluesky, Mastodon, TikTok, Discord, Pinterest, Vimeo, LinkedIn alongside the existing X (Twitter), Facebook, Instagram, YouTube, RSS.
- X (the Twitter rebrand) replaces the legacy Twitter icon with the current logo (
fa-x-twitter).
- Per-network icon glyphs delivered via FontAwesome 6 brand iconography (
fa-brands set), retiring the legacy socicon-* iconfont entirely.
- Brand-data layer: live ET account URLs wired in for the five active networks (X, Facebook, Instagram, YouTube, RSS); inactive networks are toggled
OFF at the template-style level so the rendered output only shows real working icons.
- Social-block parameter set extended: each network now has its own
*ON visibility toggle plus URL field, all wired into the Template Style admin form's Community fieldset.
Security helpers (XSS hardening)
- New output-escape helpers added to
index.php:
phEsc() — HTML attribute escaping for href, src, alt, title, and Swiper caption output.
phHexColor() — color parameter validation (regex ^#?[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$) with fallback to #000000 on bad input.
phCssDim() — dimension parameter validation accepting px / em / rem / % / vh / vw / pt / ex / ch / cm / mm / in.
- Admin-controlled echoes across the template tree wrapped with these helpers wherever user-controlled parameters reach the output — social-block hrefs, preset color values, slideshow caption text, and the dimension-driven layout vars in the header block.
Changed
Admin form modernization — J5/J6-native switchers
- Every legacy
class="switch" type="checkbox" field declaration in templateDetails.xml converted to J-native type="radio" layout="joomla.form.field.radio.switcher" with explicit <option value="0">JNO</option><option value="1">JYES</option> pairs.
- Scope covers every fieldset, not just the Community-tab social ON toggles:
sliderON, cookielaw, jumpToTop, all the Camera-era FX toggles, and the rest of the legacy boolean-input set.
- Customers opening the Template Style edit screen now see Joomla 6's native pill-switcher UI instead of the 2014-era checkbox controls.
jQuery cleanup — extended legacy stack purge
- Removed bundled jQuery 1.8.1 +
jQuery.noConflict stub — template now uses Joomla 6's native jQuery.
- Removed the
jQuery.browser = {} shim (extinct as of jQuery 1.9; only present to support legacy IE detection that has no modern relevance).
- Removed the Superfish / Supersubs menu init — menu hovers are now CSS
:hover only, via menu-vanilla.js + nav.css.
- Removed
jquery.mobile.customized.min.js and jquery.easing.1.3.js — both were Camera-slideshow dependencies superseded by Swiper.
- Removed
owl.carousel.min.js — carousel duties re-platformed onto Swiper 11 (K2 module override included).
- Removed
jquery.dropkick-1.0.0.js + jquery.selectric.js — both legacy dropdown chrome libs replaced with native <select> + CSS chrome.
- Removed
jquery.backstretch.min.js — CSS background-size: cover replaces it natively.
- Removed
jquery.nicescroll.min.js — modern browsers handle custom scrollbar styling acceptably via native CSS.
- Removed
jquery.elevateZoom-3.0.8.min.js — product-image zoom dependency dropped (VM-absent on Projecta donor).
- Removed
jquery.equalHeights.js — CSS Grid / Flexbox makes this unnecessary on modern browsers.
- Removed
jquery.plusanchor.js + imgSizer.js — legacy niceties and IE-era image resizer, both unreferenced after the modernization pass.
- Removed
jquery-eu-cookie-law-popup.js — superseded by Joomla 6's built-in plg_system_privacyconsent on customer installs.
- Upgraded
scrollReveal.min.js to vanilla ScrollReveal 4.x (no jQuery dependency).
Bootstrap migration
- Template now renders against Joomla 6's bundled Bootstrap 5 natively — the bundled Bootstrap 2 archive (
css/bootstrap.zip) and the on-page BS2 stylesheet have been dropped.
- BS2 toggle attributes across the template tree converted to Bootstrap 5's
data-bs-* API.
- Layout markup updated where BS2-era grid syntax remained; existing column structure preserved, class names modernized.
IE-era polyfills retired
- Removed Modernizr, Selectivizr, and Flexibility.js — all three target legacy IE which Joomla 5 dropped and Joomla 6 explicitly does not support.
- Removed
ie.css and ie6.css from the template's CSS load list.
Bundled extensions refreshed
- Akeeba Backup Core updated to
10.3.4 — current stable release.
- Weblinks Extension Package updated to
5.1.0 — current Joomla 6-compatible release.
- Customers installing the 6.1.0 quickstart land on a clean Extensions Update screen with zero pending updates.
Fixed
- Slideshow zero-height regression after the Camera → Swiper swap — Swiper slides with only a
background-image collapsed to 0 height on first render. Resolved with the aspect-ratio: 3/1; max-height: 480px; min-height: 280px; container sizing block on .swiper within .camera_wrap.
- PHP 8 dispatcher-removed-variable warnings — null-coalesce fallbacks added for parameters Joomla 6's dispatcher no longer passes to the template's
index.php directly.
- Dead 13-network
#TYPE-URL-HERE placeholders in the rendered social block — brand-data wire-up step now sets real ET URLs on the active networks and toggles inactive networks OFF, so the rendered output shows only real working icons.
Quickstart database hardening
- Customer-facing aggregate counters reset to 0. Donor-site preview / dev hits no longer leak into a customer's fresh install. Counters now zeroed at quickstart build time:
- Joomla core —
#__content.hits, #__categories.hits, #__contact_details.hits, #__newsfeeds.hits, #__tags.hits, #__ucm_content.core_hits, #__weblinks.hits, #__redirect_links.hits, #__core_log_searches.hits, #__finder_logging.hits.
- Users —
#__users.resetCount (cleared so first customer password reset isn't pre-counted).
- J6 driver-bypass install compatibility — the J5 quickstart pattern of splicing a
TRUNCATE-preamble onto custom.sql is incompatible with Joomla 6's installer (which no longer auto-loads base.sql before custom.sql). The Projecta 6.1.0 build pipeline relies on the mysqldump-provided DROP TABLE IF EXISTS + CREATE TABLE IF NOT EXISTS pairs for clean-state guarantees, dropping the TRUNCATE preamble entirely.
- Install wizard verified clean on PHP 8.1, 8.2, and 8.3.
Removed
- Bundled jQuery 1.8.1 +
jQuery.browser IE shim + jquery.noConflict.js stub.
- Superfish / Supersubs menu init scripts (replaced with CSS
:hover + menu-vanilla.js).
- Camera slideshow library (superseded by Swiper 11):
camera.min.js, camera.js, jquery.mobile.customized.min.js, jquery.easing.1.3.js.
- Owl Carousel (
owl.carousel.min.js) — carousel work re-platformed onto Swiper 11.
- Dropkick + Selectric dropdown libs — replaced with native
<select>.
- Backstretch, NiceScroll, ElevateZoom, equalHeights, plusanchor, imgSizer, EU Cookie Law popup — full IE-era + niceties library purge.
- Modernizr, Selectivizr, Flexibility — IE-era polyfills retired.
ie.css and ie6.css — IE-only stylesheets retired.
- Joomla 3 + Joomla 4 compatibility shims.
- Bootstrap 2 archive (
css/bootstrap.zip) and BS2 fallback assets.
- Legacy
socicon-* iconfont — replaced with FontAwesome 6 brand glyphs.
- Dead social networks: Google+, StumbleUpon, Digg, Blogger, MySpace — params + icons + admin fields all stripped.
- Orphan
html/mod_search/default.php override — mod_search module was removed from Joomla 5+, override is unreachable dead code.
- Pre-modernization
error_log, stray .bak files, and the error_.php 2022 backup of error.php.
Notes
- Joomla: 6.1.1. PHP: 8.3 (verified on PHP 8.3.31). Bootstrap: 5. Projecta template: 6.1.0 (this release).
- This release targets Joomla 6.1+ exclusively. Sites still on Joomla 5 should remain on the 6.0.0 release until they've completed their Joomla 5 → 6 migration. Sites still on Joomla 4 should complete the J4 → J5 → J6 path before installing Projecta 6.1.0.
- VirtueMart is not bundled or required by Projecta 6.1.0. Customers running VirtueMart on their site can install it independently; Projecta does not skin VirtueMart views in this release.
- Projecta 6.1.0 is the first Projecta release packaged in the modern
pkg_projecta Joomla update-server format with method="upgrade" on both the standalone package and the template extension — existing customers can install projecta.zip over the top via the Extensions Manager, no uninstall-first required.
- Version ceiling principle (locked in 2026-06-03): the template version is capped at the Joomla version it ships against. Projecta is shipping at 6.1.0 because the supported Joomla quickstart is at 6.1.1; future Projecta releases will track the Joomla version it targets.
Package format
- Standalone template:
projecta.zip — Joomla package wrapper that installs the tpl_projecta template extension and registers it under the package manager.
- Quickstart bundle:
Projecta-J6.1.1-Quickstart-20260603-projecta-6.1.0.zip — complete Joomla 6.1.1 install with Projecta pre-loaded as the active template, all customer-facing aggregate counters zeroed on first install, and the J6 driver-bypass installer compatibility patches in place.