GÜNCE 4.9 — STÜDYO / TAM CPANEL PAKETİ

NEREDEN AÇILIR?
https://sarumedya.info/gunce
Diğer alan adlarında https://siteadi.com/gunce şeklinde kullanılır.
Adresin /gunce/ olması normaldir. index.php yazmanız gerekmez.

BU SÜRÜMDE EKLENENLER
Üst menüde Stüdyo düğmesi bulunur. Beş bölüm aynı çalışma alanındadır:
1. Raporlar: toplam plan, paylaşım oranı, geciken iş, iptal sayısı; durum,
   marka, kategori ve içerik türü dağılımları; aylık tablo ve CSV raporu.
   Seçili filtredeki tüm eşleşmeler hesaplanır. İptaller paylaşım oranının
   paydasından çıkarılır. Aylık dağılım planın başlangıç ayını kullanır.
   Sosyal medya erişimi, takipçi veya izlenme verisi değildir.
2. Gelişmiş arama: tarih, marka/müşteri, kategori, tür, birden fazla durum,
   öncelik, favori ve gecikme filtresi; başlık, not, paylaşım metni ve iptal
   açıklamasında Türkçe arama. Aramaları isimle kaydetme, arşivleme, geri
   getirme; sayfalama ve tüm eşleşmeleri CSV indirme.
3. Hashtagler: marka/kategori grupları, tekrarları temizleme, kopyalama,
   paylaşım metnine ekleme. Öneriler kendi gruplarından gelir. Yanındaki sayı
   bu hashtag'i not/metin içinde kullanan silinmemiş plan sayısıdır;
   gerçek sosyal ağ popülerliği veya trend takibi değildir.
4. Şablonlar: başlık, marka, kategori, tür, hazırlık süresi, metin, not ve
   kontrol listesi. Kullan düğmesi düzenlenebilir yeni plan açar; Kaydet'e
   basılmadan kayıt oluşmaz. Üç başlangıç şablonu dahildir. Plan tarihini
   değiştirirsen hazırlık tarihini de kontrol et. Kontrol listesi mevcut
   Odak Odası bölümünden işaretlenir. Şablonlar arşivlenip geri getirilebilir.
5. Bildirimler: panel içi hatırlatmalar, ortak okundu durumu, günlük özet
   önizlemesi, e-posta/web push/SMS ayarları ve gönderim geçmişi.
   Dış kanallar varsayılan olarak kapalıdır. Kurulum için aşağıya bakın.

İçerik düzenleme formuna Marka / Müşteri ve Paylaşım metni alanları eklendi.
Hashtag ekle kısayolu aynı formdadır. Haftalık döngüler, pazartesi/cuma
planları, YouTube kategorisi, iş panosu, üst menü, kayan ana sayfa özetleri,
iptal açıklamaları, güvenlik paneli ve temiz giriş adresleri korunur.
Stüdyo ekranı mevcut marka renklerini ve aydınlık/karanlık temayı kullanır.

MEVCUT CPANEL KURULUMUNU GÜNCELLEME
1. Önce mevcut dosyaların ve TAM veritabanının yedeğini alın.
2. ZIP içindeki gunce klasörünün İÇERİĞİNİ mevcut public_html/gunce içine
   birleştirin; aynı isimli uygulama dosyalarının üzerine yazın. gunce/gunce
   gibi iç içe klasör oluşturmayın. Mevcut klasörü silmeyin veya taşımayın.
3. Sunucudaki config.php dosyasını ve web kökü DIŞINDAKİ veri klasörünü
   koruyun. Pakette config.php yoktur: canlı ayarların üzerine yazılmaz.
   config.example.php'yi mevcut kurulumda config.php olarak değiştirmeyin.
4. .htaccess ve push/ dahil tüm paket dosyalarını yükleyin. cPanel'de
   gizli dosyaları göster seçeneğini açmanız gerekebilir.
5. /gunce adresini açın ve Ctrl+F5 yapın. İlk istekte gerekli tablolar ve
   boş marka alanı eklenir; mevcut planlar yeniden oluşturulmaz. Ayarlar →
   Giriş ve Sistem Kontrolü bölümünü kontrol edin. Üst menüde Stüdyo görünür.
6. Stüdyo → Raporlar'da güncel ayı, Arama'da kendi kayıtlarınızı doğrulayın.
   Bildirim kanallarını, sağlayıcı kurulumu bitene kadar kapalı bırakın.

ÖNEMLİ VERİ NOTU
Gönderilen kaynak ZIP'te canlı veritabanı bulunmuyordu. Bu paket bütün
uygulama dosyalarını içerir; sunucudaki kişisel kayıtların kopyasını içermez.
Mevcut config.php ve veri klasörü korununca mevcut kayıtlar kullanılmaya
devam eder. Kurulumun fiziksel yolunu değiştirmeyin: data_dir boşsa veri
klasörü uygulamanın fiziksel yoluna bağlıdır. Taşınması zorunluysa önce
config.php'deki data_dir'i gerçekten kullanılan eski veri klasörünün tam
sunucu yoluna sabitleyin. Boş kurulum açılırsa yeni hesap oluşturmadan
önce veri klasörü ve config.php eşleşmesini kontrol edin.

YEDEKLEME
- Ayarlar → Yedek İndir: planlar, tarihler, marka, durum, not, paylaşım metni,
  kontrol listeleri ve iptal açıklamaları. Mevcut JSON biçimi korunur.
- Stüdyo → Şablonlar veya Hashtagler → Stüdyo yedeği: şablonlar, hashtag
  grupları ve kayıtlı aramalar (arşivdekiler dahil). Ayrı JSON dosyasıdır.
- Her iki içe aktarma da mevcut kimliklerin üzerine yazmaz; eksikleri ekler.
- Otomatik plan yedekleri veri klasöründeki backups/ içinde, stüdyo yedekleri
  studio-backups/ içinde son 7 gün tutulur. Stüdyo otomatik dosyası cPanel'den
  indirildikten sonra Stüdyo yedeğini yükle ile içeri alınabilir.
- Marka şema güncellemesinden önce backups/before-v49.json plan yedeği alınır.
- JSON dışa aktarımları TAM sistem yedeği değildir. Döngü kuralları, kullanıcı
  ayarları, bildirim ayarları/API anahtarı, geçmiş ve diğer tablolar için tam
  veritabanı + veri klasörü + config.php yedeği gerekir. API anahtarı hiçbir
  tarayıcı yanıtına veya indirilebilir JSON yedeğine konmaz.

BİLDİRİM KURULUMU (İSTEĞE BAĞLI)
Panel içi bildirimler ek servis olmadan çalışır. Paylaşılmış/iptal edilmiş
planlar çıkarılır. Hazırlık tarihi veya plan tarihi seçilen gün aralığına
giren aktif işler gösterilir; geciken işler de listede kalır. İlk 300
hatırlatma gösterilir. Okundu bilgisi tüm çalışma alanı için ortaktır.

Dış bildirimler için:
1. OneSignal hesabında uygulama oluşturun. Web push için doğru HTTPS alan
   adını ve Custom Code Setup yöntemini seçin. Varsayılan site adresini
   https://ALANADINIZ/gunce/ yapın. Otomatik izin istemeyi kapalı bırakın.
2. E-posta kullanacaksanız OneSignal'da gönderici alan adı/adresi doğrulayın.
   SMS için desteklenen gönderici numarası ve sağlayıcı hesabını yapılandırın.
   SMS ülkesi/numarası ve servis ücretleri hesabınıza bağlıdır.
3. Stüdyo → Bildirimler → Kanallar ve gönderim ayarları: App ID ve App API Key,
   alıcı/gönderici adreslerini girin. Anahtar şifre alanında saklanır, geri
   gösterilmez. Boş bırakmak mevcut anahtarı korur; kaldırmak ayrı seçenektir.
4. Günlük saati (Europe/Istanbul), hatırlatma gün sayısını ve sessiz saatleri
   seçin. Etkinleştirmek istediğiniz kanalları ve gönderim onayını işaretleyip
   kaydedin. Başlangıç: 09.00, üç gün önceden, 22.00–08.00 sessiz.
5. Push için aynı ekranda Bu cihazda push aç'a basıp tarayıcı izni verin.
   SDK ancak bu düğmeyle yüklenir. Diğer cihazlarda da ayrı izin gerekir.
   Push izni HTTPS ve desteklenen tarayıcı gerektirir. iOS/iPadOS'ta uygun
   sürümde ana ekrana eklenmiş web uygulamasından izin vermek gerekebilir.
   İşletim sistemi bildirim ayarları teslimi engelleyebilir.
   App ID değişirse kayıtlı cihazlar sıfırlanır; sayfayı yenileyip yeniden açın.
6. cPanel Cron Jobs'ta 15 dakikada bir çalıştırın (örnek):
   */15 * * * * /usr/local/bin/php /home/HESAP/public_html/gunce/cron-notifications.php /home/HESAP/public_html
   PHP ve klasör yollarını hosting hesabınızdaki gerçek yollarla değiştirin.
   PHP CLI sürümü web uygulamasıyla aynı olmalı; cURL ve kullanılan PDO
   uzantıları etkin olmalı. Servise HTTPS çıkışı açık olmalıdır.
7. Göndermeden kontrol için aynı komutun sonuna --dry-run ekleyin. Bu kip
   kanal ve özet bilgisi gösterir; servis isteği veya gönderim kuyruğu yazmaz.

Davranış: uygun saatte her etkin kanala günde tek özet; başarılı kabul
edilmiş özet tekrar gönderilmez. Başarısızlıkta en az 15 dakika arayla en
fazla üç deneme, aynı idempotency anahtarı kullanılır. Sessiz saatler ve
sistem kilidi sırasında gönderim yapılmaz. Ertesi güne kalan eski kuyruk
süresi doldu olarak işaretlenir. Ayar/cihaz değişikliği bekleyen denemeleri
iptal eder; o gün yeni bir özet çoğaltılmaz. Bir sonraki gün yeni ayarlar
kullanılır. Servis kabul etti durumu teslim edildi anlamına gelmez; teslim
bilgisi sağlayıcı panelinde izlenir. Okundu işaretlemek günlük özeti
engellemez; işi paylaşılmış veya iptal olarak kapatmak listeden çıkarır.
E-posta/push özetinde en fazla sekiz planın başlığı/tarihi/markası paylaşılır;
SMS yalnızca sayıları içerir. Not ve tam paylaşım metni gönderilmez.

MEVCUT YEDEK / DÖNGÜ ZAMANLAMASI
Panel kullanılmadığı günlerde de yedek ve döngü üretimi için mevcut görev:
15 2 * * * /usr/local/bin/php /home/HESAP/public_html/gunce/cron-backup.php /home/HESAP/public_html
Daha önce ayarlandıysa ikinci kez eklemeyin. Bildirim görevi bundan ayrıdır.

SIFIRDAN KURULUM (YALNIZCA YENİ SİTE)
config.example.php'yi config.php olarak kopyalayın, installation_key için
uzun ve benzersiz değer belirleyin. PHP 8.1+ kullanın. SQLite için pdo_sqlite;
MySQL için pdo_mysql ve cPanel'de oluşturulmuş veritabanı bilgileri gerekir.
Veri klasörü web kökü dışında ve PHP tarafından yazılabilir olmalıdır.
HTTPS ile /gunce açın, kurulum kodu ve en az 10 bayt şifreyle kurun.
Eski install-wizard.php/auto-setup yardımcıları ayar yazamaz; ana sayfaya
yönlendirilir. Yeni kurulumun örnek anahtarını herkese açık bırakmayın.

DOĞRULAMA VE SINIRLAR
PHP 8.3/SQLite ile eski sürümden geçiş, 358 örnek kaydın tamamının korunması,
marka kaydı, Türkçe arama, rapor hesapları, hashtag tekilleştirme, şablon ve
filtre işlemleri, eşzamanlı düzenleme koruması, arşiv/geri getirme, yedek içe
aktarma, bildirim ayarlarının doğrulanması, anahtar gizleme, günlük gönderim
tekilleştirme ve gecikmeli tekrar denemeler test edildi. Dış servise gerçek
mesaj gönderilmedi; gönderim katmanı kontrollü test taşıyıcısıyla sınandı.
PHP/JS sözdizimi ve DOM ekran etkileşimleri kontrol edildi. Bu ortamda gerçek
tarayıcı görüntü testi, Apache/cPanel ve MySQL üzerinde çalışma testi
yapılamadı. Canlı sarumedya.info sunucusuna yükleme yapılmadı.
Büyük aramalarda 20.000 aday sınırı vardır; daha fazlasında filtreyi daraltın.

SAĞLAYICI TEKNİK KAYNAKLARI
https://documentation.onesignal.com/reference/create-message
https://documentation.onesignal.com/reference/push-notification
https://documentation.onesignal.com/reference/email
https://documentation.onesignal.com/reference/sms
https://documentation.onesignal.com/docs/en/web-sdk-setup
https://documentation.onesignal.com/docs/en/web-sdk-reference
