# CLAUDE.md This file provides guidance to Claude Code when working with this repository. ## Project Overview **MokoJoomStoreLocator** -- A Joomla 4/5 package providing a store locator listing component with coordinating map and search modules. | Field | Value | |---|---| | **Platform** | joomla | | **Extension type** | package (component + modules) | | **Element** | `pkg_mokojoomstorelocator` | | **Language** | PHP | | **Default branch** | main | | **License** | GPL-3.0-or-later | | **Wiki** | [MokoJoomStoreLocator Wiki](https://git.mokoconsulting.tech/MokoConsulting/MokoJoomStoreLocator/wiki) | | **Standards** | [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/moko-platform/wiki/Home) | ## Package Contents | Extension | Type | Element | |---|---|---| | Store Locator Component | component | `com_mokojoomstorelocator` | | Store Locator Map | module (site) | `mod_mokojoomstorelocator_map` | | Store Locator Search | module (site) | `mod_mokojoomstorelocator_search` | ## Common Commands ```bash make build # Build package ZIP containing all sub-extensions make lint # Run PHP linter make validate # Lint + validation checks make release # Validate + build make clean # Clean build artifacts ``` ```bash composer install # Install PHP dev dependencies ``` ## Architecture This is a Joomla package. Key layout: - `src/pkg_mokojoomstorelocator.xml` -- package manifest - `src/script.php` -- package install/upgrade/uninstall script - `src/packages/com_mokojoomstorelocator/` -- main component - `admin/` -- admin MVC (controllers, models, views, forms, tables, SQL) - `site/` -- frontend MVC (controllers, models, views, templates) - `mokojoomstorelocator.xml` -- component manifest - `src/packages/mod_mokojoomstorelocator_map/` -- map display module - `src/packages/mod_mokojoomstorelocator_search/` -- search/filter module - `updates.xml` -- Joomla update server manifest ## Database Table `#__mokojoomstorelocator_locations` -- stores location data including coordinates, address, contact info, and business hours. ## Rules - **Workflow directory**: `.mokogitea/` (not `.gitea/` or `.github/`) - **Never commit** `.claude/`, `.mcp.json`, `TODO.md`, or `*.min.css`/`*.min.js` - **Attribution**: use `Authored-by: Moko Consulting` in commits - **Branch strategy**: develop on `dev/`, merge to `main` for release - **Wiki**: documentation lives in the Gitea wiki, not in `docs/` files - **Standards**: this repo follows [MokoStandards](https://git.mokoconsulting.tech/MokoConsulting/moko-platform/wiki/Home) - **PHP minimum**: 8.1 - **Joomla table operations**: always use bind() -> check() -> store(), never save() - **Namespace**: `Moko\Component\MokoJoomStoreLocator` for the component