update
This commit is contained in:
71
.paul/codebase/conventions.md
Normal file
71
.paul/codebase/conventions.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# Conventions
|
||||
|
||||
> Generated by /paul:map-codebase — 2026-04-26
|
||||
|
||||
## PHP Conventions
|
||||
|
||||
### Current state (in existing code)
|
||||
- **Style**: Procedural, no OOP
|
||||
- **Naming**: snake_case with descriptive prefixes (`wcs_`, `bbloomer_`, `Divichild_`) — inconsistent across files
|
||||
- **PHP version**: Basic PHP 5.x compatible constructs (no type hints, no match expressions)
|
||||
- **Comments**: Minimal; PHPDoc used in divi-children-engine but not in functions.php
|
||||
|
||||
### Convention to follow when adding new code
|
||||
- **Function prefix**: Use `szkolenia_` or `body_relax_` for all new functions
|
||||
- **Security**: Always sanitize input (`sanitize_text_field()`), verify nonces for AJAX (`wp_verify_nonce()`), escape output (`esc_html()`, `wp_kses_post()`)
|
||||
- **Hooks**: Register all hooks inside functions, not at file root level
|
||||
- **Translations**: Wrap all user-facing strings in `__()` / `_e()` — text domain: `body-relax`
|
||||
|
||||
## CSS Conventions
|
||||
|
||||
### Current state
|
||||
- Plain CSS (no preprocessor in production, SCSS compilation configured in VS Code)
|
||||
- No BEM; simple semantic class names (`.icon_tags`, `.icon_profile`)
|
||||
- ID-based selectors in admin CSS (anti-pattern)
|
||||
- Hard-coded hex colors
|
||||
- Breakpoints: 981px, 768px, 767px, 480px
|
||||
|
||||
### Convention to follow
|
||||
- Namespace custom classes with `br-` prefix (e.g., `.br-availability-message`)
|
||||
- Keep front-end CSS in `style.css`, admin CSS in `divi-children-engine/css/`
|
||||
- Use SCSS variables for colors if using the Live Sass compiler
|
||||
|
||||
## JavaScript Conventions
|
||||
|
||||
### Current state
|
||||
- Inline jQuery in PHP strings (no separate .js files in theme)
|
||||
- Uses deprecated `.toggle()` (removed in jQuery 3.9+)
|
||||
- References global `ajaxurl`
|
||||
|
||||
### Convention to follow
|
||||
- Put new JS in separate files under `wp-content/themes/body-relax/js/`
|
||||
- Enqueue via `wp_enqueue_script()` with jQuery dependency
|
||||
- Use `wp_localize_script()` to pass ajaxurl and nonces
|
||||
- Use `const`/`let`, avoid deprecated jQuery methods
|
||||
|
||||
## File Placement
|
||||
|
||||
| What to add | Where |
|
||||
|------------|-------|
|
||||
| WooCommerce filters/hooks | `wp-content/themes/body-relax/functions.php` |
|
||||
| Admin UI / metaboxes | `wp-content/themes/body-relax/divi-children-engine/includes/` |
|
||||
| Standalone cron scripts | Root of repo (like `cron-products.php`) |
|
||||
| New plugin | `wp-content/plugins/` with own directory |
|
||||
| Custom styles | `wp-content/themes/body-relax/style.css` |
|
||||
|
||||
## Git Conventions
|
||||
|
||||
### Current state
|
||||
- Commit messages are all "Save" (no meaningful history)
|
||||
- No `.gitignore` file
|
||||
|
||||
### Convention to follow
|
||||
- Use conventional commits: `feat:`, `fix:`, `chore:`, `style:`
|
||||
- Example: `feat: add availability countdown for last 3 spots`
|
||||
|
||||
## Deployment Notes
|
||||
|
||||
- FTP auto-upload is ON — every file save syncs to production immediately
|
||||
- Do not edit Divi parent theme files (overwritten on update)
|
||||
- Do not edit plugin files directly (overwritten on update) — use hooks/filters in theme instead
|
||||
- The bbPress plugin is currently an exception (100+ modified files) — this is a known risk
|
||||
Reference in New Issue
Block a user