PROJECT STATE — VForum Pro (vBulletin tarzı WordPress forum teması)
Tema klasörü:vforum-pro/· Prefix:vfp_(PHP),vfp-(CSS),VFP(JS) · Text domain:vforum
Sürüm: 1.0.0 · DB sürümü:VFP_DB_VER1.0.0 · Son güncelleme: 2026-10-29
Mimari
- Tek giriş:
index.php→vfp_template_include()(router) → aktif skin şablonu. - Forum verisi özel tablolarda (CPT değil). Hiçbir tabloda FULLTEXT yok (SQLite/Playground uyumu).
- Tüm etkileşim AJAX (
admin-ajax.php, noncevfp_nonce, admin noncevfp_admin),vfp_guard()+vfp_can(). - Canlı veri: WP Heartbeat (
vfp_live) + yedek polling (vfp_liveaction). - Yetki motoru: grup izinleri (OR) + limitler (max, 0=sınırsız) + forum bazlı mod (
vfp_mods) +user_has_capköprüsü (vfp_acp_*caps → admin menüleri yetkiye göre).
Dosya Haritası
vforum-pro/
├── functions.php Kurulum, enqueue, GA + head/body/footer kodları
├── index.php Router giriş noktası (header/page/single/archive/search/404 buna yönlenir)
├── inc/
│ ├── install.php dbDelta tabloları + varsayılan veriler
│ ├── icons.php Yerel SVG ikonlar, rol ikonları, 8 konu durum ikon seti + admin override
│ ├── helpers.php vfp_opt, URL'ler, guard, pagination, SKIN SİSTEMİ, gece/gündüz, prefs AJAX
│ ├── groups.php Gruplar, yetkiler, limitler, ban, RANK sistemi, rozetler (3 stil), mod adları
│ ├── parser.php BBCode+Markdown+HTML→kses, kod blokları, [attach], embed, @mention, imza filtresi
│ ├── embeds.php YouTube/Vimeo/X/Instagram/TikTok/LinkedIn/Facebook/Threads/Spotify/Twitch/Telegram + WP oEmbed + direkt medya
│ ├── media.php Ön yüz medya kütüphanesi (WP MIME), düzenleme (döndür/çevir/kırp/boyut), [attach]
│ ├── forums.php Forum/konu/mesaj CRUD, sayaçlar, akışlar, okunmamış takibi, arama
│ ├── router.php Rewrite kuralları, bağlam (vfp_ctx), SEO meta, son ziyaret
│ ├── notifications.php Bildirimler + heartbeat + sayaç sıfırlama
│ ├── messages.php DM (çok alıcılı), limitler, anlık sohbet
│ ├── trader.php +1/0/-1 trader puanı (konu + açıklama zorunlu)
│ ├── stats.php Online takibi, rekor, günlük tablo, dönem istatistikleri
│ ├── ads.php Reklam alanları, hedefleme (forum/alt forum/konu), gösterim/tıklama
│ ├── emails.php Çok dilli mail şablonları + layout + önizleme
│ ├── payments.php Ücretli grup: PayTR iFrame, WooCommerce köprüsü, havale
│ ├── ajax-auth.php Giriş/kayıt/aktivasyon/şifre; reCAPTCHA v2/v3 (varsa) yoksa GD captcha
│ ├── ajax-forum.php Konu/cevap/düzenle/sil/beğen/alıntı/mod/şikayet/akış/üye/arama
│ ├── ajax-user.php Profil, imza, avatar/kapak, hesap, ziyaretçi mesajı, ban
│ ├── plugins.php Konu ön ekleri + etiketler, WPML/Polylang, Elementor (SFP v1.2.0'da kaldırıldı)
│ ├── blog.php Blog entegrasyonu (v1.2.0)
│ ├── customizer.php Canlı renk ayarları
│ └── admin/ admin.php ui.php pages.php ajax.php skins.php
├── templates/ MODÜLER SKINLER
│ ├── default/ Özgün "Nova" — tüm şablonlar + parts/
│ ├── midnight/ Aurora neon/cam (yalnızca skin.css)
│ └── classic/ Klasik vBulletin (yalnızca skin.css)
└── assets/ css(forum, media, admin) js(core, editor, forum, admin)Veritabanı ({prefix}vfp_*)
forums, threads, posts, likes, mods, notifications, conversations, conv_users, messages, trader, bans, ads, ad_stats, online, daily, reports, subs, visitor_msgs, orders
Seçenekler (wp_options)
vfp_settings, vfp_groups, vfp_ranks, vfp_icon_overrides, vfp_forum_tpl, vfp_sfp_map, vfp_mails, vfp_record, vfp_modlog, vfp_skins_off, vfp_db_ver
Skin Sistemi
- Çözümleme: kullanıcı skini (meta/çerez) → skin → parent zinciri →
templates/default. - Kök: child tema
vforum-skins/,wp-content/vforum-skins/, tematemplates/. - Admin: listele/etkinleştir/önizle (
?vfp_preview_skin=)/ZIP yükle (templates/ veya wp-content)/indir/sil. - Ön yüz: header'da gece/gündüz/otomatik + skin seçici; CSS-only skinler sayfa yenilemeden değişir.
AJAX uç noktaları (vfp_*)
Ön yüz: login, register, lost, reset, logout, captcha, new_thread, reply, thread_poll, post_raw, post_save, post_delete, like, quote, preview, mod, post_visibility, forum_rules, report, report_close, subscribe, feed, threads, posts, search, members, notifs, notifs_seen, live, pm_new, pm_reply, pm_fetch, pm_delete, pm_list, user_suggest, trader_rate, trader_delete, profile_save, signature_save, upload_image, account_save, vmsg, vmsg_delete, ignore, profile_tab, ban, buy, prefs, media_upload, media_list, media_delete, media_meta, media_edit, sfp_profile_save
Admin (vfpa_*): members, member_update, ban, unban, member_delete, group_save/delete/order, badge_style, ranks_save, forum_save/delete/order, mod_save/delete, staff_set, post_vis, report_close, ad_save/delete/toggle/report/csv, icons_save, mail_save/test, settings_save, order_approve, stats, stats_csv, user_suggest, skin_activate/upload/delete/export, sfp_save, sfp_install, sfp_autoassign + vfp_mail_preview
Tamamlanan
- [x] Tüm istenen 20 madde için çekirdek kod + skin şablonları + admin paneli
- [x] Rank sistemi, modüler skinler, skin ZIP yükleme, gece/gündüz modu
- [x] Smart Fields Pro: konu şablonları, profil/imza/kayıt alanları, filtreleme, yazı tipleri, JSON paket + atama paneli
- [x] reCAPTCHA (admin'den), medya kütüphanesi, sosyal embed
- [x] Yerel test: WordPress Playground (PHP 8.3 + SQLite).
.claude/launch.json→vforum-playground(port 9400, site URL 127.0.0.1 — localhost CORS verir) - [x]
.dev/smoke.sh: giriş, ~45 AJAX ucu, 22 rota, 18 admin sayfası; PHP uyarı/hata taraması → 0 hata - [x] Lint: php-wasm
PhpToken::tokenize(TOKEN_PARSE)→ 77 dosya 0 hata - [x] Doğrulandı: parser güvenliği (script/onclick/javascript: temizlenir), embed (YT/X/IG/TikTok), kod vurgulama, medya yükle+kırp+
[ek bulunamadı]
, gece/gündüz + anlık skin, mobil görünüm, mod'un kısıtlı admin erişimi
Test sırasında düzeltilenler
- plugins.php eksik
;(parse error) - Parser yer tutucuları
\x02..\x03kses'te siliniyordu →VFPPH{n}HPFV - Ham girdilerde geçersiz UTF-8 wpdb insert'i bozuyordu →
wp_check_invalid_utf8( $v, true ) - Boş
vfp_groups_extrameta'sı sahte "Üye" ek grubu üretiyordu →vfp_user_extra_groups() - Kod bloğunda çift satır aralığı (JS join)
Bekleyen
- [ ]
languages/vforum.potüretimi (wp i18n make-pot) - [ ] Skin ekran görüntüleri (
screenshot.png) - [ ] Gerçek SFP kurulu ortamda form/kayıt API imzalarının doğrulanması (README'de belgelenmeyen argümanlar:
form()object/object_id,fields()dönüş şekli) - [ ] Gerçek PayTR/WooCommerce ödeme akışı testi (test anahtarlarıyla)
v1.1 (2026-10-30) — devam eden büyük güncelleme
Yapıldı
- Yeni Mesajlar:
/forum/latest/{tip}/(eski?feed=newWP RSS'e düşüyordu) - Profil: sol kimlik kartı + künye + kapak/aksiyon butonları + sekmeler (Aktivite/Ticaret/Konular/Ziyaretçi/Hakkında/Cezalar); ticaret paneli (dönem çubukları + filtreli AJAX tablo); son ziyaretçiler, uzmanlıklar, banka hesapları, öne çıkan konular, özel notlar; profil ziyaret sayacı
- Gizlilik & Banka sekmesi (ayarlar): ad soyad gizli/maskeli/açık (On* Öz*), telefon/e-posta/banka/ziyaretçi görünürlüğü (varsayılan kapalı) —
inc/profile-extra.php - Ban/unban + engelle anlık (sayfa yenilemesiz), profilde ceza kartı (neden/süre/kalan)
- Editör: Görsel (WYSIWYG) / Kod / Önizle sekmeleri, H1-H3, boyut, renk paleti, hizalama, noktalı/numaralı liste, geri al/yinele, tam ekran; BBCodeHTML çift yönlü (VFP.bb); parser [h1][h2][h3], liste düzeltmesi
- Konu açma şartları (bölüm bazlı, admin forum düzenleyicisinde): min gün/mesaj/trader/%/maks olumsuz/beğeni/grup/ceza; kural maddeleri + wp_editor ek kurallar; konu açarken kural onayı —
inc/requirements.php, optionvfp_forum_req - Bildirim sesleri (Web Audio: mesaj ding-dong, bildirim pop; admin MP3 ayarı
sound_pm/sound_notif/sound_vol), kullanıcı aç/kapa - Menüler: topbar, header (2 seviye), footer 1-3, alt şerit; yeni çok sütunlu footer; süzülen ilerleme halkalı yukarı butonu
- Kutulu/Geniş yerleşim: admin varsayılanı (
layout,box_width,wide_width,user_width) + kullanıcı anlık geçiş (html[data-width]) assets/css/pro.css: ultra pro form elemanları, opak modal/dropdown, boş durumlar, çevrimiçi, istatistik kartları + çubuk grafik, widget, sponsor, reklam paketleri, iletişim- Pro widget'lar (10 adet) —
inc/widgets.php; varsayılan yan panel seti (sidebar_defaults) - Reklam: native + sponsor türleri,
forum_sponsored/feed_sponsoredalanları, reklam paketleri satışı (/forum/advertise/, optionvfp_ad_packs), siparişorders.item='ad', ödeme sonrası editör bildirimi + iletişim kaydı —inc/adpacks.php - İletişim formları (
/forum/contact/{form}/, 5 varsayılan form, SFP grubu desteği, tablovfp_contacts) —inc/contact.php; admin gelen kutusu (temel) —inc/admin/pages-extra.php - Admin: sol gruplu sidebar kabuk (mobil çekmece); yeni yetki
acp_contact - DB sürümü 1.1.0 (ads.description/owner_id, orders.item, contacts tablosu)
v1.1.1 (2026-10-30) — tamamlananlar
- Admin: sol gruplu sidebar kabuk (mobil çekmece, WP menüsü daraltılır), tamamen özel form elemanları/butonlar/tablolar (
assets/css/admin.css) - SMTP (
inc/smtp.php): tüm site e-postaları, hazır sağlayıcılar, şifre AES ile saklanır, gönderen ad/adres, test butonu + SMTP günlüğü (vfpa_smtp_test) - İletişim admin (
inc/admin/pages-extra.php): gelen kutusu (arama/form/durum filtresi), yazışma geçmişi (contacts.repliesJSON), wp_editor ile yanıt (e-posta + bildirim), atama, form düzenleyici (alan oluşturucu, SFP grubu, misafir, atanan kişi), varsayılanları geri yükle - Ayarlar: Görünüm & Yerleşim (layout/box_width/wide_width/user_width/nav_defaults/sidebar_defaults/editor_mode), Bildirim Sesleri, Reklam Görünümü, SMTP kartları; formda bulunan tüm toggle'lar doğru kaydedilir
- Ücretli Üyelik: "Yeni Paket Ekle" (yetki kopyalamalı) —
vfpa_pack_quick; siparişlerde reklam/üyelik ayrımı - Reklam düzenleyici: native/sponsor türleri, açıklama alanı, canlı yerleşim şeması + gerçek görünüm önizlemesi; Reklam Paketleri admin sayfası (editör kullanıcı adıyla)
- SFP: 18 grup (yeni: vfp_privacy, vfp_bank, vfp_form_ad/appeal/report/apply; profil +5 alan), bundle yeniden üretildi; tek tuş "içe aktar + ata + verileri taşı" (parçalı, ilerlemeli), canlı senkron (
vfp_profile_saved→vfp_sfp_push_user) —inc/sfp-sync.php - Skinler: midnight/classic v1.1 uyumu +
--vfp-surface-solid; yeni Emerald, Sunset, Carbon - languages/: vforum.pot, tr_TR.po, tr_TR.mo (1331 dize)
- Test: lint 88 dosya 0 hata;
.dev/smoke.shgenişletildi (~70 AJAX, 30 rota, 23 admin sayfası) → 0 hata
v1.1.1 — 2. tur (2026-10-30)
- Editör (
assets/js/editor.js,parts/editor.php): görsel/kod sekmeleri, üstü çizili + kalın/alıntı vb. ikinci tıkta geri alma, H1–H3, yazı tipi (vfp_editor_fonts, parser[font=]allowlist), boyut, emoji paneli (Unicodevfp_emoji_sets+ admin smiley paketlerivfp_smilies,:kod:), hazır cevaplar (user metavfp_canned; AJAXvfp_canned/vfp_canned_save/vfp_canned_delete), tam ekran (html.vfp-ed-full), mobil araç çubuğu - Modal yığını: editör içinden açılan modal editörü kapatmaz (
VFP.modalklonlar,data-stack,VFP.topModal()) - Özel select
assets/js/dd.js(xdd):.vfp/.vfpaselect'leri otomatik, arama (>7 seçenek /data-search), ağaç girinti (data-depth),data-nativeile hariç; kategori select'lerivfp_forum_options()ile ağaç sıralı - Konuyu okuyanlar kutusu (
vfp_thread_readers_html, AJAXvfp_readers, 30 sn yenileme) —inc/editor-extras.php - Profil: R10 tarzı uzmanlık (
vfp_expertiseyapı: skill/exp/hire/pct, AJAXvfp_skill_save, liste optionskills_list), ilgi alanları etiket girişi (data-vfp-tags), ayarlar sayfası grupluvfp-setcard, Hakkında/grup üyelikleri yenilendi, boş son ziyaretçiler gizlenir - Taleplerim ayrı sayfa (
/forum/contact/tickets/,tickets.php), kullanıcı anlık yanıt (AJAXvfp_contact_user_reply,by=user) - Footer pro (bilgi şeridi, sosyal ağlar
soc_*, istatistik çubuğu, yasal metin, partner logo,footer_contacts, alt menü) + mobil tabbar + Hızlı Menü - Admin FoldPress tarzı yeniden yazım: başlık bandı,
vfpa_fieldsatırları,[data-vfpa-tabs]sekmeli kartlar, ikon seçici popover, mobil kart tablolar, sekmeli forum/grup editörü, özellik seçmeli üyelik + reklam paket formları (vfp_ad_feature_presets) - Dil:
forum_langayarı (auto/tr_TR/en_US,theme_localefiltresi),vfp_time_diff()_nile çevrilebilir - languages/: vforum.pot + tr_TR + en_US.po/.mo (1490 dize, yer tutucu kontrollü; araç: scratchpad
make_pot.py+make_en.py) - Skin ekran görüntüleri: her
templates/{skin}/screenshot.png(1200×900, headless Chrome CDP);vfp_skin_css_map()shotdöndürür → admin skin listesi + ön yüz Görünüm panelinde küçük resimli seçici - İletişim formu hız sınırı
vfp_acp_contactyetkili personeli hariç tutar - Test: lint 90 dosya 0 hata; smoke 0 hata
v1.1.2 — 3. tur (2026-10-30)
- i18n kaynağı artık İngilizce: tüm
__()/_e()/_n()msgid'leri EN;languages/vforum.pot(EN, boş msgstr) +tr_TR.po/.mo(Türkçe, 1541 dize). en_US dosyaları kaldırıldı. Araç:.dev/i18n/→python build_i18n.py <tema>(EN→TR eşlemesitr_of.json; yeni dize eklerken Türkçesini buraya ekleyin) forum_langdüzeltmesi: WP 6.5+ çeviriyi locale anahtarıyla saklar →after_setup_theme(20) içinde.mogeçerli locale ile yeniden yüklenir (inc/helpers.php)- Yeni modül
inc/admin/pro.php: AJAX liste kabuğuvfpa_list_shell(+ admin.js[data-vfpa-list], arama/filtre/sayfalama), moderasyon kuyruğu (AJAXvfpa_queue_posts,vfpa_queue_reports,vfpa_report_reply→ şikayet edene bildirim, mesajı gizle), pano akışlarıvfpa_feed(members/modlog), aralıklı istatistikvfp_stats_range()+vfpa_stats(group/from/to, boş günler sıfır), CSVvfpa_stats_range_csv, grafik bileşenivfpa_chart_box(Günlük/Aylık/Yıllık + tarih aralığı + KPI aç/kapa), yeni Pano/İstatistik/Ücretli Üyelik sayfaları, Ödeme Yöntemleri ayrı sayfa (vfp-payments), avatarlı kullanıcı önerisivfpa_user_suggest - DB 1.1.2:
reports.reply,handled_by,handled_at - Admin menü grupları: Genel / Moderasyon / Üyelik & Yetkiler / Forum İçeriği / Gelir / İletişim / Görünüm & Sistem
- Admin CSS: buton-içerik boşlukları (
.vfpa-actbar, genel kurallar), tablolar.vfpa-tablewrapile tam genişlik (JS otomatik sarar), ikon seçici popoverposition: fixed(kesilmez), aramalı select ikon çakışması, kaydet çubuğu mesajı + İptal butonu, rank tablosu ikon seçicili - Reklam editörü:
vfp_ad_zone_meta()(alan → izinli türler, önerilen boyut, yan yana adet); tür ↔ alan çift yönlü senkron, şemadan alan seçimi, gerçek oranlı önizleme - Skin sayfası: kart görselleri düzeltildi, sürükle-bırak .zip yükleme, adım adım "Skin Geliştirme"
- Ön yüz: footer renkleri
--vfp-primary'den türetilir (skin uyumlu), Takip Et şeridi footer içinde (.vfp-ftop); Hızlı Menü'de tema ayarları panel içinde açılır, tabbar her zaman üstte, personel için Yönetim Paneli bağlantısı; ön yüzde WP admin bar gizli (show_adminbarayarı); iletişim sayfası sol konu seçici + sağ form; postbit rank taşması; alıntı sonrası yukarı kayma; tablolar tam genişlik; öneri kutularıposition: fixed - Editör: biçim butonları imleç konumuna göre basılı kalır (görsel:
WYS.within+selectionchange; kod modu: açık BBCode sayımı), alıntı/kod/spoiler ikinci tıkta kaldırılır, tam ekran tam genişlik + WP çubuğu üstünde, 39 kod dili renkli (vfp_code_langs(),VFP.vars.langs), emoji paneli mobilde sabit, "Genel" ilk sekme VFP.ajaxhata yolu: PHP uyarısı JSON'un önüne düşse de yanıtı kurtarır- Test: lint 91 dosya 0 hata; smoke 0 hata (yeni uçlar +
vfp-paymentseklendi)
Bekleyen
- [ ] Gerçek SFP kurulumunda içe aktarma/taşıma doğrulaması; gerçek SMTP sunucusuyla test; PayTR/WooCommerce test anahtarlarıyla ödeme
v1.1.3 — 4. tur (2026-10-30)
- Görsel editör = WordPress TinyMCE (
wp_enqueue_editor(), ayareditor_visual, varsayılan 1, yalnız giriş yapmışlara). Eski contenteditable motoru (WYS) kaldırıldı; içerik hâlâ BBCode saklanır. assets/js/editor.js:BB.toHtml(satır=<p>, blok etiketleri iç içe yer tutucuyla),BB.fromHtml(span stil → BBCode, px→size 1-7,<pre>içi<br>),MCE(init/sync/render/insertBB/code/spoiler/paint),Sug(ortak @bahsetme: textarea, kullanıcı inputu, TinyMCE iframe),Emoji.float(görsel modda sabit panel).VFP.editorMode($ed),VFP.mce,VFP.sug.- TinyMCE:
indent:false,valid_elements:*[*],wpautop:false, eklentiler charmap/colorpicker/hr/lists/paste/tabfocus/textcolor/wptextpattern; özel düğmeler vfplink/vfpimg/vfpembed/vfpcode (dil menülü splitbutton)/vfpspoiler/vfpemoji/vfpmention/vfpcanned. İçerik CSS:assets/css/editor-content.css(tema renkleri iframe'e CSS değişkeniyle aktarılır). - Kod modu araç çubuğu yalnız Kod modunda görünür. Round-trip testi birebir.
vfp_user_suggest:*q*araması, sıralama (tam > login başı > ad başı > içerir), grup adı/sınıfı döner.- Admin modal:
.vfpa-modal .xdd__nativegizlendi (Ek grup ver çift select). - Kaydet çubuğu:
margin-top:20px; İptal sayfayı yenilemeden geri alır (commit()varsayılan değerleri işaretler; satır silindiyse yeniler). - Moderasyon kuyruğu:
vfpa_queue_counts(), liste yanıtındastats→[data-vfpa-stat]anlık güncellenir.vfpa_list_send(..., $extra),vfpa_stat(..., $key). - Ayarlar > Genel:
stats_on(kapalıykenvfp_daily_inc/rekor/zirve durur, admin İstatistik sayfası, pano grafiği, header/footer/hızlı menü linkleri gizlenir, /stats 404),approve_mode(group|none|threads|all →vfp_auto_approve()forums.php),editor_visual. - Mesajlardaki IP gösterimi kaldırıldı.
vfp_viewers()/vfp_viewers_label()(stats.php): forum (konuları + alt forumları dahil, üstlere toplanır) ve konu bazında "(N Kişi Görüntülüyor)".- Alt forumlar: forum satırında klasör ikonlu (yeni mesaj = renkli) alt forum linkleri, alt-alt forum varsa
+N. İkonfoldereklendi. - Mobil: ön yüz CSS'i (forum/pro/media + skin.css) px→rem (≥3px; kenarlık/letter-spacing/@media hariç).
html{font-size:clamp(14.4px, calc(13.2px + .28vw), 16px)}→ telefonda ~%90 oranlı küçülme. iOS'ta input zoom engeli (core.js viewportmaximum-scale=1). - Yardım Merkezi:
inc/admin/help.php(vfp-help, capvfp_admin_access), bölümler + canlı reklam alanı tablosu + BBCode rehberi; reklam sayfasında Yardım düğmesi. - i18n: 1650 dize, Türkçe eksik 0 (
.dev/i18n/tr_add_113.py,missing.py). VFP_VER 1.1.3. - Testler: lint 92 dosya 0 hata, JS
node --checktemiz, smoke 0 hata (+vfp-help),.dev/approve_test.sh(threads modunda üye konusu onaya düşüyor, cevap düşmüyor).
v1.1.4 — 5. tur (2026-10-30)
- Mobil admin:
#wpbody≤782pxpadding-top:46px(başlık WP çubuğunun altına girmiyordu); ≤600px sayaç kartları 2 sütun kompakt. - Mobil forum satırları (≤899px): sayı/moderatör/son mesaj gizli; başlık + açıklama (3 satır) + alt forumlar.
- Akışkan ölçek güçlendirildi:
html{font-size:clamp(12.8px, calc(11.2px + .47vw), 16px)}(~%80 @375px).vfp_icon()vevfp_avatar()style="--i:Xrem"üretir;:where(body:not(.wp-admin) .vfp-ic[style])sıfır özgüllükle rem boyut verir. TinyMCE araç çubuğu mobilde kompakt. - Admin İletişim gelen kutusu yeniden:
vfpa_cardile liste + talep görünümü (.vfpa-ticket__head/meta/thread/reply/bar), arama ikonu. - Smiley toplu ekleme:
prompt()yerine modal (set adı + datalist), Türkçe karakterli kod sadeleştirme (smileyCode), tekrar kodlara -2 eki, boş satır temizliği, toast. - Editör: alıntı/kod ekleme sonunda imleç boş paragrafa iner (alıntı içinde kalmaz, editör sonuna eklenir); emoji paneli düğme aktif durumu, editör/boş alan/ESC/tekrar tıklama ile kapanır; bağlantı modalında hedef seçimi (
[url=ADRES target=_blank|_self], parser destekli; mevcut bağlantı düzenlenebilir). - WP emoji betiği (twemoji) ön yüz/admin/TinyMCE'de kapalı → yerel emoji fontu.
- Beğeni çubuğu (
.vfp-likebar): Beğen/Beğendin butonu, avatar yığını + "A ve B bunu beğendi.", Facebook/X/WhatsApp paylaşım; alt aksiyonlardaki kalp kaldırıldı.vfp_likers_html()yeni biçim. - i18n 1668 dize, eksik 0 (
.dev/i18n/tr_add_114.py). VFP_VER 1.1.4. Lint 92/0, smoke 0.
v1.1.5 — 6. tur (2026-10-30)
- Mesaj kartı: içerik → imza → aksiyonlar → beğeni çubuğu → "son düzenleme" (tek çizgi). Mesaj no çipi
.vfp-post__num(bağlantı ikonu, üzerine gelince "Bağlantıyı kopyala", kopyalanınca yeşil + toast; clipboard yoksa execCommand/prompt yedeği). - Postbit: ikonlu bilgi satırları, grup rozeti + rütbe çipi
.vfp-pbit__tagsiçinde; masaüstünde avatar halkası, mobilde yatay çip şeridi. - Ekmek kırıntısı: hap tasarım, ev ikonu yuvarlak/eşit boy, chevron ayırıcı; mobilde yatay kaydırma.
.vfp-pheadtüm sayfalarda kart (sol renk şeridi); konu başlığında.vfp-tmetaçipleri (yazar avatarı, zaman, görüntülenme, cevap, forum). - Editör: "Ortam Ekle" tema rengi, tam ekran düğmesiyle eşit 2.25rem; TinyMCE kod dili menüsü nötr metin + renk şeridi (
classes: 'vfp-langitem'→.mce-vfp-langitem). - Görsel düzenleyici: Cropper.js 1.6.2 (cdnjs, tembel yükleme) — oranlar, döndür, çevir, yakınlaştır, sıfırla, parlaklık/kontrast/doygunluk/siyah-beyaz, çıktı genişliği; işlem katmanı + yükleme yüzdesi. Kaydet: canvas →
vfp_media_replace(ek yerinde yeniden kaydedilir, alt boyutlar yenilenir). - Kimler çevrimiçi: sayaç kartları, Üyeler/Tümü, arama, AJAX sayfalama (
vfp_online_list, nopriv), "Bulunduğu yer" sütunu (vfp_online_location()), 60 sn tazeleme. - Bildirimler: "Tümünü sil" (sayfa + açılır menü) →
vfp_notifs_clear. - Admin İletişim: AJAX liste (
vfpa_contact_list, 15/sayfa, arama/filtre) + AJAX talep görünümü (vfpa_contact_view, URL güncellenir); yanıt editörüwp.editor.initialize(betik hazır olana kadar tekrar dener); yanıt/silme sayfayı yenilemez (reload_view,clear_view). "Yetkiliye ata" açıklamalı, e-posta toggle. - Dil sistemi:
vfp_langs()languages/*.mo dosyalarını otomatik algılar;vfp_lang_choice()(üye seçimi meta/çerez > Forum dili);switch_to_localeile WP çekirdeği de çevrilir; ayar kaydında eksik çekirdek paketlerivfp_install_core_langs()indirir (tr_TR kuruldu). Footer + Hızlı Menü dil seçici (vfp_set_lang), ayaruser_lang. - Bağlantılar: alt çizgi yok, temaya uygun hover,
:focus-visiblehalka (ön yüz + admin). - Ayarlar: gizlilik bölüm başlıkları üst boşluk; imza izinleri çip kartları.
- Admin Moderatörler: Yönetim Ekibi tam genişlik grup kartları (rozet, sayı, avatarlı üye, boş durum).
- WP emoji betiği kapalı (önceki tur). i18n 1721 dize, eksik 0. Lint 92/0, smoke 0 (+contact list/view).
v1.1.6 — 7. tur (2026-10-30)
.vfp-pheadartıkoverflow:visible(Moderasyon açılır menüsü kırpılmıyordu), z-index 30.- Beğeni çubuğu yine çerçeveli kutu; mobilde tek satır, alt çizgi yok.
- Dil seçici footer'dan kaldırıldı → Hesap Ayarları > Tercihler > "Arayüz dili" (
site_lang, account_save; değişince sayfa yenilenir). Hızlı Menü seçicisi duruyor. - Footer: hakkında + menü sütunları her zaman, yasal metin kompakt kutu, iletişim e-postaları etiket üstte/adres altta kartlar, alt şeritteki kısa çizgi (
.vfp-footer__copyborder) kaldırıldı. - i18n 1724 dize, eksik 0. VFP_VER 1.1.6. Lint 92/0, smoke 0.
- Trader formu: +1 yeşil / 0 gri / -1 kırmızı seçim kartları (gönder düğmesi de renk alır); konu alanı anlık AJAX doğrulama
vfp_trader_check(ID, /t/ veya /p/ bağlantısı →vfp_trader_thread_id(); bulunamadı/katılım yok/zaten puanlandı uyarıları; geçerli olana kadar Gönder pasif). Trader i18n anahtarları eklendi (önceden Türkçe sabit yedekler vardı). - Postbit trader: tek çerçeveli çip (olumlu yeşil, olumsuz kırmızı, nötr gri).
- Yukarı çık:
VFP.scrollTopsüre boyuncascroll-behavior:auto(CSS smooth çakışması anında zıplatıyordu), easeInOutCubic; düğme skin rengine göre (yüzey + birincil ikon, hover dolgu, ilerleme halkası birincil renk). - i18n 1734 dize, eksik 0. Lint 92/0, smoke 0.
- Forum sayfası: "Bölüm Moderatörleri" ayrı kutu (
vfp_forum_mod_ids(), avatar + rozet); ikon açıklamasından çıkarıldı. Konu listesinde onay bekleyen konular yalnızca yazarına görünür (moderatörler kuyruktan yönetir). - Postbit trader çipi mobilde diğer çiplerle aynı boyut.
v1.1.6 ek + v1.1.7 — 8. tur (2026-10-30)
- Ön ekler: Ayarlar > Genel
prefixes("Ad|#renk" satırları) + forum şablonundaki ön ekler (vfp_forum_prefixes,vfp_prefix_defs,vfp_prefix_html); konu açarken listeden doğrulanır. - Etiketler:
threads.tags(",a,b," biçimi, VFP_DB_VER 1.1.3),vfp_tags_clean(),vfp_thread_tags(); yeni konu formunda WordPress tarzı etiket girişi (virgül/Enter → çip); ilk mesajda beğeni çubuğunun altında çerçeveli etiket kutusu;/search/?tag=x(vfp_search( $tag, 1, 0, 'tag' )). - Forum dizininde moderatör adları ve alt-alt forum "+N" kaldırıldı (moderatörler yalnız forum sayfasındaki "Bölüm Moderatörleri" kutusunda).
- "Çevrimiçi durumunu gizle" paket özelliği: grup izni
hide_online(VIP/personel varsayılan açık, mevcut kurulumda bir kerelik geçiş),vfp_hides_online(); Tercihler'de izin yoksa kilitli + paket bağlantısı. - Bağlantı hover: birincil renkli bağlantılarda da görünür renk değişimi; footer'da beyaz.
- Yukarı çık düğmesi: skin renginde dolu, açık tonlu ilerleme halkası, focus halkası.
- Açılır paneller (bildirim/DM/görünüm/profil) mobilde ekrana sabit (sola taşmaz); önizlemede 6 kayıt + "Tümünü gör (N)" bağlantısı (
limit,more,all). - DM yeniden:
vfp_pm_convs(sayfalı + arama),vfp_pm_view(konuşma/yeni mesaj, AJAX geçiş + history),vfp_pm_older(eski mesajlar); konuşma satırında son mesaj özeti, çevrimiçi noktası, okunmamış rozeti; kutu doluluk çubuğu (yeşil/sarı/kırmızı) + günlük gönderim; yanıt ve yeni mesaj forum editörüyle (Görsel/Kod/Önizleme, Ctrl+Enter). DM sayacı artıkSUM(conv_users.unread)— konuşma açılınca her yerde düşer. - Smoke: test uzmanlıklarını temizler, DM uçları eklendi. i18n 1758 dize, eksik 0. Lint 92/0, smoke 0.
- Yeni konu etiketleri artık temanın mevcut çip bileşeniyle (
input[data-vfp-tags][data-max=8],.vfp-tagin): çipler kutunun içinde, "#" önekli, sağda "N / 8" sayacı; benim eklediğim yinelenen bileşen (boş kutu oluşturuyordu) kaldırıldı. - Mobil formlar (≤600px):
--vfp-ctl-h2.375rem, input/select/xdd/buton yazı ve iç boşlukları küçüldü; yeni konu başlığında ön ek ve başlık yan yana.
v1.1.8 — Birleşik renk sistemi (2026-10-30)
pro.csssonunda tokenlar:--vfp-on-primary(birincil dolgu üstü yazı),--vfp-on-head(buton yazısı),--vfp-link,--vfp-link-hover,--vfp-ring,--vfp-ring-soft,--vfp-btn-soft(-hover); hepsi--vfp-primary'den türer, her skin otomatik uyar.- Bağlantı hover/odak kuralları buton/çip görünümlü bağlantıları hariç tutar (dolgulu butonlarda yazı rengi artık değişmiyordu → değişmez). Odak halkası öğenin dışına çizilir (outline-offset), dolgulu butonla karışmaz.
- Editör tam ekran düğmesi açıkken birincil zemin +
--vfp-on-primaryikon (önceden ikon zeminle aynı renkteydi). - Açık birincil renkli koyu skinler: carbon/emerald/classic koyu modda
--vfp-on-primarykoyu tonda. 6 skin × açık/koyu tarayıcıda ölçüldü.
v1.1.9 — 9. tur (2026-10-30)
- Profil "Grup üyelikleri": rozet ikon+yazı yatay (genel
span{display:grid}rozeti de etkiliyordu). - Ziyaretçi mesajları:
visitor_msgs.parent_id(VFP_DB_VER 1.1.4), tek seviye yanıt; yanıt ana mesajın altında sağa girintili + "Yanıt" etiketi; yanıtlanan ve profil sahibi bildirim alır; silmede yanıtlar da silinir. Yeni kompozer (avatar + kutu + alt çubuk), Ctrl+Enter. vfp_excerpt()(helpers): alıntı/kod/gömülü blokları çıkararak özet; aktivite, konu meta açıklaması, bildirim, SEO açıklamasında kullanılır.- Bir kerelik onarım
vfp_mig_utf_fix: eski smoke verisindeki bozuk Türkçe karakterler (U+FFFD) düzeltildi. Tema dosyalarında bozuk karakter yok. - Akış listeleri (ana sayfa sekmeleri, Yeni Mesajlar, arama, profil konuları): masaüstü tablo (Konu Başlığı | Cevap • Görüntülenme | Son Cevap | Kategori,
.vfp-fheadbaşlık satırı), mobilde avatar + çevrimiçi noktası + tek satır başlık. "Daha fazla konu göster" ortalı hap düğme (.vfp-feed__morewrap). - Kimler çevrimiçi kutusu: grup lejantı ve kişi listeleri kaldırıldı → yalnız sayaçlar + "Kimler çevrimiçi →".
/online/sayfasında "Şu an çevrimiçi üyeler" ve "Bugün giriş yapanlar" (18 kişi sınırı + "N kişi daha göster"). Ana menüye "Kimler Çevrimiçi". - Ters (beyaz) buton varyantları (VIP kartı, karşılama) renk sisteminden sonra yeniden düzeltildi.
- Test verisi: 15 "ElmasNNNNN" test paketi/grubu silindi; smoke artık oluşturduğu grubu siler.
- SFP:
vfp_privacygrubu 1.2.0 →vfp_sfp_lang,vfp_sfp_hide_online,vfp_sfp_show_sigs(JSON + bundle 1.1.9 +vfp_sfp_push_user); Tercihler kaydı artıkvfp_profile_savedile SFP'ye senkron. - i18n 1765 dize, eksik 0. Lint 92/0, smoke 0.
v1.1.10 (2026-10-30)
- İstatistik görünürlüğü:
vfp_stats_visible()(stats_on +stats_publicayarı veyavfp_acp_stats/admin). Ayarlar > Genel > "Show statistics to members" (varsayılan kapalı) → router 404, header/footer/hızlı menü linkleri gizlenir. - AJAX
vfp_stats_chart(priv+nopriv): group=day|week|month|year, from/to (Y-m-d);vfp_stats_buckets()kovalar. Günlük aralık en fazla 365 gün. - stats.php: Chart.js (yalnız stats rotasında enqueue) yığılmış bar + çizgi grafik, segment kontroller + tarih aralığı, aralık KPI'ları; En çok mesaj yazanlar / En popüler konular 50/50
.vfp-statsplit+.vfp-toplist__rowayraçlı. - Kimler çevrimiçi sayfası: Şu an çevrimiçi / Bugün giriş yapanlar alt alta.
- Ortak "daha fazla" düğmesi
.vfp-feed__more(profil sekmeleri, DM listesi, çevrimiçi listeler). Profil sekme gövdesi üst boşluk.
v1.2.0 (2026-10-31)
- Smart Fields Pro tamamen kaldırıldı:
sfp-json/,inc/sfp-sync.php,inc/admin/sfp.php, admin SFP sayfası/JS/CSS, kayıt/profil/imza/postbit/iletişim SFP alanları. Bir kerelik temizlikvfp_mig_nosfp(helpers.php):vfp_sfp_map+sfp_*ayarları silinir. - Konu şablonu kaldırıldı (yerel JSON alanlar, gövde şablonu, forum filtreleri, gölge
vfp_threadCPT).vfp_forum_tpl()artık yalnızprefixesdöner; bölüme özel ön ekler forum düzenleyicinin Genel sekmesinde. Migrasyonvfp_threadgönderilerini siler. - Forum düzenleyici: Konu Açma Şartları gruplu kutucuklar (Üyelik / Trader / Disiplin, birimli sayı alanları, canlı "N aktif şart" özeti, kapalıyken soluk), izinli gruplar çipleri, mesaj; Bölüm Kuralları: madde textarea + canlı numaralı önizleme, onay toggle, tam genişlik editör (admin.js
reqSync/rulesSync, admin.css.vfpa-req*,.vfpa-rtile,.vfpa-rules*). - Widget boş durumları:
vfp_wgt_empty()/VFP_Widget::empty_state()(.vfp-wgtempty); ana sayfa akışı boşsaparts/empty. - İstatistik grafiği yeniden: başlık + aralık özeti, segment, açılır tarih paneli (hazır aralıklar + özel), KPI kartları seri aç/kapa + önceki döneme göre % değişim (
vfp_stats_chartartıkprev,days,series.peakdöner), legend kapalı, boş aralık uyarısı. - Blog entegrasyonu (
inc/blog.php):vfp_blog_url()(Yazılar sayfası > ana sayfa yazılar >/blog/rewrite,vfp_blogquery var),vfp_is_blog(), okunma sayacı (vfp_viewsmeta), okuma süresi, kategori renk/ikon term meta (vfp_color,vfp_icon, kategori formunda),pre_get_avatar_data→ forum avatarı her yerde, yorumlar:vfp_blog_comment_cb(avatar, grup rozeti, Yazar/Misafir etiketi, yanıtla/bağlantı/sil), AJAXvfp_blog_comment(nopriv, WP tartışma ayarlarına uyar) +vfp_blog_comment_delete, forum bildirimleriblog_comment/blog_reply. Yan panelvfp-blog-sidebar+vfp_blog_sidebar(). - Şablonlar:
templates/default/blog.php(hero, kategori hapları, öne çıkan + kart ızgarası, sayfalama),blog-single.php(meta çipleri, kapak, etiketler, paylaş, yazar kutusu, önceki/sonraki, ilgili yazılar),parts/blog-card.php,parts/blog-comments.php;wp.phpblog bağlamını bunlara yönlendirir. - Widget'lar:
VFP_W_BlogPosts(son/okunan/yorumlanan/rastgele; küçük resim/kart/liste; kategori),VFP_W_BlogCats,VFP_W_BlogTags,VFP_W_BlogComments,VFP_W_BlogSearch. Forum ana sayfasında "Blog'dan" bölümü, menüde Blog linki, forum yan panelinde "Blog'dan". - Ayarlar > Blog kartı:
blog_on,blog_base,blog_style,blog_per,home_blog,blog_related,blog_nav,sidebar_blog,blog_author_box. - Yeni ikonlar: tag, book, arrowleft, share, bookmark. VFP_VER 1.2.0. i18n 1849 dize, TR eksik 0 (
.dev/i18n/tr_add_120.py). - Test: Playground'da ön yüz/admin sayfaları uyarısız, misafir AJAX yorum, forum kaydetme (şart + kurallar + ön ek) ve yeni konu sayfası doğrulandı; mobil 375px taşma yok.
.dev/smoke.shbu turda çalıştırılmadı.