5ea2fd2b98285e0196e40296c279fca2aab0a8fa
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 5s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Generic: Repo Health / Site Health (pull_request) Has been skipped
Universal: PR Check / Secret Scan (pull_request) Successful in 6s
Generic: Repo Health / Access control (pull_request) Successful in 1s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 10s
Universal: Auto Version Bump / Version Bump (push) Successful in 12s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 43s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 20s
Universal: Build & Release / Promote to RC (pull_request) Has been skipped
Universal: Build & Release / Build & Release Pipeline (pull_request) Has been skipped
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
Joomla aborts the entire package install on any SQL error in update files. DROP COLUMN fails when catid doesn't exist (fresh installs, or systems where it was already removed). Since install.mysql.sql already omits catid, no runtime migration is needed. Authored-by: Moko Consulting
MokoSuiteStoreLocator
A Joomla 5/6 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, marker clustering
- 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 - Detail page map — Leaflet map on single location view with marker and popup
- Marker clustering — Leaflet.markercluster groups nearby markers at low zoom levels (toggleable)
- Security hardening — CSV injection prevention, MIME validation, ORDER BY allowlists, CSP-compatible inline scripts
- Junction cleanup — orphan rows automatically removed when locations or categories are deleted
Planned
- Google Maps provider as alternative to Leaflet
- CSV export
- Photo gallery per location
- Address autocomplete on admin edit form
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%