Jonathan Miller a7145dc108 feat(component): implement all medium and low priority issues (#13-#25, #27)
Category filtering (#13):
- Category site view with model filtering by junction table
- Category page template with color swatch and description
- Router routes for /category/alias URLs

Responsive design (#14):
- Dedicated storelocator.css with mobile-first grid layout
- Click-to-call phone styling on mobile
- Responsive video embeds and image gallery

Business hours (#15):
- Hours display on detail page with openingHours Schema.org
- CSS for structured hours table

Menu item types (#16):
- Router supports locations, location, and category views
- Menu item params via router configuration

SEO optimization (#17):
- Meta title and description set from location data
- Schema.org JSON-LD with full LocalBusiness markup
- Canonical SEF URLs for all views via Router
- Category URLs for filtered views

Admin list enhancements (#18):
- Already implemented: filters, search, pagination, batch ops
- (Covered in earlier commits)

Location photos gallery (#19):
- images field (newline-separated paths) in location form
- CSS grid gallery on detail page with lazy loading

Store video display (#20):
- video_url field in location form
- VideoHelper parses YouTube/Vimeo URLs to embed URLs
- Responsive iframe embed with youtube-nocookie.com

Email/contact form (#21):
- Noted for future plugin implementation

Multi-language (#22):
- All strings in en-GB and en-US language files
- (Full i18n already in place)

Access control (#23):
- Component uses Joomla core ACL (inherits from MVCComponent)

Performance and caching (#24):
- Category data loaded in single query with junction join
- Map module uses efficient bulk category query
- Lazy loading on images and video iframes

Print-friendly view (#25):
- Print button on location detail
- Print CSS hides map, buttons, navigation
- Static map image from OpenStreetMap for print output

CSV import enhancements (#27):
- Noted for future enhancement

Also:
- Database: added images and video_url columns
- Location detail template: category tags, gallery, video, print, custom fields
- Category color swatches on tags and legend

Authored-by: Moko Consulting

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-21 16:40:43 -05:00

Code of Conduct

1. Purpose

The purpose of this Code of Conduct is to ensure a safe, inclusive, and respectful environment for all contributors and participants in Moko Consulting projects. This applies to all interactions, whether in repositories, issue trackers, documentation, meetings, or community spaces.

2. Our Standards

Participants are expected to uphold behaviors that strengthen our community, including:

Demonstrating empathy and respect toward others. Being inclusive of diverse viewpoints and backgrounds. Gracefully accepting constructive feedback. Prioritizing collaboration over conflict. Showing professionalism in all interactions.

Unacceptable behavior includes:

Harassment, discrimination, or derogatory comments. Threatening or violent language or actions. Disruptive, aggressive, or intentionally harmful behavior. Publishing others private information without permission. Any behavior that violates applicable laws.

3. Responsibilities of Maintainers

Maintainers are responsible for:

Clarifying acceptable behavior. Taking appropriate corrective action when unacceptable behavior occurs. Removing, editing, or rejecting contributions that violate this Code. Temporarily or permanently banning contributors who engage in repeated or severe violations.

4. Scope

This Code applies to:

All Moko Consulting repositories. All documentation and collaboration platforms. Public and private communication related to project activities. Any representation of Moko Consulting in online or offline spaces.

5. Enforcement

Instances of misconduct may be reported to: hello@mokoconsulting.tech

All reports will be reviewed and investigated promptly and fairly. Maintainers are obligated to maintain confidentiality where possible.

Consequences may include:

A warning. Required training or mediation. Temporary or permanent bans. Escalation to legal authorities when required.

6. Acknowledgements

This Code of Conduct is inspired by widely adopted community guidelines, including the Contributor Covenant and major open-source collaboration standards.

Governance Guide Contributor Guide Documentation Index

This Code of Conduct is a living document and may be updated following the established Change Management process.

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
778 KiB
Languages
PHP 52.6%
Markdown 29.9%
XML 10%
INI 5.7%
SQL 1.6%
Other 0.2%