jmiller 5ea2fd2b98
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
fix: make SQL migration 01.00.02 a no-op to prevent install abort
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
2026-06-28 13:54:45 -05:00

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

  1. Download the latest pkg_mokosuitestorelocator-x.x.x.zip from Releases
  2. In Joomla Administrator, go to System > Install > Extensions
  3. 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 permissionsaccess.xml with standard Joomla permission actions
  • SQL update schema — versioned migration files for safe upgrades
  • Shop integrationLocationBridgeHelper for cross-extension data access, LocationSavedEvent for 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

S
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
2026-06-28 20:06:20 +00:00
Languages
PHP 58.7%
Markdown 24%
XML 9.4%
INI 4.9%
SQL 2.6%
Other 0.4%