docs: add CLAUDE.md context file for Claude Code #2

Merged
Copilot merged 66 commits from copilot/recreate-root-readme into main 2026-03-04 05:11:07 +00:00

66 Commits

Author SHA1 Message Date
copilot-swe-agent[bot] 8b99759b4a docs: create CLAUDE.md context file for Claude Code
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-03-04 05:08:19 +00:00
copilot-swe-agent[bot] ce208aaee8 Add GitHub Copilot instructions for repository
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-03-04 01:23:11 +00:00
copilot-swe-agent[bot] 8619aebac7 Fix PrepareDataEvent type error in installation script
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-03-01 07:57:13 +00:00
copilot-swe-agent[bot] abb86d6eff Add MokoStandard file header and copyright to XML manifest
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-03-01 07:44:26 +00:00
copilot-swe-agent[bot] d256d05d6a Fix XML manifest language file declarations to resolve component view loading
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-03-01 07:32:10 +00:00
jmiller 688e138cf9 Merge branch 'copilot/recreate-root-readme' of https://github.com/mokoconsulting-tech/MokoJoomTOS into copilot/recreate-root-readme 2026-03-01 01:29:41 -06:00
jmiller 11fc976956 Language consolidation 2026-03-01 01:29:31 -06:00
copilot-swe-agent[bot] 933b92dbe0 Update README for new file hierarchy structure
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-03-01 07:16:00 +00:00
jmiller e444b2f27c Reorganization 2026-03-01 01:13:38 -06:00
copilot-swe-agent[bot] ed0bd02257 Fix language file loading issue - remove folder="site" attribute
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-03-01 03:25:23 +00:00
copilot-swe-agent[bot] d59b9130af Update file headers VERSION to 03.08.04
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-03-01 00:17:46 +00:00
copilot-swe-agent[bot] f53bfa23d0 Update all version numbers to 03.08.04
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-03-01 00:04:50 +00:00
copilot-swe-agent[bot] c813c999c2 Change event hook from onAfterInitialise to onAfterRoute to fix template chrome loading
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-28 23:48:38 +00:00
copilot-swe-agent[bot] 5eef14b20b Fix template chrome loading by ensuring tmpl=component is properly set
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-28 23:42:01 +00:00
copilot-swe-agent[bot] 33fd099961 Fix typo in administrator language files: yoursite.com to your-site.com
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-28 23:34:50 +00:00
copilot-swe-agent[bot] dba43df480 Add update.xml to root and update plugin updateserver URL to point to raw GitHub file
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-28 23:34:05 +00:00
copilot-swe-agent[bot] 27e10da181 Fix XML manifest: creationDate format, add administrator folder, and separate frontend/backend language files
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-28 23:32:28 +00:00
copilot-swe-agent[bot] 481307cbc4 Simplify component view loading code and improve comments
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-28 23:28:19 +00:00
copilot-swe-agent[bot] c096332e81 Refactor to use Joomla Input methods only (remove superglobal usage)
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-28 23:27:42 +00:00
copilot-swe-agent[bot] 19337e67b5 Ensure plugin properly loads component view
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-28 23:27:04 +00:00
copilot-swe-agent[bot] 28804e4df9 Improve build documentation with specific instructions
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-28 00:41:40 +00:00
copilot-swe-agent[bot] 067901ff06 Remove build.sh from root and update documentation
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-28 00:40:25 +00:00
copilot-swe-agent[bot] adba7a5c07 Remove markdown files from src directory
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 07:02:03 +00:00
copilot-swe-agent[bot] 9011853aa5 Fix src/index.md metadata to reflect manual creation
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 06:46:50 +00:00
copilot-swe-agent[bot] a91aa84525 Add missing src/index.md for complete documentation structure
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 06:44:53 +00:00
copilot-swe-agent[bot] 17e5c78e1b Add validation and wrapper scripts from MokoStandards
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 04:42:44 +00:00
copilot-swe-agent[bot] 9da01fb86a Add GitHub workflows, templates, and configuration from MokoStandards
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 04:41:56 +00:00
copilot-swe-agent[bot] b0462821bb Remove ENTERPRISE_READINESS_ASSESSMENT.md and update documentation references
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 04:26:22 +00:00
copilot-swe-agent[bot] 0e67de2327 Fix code review issues: dynamic component_id and system user for article creation
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 04:22:42 +00:00
copilot-swe-agent[bot] 8713fedf2c Add enterprise readiness assessment and update documentation
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 04:21:39 +00:00
copilot-swe-agent[bot] 173ff13301 Create menu item in dedicated Legal menu instead of main menu
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 04:20:06 +00:00
copilot-swe-agent[bot] 240e43daeb Add automatic Terms of Service setup for enterprise deployment
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 04:19:32 +00:00
copilot-swe-agent[bot] 36fd778587 Remove unnecessary blank line for code consistency
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 04:13:30 +00:00
copilot-swe-agent[bot] 3cb949c8b9 Remove redundant def() call, keep only set() for clarity
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 04:13:00 +00:00
copilot-swe-agent[bot] 01f469bd77 Secure tmpl parameter setting against tampering
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 04:12:27 +00:00
copilot-swe-agent[bot] 780ebb09b8 Add component-only view for offline TOS page access
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 04:11:40 +00:00
copilot-swe-agent[bot] 0385db6f66 Update docblock to remove reference to component-only view
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 04:07:02 +00:00
copilot-swe-agent[bot] 5ecd7747ff Changes before error encountered
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 02:46:15 +00:00
copilot-swe-agent[bot] 9b47a8d6c2 Changes before error encountered
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 01:34:22 +00:00
copilot-swe-agent[bot] 3760d2b1dd fix: Add addfieldprefix to load custom MenuslugField and bump to v1.0.1
- Add addfieldprefix="Joomla\Plugin\System\MokoJoomTOS\Field" to XML config
- This registers the custom field namespace so Joomla can find MenuslugField
- Bump version from 1.0.0 to 1.0.1 in plugin XML
- Bump version from 1.0.0 to 1.0.1 in build.sh
- Custom field should now load properly in plugin settings

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 01:33:16 +00:00
copilot-swe-agent[bot] 3d63159799 docs: Update documentation for menu dropdown and component-only view
- Update README.md to show Field directory in project structure
- Update IMPLEMENTATION_SUMMARY.md with new features and specs
- Document menu dropdown field configuration
- Document component-only view behavior
- Update technical specs (9.1 KB, 9 files, 150+ lines)

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 01:11:15 +00:00
copilot-swe-agent[bot] 4fdb552663 feat: Add menu dropdown field and component-only view for offline mode
- Create MenuslugField custom field to populate dropdown with menu items
- Change tos_slug field type from text to menuslug dropdown
- Update plugin to set tmpl=component for component-only view when offline
- Menu items are grouped by menu type with separators
- Field shows menu title and alias in format: "Title (alias)"

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 01:09:55 +00:00
copilot-swe-agent[bot] 6d5bb8d06a docs: Update documentation for new src/Extension structure
- Update README.md to show src/Extension directory in project structure
- Update IMPLEMENTATION_SUMMARY.md with architecture details
- Document modern Joomla 4.x/5.x namespaced approach
- Update technical specs (110 lines, 7.8 KB, 8 files)
- Note SubscriberInterface implementation

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 00:50:18 +00:00
copilot-swe-agent[bot] 5fa89c3eb2 feat: Add namespaced Extension class structure for mokojoomtos plugin
Create src/Extension/MokoJoomTOS.php with modern Joomla 4.x/5.x structure:
- Implements SubscriberInterface for event handling
- Uses proper namespace: Joomla\Plugin\System\MokoJoomTOS\Extension
- Maintains all existing functionality for offline mode bypass
- Updates XML manifest to include src folder
- Updates build.sh to package src directory

The plugin now follows Joomla's modern architecture while maintaining backward compatibility through the legacy mokojoomtos.php file.

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 00:48:54 +00:00
copilot-swe-agent[bot] 3af0ced273 refactor: Rename plugin from mokojoomtos_offline to mokojoomtos
Remove "_offline" suffix to simplify naming. The plugin is now consistently named "mokojoomtos" or "MokoJoomTOS" throughout the codebase.

Changes:
- Renamed mokojoomtos_offline.php to mokojoomtos.php
- Renamed mokojoomtos_offline.xml to mokojoomtos.xml
- Updated class name from PlgSystemMokojoomtosOffline to PlgSystemMokojoomtos
- Updated namespace from MokojoomtosOffline to MokoJoomTOS
- Renamed all language files to remove _offline suffix
- Updated all language string keys to remove OFFLINE suffix
- Updated build.sh to use new file names
- Updated documentation (README.md, IMPLEMENTATION_SUMMARY.md)
- Package now named plg_system_mokojoomtos-1.0.0.zip

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 00:44:40 +00:00
copilot-swe-agent[bot] 29b3341b50 refactor: Restructure plugin to follow Joomla standard path
Move plugin from src/plugin/ to src/plugins/system/mokojoomtos/
- Follows Joomla convention: plugins/{type}/{name}/
- Updated build.sh to reference new path
- Updated README.md and IMPLEMENTATION_SUMMARY.md documentation
- Verified build process works correctly

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 00:34:10 +00:00
copilot-swe-agent[bot] f44e44979f docs: Add IMPLEMENTATION_SUMMARY.md file 2026-02-27 00:28:16 +00:00
copilot-swe-agent[bot] 067a403f9d docs: Add implementation summary document
Complete project documentation with:
- Architecture evolution and decisions made
- Final solution specifications
- User workflow and benefits
- Build system details
- Testing checklist
- Compatibility matrix
- Performance and security notes

Project is complete and production-ready.

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 00:28:04 +00:00
copilot-swe-agent[bot] 589fedd170 docs: Add comprehensive README for simplified plugin
- Complete usage guide with step-by-step setup
- Technical details and file structure
- FAQ section addressing common questions
- Development and testing instructions
- Clear explanation of how the plugin works
- Examples and use cases

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 00:26:57 +00:00
copilot-swe-agent[bot] 445f112f8d feat: Simplified offline-only plugin using menu slug
- Remove complex component and package structure
- Create simple plugin that allows Terms of Service access via slug
- Plugin checks URL slug and bypasses offline mode for that slug only
- Configure slug in plugin parameters (default: "terms-of-service")
- Works with native Joomla articles and menus
- Lightweight solution with minimal code
- Added build.sh for creating plugin ZIP package
- Updated all language strings

How it works:
1. Admin creates Joomla article for Terms of Service
2. Admin creates menu item with slug "terms-of-service"
3. Admin configures plugin with that slug
4. When site is offline, that URL remains accessible

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 00:26:22 +00:00
copilot-swe-agent[bot] 2cac00fb13 Simplify architecture: Remove component, create offline-only plugin
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-27 00:18:39 +00:00
copilot-swe-agent[bot] 329b2d4e42 fix: Correct language file paths in XML manifest to fix loading issue
- Fix administrator language paths: add 'administrator/' prefix
- Change folder attribute from 'language' to 'site' for frontend files
- Ensure paths are relative to plugin root, not to destination folder
- This fixes the language not loading issue reported

The XML manifest now correctly references:
- Administrator: administrator/language/{locale}/plg_system_mokojoomtos.ini
- Site: language/{locale}/plg_system_mokojoomtos.ini

Joomla will now properly install and load language files in both
backend (administrator) and frontend (site) contexts.

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-26 23:45:45 +00:00
copilot-swe-agent[bot] f704d10e48 feat: Split language files into administrator and site directories for en-GB and en-US
- Create administrator/language/ for backend strings (plugin config)
- Create language/ for frontend strings (site display)
- Split language strings appropriately:
  * Admin: field labels, descriptions, install messages, conflict warnings
  * Site: display titles, last updated, disabled messages
- Add en-US locale support alongside en-GB
- Update mokojoomtos.xml manifest to reference both language folders
- Verified plugin builds successfully with new structure

Language files now follow Joomla standard structure with proper
separation between administrator and site language strings.

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-26 23:38:50 +00:00
jmiller 311a64fca2 Delete README.md 2026-02-26 17:38:31 -06:00
copilot-swe-agent[bot] 15dfdd71b1 feat: Add slug conflict detection and warning
- Add checkSlugConflicts() method to detect occupied slugs
- Check for conflicts with menu items and articles
- Display warning messages in admin when conflicts found
- Inform admin that plugin will override existing URLs
- Add language strings for conflict warnings
- Conflict check runs when plugin is loaded in admin

Helps administrators identify when reserved slugs are already
used by other content, preventing confusion about URL routing.

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-26 23:32:21 +00:00
copilot-swe-agent[bot] 7ffff1ac3c refactor: Move all code to src/ and remove legacy component
- Move plugins/system/mokojoomtos/ to src/plugins/system/mokojoomtos/
- Remove all legacy component code (admin, site, media directories)
- Remove legacy mokojoomtosaccess plugin
- Update Makefile to build from src/ directory
- Simplify Makefile to plugin-only targets
- Update README with new structure (src/ as root for live code)
- Correct naming to MokoJoomTOS (TOS in caps)
- Plugin element: mokojoomtos (lowercase)
- Display name: MokoJoomTOS (TOS uppercase)

All live code is now under src/ directory as requested.

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-26 23:31:08 +00:00
copilot-swe-agent[bot] e9432c44b7 Updated plan: Move live code to src and remove legacy component
Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-26 23:27:31 +00:00
copilot-swe-agent[bot] e2477659e3 fix: Improve content insertion robustness
- Remove LIBXML_HTML_NOIMPLIED flag to handle multiple root elements
- Add try-catch around appendXML with fallback mechanism
- Fallback uses temporary document to safely parse content
- Import nodes properly to avoid XML parsing errors
- Wrap fallback content in container div for safety

Addresses final code review feedback for more resilient content
insertion when dealing with malformed or complex HTML/XML.

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-26 23:23:02 +00:00
copilot-swe-agent[bot] 889de79cd4 fix: Make clean target handle missing directories gracefully
- Add error suppression to find commands
- Use || true for optional deletions
- Make clean work when media directory doesn't exist
- Change to search all directories instead of specific paths

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-26 23:21:29 +00:00
copilot-swe-agent[bot] 7340de66a4 fix: Improve HTML parsing and error handling
- Replace regex-based HTML manipulation with DOMDocument/XPath
- Use multiple XPath patterns to find content containers reliably
- Handle malformed HTML gracefully with libxml error suppression
- Add proper error logging in plugin enable function
- Display warning message if plugin auto-enable fails
- Log errors to Joomla log system for debugging

Addresses code review feedback for more robust HTML handling and
better error reporting.

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-26 23:21:05 +00:00
copilot-swe-agent[bot] fe45ff613a docs: Add deprecation notice for component architecture
- Create DEPRECATED.md in src/ directory
- Explain migration from component to plugin
- Document architectural changes
- Provide quick migration steps
- Note that component files are for reference only
- Direct users to new plugin implementation

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-26 23:19:46 +00:00
copilot-swe-agent[bot] 39fbd6eb2d docs: Update README for plugin-based architecture
- Change description from component to system plugin
- Update all sections to reflect parameter-based content storage
- Add Configuration section for plugin settings
- Replace component usage with plugin usage instructions
- Document forced slug reservation feature
- Add Migration from Component section
- Remove Database Schema section (no database needed)
- Update build commands for plugin
- Update version to 2.0.0
- Clarify that content is stored in plugin parameters
- Update all URLs to show /terms-of-service and /privacy-policy

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-26 23:19:26 +00:00
copilot-swe-agent[bot] 20a9572529 feat: Add installation script and build system for plugin
- Create script.php for plugin with auto-enable functionality
- Add installation messages and steps for users
- Update Makefile with plugin build targets (build-plugin, build-all)
- Add scriptfile reference to plugin manifest
- Successfully tested plugin package creation

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-26 23:16:37 +00:00
copilot-swe-agent[bot] 5883cc5589 feat: Create new system plugin with parameter-based content
- Create plg_system_mokojoomtos plugin structure
- Add XML manifest with editor fields for Terms and Privacy content
- Implement slug reservation for terms-of-service and privacy-policy
- Add routing and display logic in plugin PHP file
- Handle offline mode access within plugin
- Create language files with all UI strings
- Add default CSS styling for content display
- Reserved slugs are readonly to ensure consistency

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-26 23:15:28 +00:00
copilot-swe-agent[bot] 42ed0f223a docs: Recreate root README for MokoJoomTOS component
- Replace template README with component-specific documentation
- Add comprehensive description of MokoJoomTOS component
- Document installation and usage instructions
- Include database schema and customization sections
- Add offline mode access feature documentation
- Update project structure to reflect actual component
- Include proper Makefile commands reference
- Add security, contributing, and support sections

Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com>
2026-02-26 23:12:45 +00:00
copilot-swe-agent[bot] 8e6e4ccd4a Initial plan 2026-02-26 23:09:43 +00:00