Mod Adı: Mesajda tablo luşturma BBKodu
Mod Yapımcısı: Fahrenheit
GÖRÜNÜM:
Bu mod ile mesajda istediğiniz şekilde tablolar oluşturabilirsiniz. Mantığı HTML`deki <table> ile aynıdır. HTML bilenler hemen kavrayacaktır, bilmeyenler içinde aşağıda örnekler mevcut.
UYGULAMA:
gerecler.php içinde şunu bulun:
$donen = preg_replace('|\[color=([a-z0-9#]*?)\](.*?)\[/color\]|si','<font color="\\1">\\2</font>',$donen);
üstüne şunu ekleyin:
$donen = str_replace($bul = array('[tr]', '[/tr]'), array('<tr>', '</tr>'), $donen);
$donen = preg_replace('|\[table\](.*?)\[/table\]|si',
'<table cellpadding="5" cellspacing="1" align="center" border="0" bgcolor="#000000">\\1</table>', $donen);
$donen = preg_replace('|\[table=([0-9%]*?)\](.*?)\[/table\]|si',
'<table cellpadding="5" cellspacing="1" align="center" border="0" bgcolor="#000000" width="\\1">\\2</table>', $donen);
$donen = preg_replace('|\[td\](.*?)\[/td\]|si','<td align="center" valign="top" bgcolor="#ffffff">\\1</td>',$donen);
$donen = preg_replace('|\[td=([0-9%]*?)\](.*?)\[/td\]|si','<td align="center" valign="top" bgcolor="#ffffff" width="\\1">\\2</td>',$donen);
$donen = preg_replace('|\[td=([0-9%]*?);([0-9]*?)\](.*?)\[/td\]|si','<td align="center" valign="top" bgcolor="#ffffff" width="\\1" colspan="\\2">\\3</td>',$donen);
ÖRNEKLER:
BBCode kullanımını kolaylaştırmak için tüm parametreleri katmadım, sadece boyut (width) ve yanyana hücre birleştirme (colspan) değerleri verilebiliyor.
Parametre olma ve olmama olasılığı hesaba katılarak kullanımı daha da kolaylaştırılmıştır. Yani parametre girilmek zorunda değildir.
Parametresiz (En basit ve kolay tablo örneği):
Alıntı Çizelgesi: Örnek 1 yazmış
[table]
[tr]
[td]Örnek Tablo 1[/td]
[/tr]
[tr]
[td]satır 1 - hücre 1[/td]
[/tr]
[/table]
Boyut parametreli (Tablo ve hücrelere sabit boyut atanmış örnek):
[table] ve [td] etiketlerinde piksel değeri ile sabit boyut veriyoruz.
Alıntı Çizelgesi: Örnek 2 yazmış
[table=400]
[tr]
[td=100]Örnek Tablo 2[/td]
[td=250]Örnek Tablo 2[/td]
[/tr]
[tr]
[td]satır 1 - hücre 1[/td]
[td]satır 1 - hücre 2[/td]
[/tr]
[/table]
Boyut ve hücre birleştirme parametreli gelişmiş örnek:
[table] ve [td] etiketlerinde yüzde değeri ile sayfa genişlğine göre değişken boyut veriyoruz.
[td] etiketinde boyuttan sonra noktalı virgül ( ; ) ile ayırarak birleştirilecek hücre sayısını giriyoruz (colspan).
Alıntı Çizelgesi: Örnek 3 yazmış
[table=80%]
[tr]
[td=100%;3]Örnek Tablo 3[/td]
[/tr]
[tr]
[td=30%]satır 1 - hücre 1[/td]
[td=70%;2]satır 1 - hücre 2[/td]
[/tr]
[tr]
[td]satır 2 - hücre 1[/td]
[td]satır 2 - hücre 2[/td]
[td]satır 2 - hücre 3[/td]
[/tr]
[/table]
Yukarıdaki örneklerde kolay anlaşılması için satır atlama ve boşluk kullanılmıştır ama siz satır atlama kullanmaktan kaçının. Sadece içine koyduğunuz yazılarda satır atlama kullanın.
Yani etiketleri [table][tr][td] şeklinde birleşik yazın.
TÜM KULLANILABİLİR ETİKET VE PARAMETRELER:
[table] - [table=250] - [table=80%]
[td] - [td=250] - [td=80%] - [td=150;3]
[tr]
[/tr]
[/td]
[/table]
Yukarıda da bahsettiğim gibi kolay kullanım ve XSS açığı doğurmaması için fazla parametre eklemedim.
Bu yüzden bbcode ile sadece boyut ve yanyana hücre birleştirme yapılabiliyor.
Tablo görünümü değiştirmek isteyen html bilenler, koddaki ilgili yerleri istedikleri gibi değiştirebilirler.
Bu mod ile ilgili değişiklik ve kullanım sorunlarını buraya yazabilirsiniz.