6426fee4287641a4f75ddee644c478b9f0b9540b
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 3s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Generic: Repo Health / Access control (pull_request) Successful in 2s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Validate PR (pull_request) Failing after 4s
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 10s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 37s
Universal: Auto Version Bump / Version Bump (push) Successful in 8s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 10s
Joomla: Extension CI / Tests (PHP 8.2) (pull_request) Has been cancelled
Joomla: Extension CI / Tests (PHP 8.3) (pull_request) Has been cancelled
Joomla: Extension CI / PHPStan Analysis (pull_request) Has been cancelled
Joomla: Extension CI / Build RC Pre-Release (pull_request) Has been cancelled
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Repo Health / Scripts governance (pull_request) Has been cancelled
Generic: Repo Health / Repository health (pull_request) Has been cancelled
Generic: Repo Health / Report: Scripts Governance (pull_request) Has been cancelled
Generic: Repo Health / Report: Repository Health (pull_request) Has been cancelled
Multi-category support with parent/child hierarchy, junction table, admin CRUD, and per-category custom marker icons on the Leaflet map. REST API via Web Services plugin with JSON:API endpoints. ACL permissions via access.xml. SQL update schema for safe upgrades. Shop integration bridge (LocationBridgeHelper, LocationSavedEvent). Security: CSV formula injection prevention, MIME validation, file size limit, ORDER BY allowlist, map height CSS regex validation. Authored-by: Moko Consulting
MokoSuiteStoreLocator
A Joomla 4/5 package providing a store locator listing component with coordinating map and search modules.
Package Contents
| Extension | Type | Element |
|---|---|---|
| Store Locator Component | component | com_mokosuitestorelocator |
| Store Locator Map | module (site) | mod_mokosuitestorelocator_map |
| Store Locator Search | module (site) | mod_mokosuitestorelocator_search |
| Web Services API | plugin (webservices) | plg_webservices_mokosuitestorelocator |
Requirements
- Joomla 5.x or 6.x
- PHP 8.2+
- MySQL 8.0+ / MariaDB 10.4+
Installation
- Download the latest
pkg_mokosuitestorelocator-x.x.x.zipfrom Releases - In Joomla Administrator, go to System > Install > Extensions
- Upload the package ZIP — all extensions install automatically
Features
Implemented
- Admin CRUD — full location management with tabbed edit form (details, address, coordinates, contact, image)
- Admin list — searchable, filterable, sortable locations list with bulk publish/unpublish/delete
- Multi-category — categories with parent/child hierarchy, color, custom marker icons, many-to-many assignments
- Custom map markers — per-category SVG/PNG marker icons on the Leaflet map
- Site frontend — locations list and detail views with pagination and category filtering
- Schema.org — LocalBusiness structured data markup on all frontend templates
- SEF URLs — router with menu, standard, and nomenu rules
- Menu items — "All Locations" list and single "Location Detail" picker
- Interactive map — Leaflet.js with OpenStreetMap tiles, markers with popups, auto-fit bounds
- Location search — city dropdown, radius filter, and browser geolocation ("Use My Location")
- Proximity search — Haversine distance filtering with distance-sorted results
- Get Directions — Google Maps directions link on detail page and map popups
- Auto-geocoding — coordinates auto-populated from address on save (Nominatim/OSM)
- CSV import — bulk-create locations from spreadsheet with auto-detected column mapping
- FocalPoint migration — one-click import from Shack Locations / FocalPoint
- REST API — JSON:API endpoints via Joomla Web Services plugin
- ACL permissions —
access.xmlwith standard Joomla permission actions - SQL update schema — versioned migration files for safe upgrades
- Shop integration —
LocationBridgeHelperfor cross-extension data access,LocationSavedEventfor cache invalidation - Security hardening — CSV injection prevention, MIME validation, ORDER BY allowlists, input sanitization
Planned
- Marker clustering for dense location areas (Leaflet.markercluster)
- Google Maps provider as alternative to Leaflet
- CSV export
- Photo gallery per location
Development
composer install # Install PHP dev dependencies
Source code lives in source/packages/ — one directory per sub-extension.
License
GPL-3.0-or-later — Moko Consulting
Description
Joomla 5/6 store locator package — interactive map, location search, and admin management
https://mokoconsulting.tech/support/products/mokosuitestorelocator
Readme
GPL-3.0
1.7 MiB
Releases
2
Languages
PHP
58.7%
Markdown
24%
XML
9.4%
INI
4.9%
SQL
2.6%
Other
0.4%