SSD - Basit BBCode Editör
Salih S. DEMİR tarafından yazıldı
29 Kasım 2008  |  Java Script  |  
SSD - Basit BBCode Editör

Bir veriyi veritabanına kaydederken HTML, JS ve diğer kodlardan temizleyip kaydetmemiz site güvenliği açısından önemlidir. BBCode ise sadece sizin belirlediğiniz fonksiyonlar çerçevesinde çalışır. Bir programlama dili veya kodu değildir. Son derece güvenlidir. Bende uzun zaman önce bulduğum bir JS kodunu geliştirip BBCode Editör olarak kullanılabilir hale getirdim. 3 ayrı fonksiyon var bunlar bbc1, bbc2 ve bbc3.

  • bbc1; <b> <i> gibi taglar için
  • bbc2; <img src= /> gibi ayrı kapatma tagı olmayan taglar için.
  • bbc3; <a href=></a> gibi kapatma tagı olan taglar için.

Kodlar çok basit ve kolayca kişiselleştirilebilir. (Benim gibi JS den anlamayanlar bile yapabilir)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
function bbc1(sec) {
 
ssd = document.getElementById("yazi-alani");
 
if (document.getSelection)
 
{
var once = ssd.value.substring(0, ssd.selectionStart);
var sonra = ssd.value.substr(ssd.selectionEnd);
var ara = ssd.value.substring(ssd.selectionStart, ssd.selectionEnd);
ssd.value = once + "[" + sec + "]" + ara + "[/" + sec + "]" + sonra; }
 
else
 
{
var ara = document.selection.createRange().text;
ssd.focus();
var sec = document.selection.createRange();
sec.text = "[" + sec + "]" + ara + "[/" + sec + "]"; }
return; }
 
function bbc2(sec) {
 
ssd = document.getElementById("yazi-alani");
 
if (document.getSelection)
 
{
var once = ssd.value.substring(0, ssd.selectionStart);
var sonra = ssd.value.substr(ssd.selectionEnd);
var ara = ssd.value.substring(ssd.selectionStart, ssd.selectionEnd);
ssd.value = once + "[" + sec + " url= /]" + sonra; }
 
else
 
{
var ara = document.selection.createRange().text;
ssd.focus();
var sec = document.selection.createRange();
sec.text = "[" + sec + " url= /]"; }
return; }
 
function bbc3(sec) {
 
ssd = document.getElementById("yazi-alani");
 
if (document.getSelection)
 
{
var once = ssd.value.substring(0, ssd.selectionStart);
var sonra = ssd.value.substr(ssd.selectionEnd);
var ara = ssd.value.substring(ssd.selectionStart, ssd.selectionEnd);
ssd.value = once + "[" + sec + " url=]" + ara + "[/" + sec + "]" + sonra; }
 
else
 
{
var ara = document.selection.createRange().text;
ssd.focus();
var sec = document.selection.createRange();
sec.text = "[" + sec + " url=]" + ara + "[/" + sec + "]"; }
return; }
1
2
3
4
5
6
7
<input type="button" onClick="bbc1('b');" value="Kalın" />
<input type="button" onClick="bbc2('img');" value="Resim"/>
<input type="button" onClick="bbc3('a');" value="Link"/>
 
<br />
 
<textarea id="yazi-alani" style="height: 100px; width: 500px;"></textarea>

Ben taglar için buton kullandım, resim veya text linkte kullanılabilir. Kolay Gelsin.

  • 12 Aralık 2008 21:30

    BBcode hem güvenilir hemde işleri kolaylartırıyor.
    paylaşım için teşekkürler

  • 18 Aralık 2008 00:30

    Hocam bunu kullanana kadar kaliteli bir text editörü kullansak olmaz mı? Bende text editör kullanmak daha mantıklı..

  • 18 Aralık 2008 12:18

    Eğer bir forum veya benzer sitemiz varsa kullanıcıların art niyetle zararlı kodlar kullanabileceğini düşünerek ( cümleye bak :D ) kullanmanın faydalı olacağını düşünüyorum. PhpBB Forum scripti bu şekil kullanıyor. Text editörü yönetim panellerinde kesinlikle kullanmak gerekli. BBCode kullanıcılar için alınmış bir önlem sadece.

    Salih S. DEMİR

  • 18 Aralık 2008 13:59

    Hmm (: Bende yönetim paneline böyle bir şey ekliyorsunuz sandım. Özür (: Dediklerini de biliyorum ama ben BBCode editörünü admin panelinde kullanmak amaçlı bu yazıyı yazdığınızı düşündüm ve ondan bi tepki vereyim dedim (: Teşekkürler.

  • 18 Aralık 2008 14:35

    Aslında bir ara düşünmedim de değil :) ama TinyMCE Editörü gördüm kullandım, çok güzel. Wordpress bile kullandığına göre…

    Salih S. DEMİR

Bu başlığa verilen linkler