<?php
require_once (dirname(__DIR__, 2) . '/init.php');
if (!m_admin_check()) {
    m_redirect(ADMIN_URL . '/login');
}
$db = new DB();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $csrf_token = csrf_token($_POST['csrf_token']);
    if ($csrf_token[0]) {
        $id = m_u_p('id');
        $lang = m_u_p('lang');
        $parent_id = m_u_p('parent_id')?? NULL;
        $category_id = m_u_p('category_id')?? NULL;
        $lang_ref_id = m_u_p('lang_ref_id');
        $lang_is_default = lang_is_default('lang_code');
        $title = m_u_p('title');
        $slug = m_u_p('sef');
        $model = m_u_p('model');

        // edit izni kontrolü (model alındıktan sonra)
        if (function_exists('can')){
            if (!can('edit', $model)){
                if (function_exists('m_set_session')){
                    m_set_session('formSuccess', false);
                    m_set_session('error_message', lang('security_violation', [], 'Bu işlem için yetkiniz yok.'));
                }
                $back = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ADMIN_URL;
                header('Location: '.$back);
                exit();
            }
        }
        $status = m_u_p('status');
        $description = m_u_p('description') ?? NULL;;
        $image = m_u_p('image') ?? NULL;;
        $icon = m_u_p('icon') ?? NULL;;
        $images = m_u_p('images') ?? NULL;;
        $seo_title = m_u_p('seo_title') ?? NULL;
        $seo_description = m_u_p('seo_description') ?? NULL;
        $seo_keywords = m_u_p('seo_keywords') ?? NULL;
        $action = m_u_p('save');
        $featuresData= trim(strip_tags($_POST['featuresData']));

        if($model == 'sliders' OR $model == 'testimonials'){
            if (empty($title)) {
                m_set_session('formSuccess', false);
                m_set_session('error_message', form_vali_title);
                m_redirect($_SERVER["HTTP_REFERER"]);
                exit; // veya die;
            }
        }else{
            if (empty($title) && empty($slug)) {
                m_set_session('formSuccess', false);
                m_set_session('error_message', form_title_and_sef);
                m_redirect($_SERVER["HTTP_REFERER"]);
                exit; // veya die;
            } elseif (empty($title)) {
                m_set_session('formSuccess', false);
                m_set_session('error_message', form_vali_title);
                m_redirect($_SERVER["HTTP_REFERER"]);
                exit; // veya die;
            } elseif (empty($slug)) {
                m_set_session('formSuccess', false);
                m_set_session('error_message', form_vali_sef);
                m_redirect($_SERVER["HTTP_REFERER"]);
                exit; // veya die;
            }
            $result  = $db->table('posts')->where('sef', '=', $slug)->where('id', '!=', $id)->get();
            if ($result['total_count'] != 0) {
                $slug = $slug.'-'.rand(1,10);
            }
        }


            $data=[
                'lang'=> $lang,
                'lang_ref_id'=>$lang_ref_id,
                'parent_id'=> $parent_id,
                'category_id'=> $category_id,
                'module_type'=> $model,
                'title'=>$title,
                'description'=> $description,
                'image'=> $image,
                'icon'=> $icon,
                'images'=> $images,
                'sef'=>$slug,
                'seo_title'=> $seo_title,
                'seo_description'=> $seo_description,
                'seo_keywords'=> $seo_keywords,
                'features'=> $featuresData,
                'status'=> $status,
                'sort'=>'0',
                'updated_at'=> $db->now()
            ];
            $query = $db->table('posts')->where('id', '=',  $id )->update($data);
        if (!$query) {
            var_dump($db->error()); // Veritabanı sınıfının hata metodu varsa bunu kullanın
            exit;
        }
        if ($query) {
            pingSearchEngines();
            // IndexNow: güncellenen içerik URL'sini bildir
            $langCode = $lang;
            $urlList = [ rtrim(DOMAIN,'/') . '/' . ltrim($slug,'/') ];
            indexnow_submit($urlList, $langCode);
            generate_sitemap();
            $_SESSION['formSuccess'] = true;
            $_SESSION['success_message'] = lang('form_success_message', [], 'Değişiklikler Başarıyla Uygulandı!');
            m_delete_session('title');
            m_delete_session('sef');
            if ($action != '') {
                m_redirect(ADMIN_URL . '/' . $model . '/lists');
            }else{
                m_redirect($_SERVER["HTTP_REFERER"]);
            }
        } else {
            $_SESSION['formSuccess'] = false;
            $_SESSION['error_message'] = lang('form_error_message', [], 'Değişiklikler Kaydedilirken Bir Sorun Yaşandı!');
            m_redirect($_SERVER["HTTP_REFERER"]);
            exit;
        }

    } else {
        m_set_session('formSuccess', false);
        m_set_session('error_message', lang('form_token_error', [], 'Token eşleşmiyor, lütfen sayfayı yenileyip tekrar deneyin'));
        m_set_session('title', $_POST['title']);
        m_set_session('sef', $_POST['sef']);
        m_redirect($_SERVER["HTTP_REFERER"]);

    }

}else{
    m_redirect(ADMIN_URL);

}
