New Pro + Launch: pick a template and our developers set up your site in 2 business days.
See how it works
Case studies / Upgrade
Cold War Boats Association Veterans community · US Navy submarines
Upgrade Joomla 6 & T4 rebuild

Cold War Boats: 400 Boats Moved to Joomla 6

Cold War Boats keeps a home page, crew pages and archives for every US Navy submarine of the Cold War era – each boat with its own menu, all in one Joomla site. We moved it to Joomla 6 and a T4 template, and replaced the old one-template-per-boat setup with a single plugin.

Before5
Now6
  • Boat pages400+ in the fleet menu
  • Boat menusOne plugin
  • Extensions~45 components
Cold War Boats Association home page
Cold War Boats Association back end
SSN 571 · its own menu Homeport · fleet menu
ClientCold War Boats Association
TimelineAug – Nov 2026
ScopeJoomla 6 Upgrade · T4 Rebuild · Custom Plugin
01 Why it needed work

Hundreds of boats, each with its own menu – held together by an old template

A boat’s quarterdeckUSS Nautilus (SSN 571) quarterdeck on Cold War Boats
Every boat has a quarterdeck, crew lists, a logroom and reunions · shown here on Joomla 6
  • One site, a whole fleetCold War Boats gives every US Navy submarine of the era its own home: quarterdeck, crew, history and reunions. The fleet menu alone links to more than 400 boat pages.
  • Each boat, its own menuOpen a boat and the menu across the top becomes that boat’s menu. On the old site this worked by giving every boat its own copy of the template.
  • A community, not a brochureShipmates sign up with Community Builder, upload photos to the galleries, find reunions and events and ask for help – all of it had to keep working.
  • A template with no futureThe light_church template runs on the Vertex framework, which has no Joomla 6 version. Staying put meant staying on an old Joomla.
02 What we did

A new template and a new way to pick each boat’s menu

Work started in August 2026; the Joomla 6 site went live on the same server in early November.

  1. 01Joomla 6.2Core upgraded, with the site’s PHP and database settings checked for it.Security fixes again – for years, not months.
  2. 02Rebuilt on T4JA Colab on the T4 framework, with the old module positions and layouts recreated and the site’s look carried over.A template that follows Joomla updates.
  3. 03A boat-menu pluginOne small system plugin decides which menu a page shows – the fleet menu or one boat’s menu.No more one template copy per boat.
  4. 04Settings moved by scriptThe old per-boat template settings turned into plugin settings on hundreds of menu items, with a dry run and a check first.Every boat kept its own menu on day one.
  5. 05Extensions reviewedCommunity Builder, JEvents, RSEvents Pro, AcyMailing, JCE, Akeeba and the rest checked and updated where a Joomla 6 version exists.The community features members use still work.
  6. 06Mobile and loadingResponsive header and off-canvas fleet menu; CSS, JS and images loaded more lightly.Shipmates can browse their boat on a phone.
03 Under the hood

Six ways a template swap could have broken 400 boats

On most sites a new template is a front-end job. Here the old template also decided which menu each boat showed – so changing it meant moving the site’s navigation logic, hundreds of menu settings and a large set of community extensions without losing a boat.

coldwarboats.orgstackupgrade pathback-end risks
// stack
cms
Joomla 6.2
template
JA Colab · T4 Framework
custom
plg_system_cwbcontext
community
Community Builder
events
JEvents · RSEvents Pro
host
Plesk · ~220 GB site
// upgrade path
  1. oldlight_church · Vertex
  2. copyfull migration copy
  3. menusdry run → verify → apply
  4. 6.2live, Nov 2026

The old site kept next to the new one until the switch.

// back-end risks
  1. 01boat menus✓
  2. 02menu settings✓
  3. 03Homeport menu✓
  4. 04extensions✓
  5. 05custom code✓
  6. 06a very large site✓
  1. risk01NavigationThe template decided which menu each boat showed
    Problem
    Every boat had its own light_church template style. A menu item picked a style, and the style’s Vertex settings named the menu to show.
    Why it’s hard
    T4 has nothing like this. Copying the trick would mean hundreds of T4 styles to keep in sync – the same trap again.
    If done wrong
    Boats lose their menus, or show another boat’s – and shipmates can’t find their crew pages.
    How we did it
    Wrote a system plugin with one rule for every page: the menu item’s own boat setting, else its menu if that is a boat menu, else the last boat visited, else the fleet menu. T4’s mega menu and logo read it through template overrides.

    One plugin · one rule · cached boat map

  2. risk02Data migrationHundreds of menu items to switch over
    Problem
    The boat each page belongs to lived in old template styles and a Vertex settings table, not on the menu items.
    Why it’s hard
    Done by hand across hundreds of menus, a few would be missed – and nobody would notice until a shipmate did.
    If done wrong
    Boats quietly falling back to the fleet menu, with no record of what they used to show.
    How we did it
    A migration script with a dry run (report only), a --verify mode that compares the new rules with what the old template did, and --apply, which first saves the original styles to a backup table so it can be checked and run again.

    Dry run · verify · apply · old styles kept

  3. risk03MenusA fleet menu that was also the home page
    Problem
    Homeport – the home page, Quarterdeck, Personnel, History & Heritage, Operations – sat inside the big fleet menu.
    Why it’s hard
    Moving menu items usually changes their ids, and ids are what links, modules and bookmarks point to.
    If done wrong
    A broken home page and links across the site pointing at items that no longer exist.
    How we did it
    A second script moved the Homeport branch into its own menu with every item id kept, backed up the menu table first and refuses to run twice. The plugin treats Homeport like a boat, so its menu shows across the top.

    Item ids kept · backup table · run once

  4. risk04ExtensionsAbout 45 components, each on its own update path
    Problem
    Community Builder, JEvents, RSEvents Pro, RSTickets Pro, AcyMailing, JCE, Akeeba, a gallery, donations, surveys and access-control tools all had to run on Joomla 6.
    Why it’s hard
    Each vendor ships Joomla 6 support on its own schedule, and permissions from an access-control extension don’t always survive an upgrade.
    If done wrong
    Sign-ups, events, galleries or member-only pages break – or open up to the wrong people.
    How we did it
    Updated each extension where a Joomla 6 version exists, and wrote maintenance scripts to fix and rebuild the access-control tables after the upgrade.

    Extensions updated · ACL rebuilt

  5. risk05Custom codeCustom work the next update could wipe
    Problem
    The boat menus touch the template’s mega menu, off-canvas toggle and logo.
    Why it’s hard
    Edits inside T4 or JA Colab are overwritten by the next template update. And menus are cached, so a change in the back end may not show for hours.
    If done wrong
    A routine template update takes every boat menu off the site, or editors save a menu and see nothing change.
    How we did it
    Kept the logic in the plugin and the template changes in overrides that fall back safely when the plugin is off. Saving, moving or unpublishing a menu item clears the plugin and page caches.

    Overrides only · caches cleared on save

  6. risk06ScaleA site too big to move twice
    Problem
    Decades of photos, documents and galleries – the hosting account is around 220 GB.
    Why it’s hard
    A full copy takes hours, and the site keeps changing while you work. Member lists and image-heavy archive pages were already slow.
    If done wrong
    Lost uploads from the weeks of the move, or a new template that makes the slowest pages slower.
    How we did it
    Built the migration copy on the same server, pointed it at the live images instead of copying them, and kept the old site beside the new one until the switch. Reviewed the slow pages for lazy loading and lighter assets.

    Images shared · old site kept · same server

04 The result

Every boat kept its menu – now on Joomla 6

400+boat pages linked from the fleet menu
1plugin in place of one template copy per boat
6.2Joomla, on a T4 template that follows updates
One site · two menus

The menu across the top follows the boat you are on

The same Joomla 6 site and template. On Homeport the header shows the fleet sections; open a boat and it switches to that boat’s own menu – The Boat, The Men, The Logroom, The Reunions.

Homeport · fleet menuCold War Boats home page with the fleet menu: Homeport, Quarterdeck, Personnel, History & Heritage, Operations
coldwarboats.org · Joomla 6 · Nov 2026
USS Nautilus · boat menuUSS Nautilus (SSN 571) quarterdeck with its own menu: The Boat, The Men, The Logroom, The Reunions
coldwarboats.org/the-boat-571 · same template
Cold War Boats home page on a phone
Homeport · phone
USS Nautilus quarterdeck on a phone
SSN 571 · phone
Joomla 6T4 FrameworkCommunity BuilderJEventsCustom system plugin

Still on an older Joomla version?

Tell us about your site. We reply within one business day with a migration plan and a quote.

Cron Job Starts