Plugin Structure
Overview of the plugin’s directory structure and organization.
The Journal Events plugin extends WPPB with:
Additional Directories
journal-events/
├── blocks/ # Custom Gutenberg blocks
├── datastores/ # WooCommerce data stores
├── models/ # Data models
└── docs/ # Documentation
Custom Features
- WooCommerce integration
- Block editor support
- Custom post types
- REST API endpoints
Enhanced Organization
- Modular block structure for reusable components
- Separate data stores for efficient data management
- Documentation files for maintainability
- Clear separation of concerns between components
Directory Layout
journal-events/
├── admin/ # Admin-specific functionality
│ ├── class-journal-events-admin.php
│ ├── css/
│ └── js/ # Admin JavaScript files
│ ├── journal-event-sidebar.js
│ ├── journal-entry-form-sidebar.js
│ ├── journal-event-profile-sidebar.js
│ ├── journal-lodging-sidebar.js
│ └── journal-players-room-sidebar.js
│
├── blocks/ # Custom Gutenberg blocks
│ ├── admin-event-attendees.php
│ ├── admin-overview.php
│ ├── css/
│ └── js/
│ ├── admin-event-attendees.js
│ ├── admin-event-attendees-front.js
│ ├── admin-overview.js
│ └── admin-overview-front.js
│
├── datastores/ # Data persistence layer
│ ├── attendee-datastore.php
│ ├── entry-datastore.php
│ ├── profile-datastore.php
│ └── stay-play-datastore.php
│
├── includes/ # Core plugin files
│ ├── class-journal-events.php
│ ├── class-journal-events-activator.php
│ ├── class-journal-events-deactivator.php
│ ├── class-journal-events-i18n.php
│ └── class-journal-events-loader.php
│
├── models/ # Data models
│ ├── attendee.php
│ ├── entry.php
│ ├── profile.php
│ └── stay-play.php
│
├── public/ # Public-facing functionality
│ ├── class-journal-events-public.php
│ ├── css/
│ ├── js/
│ │ ├── form-handler.js
│ │ └── profile-form-handler.js
│ └── views/
│ ├── form-entry.php
│ └── form-event-profile.php
│
├── languages/ # Internationalization
├── journal-events.php # Main plugin file
└── README.md # Documentation
Directory Purposes
Each directory serves a specific purpose:
admin/
: Contains all administrative interfaces and functionalityblocks/
: Custom Gutenberg blocks for admin dashboardsdatastores/
: Database interaction layer following WooCommerce patternsincludes/
: Core plugin initialization and setupmodels/
: Data models representing business objectspublic/
: Public-facing forms and functionality
The plugin follows WordPress coding standards and uses WooCommerce’s data store pattern for database operations.