feat: complete store locator implementation (Phases 1-3) #53
Reference in New Issue
Block a user
Delete Branch "fix/rename-src-to-source-v2"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Completes the core store locator implementation across three phases, taking the extension from scaffolding stubs to a fully functional Joomla 4/5 store locator package.
Phase 1: Admin CRUD (
c415d48)LocationController(FormController) for save/cancel/applyLocationsController(AdminController) for bulk publish/unpublish/deleteLocationTable::check()— title validation, auto-alias, lat/lng range, timestampsLocationsModel::populateState()with search/published filters and orderingfilter_locations.xmlwith search tools barPhase 2: Site Frontend (
4b37489)LocalBusinessmarkupPhase 3: Map & Search Modules (
4894a70)Also includes
source/directory rename fromsrc/(6d7838a).gitignorefix forsource/packages/*/site/What's NOT in this PR (Phase 4+)
Test Plan
Security: - Fix stored XSS in Leaflet popup — HTML-escape loc.title/address/phone - Use HTMLHelper::_('content.prepare') for description output Joomla 5/6 compatibility: - Bump PHP minimum to 8.2, Joomla minimum to 5.0.0 - script.php implements InstallerScriptInterface with typed signatures - Restore updateservers and dlid in package manifest - Update all manifest creationDates to 2026-06-23 Code quality: - Replace hard-coded English errors with Text::_() language strings - Add COM_MOKOJOOMSTORELOCATOR_ERROR_* language keys - Use Text::_() for Locations list toolbar title - Import missing Text class in LocationTable and Locations HtmlView Documentation: - Update CLAUDE.md: MokoSuite naming, source/ paths, PHP 8.2, namespace - Update README: Joomla 5/6, PHP 8.2+, MySQL 8.0+ Authored-by: Moko Consulting