jmiller cbab65e9ae
Generic: Project CI / Lint & Validate (pull_request) Successful in 9s
Generic: Project CI / Tests (pull_request) Failing after 7s
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Require Docs Update (pull_request) Has been skipped
Universal: PR Check / Wiki Update Reminder (pull_request) Has been skipped
Cascade Main -> Dev / Cascade main -> dev (push) Successful in 5s
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Generic: Standards Compliance / Secret Scanning (push) Successful in 3s
Generic: Standards Compliance / License Header Validation (push) Successful in 4s
Generic: Standards Compliance / Repository Structure Validation (push) Successful in 3s
Generic: Standards Compliance / Coding Standards Check (push) Successful in 4s
Generic: Standards Compliance / Workflow Configuration Check (push) Failing after 4s
Generic: Standards Compliance / Documentation Quality Check (push) Successful in 4s
Generic: Standards Compliance / README Completeness Check (push) Failing after 4s
Generic: Standards Compliance / Git Repository Hygiene (push) Successful in 4s
Generic: Standards Compliance / Script Integrity Validation (push) Successful in 5s
Generic: Standards Compliance / Line Length Check (push) Successful in 4s
Generic: Standards Compliance / File Naming Standards (push) Successful in 3s
Generic: Standards Compliance / Insecure Code Pattern Detection (push) Successful in 3s
Generic: Standards Compliance / Version Consistency Check (push) Successful in 40s
Generic: Standards Compliance / Dead Code Detection (push) Successful in 4s
Generic: Standards Compliance / File Size Limits (push) Successful in 2s
Generic: Standards Compliance / Binary File Detection (push) Successful in 3s
Generic: Standards Compliance / TODO/FIXME Tracking (push) Successful in 3s
Generic: Standards Compliance / Code Duplication Detection (push) Successful in 40s
Generic: Standards Compliance / Code Complexity Analysis (push) Successful in 40s
Generic: Standards Compliance / Broken Link Detection (push) Successful in 4s
Generic: Standards Compliance / API Documentation Coverage (push) Successful in 3s
Generic: Standards Compliance / Accessibility Check (push) Successful in 3s
Generic: Standards Compliance / Performance Metrics (push) Successful in 3s
Generic: Standards Compliance / Dependency Vulnerability Scanning (push) Successful in 41s
Generic: Standards Compliance / Unused Dependencies Check (push) Successful in 45s
Generic: Standards Compliance / Terraform Configuration Validation (push) Successful in 8s
Generic: Standards Compliance / Enterprise Readiness Check (push) Failing after 43s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 8s
Generic: Standards Compliance / Repository Health Check (push) Failing after 44s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
Generic: Standards Compliance / Compliance Summary (push) Has been cancelled
Merge pull request 'chore(ci): remove template-only sync workflows from root' (#81) from chore/remove-template-sync-leaks into main
2026-07-13 20:45:22 +00:00

MokoSuiteStoreLocator

A Joomla 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 6
  • PHP 8.3+
  • 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
3.4 MiB
2026-07-13 09:54:29 +00:00
Languages
PHP 59.2%
Markdown 23.9%
XML 9.2%
INI 4.8%
SQL 2.5%
Other 0.4%