Restaurant Management System 2.0.0 is out, and it is built for Joomla 6.
This release is a rebuild rather than a refresh. RMS now sits on Joomla’s
modern extension architecture from top to bottom, which is what makes it
ready for Joomla 6 today and for Joomla 7 when it arrives.
What changed
Rebuilt on the current Joomla extension layout.
Namespaced MVC throughout, service providers, dispatchers, and a
proper site router in place of the old legacy entry points.
Assets through the Web Asset Manager.
CSS and JavaScript are declared in joomla.asset.json
instead of being injected inline, so your template can override or
reorder them the same way it does for core extensions.
No deprecated API calls left.
Everything Joomla 7 removes is gone from the codebase, so upgrading
the CMS will not break RMS.
All seven site modules updated — booking, search,
restaurants, menu items, locations, map and currency.
A quality gate behind every release.
Static analysis, a unit test suite and a PSR-12 coding standard now
run before anything ships.
Requirements
RMS 2.0.0 needs Joomla 6.0 or newer, PHP 8.4
and MySQL 8.4. The installer checks the first two and stops
with a clear message rather than half-installing.
Upgrading? Get your Joomla site to 6.0 first, then install
RMS 2.0.0 over your existing copy. The installer cleans up the files the old
layout left behind, so there is nothing to remove by hand.
Two packages
RMS Single — one restaurant. Booking, menus and orders,
without the multi-restaurant directory.
RMS Multi — several restaurants on one site, with the
search and restaurant listing views included.
Both packages install the component and all seven modules in one go.
Every Joomla developer has a version of this story. You copy the production database to a staging site to reproduce a bug, run a test order, and a few seconds later four hundred real customers receive an order confirmation for a purchase they never made. Or you spend an afternoon chasing a registration email that a user swears never arrived, with nothing to go on but a hopeful glance at the server mail log.
Mail Catcher has always solved the second half of that problem: it catches, logs and shows you every email your Joomla site sends. Version 2.1.0 solves the first half too, and adds the housekeeping, export and search tools that a mail log needs once it has been running for a few months.
Decide what happens to your mail
The headline feature of 2.1.0 is interception. Under Components → Mail Catcher → Options there is now an Interception tab with a single Mode setting:
Log and send — mail is logged and delivered normally. This is the default, and it is exactly how earlier versions behaved.
Log only — mail is captured in full and never leaves the server. Nothing reaches anyone.
Redirect to test address — mail is delivered to the address you nominate instead of to the real recipients. Separate several addresses with a comma if the whole team should see them.
The setting applies to every email the site produces — Joomla core, your own code and every third party extension — because Mail Catcher works at the Joomla mailer level rather than hooking individual components. There is nothing to configure per extension.
In redirect mode the log still records the original To, Cc and Bcc, so you can always see who a mail was really meant for. Anything that was held back is flagged Intercepted in the list, with a filter to match, and the Resend action follows whichever mode is active at the time you use it. To release a held mail for real, switch the mode back to Log and send, then resend it.
Set a freshly cloned staging site to Log only once, and the story at the top of this post cannot happen.
A log that cleans up after itself
A busy site logs a lot of mail, and until now clearing it out was a manual job. Mail Catcher 2.1.0 ships a Task Scheduler plugin with a purge routine: create a task under System → Scheduled Tasks, point it at “Mail Catcher – Purge caught mails”, and give it rules.
You can delete mails older than a number of days, keep only the newest N mails, or combine both — keep 30 days but never more than 5,000 rows, for instance. Two switches let you spare anything that matters: never delete failed sends, so delivery problems stay available for debugging, and never delete unread mails, so nothing disappears before you have looked at it. Attachment files are removed from disk along with the rows, and each run reports how many mails it deleted.
Export a message the way it was actually sent
Mail Catcher stores the complete raw MIME message, and 2.1.0 finally lets you have it. Every caught mail now has a Download .eml button, both in the list and in the message preview. Open the file in Thunderbird, Outlook or Apple Mail, feed it to a deliverability checker, or attach it to a support ticket — it is the message exactly as it went out, not a reconstruction.
The preview also gained a Headers tab showing the raw MIME header, which is where you go when you need to know what an extension actually put in Reply-To, what Content-Type and encoding were negotiated, or whether that custom header you added really made it into the message.
Finding one email among thousands
The Mails list got the treatment it deserved. You can now filter by date range (from, to, or just one end), by mailer, by sending status, by delivered or intercepted, and by read or unread. Search covers the subject, the body, the sender and the IP address; type an address and it searches recipients, Cc and Bcc instead; type id:1234 and it goes straight to that mail.
Mark as read and Mark as unread are toolbar actions now, so you can clear a hundred rows in one go. And a new quick icon on the administrator dashboard shows how many caught mails you have not read yet, linking straight to the list already filtered — failed or unexpected mail becomes something you notice, rather than something you have to remember to go and check.
Now in 23 languages
The administrator interface has been translated into 23 languages: Arabic, Hebrew and Persian with full right to left support, Chinese (simplified and traditional), Japanese, Korean, Thai, Vietnamese, Hindi, Indonesian, Turkish, Russian, Greek, Polish, Czech, and the major Western European languages. Plural forms were done per locale rather than machine-mapped, so counts read naturally in each one.
Safer and faster under the hood
Caught HTML mail now renders inside a sandboxed frame, so a malicious email can no longer run scripts in your administrator session simply because you previewed it. Attachment downloads are restricted to the folder belonging to their own mail. Deleting a mail now also deletes its attachment files, which previously lingered on disk forever. And two new database indexes keep the list, the filters and the dashboard responsive on logs with hundreds of thousands of rows.
Upgrading
Mail Catcher 2.1.0 is a normal update through the Joomla Update Manager, or you can download the package and install it over the top. The database schema updates itself, and the two new plugins are installed and enabled for you.
Nothing changes in how your site sends mail until you decide it should. The interception mode defaults to Log and send, no purge task is created for you, and the quick icon simply appears on your dashboard. Upgrade first, then turn on the pieces you want.
In short
Interception modes: log and send, log only, or redirect to a test address
Task Scheduler routine to purge caught mails by age and/or count
Download any caught mail as .eml, plus a raw Headers tab
Unread counter on the administrator dashboard
Date range, mailer and read/unread filters, and bulk mark read/unread
23 administrator languages, including right to left scripts
Sandboxed HTML preview, hardened attachment downloads, attachment cleanup on delete
Faster list and dashboard on large logs
Mail Catcher 2.1.0 is available now for Joomla 6, and is 100% open source. If you run into anything, open a ticket under Support → Tickets and we will take a look.
We rebuilt every translation from the ground up — and added seven brand-new languages. Here’s what changed and why.
Language shouldn’t stand between you and a booking. Whether a guest is reserving a room in São Paulo, Seoul or Istanbul — or you’re managing your property from an admin screen in your own language — every word of Solidres should feel like it was written for that audience. With this release, it is.
We’ve just completed the largest localization effort in Solidres’ history: a complete, ground-up overhaul of the extension’s translations. Solidres is now fully translated into 24 languages in addition to English — every screen, every message, every button, across the booking component and all of its add-ons.
25 languages, including English
7 brand-new languages
181 files per language
130k+ strings translated
Coming in Solidres 4.2.0
All of this ships in Solidres v4.2.0 and carries forward into every subsequent release of the Solidres extensions. The moment you update, the new and improved translations are simply there — nothing to install separately, no extra configuration. Just switch your Joomla site (or a visitor’s browser) to a supported language and Solidres follows.
Why we rewrote the existing translations
Here’s the honest backstory. For years, every language except English (en-GB) was contributed by Solidres users — generous members of our community who translated the parts they needed, when they needed them. We’re deeply grateful for that work; it carried Solidres across the world.
But it also left the translations uneven:
Some languages were only partially translated — newer features, add-ons and admin screens were never covered, so users would suddenly hit English text (or raw placeholder keys) in the middle of an otherwise localized workflow.
Some languages were translated by several different people over time, each with their own wording choices. The same concept — a “reservation”, a “room type”, a “check-in” — could appear worded three different ways within a single language.
As Solidres itself grew, the gap widened: every new feature added English strings that the community translations hadn’t caught up with.
So rather than patch the gaps, we started fresh. Every existing language was re-translated in full from the English baseline, in a single consistent voice, and brought to complete parity with English — the same set of strings, covering the same features, worded the same way from screen to screen.
Localized, not just translated. Where a concept differs by country, we adapted rather than translated word-for-word — for example, Brazilian Portuguese refers to a company’s CNPJ rather than a literal “VAT number”, and right-to-left languages (Arabic, Hebrew and Persian) read the way their speakers expect. Brand names like Solidres, Joomla, PayPal and Stripe stay in their original form everywhere.
Seven brand-new languages
Alongside rebuilding what we had, we opened Solidres up to millions more speakers with seven languages it never supported before:
简体中文 — Chinese (Simplified) (zh-CN)
繁體中文 — Chinese (Traditional) (zh-TW)
한국어 — Korean (ko-KR)
Türkçe — Turkish (tr-TR)
Bahasa Indonesia — Indonesian (id-ID)
فارسی — Persian (fa-IR)
हिन्दी — Hindi (hi-IN)
The full lineup
Here’s every language Solidres now ships with. Seventeen were rebuilt to full parity; seven are new; English remains the source of truth.
New languages are marked (New); all others were fully re-translated.
English (UK) — Baseline (en-GB)
العربية — Arabic (ar-AA)
Čeština — Czech (cs-CZ)
Deutsch — German (de-DE)
Ελληνικά — Greek (el-GR)
Español — Spanish (es-ES)
فارسی — Persian (fa-IR) (New)
Français — French (fr-FR)
עברית — Hebrew (he-IL)
हिन्दी — Hindi (hi-IN) (New)
Magyar — Hungarian (hu-HU)
Bahasa Indonesia — Indonesian (id-ID) (New)
Italiano — Italian (it-IT)
日本語 — Japanese (ja-JP)
한국어 — Korean (ko-KR) (New)
Nederlands — Dutch (nl-NL)
Polski — Polish (pl-PL)
Português (BR) — Portuguese (Brazil) (pt-BR)
Română — Romanian (ro-RO)
Русский — Russian (ru-RU)
ไทย — Thai (th-TH)
Türkçe — Turkish (tr-TR) (New)
Tiếng Việt — Vietnamese (vi-VN)
简体中文 — Chinese (Simplified) (zh-CN) (New)
繁體中文 — Chinese (Traditional) (zh-TW) (New)
Nothing left half-translated
This wasn’t just about the booking form. Every part of Solidres now speaks your language — the core booking engine, the administrator screens, and every add-on: Hub, Experience, Invoicing, Feedback, Discounts, the Channel Manager, Rate Plans, Statistics, the new Dashboard and Front Desk, Housekeeping and more. Each language carries the same complete set of strings, so you won’t drift from your language into English partway through a task.
Don’t see your language?
Every one of these translations exists because Solidres users asked for it. That’s still how we decide what comes next. If your language isn’t on the list — or you’d like to help refine one that is — post a new feature request on the Solidres forum and tell us. Real demand is exactly what moves a language up the queue.
Solidres is the accommodation booking engine for Joomla. This translation overhaul ships in Solidres 4.2.0 and continues in every release that follows. Thank you to everyone who contributed translations over the years — this work stands on yours.
We’ve replaced the ageing jQuery UI date picker with a fast, dependency-free, OTA-style range picker — the same single-tap check-in → check-out flow your guests already know from the major travel-booking sites.
For years, every date field in Solidres — the booking funnel, the search modules, the admin reservation screens — was powered by the jQuery UI date picker. It did the job, but it was showing its age: two separate calendars for check-in and check-out, a heavy pile of JavaScript, no dark mode, and accessibility gaps that never sat well with modern web standards.
So we rebuilt it. Meet the modern date picker — and the unified search bar it now lives in. Available in Solidres v4.2.0.
Preview of the modern date picker in various places
One picker, not two
The biggest change is the one your guests will feel first. Instead of two disconnected calendars, there’s now a single range picker: tap your check-in date, and the valid check-out window lights up instantly — respecting availability, minimum and maximum stay length, and any booking rules you’ve set. Tap check-out, and you’re done. Two months show on desktop, one on mobile.
Crucially, the calendar is availability-aware: a guest can never select a range that spans a night you’re already booked or have blocked. Fewer dead-end bookings, fewer support emails.
Lighter, faster, no jQuery
The old picker pulled in jQuery, jQuery UI, a base theme, and 68 separate locale files — well over half a megabyte before a guest could pick a date. The new picker is a single zero-dependency library of around 15 KB gzipped. That’s a meaningful cut to what every visitor downloads, and one less legacy dependency to maintain.
Accessible and dark-mode ready
The new calendar was built to today’s standards, not 2012’s:
Full keyboard control — arrow keys to move, Enter to select, Esc to close, with a visible focus ring throughout.
Screen-reader friendly — the month, focused day, disabled dates, and selected range are all announced properly (WCAG 2.1 AA).
Automatic dark mode — it follows the visitor’s system preference and your template’s theme, with no hard-coded colours to clash.
A search bar that finally feels like one
We didn’t stop at the calendar. The sprawling room / adult / child drop-downs have been folded into a single guests & rooms popover with friendly plus/minus steppers — one per room — summarised in plain language (“2 adults · 2 children · 1 room”). Paired with the slimmed date field, every search surface now reads as one cohesive [ Dates ] [ Guests & rooms ] [ Search ] bar — the pattern travellers recognise from every major booking site — that folds gracefully into a stacked card on narrow screens and in sidebars.
Nothing to configure — and a safety net if you need it
The modern picker is the default for every site, new and upgraded alike — there’s nothing to switch on. Your existing booking rules, availability logic, and submitted data are all untouched; this is a front-of-house upgrade, not a change to how bookings work.
Run a heavily customised template? A new “Datepicker engine” option in Solidres Configuration lets you flip back to the Legacy picker in a single click. We’re keeping that option around for several releases, so there’s a long, safe window to update any custom overrides at your own pace.
Modern by default, legacy on tap, and a booking experience that finally matches today’s leading travel sites — that’s the new Solidres date picker. Upgrade, and your guests get it automatically.
It’s official: Solidres 4.1.0 has landed. Over the last few weeks we previewed the three tools we’d been rebuilding from the ground up — and they’re all here now. Rate Plan, Front Desk and Dashboard cover the three things you do most: set your prices, run your day, and check how the business is doing.
Each one replaces an ageing, end-of-life foundation with modern, framework-free code that’s faster, dark-mode ready, and accessible to WCAG 2.1 AA. Here’s the short version.
Solidres v4.1.0
Core: fix stale hub stylesheet path in Myprofile view
System: redesign admin System view and post-install screen with semantic, accessible markup
Component: install site forms/ folder so My Profile form deploys to clients
Carousel: register bootstrap.carousel script so slideshow works on any template
Rate Plan v1.0.0
The Complex Tariff editor, rebuilt from scratch. Same five rate types, four pricing modes, conditions, Quick Tools, cloning and import/export — now in a full-width editor that grows with your screen, with no more 3 MB of retired AngularJS behind it.
Front Desk v1.0.0
Your booking calendar, reimagined as proper front-desk software. A true CSS-grid tape chart with a KPI strip, payment markers, RTL support, and drag, resize or keyboard editing — one code path for mouse, touch and pen.
Dashboard v1.0.0
Your reports, redesigned for clarity. All charts now run on Chart.js v4 and the world map on jsVectorMap, with trend chips, sparklines, honest empty states, and a screen-reader data table behind every chart.
Hub 2.0.6
Fix stale media asset paths and facility icon picker rendering
Rebuild dashboard shortcuts as semantic nav, prefer dashboard/frontdesk plugins, drop side nav
No rush — new and old run side by side. All three plugins install alongside the tools they replace and read the very same data. Nothing to migrate, nothing to break: enable a new plugin to upgrade, disable it to fall straight back. Turn on one, two, or all three — at your own pace. Give them a try and tell us what you think; your feedback shapes where they go next.
Update today
Solidres 4.1.0 and all three plugins are free with every active subscription — just update from your Joomla admin. If your subscription has lapsed, there’s never been a better moment to come back, and if you’re new here, this is modern, secure hotel booking for Joomla, done right.