<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

require_once '../../includes/db.php';
require_once '../header.php';

if (isset($_POST['yazi_ekle'])) {
    $title = trim($_POST['title']);
    $slug = trim($_POST['slug']);
    $category_id = $_POST['category_id'];
    $content = $_POST['content']; // TinyMCE'den gelen HTML içerik
    $meta_title = trim($_POST['meta_title']);
    $meta_description = trim($_POST['meta_description']);
    $status = isset($_POST['status']) ? 1 : 0;
    
    // Görsel Yükleme ve SEO Optimizasyonu İşlemi
    $image_path = null;
    if (isset($_FILES['image']) && $_FILES['image']['error'] == 0) {
        
        // Yıl ve Ay'a göre klasör yapısı oluşturma (Örn: uploads/blog/2026/04/)
        $yil = date('Y');
        $ay = date('m');
        $upload_dir = "../../uploads/blog/$yil/$ay/";
        
        if (!is_dir($upload_dir)) {
            mkdir($upload_dir, 0777, true);
        }
        
        $file_info = pathinfo($_FILES['image']['name']);
        $extension = strtolower($file_info['extension']);
        $allowed_extensions = ['jpg', 'jpeg', 'png', 'webp'];
        
        if (in_array($extension, $allowed_extensions)) {
            // SEO uyumlu dosya adı: slug-kisaID.webp
            $yeni_dosya_adi = $slug . '-' . substr(uniqid(), -5) . '.webp';
            $destination = $upload_dir . $yeni_dosya_adi;
            
            // Görseli işleme (1200x630 Kırpma ve WebP dönüştürme)
            $tmp_name = $_FILES['image']['tmp_name'];
            $hedef_w = 1200;
            $hedef_h = 630;
            
            // Orjinal resmi yükle
            switch($extension) {
                case 'jpg':
                case 'jpeg': $kaynak = imagecreatefromjpeg($tmp_name); break;
                case 'png': $kaynak = imagecreatefrompng($tmp_name); break;
                case 'webp': $kaynak = imagecreatefromwebp($tmp_name); break;
                default: $kaynak = false;
            }

            if ($kaynak) {
                $orj_w = imagesx($kaynak);
                $orj_h = imagesy($kaynak);

                $orj_oran = $orj_w / $orj_h;
                $hedef_oran = $hedef_w / $hedef_h;

                // Kırpma koordinatlarını hesapla (Merkezi Kırpma)
                if ($orj_oran > $hedef_oran) {
                    $kirp_h = $orj_h;
                    $kirp_w = (int) ($orj_h * $hedef_oran);
                    $kirp_x = (int) (($orj_w - $kirp_w) / 2);
                    $kirp_y = 0;
                } else {
                    $kirp_w = $orj_w;
                    $kirp_h = (int) ($orj_w / $hedef_oran);
                    $kirp_x = 0;
                    $kirp_y = (int) (($orj_h - $kirp_h) / 2);
                }

                $hedef_resim = imagecreatetruecolor($hedef_w, $hedef_h);

                // Şeffaflık (PNG/WEBP) koruması
                if ($extension == 'png' || $extension == 'webp') {
                    imagealphablending($hedef_resim, false);
                    imagesavealpha($hedef_resim, true);
                    $saydam = imagecolorallocatealpha($hedef_resim, 255, 255, 255, 127);
                    imagefilledrectangle($hedef_resim, 0, 0, $hedef_w, $hedef_h, $saydam);
                }

                // Resmi yeniden boyutlandır ve kırp
                imagecopyresampled($hedef_resim, $kaynak, 0, 0, $kirp_x, $kirp_y, $hedef_w, $hedef_h, $kirp_w, $kirp_h);

                // WEBP olarak kaydet (%85 kalite - SEO için en ideali)
                if (imagewebp($hedef_resim, $destination, 85)) {
                    // Veritabanına kaydedilecek yol
                    $image_path = "uploads/blog/$yil/$ay/$yeni_dosya_adi";
                } else {
                    $error = "Görsel işlenip kaydedilirken bir hata oluştu.";
                }

                // Belleği temizle
                imagedestroy($kaynak);
                imagedestroy($hedef_resim);
            } else {
                $error = "Görsel okunamadı, bozuk bir dosya olabilir.";
            }
        } else {
            $error = "Sadece JPG, JPEG, PNG ve WEBP formatları desteklenmektedir.";
        }
    }

    if (!isset($error)) {
        $query = $db->prepare("INSERT INTO blogs (category_id, title, slug, content, image, meta_title, meta_description, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
        $insert = $query->execute([$category_id, $title, $slug, $content, $image_path, $meta_title, $meta_description, $status]);

        if ($insert) {
            echo '<div class="alert alert-success m-3">Yazı başarıyla eklendi. <a href="index.php">Listeye Dön</a></div>';
        } else {
            echo '<div class="alert alert-danger m-3">Yazı eklenirken bir hata oluştu.</div>';
        }
    } else {
        echo '<div class="alert alert-danger m-3">' . $error . '</div>';
    }
}
?>

<div class="container-fluid">
    <div class="card">
        <div class="card-header d-flex justify-content-between align-items-center">
            <h5 class="m-0">Yeni Blog Yazısı Ekle</h5>
            <a href="index.php" class="btn btn-secondary btn-sm">Geri Dön</a>
        </div>
        <div class="card-body">
            <form action="" method="POST" enctype="multipart/form-data">
                <div class="row">
                    <div class="col-md-8">
                        <div class="mb-3">
                            <label class="form-label fw-bold">Yazı Başlığı</label>
                            <input type="text" name="title" id="title" class="form-control form-control-lg" required placeholder="Örn: 2026 LGS Sınavı Ne Zaman?">
                        </div>
                        
                        <div class="mb-3">
                            <label class="form-label fw-bold">Kalıcı Bağlantı (Slug)</label>
                            <div class="input-group">
                                <span class="input-group-text">site.com/blog/</span>
                                <input type="text" name="slug" id="slug" class="form-control" required placeholder="2026-lgs-sinavi-ne-zaman">
                            </div>
                            <small class="text-muted">Boşluk bırakmayın, Türkçe karakter kullanmayın. Başlıktan otomatik oluşturulur.</small>
                        </div>

                        <div class="mb-3">
                            <label class="form-label fw-bold">İçerik</label>
                            <textarea name="content" id="content" class="form-control" rows="15"></textarea>
                        </div>
                    </div>

                    <div class="col-md-4">
                        <div class="card bg-light mb-3">
                            <div class="card-body">
                                <h6 class="card-title fw-bold">Yayımlama Ayarları</h6>
                                <div class="mb-3">
                                    <label class="form-label">Kategori</label>
                                    <select name="category_id" class="form-select" required>
                                        <option value="">Kategori Seçin</option>
                                        <?php
                                        $kategoriler = $db->query("SELECT * FROM blog_categories WHERE status = 1")->fetchAll(PDO::FETCH_ASSOC);
                                        foreach ($kategoriler as $kat) {
                                            echo '<option value="'.$kat['id'].'">'.htmlspecialchars($kat['name']).'</option>';
                                        }
                                        ?>
                                    </select>
                                </div>
                                <div class="mb-3 form-check form-switch">
                                    <input class="form-check-input" type="checkbox" name="status" id="status" checked>
                                    <label class="form-check-label" for="status">Yayında (Aktif)</label>
                                </div>
                            </div>
                        </div>

                        <div class="card bg-light mb-3">
                            <div class="card-body">
                                <h6 class="card-title fw-bold">Kapak Görseli <span class="badge bg-success">SEO Optimize</span></h6>
                                <div class="mb-3">
                                    <input type="file" name="image" class="form-control" accept="image/*" required>
                                    <small class="text-muted d-block mt-2"><i class="bi bi-info-circle"></i> Yüklediğiniz görsel otomatik olarak <strong>1200x630</strong> piksele kırpılacak, yeni nesil <strong>WebP</strong> formatına çevrilecek ve klasörlenecektir.</small>
                                </div>
                            </div>
                        </div>

                        <div class="card bg-light mb-3">
                            <div class="card-body">
                                <h6 class="card-title fw-bold">SEO Ayarları (Google)</h6>
                                <div class="mb-3">
                                    <label class="form-label">SEO Başlığı (Meta Title)</label>
                                    <input type="text" name="meta_title" class="form-control" placeholder="Boş bırakılırsa yazı başlığı kullanılır">
                                </div>
                                <div class="mb-3">
                                    <label class="form-label">SEO Açıklaması (Meta Description)</label>
                                    <textarea name="meta_description" class="form-control" rows="3" placeholder="Google arama sonuçlarında görünecek 150-160 karakterlik özet metin..."></textarea>
                                </div>
                            </div>
                        </div>
                        
                        <button type="submit" name="yazi_ekle" class="btn btn-success w-100 btn-lg">Yazıyı Yayımla</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
</div>

<script src="https://cdn.tiny.cloud/1/vrj5aef2zvyqm82vfs8ay0ltvq1l9v6bmkio7ovzkqj8trrq/tinymce/6/tinymce.min.js" referrerpolicy="origin"></script>
<script>
    // TinyMCE Başlatma
    tinymce.init({
        selector: '#content',
        plugins: 'anchor autolink charmap codesample emoticons image link lists media searchreplace table visualblocks wordcount',
        toolbar: 'undo redo | blocks fontfamily fontsize | bold italic underline strikethrough | link image media table | align lineheight | numlist bullist indent outdent | emoticons charmap | removeformat',
        language: 'tr',
        height: 500
    });

    // Otomatik Slug Oluşturucu
    document.getElementById('title').addEventListener('keyup', function() {
        var title = this.value;
        var slug = title.toLowerCase()
            .replace(/ğ/g, 'g')
            .replace(/ü/g, 'u')
            .replace(/ş/g, 's')
            .replace(/ı/g, 'i')
            .replace(/ö/g, 'o')
            .replace(/ç/g, 'c')
            .replace(/[^a-z0-9-]/g, '-') // Alfasayısal olmayanları tire yap
            .replace(/-+/g, '-')         // Birden fazla tireyi tek tire yap
            .replace(/^-|-$/g, '');      // Baş ve sondaki tireleri temizle
        document.getElementById('slug').value = slug;
    });
</script>

<?php require_once '../footer.php'; ?>