jmiller 37d37b2cee
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Failing after 6s
Generic: Project CI / Lint & Validate (pull_request) Successful in 8s
Generic: Project CI / Tests (pull_request) Failing after 7s
Joomla: Extension CI / Lint & Validate (pull_request) Failing after 9s
Joomla: Extension CI / Release Readiness Check (pull_request) Failing after 3s
Universal: PR Check / Branch Policy (pull_request) Successful in 2s
Universal: PR Check / Wiki Update Reminder (pull_request) Successful in 1s
Universal: PR Check / Require Docs Update (pull_request) Failing after 4s
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
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 7s
Generic: Standards Compliance / Secret Scanning (pull_request) Successful in 3s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 7s
Generic: Standards Compliance / License Header Validation (pull_request) Successful in 3s
Generic: Standards Compliance / Repository Structure Validation (pull_request) Successful in 3s
Generic: Standards Compliance / Coding Standards Check (pull_request) Successful in 3s
Generic: Standards Compliance / Workflow Configuration Check (pull_request) Failing after 3s
Generic: Standards Compliance / Documentation Quality Check (pull_request) Successful in 3s
Generic: Standards Compliance / README Completeness Check (pull_request) Failing after 3s
Generic: Standards Compliance / Git Repository Hygiene (pull_request) Successful in 4s
Generic: Standards Compliance / Script Integrity Validation (pull_request) Successful in 5s
Generic: Standards Compliance / Line Length Check (pull_request) Successful in 3s
Generic: Standards Compliance / File Naming Standards (pull_request) Successful in 3s
Generic: Standards Compliance / Insecure Code Pattern Detection (pull_request) Successful in 3s
Generic: Standards Compliance / Version Consistency Check (pull_request) Successful in 43s
Generic: Standards Compliance / Dead Code Detection (pull_request) Successful in 5s
Generic: Standards Compliance / File Size Limits (pull_request) Successful in 3s
Generic: Standards Compliance / Binary File Detection (pull_request) Successful in 4s
Generic: Standards Compliance / TODO/FIXME Tracking (pull_request) Successful in 3s
Generic: Standards Compliance / Code Duplication Detection (pull_request) Successful in 46s
Generic: Standards Compliance / Code Complexity Analysis (pull_request) Successful in 47s
Generic: Standards Compliance / Broken Link Detection (pull_request) Successful in 5s
Generic: Standards Compliance / API Documentation Coverage (pull_request) Successful in 3s
Generic: Standards Compliance / Accessibility Check (pull_request) Successful in 4s
Generic: Standards Compliance / Performance Metrics (pull_request) Successful in 3s
Generic: Standards Compliance / Dependency Vulnerability Scanning (pull_request) Successful in 40s
Generic: Standards Compliance / Unused Dependencies Check (pull_request) Successful in 41s
Generic: Standards Compliance / Terraform Configuration Validation (pull_request) Successful in 8s
Branch Cleanup / Delete merged branch (pull_request) Successful in 1s
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Generic: Standards Compliance / Enterprise Readiness Check (pull_request) Failing after 39s
Generic: Standards Compliance / Repository Health Check (pull_request) Failing after 43s
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
Generic: Standards Compliance / Compliance Summary (pull_request) Has been cancelled
chore(ci): remove template-only sync workflows from root
sync-on-merge.yml and workflow-sync-trigger.yml are template-only (gated
if: Template-*), dead no-ops in this child repo, inherited at scaffold time.
sync-on-merge.yml is also broken. The real sync lives in the templates'
workflows/custom/.
2026-07-13 20:45:17 +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.6 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%