Sitemi takip edenler bilirlerki geçenler de arkadaşlarımın sorusu üzerine “PhpBB Forum Mesaj ve Başlıklarında Büyük Harfleri Engelleme” eklentisi yazmıştım. Dün Cem ile konuşurken aslında bunun kendileri için yeterli olmadığını öğrendim. Sağolsunlar bir problem yarattılar bana ve sıkı bir soruydu 😀 Fakat çözdüm. Alın size 2006 ‘a girişteki en iyi phpbb eklentisi ! Yok yok kendim yazdım diye demiyorum. Özelliğini okuyun hak vereceksiniz.
Forumlarınızda Tamamen Büyük Harf Yazanlara Son!
Problem Neydi?
Problem phpbb forum mesaj ve başlıklarında gereğinden fazla kullanılanan büyük harflerdi. Önceki eklenti ile tüm büyük harfler küçültülebiliyordu. Fakat daha sonra bazı mesajlarda zorunlu olarak büyük harf kullanılabileceğini farkettik. Ama eklenti bunları da ufaltıyordu. İşte problem buydu.
Çözüm yolu ve mantığı nedir?
Benim bulduğum çözüm şöyle. Eklenti öncelikle mesaj ya da başlık v.b. içeriğini kontrol etmeli. Mesaj içerisinde kullanılmış olan küçük harf sayısını bulmalı. Eğer kullanılan küçük harf sayısı, mesajdaki toplam karakter sayısının belli bir yüzdesinden az ise, tüm harfler küçültülmeli. Bu uygulanabilecek en iyi mantıktır zira bir nevi fonksiyonunuza düşünme yetkisi veriyor ve belli bir yüzdelik değer ile gereğinden fazla kullanılan büyük harf miktarını bulduruyorsunuz.
PhpBB için Dmry Büyük Harf Kontrol Eklentisi
[php]##############################################################
## MOD Başlık: Dmry Büyük Harf Kontrol Eklentisi
## MOD Yazar: Hakan Demiray (dmRy) https://www.dmry.net
## MOD Açıklama: Forum mesaj ve başlıklarında gereğinden fazla büyük harf kullanımını engeller.
## MOD Sürüm: 1.0.0
##
## Kurulum zorluğu: Kolay
## Kurulum süresi: 1 Dakika
## Düzenlenecek dosyalar: 1
## includes/functions_post.php
##
## Yüklenecek dosyalar: N/A
##############################################################
## Yazar notları:
##
## $sinir = 30; değeri büyük harf yazmadaki sınırdır. Şöyle ki;
## Eğer kullanılan küçük harf sayısı, mesajdaki toplam karakter
## sayısının %30 ‘dan az ise, tüm harfler küçültülmelidir.
##
##############################################################
## Bu modu eklemeden önce lütfen dosyaların yedeğini alınız.
##############################################################
#
#—–[ Aç ]————————————————
#
includes/functions_post.php
#
#—–[ Bul ]————————————————
#
$unhtml_specialchars_replace = array(‘>’, ‘<', '"', '&');
#
#-----[ Sonrasına Ekle ]------------------------------------------
#
// Dmry büyük harf kontrol
function BuyukHarfKontrol($yazi) {
$sinir = 30;
$turkce_buyuk_harflerin_kucukleri = array('İ'=>‘i’, ‘I’=>’ı’, ‘Ş’=>’ş’, ‘Ü’=>’ü’, ‘Ö’=>’ö’, ‘Ğ’=>’ğ’, ‘Ç’=>’ç’);
preg_match_all(“([a-z])”,$yazi, $sayi,PREG_SET_ORDER);
$yazi_karakter = strlen($yazi);
$bulunan_kucuk_harf = count($sayi);
$yuzde = ceil(($bulunan_kucuk_harf*100)/$yazi_karakter);
if ($yuzde>$sinir) {
return $yazi;
} else {
$yazi = strtr($yazi, $turkce_buyuk_harflerin_kucukleri);
$yazi = strtolower($yazi);
$first_space = ”;
$first_word = ”;
$first_space = strpos($yazi, ‘ ‘);
$first_word = substr($$yazi, 0, $first_space – 1);
$yazi = str_replace($first_word, ucfirst($first_word), $yazi);
return $yazi;
}
}
// Dmry büyük harf kontrol
#
#—–[ Bul ]————————————————
#
//
// Clean up the message
//
$message = trim($message);
#
#—–[ Sonrasına Ekle ]——————————————
#
// Dmry büyük harf kontrol
$message = BuyukHarfKontrol($message);
// Dmry büyük harf kontrol
#
#—–[ Bul ]————————————————
#
$subject = htmlspecialchars(trim($subject));
#
#—–[ Sonrasına Ekle ]——————————————
#
// Dmry büyük harf kontrol
$subject = BuyukHarfKontrol($subject);
// Dmry büyük harf kontrol
#
#—–[ Kaydet ve Kapat ]———————————
#
# Eklentinin Sonu
[/php]
Bu kadar! Haydi geçmiş olsun…