# VEX GLASS — Calculator Balustradă (PHP)

Aplicație React standalone care rulează direct pe orice hosting cu PHP.
**Fără Node.js, fără npm, fără build.** Doar urci fișierele și gata.

## Conținut

```
vex_glass_php/
├── index.php       # punctul de intrare (PHP minim + HTML + injectează app.jsx)
├── app.jsx         # toată aplicația React (2000+ linii)
├── .htaccess       # config Apache (compresie, securitate)
└── README.md
```

## Cum se instalează

### Pe hosting share (cPanel, DirectAdmin, Plesk, etc.)

1. Dezarhivează `vex_glass_php.zip`
2. Urcă **toate** fișierele în webroot-ul tău (sau într-un subfolder, ex: `/public_html/balustrada/`)
3. Accesezi `https://domeniul.tau/` sau `https://domeniul.tau/balustrada/`
4. Gata!

### Pe VPS / server propriu cu Apache+PHP

1. Copiezi conținutul în `/var/www/html/balustrada/` (sau orice path)
2. Te asiguri că `mod_rewrite` și `mod_deflate` sunt active (sunt în 99% din hosting-uri)
3. Accesezi `https://domeniul.tau/balustrada/`

### Pe nginx

Nginx nu citește `.htaccess`. Adaugă în config-ul site-ului:

```nginx
location /balustrada/ {
    index index.php;
    
    # Permite PHP
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    
    # Blocheaza accesul direct la .jsx
    location ~ \.jsx$ {
        deny all;
        return 403;
    }
}
```

## Necesar pe server

- **PHP 7.4+** (testat și pe 8.x)
- **Apache cu mod_rewrite** sau **nginx**
- **Acces internet** pe server (sau client) pentru încărcarea CDN-urilor:
  - React 18.3.1 de pe unpkg.com
  - Babel Standalone de pe unpkg.com
  - jsPDF de pe cdnjs.cloudflare.com (pentru export PDF)

## Cum funcționează

1. La accesare, **PHP-ul** servește `index.php` care:
   - Trimite header-ele HTTP corecte
   - Generează HTML-ul cu loader
   - Injectează conținutul `app.jsx` într-un tag `<script type="text/babel">`
2. **Browser-ul** încarcă React + Babel din CDN
3. **Babel** compilează JSX-ul direct în browser
4. Aplicația React pornește

## Performanță

- **Prima încărcare**: ~3-5 secunde (descarcă ~2MB Babel + React)
- **Următoarele**: instant (cache browser pentru CDN)

Pentru performanță maximă, folosește varianta cu Vite (`vex_glass_pack.zip`) care precompilează totul.

## Editare ulterioară

- **Modificări UI/logică**: editezi `app.jsx` direct pe server (nu trebuie rebuild)
- **Date firmă** (telefon, adresă, email): editezi array-ul `$FIRMA` din `index.php`

## Securitate

- `.htaccess` blochează accesul direct la `app.jsx` via HTTP
- PHP-ul citește `app.jsx` cu `file_get_contents()` (local, nu HTTP)
- Niciun input nu e procesat de PHP — tot logica e în React în browser

## Probleme cunoscute

- **Internet Explorer**: NU funcționează (Babel standalone nu suportă IE)
- **Telefoane vechi (Android 4 etc.)**: posibil probleme; testat pe Android 8+ și iOS 13+
- **Modul Incognito**: `localStorage` blocat → datele ofertei nu persistă între sesiuni

## Backup

Recomand backup periodic la fișierul `app.jsx` (e singurul care contine logica).

## Suport

- Funcționalitățile aplicației sunt descrise în UI direct
- Pentru bug-uri / feature requests: contactează dezvoltatorul

---

© VEX GLASS — toate drepturile rezervate
