Joomla extension package that embeds the Crumb BMLT meeting-finder widget in your site. Bundles a content plugin (for the {crumb …} shortcode in articles) and a site module (for module positions). Supports Joomla 4, 5, and 6.
Sister projects:
- crumb — WordPress plugin
- crumb-drupal — Drupal module
- crumb-widget — the underlying JS widget
- Joomla 4.0+, 5.x, or 6.x
- PHP 8.2+
- Download
pkg_crumb.zipfrom the Releases page. - In Joomla admin: System → Install → Extensions → Upload Package File, drop the zip.
- Enable the Content - Crumb plugin under System → Plugins (it ships disabled by default, like all Joomla content plugins).
- Optionally publish the Crumb module to a position under Content → Site Modules.
After enabling Content - Crumb, drop a shortcode anywhere in an article:
{crumb}
By default, the plugin reads its settings (server URL, service body IDs, etc.) from the plugin's params. Override per-shortcode:
{crumb server="https://bmlt.example.org/main_server" service_body="42" view="map"}
Recognised shortcode args: server, service_body, format_ids, view (list/map), language (e.g. es), geolocation (true/false), geolocation_radius, update_url, columns.
Publish the Crumb module to any module position (sidebar, footer, etc.). Configure server URL and other options on the module's edit screen.
Both the plugin and the module expose the same fields:
| Field | Description |
|---|---|
| BMLT Server URL | Required. Full URL to your BMLT server (e.g. https://your-server/main_server). |
| Service Body IDs | Optional. Single ID or comma-separated list. Empty = all meetings. Child service bodies are always included. |
| Default View | list or map. Overridable per shortcode and via ?view= query param. |
| Language | Optional. Forces the widget UI language (en, es, fr, de, pt, it, sv, da, el, fa, pl, ru, ja). Empty = auto-detect from browser. Overridable per shortcode on the content plugin. |
| CSS Template | Full Width or Full Width (Force Viewport) for breaking out of narrow content areas. |
| Base Path for Pretty URLs | e.g. meetings → /meetings/monday-night-meeting-42 (History API routing). Empty = hash-based routing. |
| Update Meeting URL | Optional. URL template for the "Update Meeting Info" link on the meeting detail panel. Tokens: {meeting_id}, {meeting_name}, {server_url}, {return_url}. Works with bmlt-workflow, hosted forms, or mailto: URLs. |
| Columns | Optional. Comma-separated list of columns to show in list view (e.g. time,name,location,address,service_body). Omit a name to hide that column. Empty = widget default. |
| Widget Configuration (JSON) | Advanced. JSON for CrumbWidgetConfig. See the widget docs for the full schema (darkMode, geolocation, nowOffset, columns, etc.). |
make dev # starts Joomla + MariaDB on http://localhost:8080
make install # builds pkg_crumb.zip and installs it into the running container
make logs # tail Joomla logs
make shell # bash inside the container
make down # stop the stack
make nuke # stop and wipe volumes (fresh DB next start)Joomla admin defaults: admin / adminadminadmin.
To target Joomla 6 specifically:
docker compose build --build-arg JOOMLA_TAG=6-php8.3-apache
docker compose upmake build # → build/pkg_crumb.zipmake lint # phpcs (PSR-12)
make fmt # phpcbf auto-fix
make test # phpunit- PRs run lint + PHPUnit on PHP 8.2/8.3/8.4 + a package build (artifact uploaded).
- Pushing a tag (
v0.1.0, etc.) builds the package and creates a GitHub release with the zip attached.
GPL-2.0-or-later. See LICENSE.