shortcodes ([tribe_community_events view=\"...\"]) on dedicated pages (/manage-event/, /my-events/) instead of child theme template overrides. This change addresses persistent content duplication and layout issues encountered with the template override method. Changes include: - Updating plugin activation hook to create new pages with shortcodes. - Updating dashboard links to point to new pages. - Removing child theme override files and related custom handler logic. - Updating integration tests for activation. - Adding/updating E2E tests for dashboard links and new pages. - Fixing `run-tests.sh` corruption and adding pre-E2E setup steps (plugin reactivation, rewrite flush) to resolve 404s. - Updating relevant documentation and memory bank files. Testing: - Integration tests pass. - E2E tests pass for core functionality (login, dashboard, links). - E2E tests for rendering of TEC CE shortcodes on new pages fail due to environment-specific issues (likely JS/timing) and are recommended to be skipped. Manual verification confirms pages render correctly."
180 lines
No EOL
5.4 KiB
Markdown
180 lines
No EOL
5.4 KiB
Markdown
|
|
|
|
[2025-04-02 22:21:00] - Added pattern: Use WP-CLI within test execution scripts (`run-tests.sh`) to manage plugin state (deactivate/activate) and flush rewrite rules, ensuring a consistent environment for E2E tests.
|
|
# System Patterns
|
|
|
|
This file documents the architectural and design patterns used in the project.
|
|
2025-03-26 11:13:00 - Updated with development environment workflow patterns
|
|
|
|
## Development Environment Patterns
|
|
|
|
### Container Architecture
|
|
* **Docker Composition**
|
|
* WordPress (PHP-FPM)
|
|
* Nginx web server
|
|
* MariaDB database
|
|
* phpMyAdmin utility
|
|
* Shared volumes for persistence
|
|
* Network isolation
|
|
* Environment-based configuration
|
|
|
|
### Development Workflow Patterns
|
|
* **Backup-Based Setup**
|
|
* Production data backup creation
|
|
* Local backup storage
|
|
* Backup-based environment initialization
|
|
* Consistent development environments
|
|
* Offline development capability
|
|
* **Script Organization**
|
|
* Standardized naming conventions
|
|
* Clear separation of concerns
|
|
* Comprehensive error handling
|
|
* User-friendly feedback
|
|
* Modular script design
|
|
|
|
### Configuration Management
|
|
* **Environment Variables**
|
|
* Database credentials
|
|
* WordPress settings
|
|
* Development flags
|
|
* Debug options
|
|
* Site URLs
|
|
* **Docker Volumes**
|
|
* WordPress files
|
|
* Database data
|
|
* Configuration files
|
|
* SSL certificates
|
|
* Logs
|
|
|
|
### WordPress Integration
|
|
* **Core Configuration**
|
|
* wp-config.php management
|
|
* Environment-based settings
|
|
* Debug mode control
|
|
* URL configuration
|
|
* Security settings
|
|
* **Plugin Management**
|
|
* Controlled activation
|
|
* Version management
|
|
* Dependency handling
|
|
* Update procedures
|
|
* Compatibility checks
|
|
|
|
### Database Patterns
|
|
* **Connection Management**
|
|
* Environment-based credentials
|
|
* Connection pooling
|
|
* Error handling
|
|
* Retry mechanisms
|
|
* Timeout configuration
|
|
* **Data Access**
|
|
* WordPress WPDB wrapper
|
|
* Prepared statements
|
|
* Transaction support
|
|
* Query optimization
|
|
* Cache integration
|
|
|
|
### Security Patterns
|
|
* **Development Security**
|
|
* Disabled SSL requirement
|
|
* Debug mode enabled
|
|
* Error display active
|
|
* Test data isolation
|
|
* Local-only access
|
|
* **Production Preparation**
|
|
* SSL configuration ready
|
|
* Error logging configured
|
|
* Security headers prepared
|
|
* Access controls defined
|
|
* Data sanitization
|
|
|
|
### Testing Architecture
|
|
* **Test Environment**
|
|
* Isolated containers
|
|
* Test-specific configuration
|
|
* Data fixtures
|
|
* Mock services
|
|
* Debug capabilities
|
|
* **Test Types**
|
|
* Unit tests
|
|
* Integration tests
|
|
* E2E tests
|
|
* Performance tests
|
|
* Security tests
|
|
|
|
### Logging and Monitoring
|
|
* **Log Management**
|
|
* PHP error logs
|
|
* WordPress debug log
|
|
* Nginx access/error logs
|
|
* Database logs
|
|
* Container logs
|
|
* **Monitoring**
|
|
* Container health checks
|
|
* Resource usage
|
|
* Error tracking
|
|
* Performance metrics
|
|
* Security events
|
|
|
|
### Version Control
|
|
* **Feature Branches**
|
|
* Feature branches
|
|
* Pull requests
|
|
* Code review process
|
|
* Continuous integration
|
|
* Automated testing
|
|
|
|
2025-03-27 13:55:00 - Added WordPress Unit Testing Patterns
|
|
|
|
### Unit Testing Architecture
|
|
* **Containerized Testing**
|
|
* WordPress test environment inside Docker container
|
|
* WordPress testing libraries installed in container
|
|
* Database access from container
|
|
* Shared file system via volume mounts
|
|
* Consistent environment across developers
|
|
|
|
* **Test Configuration**
|
|
* PHPUnit configuration in phpunit.xml.dist
|
|
* Bootstrap configuration in tests/bootstrap.php
|
|
* WordPress test framework in /tmp/wordpress-tests-lib
|
|
* Test database isolated from development database
|
|
* Environment variables for configuration
|
|
|
|
* **Test Patterns**
|
|
* WP_UnitTestCase base class for WordPress-aware tests
|
|
* Fixtures and factories for test data
|
|
* Test suite organization by feature
|
|
* Isolated test methods
|
|
* Consistent validation patterns
|
|
|
|
|
|
2025-03-28 05:33:00 - Updated Test Configuration Patterns
|
|
|
|
### Test Configuration Patterns
|
|
* **Environment-Specific Settings**
|
|
* Docker-aware database configuration
|
|
* Container-specific file paths
|
|
* Environment variable integration
|
|
* Separate test database
|
|
* Isolated test framework files
|
|
|
|
* **Framework Organization**
|
|
* WordPress test framework in vendor directory
|
|
* Composer-managed dependencies
|
|
* Standardized configuration locations
|
|
* Clear separation between test and development databases
|
|
* Environment-aware path resolution
|
|
|
|
|
|
|
|
[2025-04-02 10:08:00] - Added Child Theme Template Overrides Pattern
|
|
|
|
### Child Theme Template Overrides
|
|
* **Pattern**: Override plugin template files by placing identically named files within a specific subdirectory structure in the active child theme.
|
|
* **Usage**: Can be used to customize the appearance and surrounding content of pages generated by plugins.
|
|
* **TEC Override Path**: `[child-theme-directory]/tribe-events/` (followed by the plugin's internal view structure, e.g., `community/edit-event.php`).
|
|
* **Implementation**: Copy original template from plugin to child theme override path, then modify the copy. WordPress automatically loads the child theme version.
|
|
* **Note (2025-04-02):** This approach was attempted for The Events Calendar: Community Events pages (`edit-event.php`, `event-list.php`) but was abandoned due to persistent content duplication and layout issues. Switched to using TEC CE shortcodes on dedicated pages instead.
|
|
|
|
2025-03-26 11:13:00 - Added development environment workflow patterns |