📂 File Browser

//prject
🌙 Dark Mode
🎯 Quick Launch:

📁 Directories

📄 Files

🐘 document_template.php
▶ Open 📄 View Source
🐘 index.php
▶ Open 📄 View Source
🎨 style.css
▶ Open 📄 View Source

📄 Source: index.php

<?php
// Generator Cereri / Adeverințe
$nume = $prenume = $clasa_an = $clasa_letter = $motiv = $data = '';
$errors = [];
$generated_text = '';
$save_success = null;
$theme = $_COOKIE['theme'] ?? 'light';

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $nume = trim($_POST['nume'] ?? '');
    $prenume = trim($_POST['prenume'] ?? '');
    $clasa_an = trim($_POST['clasa_an'] ?? '');
    $clasa_letter = trim($_POST['clasa_letter'] ?? '');
    $motiv = trim($_POST['motiv'] ?? '');
    $data = trim($_POST['data'] ?? '');
    
    // Auto-capitalize names
    $nume = mb_convert_case($nume, MB_CASE_TITLE, "UTF-8");
    $prenume = mb_convert_case($prenume, MB_CASE_TITLE, "UTF-8");
    
    $clasa_full = $clasa_an . ' ' . $clasa_letter;
    
    // Validation
    if (empty($nume)) {
        $errors['nume'] = 'Numele este obligatoriu';
    }
    
    if (empty($prenume)) {
        $errors['prenume'] = 'Prenumele este obligatoriu';
    }
    
    if (empty($clasa_an) || empty($clasa_letter)) {
        $errors['clasa'] = 'Clasa completă este obligatorie';
    }
    
    if (empty($motiv)) {
        $errors['motiv'] = 'Motivul cererii este obligatoriu';
    } elseif (strlen($motiv) < 10) {
        $errors['motiv'] = 'Motivul trebuie să aibă cel puțin 10 caractere';
    }
    
    if (empty($data)) {
        $errors['data'] = 'Data este obligatorie';
    } else {
        $date_obj = DateTime::createFromFormat('Y-m-d', $data);
        if (!$date_obj || $date_obj->format('Y-m-d') !== $data) {
            $errors['data'] = 'Data nu este validă';
        }
    }
    
    if (empty($errors)) {
        // Include the document template
        ob_start();
        include 'document_template.php';
        $generated_text = ob_get_clean();
        
        if (isset($_POST['save_to_file']) && $_POST['save_to_file'] === 'yes') {
            if (!is_dir('cereri')) {
                mkdir('cereri', 0755, true);
            }
            $filename = 'cereri/' . date('Y-m-d_H-i-s') . '_' . preg_replace('/[^a-z0-9]/i', '_', strtolower($nume . '_' . $prenume)) . '.txt';
            
            if (file_put_contents($filename, strip_tags($generated_text))) {
                $save_success = "Documentul a fost salvat cu succes în: {$filename}";
            } else {
                $save_success = "Eroare la salvarea documentului!";
            }
        }
    }
}
?>

<!DOCTYPE html>
<html lang="ro">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Generator Cereri / Adeverințe</title>
    <link rel="stylesheet" href="style.css">
</head>
<body data-theme="<?php echo $theme; ?>">
    <div class="container">
        <div class="header">
            <div class="logo">
                <span class="logo-icon">📜</span>
                <h1>Generator Cereri / Adeverințe</h1>
            </div>
            <button class="theme-toggle" onclick="toggleTheme()">
                <?php echo $theme === 'dark' ? '☀️' : '🌙'; ?>
            </button>
        </div>
        
        <div class="form-section">
            <form method="POST" action="" id="mainForm">
                <div class="form-row">
                    <div class="form-group">
                        <label for="nume">Nume *</label>
                        <input type="text" id="nume" name="nume" value="<?php echo htmlspecialchars($nume); ?>" 
                               placeholder="Popescu" onblur="capitalizeName(this)" required>
                        <?php if (isset($errors['nume'])): ?>
                            <div class="error"><?php echo $errors['nume']; ?></div>
                        <?php endif; ?>
                    </div>
                    
                    <div class="form-group">
                        <label for="prenume">Prenume *</label>
                        <input type="text" id="prenume" name="prenume" value="<?php echo htmlspecialchars($prenume); ?>" 
                               placeholder="Ion" onblur="capitalizeName(this)" required>
                        <?php if (isset($errors['prenume'])): ?>
                            <div class="error"><?php echo $errors['prenume']; ?></div>
                        <?php endif; ?>
                    </div>
                </div>
                
                <div class="form-row">
                    <div class="form-group">
                        <label for="clasa_an">Clasa *</label>
                        <select id="clasa_an" name="clasa_an" required>
                            <option value="">---</option>
                            <?php
                            $clase = ['a V-a', 'a VI-a', 'a VII-a', 'a VIII-a', 'a IX-a', 'a X-a', 'a XI-a', 'a XII-a'];
                            foreach ($clase as $c) {
                                $selected = (isset($clasa_an) && $clasa_an == $c) ? 'selected' : '';
                                echo "<option value='$c' $selected>$c</option>";
                            }
                            ?>
                        </select>
                    </div>
                    
                    <div class="form-group">
                        <label for="clasa_letter"> &nbsp;</label>
                        <select id="clasa_letter" name="clasa_letter" required>
                            <option value="">---</option>
                            <?php
                            $litere = range('A', 'H');
                            foreach ($litere as $l) {
                                $selected = (isset($clasa_letter) && $clasa_letter == $l) ? 'selected' : '';
                                echo "<option value='$l' $selected>$l</option>";
                            }
                            ?>
                        </select>
                        <?php if (isset($errors['clasa'])): ?>
                            <div class="error"><?php echo $errors['clasa']; ?></div>
                        <?php endif; ?>
                    </div>
                </div>
                
                <div class="form-group">
                    <label for="motiv">Motivul cererii *</label>
                    <textarea id="motiv" name="motiv" placeholder="Ex: Vă rog să îmi aprobați o zi liberă..." required><?php echo htmlspecialchars($motiv); ?></textarea>
                    <?php if (isset($errors['motiv'])): ?>
                        <div class="error"><?php echo $errors['motiv']; ?></div>
                    <?php endif; ?>
                </div>
                
                <div class="form-row">
                    <div class="form-group">
                        <label for="data">Data evenimentului *</label>
                        <input type="date" id="data" name="data" value="<?php echo htmlspecialchars($data); ?>" required>
                        <?php if (isset($errors['data'])): ?>
                            <div class="error"><?php echo $errors['data']; ?></div>
                        <?php endif; ?>
                    </div>
                    
                    <div class="form-group">
                        <div class="checkbox-group">
                            <input type="checkbox" id="save_to_file" name="save_to_file" value="yes">
                            <label for="save_to_file">💾 Salvează ca .txt</label>
                        </div>
                    </div>
                </div>
                
                <div class="button-group">
                    <button type="submit" class="btn-generate">✨ Generează Document</button>
                    <button type="reset" class="btn-clear" onclick="this.form.reset();">🗑️ Resetează</button>
                </div>
            </form>
        </div>
        
        <?php if (!empty($errors)): ?>
            <div class="error-message">
                <strong>⚠️ Corectați erorile:</strong>
                <ul>
                    <?php foreach ($errors as $error): ?>
                        <li><?php echo $error; ?></li>
                    <?php endforeach; ?>
                </ul>
            </div>
        <?php endif; ?>
        
        <footer class="footer">
            <p>© <?php echo date('Y'); ?> Generator Cereri / Adeverințe | Sistem oficial</p>
            <div class="symbols">📚 🎓 📜 ✍️</div>
        </footer>
    </div>
    
    <script>
        function capitalizeName(input) {
            input.value = input.value.toLowerCase().replace(/\b\w/g, l => l.toUpperCase());
        }
        
        function openDocumentWindow(content, saveMsg) {
            const win = window.open('', '_blank', 'width=700,height=500,toolbar=yes,scrollbars=yes');
            win.document.write(`
                <!DOCTYPE html>
                <html>
                <head>
                    <title>Document Cerere/Adeverință</title>
                    <meta charset="UTF-8">
                    <style>
                        body {
                            margin: 0;
                            padding: 20px;
                            background: #f0f0f0;
                        }
                        .document {
                            max-width: 600px;
                            margin: 0 auto;
                            background: white;
                            padding: 20px;
                            box-shadow: 0 0 10px rgba(0,0,0,0.1);
                        }
                        .buttons {
                            text-align: center;
                            margin-top: 20px;
                        }
                        button {
                            background: #667eea;
                            color: white;
                            border: none;
                            padding: 8px 16px;
                            margin: 0 5px;
                            border-radius: 5px;
                            cursor: pointer;
                        }
                        button:hover {
                            background: #764ba2;
                        }
                        ${saveMsg ? '.save-msg { background: #d4edda; padding: 8px; margin-bottom: 15px; border-radius: 5px; text-align: center; font-size: 12px; }' : ''}
                        @media print {
                            body { background: white; padding: 0; }
                            .document { box-shadow: none; padding: 15px; }
                            .buttons { display: none; }
                        }
                    </style>
                </head>
                <body>
                    <div class="document">
                        ${saveMsg ? `<div class="save-msg">✅ ${saveMsg}</div>` : ''}
                        ${content}
                    </div>
                    <div class="buttons">
                        <button onclick="window.print()">🖨️ Printează</button>
                        <button onclick="window.close()">❌ Închide</button>
                    </div>
                </body>
                </html>
            `);
            win.document.close();
        }
        
        function toggleTheme() {
            const body = document.body;
            const newTheme = body.getAttribute('data-theme') === 'dark' ? 'light' : 'dark';
            body.setAttribute('data-theme', newTheme);
            document.cookie = `theme=${newTheme}; path=/; max-age=31536000`;
            document.querySelector('.theme-toggle').innerHTML = newTheme === 'dark' ? '☀️ Lumina' : '🌙 Noapte';
        }
        
        <?php if ($_SERVER['REQUEST_METHOD'] === 'POST' && empty($errors) && !empty($generated_text)): ?>
        setTimeout(() => {
            openDocumentWindow(
                <?php echo json_encode($generated_text); ?>,
                <?php echo json_encode($save_success); ?>
            );
        }, 100);
        <?php endif; ?>
    </script>
</body>
</html>
← Back