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.
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
##############################################################
## MOD Başlık: Dmry Büyük Harf Kontrol Eklentisi
## MOD Yazar: Hakan Demiray (dmRy) http://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
Bu kadar! Haydi geçmiş olsun…
Bu yazı 2 Ocak 2006, 08:42 tarihinde yazılmış olup bu zamana kadar 5,093 kez görüntülenmiştir
En son ise 27 Ekim 2008, 23:38 tarihinde güncellenmiştir
Bu yazı 33 adet yorum almıştır ve bunların son 10 adeti görüntülenmektedir. Bu yazıya yapılan tüm yorumları görmek için arşivi görüntüleyiniz. TÜM YORUMLARI OKUMAK İÇİN TIKLAYINIZ.
bu kadar olacağını sanmıyordum =)
yalnız smileylerde büyük harfle kullanılan smiley varsa çalışmıyor sanırım…
SMF içinde bu mod var zaten .
Badboy isimli arkadaşımız resmi sitede yayınlamıştı.
Abi süpersin ne güzel düşünülmüş smf içinde isteriz ![]()
oldukca kullanısli dogrusu. isime yarayan bir uygulama.
vBulletinde bu şekilde çalışan bir ajax fonksiyonu var fakat Türkçe karakter problemi olduğu için kullanamıyoruz.
Eline emegine saglik.
Uyeleri bu buyk harf konusunda uyarmaktan skilmisdim acikcasi. Hatta bu yuzden 2 3 kisiyi banlamak zorunda bile kaldim:(
Oto kontrol dedikleri bu olsa gerek
Sagol
Güzel bir mod fakat ilk harf küçük olarak çıkıyor malesef ![]()
Yazını çok beğendim. Yeni yazılarının e-posta adresime gelmesini istiyorum :)