Files
2026-05-06 00:18:37 +02:00

66 lines
2.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Technology Stack
**Analysis Date:** 2026-05-05
## Languages
- **PHP 7.4+** — all server-side plugin logic (`Requires PHP: 7.4` in plugin header)
- **JavaScript (ES5/IIFE)** — frontend calendar + booking form (`calendar.js`), admin panel JS (`admin.js`)
- **SCSS** — frontend calendar styles (source at `frontend/assets/css/calendar.scss`; must be manually compiled)
- **SQL** — custom table queries via `$wpdb->prepare()`
## Runtime
- **WordPress 6.0+** (`Requires at least: 6.0`)
- **Elementor Pro** — optional; plugin checks `class_exists('\Elementor\Plugin')` and degrades gracefully
- **MySQL** — custom table + WordPress standard tables
## Key Dependencies
| Dependency | Version | How Loaded |
|-----------|---------|-----------|
| FullCalendar | 6.1.10 | jsDelivr CDN |
| FullCalendar Polish locale | 6.1.10 | jsDelivr CDN |
| jQuery | WP bundled | WordPress core |
| Google Calendar API v3 | — | Native HTTP (no SDK) |
**CDN URLs:**
- `https://cdn.jsdelivr.net/npm/fullcalendar@6.1.10/index.global.min.js`
- `https://cdn.jsdelivr.net/npm/fullcalendar@6.1.10/index.global.min.css`
- `https://cdn.jsdelivr.net/npm/@fullcalendar/core@6.1.10/locales/pl.global.min.js`
## Plugin Constants
Defined in `yacht-booking-system.php` (lines 2327):
```php
YACHT_BOOKING_VERSION = '1.0.0'
YACHT_BOOKING_PLUGIN_FILE = __FILE__
YACHT_BOOKING_PLUGIN_DIR = plugin_dir_path(__FILE__)
YACHT_BOOKING_PLUGIN_URL = plugin_dir_url(__FILE__)
YACHT_BOOKING_PLUGIN_BASENAME = plugin_basename(__FILE__)
```
## Autoloading
Custom `spl_autoload_register` (lines 3256, `yacht-booking-system.php`):
- Namespace prefix: `YachtBooking\`
- Maps to: `YACHT_BOOKING_PLUGIN_DIR . 'includes/'`
- Rule: `YachtBooking\Foo_Bar``includes/class-foo-bar.php`
- **Only covers `includes/`** — integration and API classes loaded via explicit `require_once`
## Configuration Storage
- No `.env` file — all runtime config in `wp_options`
- Key options: `yacht_booking_gcal_credentials`, `yacht_booking_gcal_tokens`, `yacht_booking_gcal_calendar_id`, `yacht_booking_gcal_sync_enabled`, `yacht_booking_default_status`, `yacht_booking_enable_notifications`
## Build Pipeline
None. No Composer, no npm, no webpack/vite/esbuild. Assets are static hand-authored files deployed via FTP (`ftp-kr` VS Code extension, config: `.vscode/ftp-kr.json`).
## Platform Requirements
- **Dev:** VS Code + ftp-kr, PHP 7.4+ CLI (`php -l <file>` for syntax checks)
- **Production:** PHP 7.4+, MySQL, WordPress 6.0+, shared hosting or VPS
- **Note:** OAuth redirect URI hardcoded to `https://jachty.pagedev.pl` — staging/local OAuth will fail