Files
MokoSuiteStoreLocator/CHANGELOG.md

3.7 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Removed

  • Removed deploy-manual.yml workflow — switching to Joomla update server method for extension distribution

Added

  • Package with component, 2 modules, and web services API plugin
  • Component (com_mokojoomstorelocator)
    • Admin location CRUD with tabbed edit form (details, address, coordinates, contact, media)
    • Leaflet coordinate picker — click map to set lat/lng on admin form
    • Locations list with publish/unpublish/delete, search, pagination
    • Categories admin with parent/child hierarchy, color, and custom marker icon
    • Multi-category support — locations assigned to multiple categories via junction table
    • CSV import with 3-step wizard (upload, column mapping, preview/validate)
    • CSV export with filter support and UTF-8 BOM for Excel
    • Sample data injection (8 Tennessee locations with real coordinates)
    • Geocoding service — Nominatim (free default) and Google Geocoding API
    • Auto-geocode on save when address present but coordinates missing
    • Video URL field with YouTube/Vimeo embed support
    • Multiple images field (gallery) per location
    • Contact form per location with email delivery and captcha
    • Custom fields integration via Joomla com_fields (location + category contexts)
    • Component config: geocoding provider, Google API key, auto-geocode toggle
    • access.xml with component and category-level ACL permissions
    • SQL update schema with versioned migration files
    • Filter forms: filter_locations.xml, filter_categories.xml
    • populateState for persistent admin list filters
    • joomla.asset.json for Web Asset Manager (Leaflet, MarkerCluster, CSS)
  • Frontend (site views)
    • Locations list with linked titles, distance display, Get Directions buttons
    • Single location detail page with embedded map, Schema.org JSON-LD
    • Category view — locations filtered by category with color swatch
    • SEF URL router (locations, location by alias, category by alias)
    • Contact form embedded on location detail page
    • Photo gallery and responsive video embed on detail page
    • Print button with print stylesheet and static map image
    • Category tags with color badges and links
    • Responsive CSS with mobile-first grid, click-to-call phone
  • Map Module (mod_mokojoomstorelocator_map)
    • Leaflet.js with OpenStreetMap tiles (no API key required)
    • Google Maps provider (optional, with API key)
    • MarkerCluster plugin for both providers
    • Category-colored SVG markers with custom icon override
    • Category legend below map
    • DOM-based popup content (XSS-safe)
    • Auto-fit bounds to show all markers
    • Get Directions link in popups
  • Search Module (mod_mokojoomstorelocator_search)
    • Text search (title, address, city, postcode)
    • City dropdown filter from distinct values
    • Radius filter with configurable options (miles/km)
    • "Use My Location" geolocation button with permission handling
    • Haversine formula for distance calculation in SQL
  • Web Services API (plg_webservices_mokojoomstorelocator)
    • CRUD routes for /v1/storelocator/locations
    • CRUD routes for /v1/storelocator/categories
    • Custom search route: /v1/storelocator/search
    • JsonapiView for Locations and Categories
  • Package installer
    • Auto-enables modules and API plugin on install
    • PHP 8.1+ and Joomla 4.4+ version checks
    • en-GB and en-US language files for all extensions

Fixed

  • Hardcode name and description in all XML manifests (language variables don't resolve during install)