Kategoriye Özel Konu Formları: Alan, Doğrulama ve Kullanıcı Deneyimi Tasarımı
1. Neden Kategoriye Özel Form?
Forumlarda her kategori aynı yapıda konu formu kullanırsa, kullanıcılar hata bildirimi, iş ilanı, ticaret veya destek gibi farklı amaçlar için gerekli alanları bulmakta zorlanır. Kategoriye özel form tasarımı, her kategori için yalnızca ilgili alanları göstererek kullanıcı deneyimini iyileştirir, veri bütünlüğünü artırır ve moderasyonu kolaylaştırır.
2. Hata Bildirimi Formu
| Alan | Tür | Zorunlu | Doğrulama |
|---|---|---|---|
| Başlık | Metin | Evet | 5-200 karakter, benzersiz |
| Hata Türü | Seçim (açılır) | Evet | Önceden tanımlı liste: Kritik, Yüksek, Orta, Düşük |
| Hata Mesajı | Metin çok satırlı | Evet | 10-5000 karakter |
| Adımlar | Metin çok satırlı | Hayır | En az 20 karakter isteğe bağlı |
| Ekran Görüntüsü | Dosya yükleme | Hayır | Maks 2MB, jpg/png |
Alanlar:
- Başlık: Metin, zorunlu, 10-150 karakter
- Şirket: Metin, zorunlu, 2-100 karakter
- Lokasyon: Metin, zorunlu, 5-200 karakter
- Çalışma Türü: Seçim (Tam Zamanlı, Yarı Zamanlı, Freelance, Staj)
- Açıklama: Metin çok satırlı, zorunlu, 50-10000 karakter
- Başvuru Linki: URL, isteğe bağlı, geçerli URL formatı
4. Ticaret Formu (Alış/Satış/Takas)
Ticaret kategorisinde kullanıcıların ürün bilgilerini eksiksiz girmesi için aşağıdaki alanlar önerilir:
[x] Ürün Adı: Metin, zorunlu, 5-150 karakter
[x] Fiyat: Sayısal, zorunlu, 0-999999 arası, kuruşlu
[x] Durum: Seçim (Yeni, İkinci El, Arızalı)
[x] Açıklama: Metin çok satırlı, zorunlu, 20-5000 karakter
[x] Fotoğraf: Dosya yükleme, en fazla 5 adet, her biri maks 5MB
Tasarım Detayları
Destek formunda kullanıcının sorununu hızlıca tanımlaması için:
- Konu Başlığı: Metin, zorunlu, 10-200 karakter
- Kategori Alt Türü: Seçim (Teknik, Hesap, Ödeme, Diğer)
- Açıklama: Metin çok satırlı, zorunlu, 20-5000 karakter
- Öncelik: Seçim (Düşük, Normal, Yüksek, Acil)
- İletişim E-postası: E-posta, zorunlu, geçerli format
Her form alanı sunucu ve istemci tarafında doğrulanmalıdır. Örneğin, e-posta alanı regex ile kontrol edilirken, dosya yüklemelerinde boyut ve tür filtresi uygulanır. Ayrıca, spam önlemek için başlık ve içerikte belirli kelimeler taranabilir.
7. Kullanıcı Deneyimi İyileştirmeleri
- İlerleme çubuğu: Çok adımlı formlarda adım sayısını gösterin.
- Otomatik kaydetme: Taslakları periyodik olarak kaydedin.
- Anlık doğrulama: Alan terk edildiğinde hata mesajı gösterin.
- Mobil uyum: Form elemanları dokunmatik ekranlara uygun boyutta olsun.
8. Örnek Kod Parçası (PHP Doğrulama)
function validatePost($data, $category) {
$rules = getCategoryRules($category);
foreach ($rules as $field => $rule) {
if ($rule['required'] && empty($data[$field])) {
throw new Exception("$field alanı zorunludur.");
}
if (isset($rule['min']) && strlen($data[$field]) < $rule['min']) {
throw new Exception("$field en az {$rule['min']} karakter olmalıdır.");
}
// Diğer kontroller...
}
}
function getCategoryRules($category) {
return $categoryRules[$category] ?? $defaultRules;
}
9. Sonuç
Kategoriye özel konu formları, forumun kalitesini artırır ve kullanıcıların doğru bilgiyi doğru yerde paylaşmasını sağlar. Doğrulama kuralları ve kullanıcı deneyimi iyileştirmeleriyle birlikte, bu formlar hem kullanıcılar hem de yöneticiler için verimli bir araç haline gelir.