Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> pasek narzędziowy, gdzie takie coś znaleźć
gam3r
post
Post #1





Grupa: Zarejestrowani
Postów: 148
Pomógł: 0
Dołączył: 8.06.2005

Ostrzeżenie: (0%)
-----


witam,
chciałbym administratorowi strony dać możliwość bardzo łatwej edycji np. treści newsa i chciałbym na swojej stronie zainstalować podobny pasek narzędzi jak jest na forum lub na tej stronie. Chciałbym się dowiedzieć czy są jakieś gotowe klasy (w php) albo jakieś inne projekty, dzięki którym można by stworzyć taki pasek, w którym można by edytować zawartość, która potem będzie łatwo zamieniana na HTML przez bbcode. CHciałem takie coś sam zrobić bo coś tam o JavaScript czytałem (czyt."Javascript dla każdego") ale niestety ze wszystkim bym sobie raczej poradził oprócz tego jak się dowiedzieć jaki fragment w textarea jest zaznaczony żeby np. "otoczyć" go jakimś znacznikiem, albo nie wiem jak dodać np. linka w środku tekstu.
Dlatego proszę, jeżeli znacie coś to napiszcie, albo powiedzcie jak moge te wyżej wymienione problemy rozwiązać.
Będe wdzięczny za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
occulkot
post
Post #2





Grupa: Zarejestrowani
Postów: 49
Pomógł: 5
Dołączył: 14.09.2003

Ostrzeżenie: (0%)
-----


hehehe - milo ze komus sie moj kawalek kodu spodobal (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) - tu masz wersje 2.0 - niezaimplementowana jeszcze w silniku owned:

Kod
function bbcode(tag,pole){

    pole_ = document.getElementById(pole);
    seel=document.selection;
    zaznaczony=false;
    if (seel) {
 pole_.focus();
 if(seel.createRange().text!=""){
     zaznaczony=true;
     wartosc=seel.createRange().text;
 }else{
     wartosc=''
 }
    }

    else if (pole_.selectionStart || pole_.selectionStart == 0) {
 var startPos = pole_.selectionStart;
 var endPos = pole_.selectionEnd;
 if(endPos-startPos>0){
     zaznaczony=true;
     wartosc=pole_.value.substring(startPos,endPos);
 }else{
     wartosc=''
 }
    }


    kreator = document.getElementById(pole + '_kreator').checked;


    insert=true;

    switch(tag){
 case 'b':

 if(kreator){
     if(zaznaczony!=true){
   wartosc=prompt('Podaj tekst który ma zostać pogrubiony:','tekst');
   if(wartosc.length==0){
       insert=false;
   }
     }
 }

 wartosc='[b]' + wartosc + '[/b]';

 break;


 case 'u':

 if(kreator){
     if(zaznaczony!=true){
   wartosc=prompt('Podaj tekst który ma zostać podkre¶lony:','tekst');
   if(wartosc.length==0){
       insert=false;
   }
     }
 }

 wartosc='[u]' + wartosc + '[/u]';

 break;


 case 'i':

 if(kreator){
     if(zaznaczony!=true){
   wartosc=prompt('Podaj tekst który ma zostać pochylony:','tekst');
   if(wartosc.length==0){
       insert=false;
   }
     }
 }

 wartosc='[i]' + wartosc + '[/i]';

 break;


 case 'url':

 if(kreator){

     link=prompt('Podaj adres odno¶nika:','http://');
     if(link.length==0){
   insert=false;
     }else{


   if(zaznaczony!=true){
       wartosc=prompt('Podaj tekst odno¶nika:','tekst');
       if(wartosc.length==0){
     insert=false;
       }
   }
     }
 }

 wartosc='[url=' + link + ']' + wartosc + '[/url]';
 break;

 case 'mail':

 if(kreator){

     link=prompt('Podaj adres e-mail:','@');
     if(link.length==0){
   insert=false;
     }else{


   if(zaznaczony!=true){
       wartosc=prompt('Podaj tekst odno¶nika:','tekst');
       if(wartosc.length==0){
     insert=false;
       }
   }
     }
 }

 wartosc='[mail=' + link + ']' + wartosc + '[/mail]';


 break;

 case 'quote':

 if(kreator){

     link=prompt('Podaj autora cytatu:','autor');
     if(link.length==0){
   insert=false;
     }else{


   if(zaznaczony!=true){
       wartosc=prompt('Podaj tekst cytatu:','tekst');
       if(wartosc.length==0){
     insert=false;
       }
   }
     }
 }

 wartosc='[quote=' + link + ']' + wartosc + '[/quote]';


 break;

 case 'ol':

 if(kreator){

     link=prompt('Podaj nazwę listy:','nazwa');
     if(link.length==0){
   insert=false;
     }else{


   if(zaznaczony!=true){
       wartosc=prompt('Podaj pierwsz± pozycje listy:','tekst');
       if(wartosc.length==0){
     insert=false;
       }
   }
   wartosc='\n [li]' + wartosc + '[/li]\n';
     }
 }

 wartosc='[ol=' + link + ']' + wartosc + '[/ol]';


 break;

 case 'ul':

 if(kreator){

     link=prompt('Podaj nazwę listy:','nazwa');
     if(link.length==0){
   insert=false;
     }else{


   if(zaznaczony!=true){
       wartosc=prompt('Podaj pierwsz± pozycje listy:','tekst');
       if(wartosc.length==0){
     insert=false;
       }
   }
   wartosc='\n [li]' + wartosc + '[/li]\n';
     }
 }

 wartosc='[ul=' + link + ']' + wartosc + '[/ul]';


 break;

 case 'color':

 if(kreator){

     link=prompt('Podaj nazwę koloru (lista dostępna w pomoct):','red');
     if(link.length==0){
   insert=false;
     }else{


   if(zaznaczony!=true){
       wartosc=prompt('Podaj tekst który ma zostać zakolorowany:','tekst');
       if(wartosc.length==0){
     insert=false;
       }
   }
     }
 }

 wartosc='[color=' + link + ']' + wartosc + '[/color]';


 break;

 case 'size':

 if(kreator){

     link=prompt('Podaj rozmiar tekstu (liczba od 1 do 10):','4');
     if(link.length==0){
   insert=false;
     }else{


   if(zaznaczony!=true){
       wartosc=prompt('Podaj tekst:','tekst');
       if(wartosc.length==0){
     insert=false;
       }
   }
     }
 }

 wartosc='[size=' + link + ']' + wartosc + '[/size]';


 break;


 case 'img':

 if(kreator){
     obrazek=prompt('Podaj adres obrazka:','http://');
     if(obrazek.length==0){
   insert=false;
     }
 }

 wartosc='[img]' + obrazek + '[/img]' + wartosc;

 break;


 case 'code':

 if(kreator){
     if(zaznaczony!=true){
   wartosc=prompt('Podaj kod który chcesz wstawić:','tekst');
   if(wartosc.length==0){
       insert=false;
   }
     }
 }

 wartosc='[code' + ']' + wartosc + '[/' + 'CODE]';

  break;

  case 'hide':

  if(kreator){

      link=prompt('Podaj tekst widoczny:','tekst');
      if(link.length==0){
    insert=false;
      }else{


    if(zaznaczony!=true){
        wartosc=prompt('Podaj tekst do ukrycia:','tekst');
        if(wartosc.length==0){
      insert=false;
        }
    }
      }
  }

  wartosc='[hide=' + link + ']' + wartosc + '[/hide]';


  break;

  case 'div':

  if(kreator){

      link=prompt('Podaj justowanie elementu (fleft,left,center,right,fright)','center');
      if(link.length==0){
    insert=false;
      }else{


    if(zaznaczony!=true){
        wartosc=prompt('Podaj tekst:','tekst');
        if(wartosc.length==0){
      insert=false;
        }
    }
      }
  }

  wartosc='[div=' + link + ']' + wartosc + '[/div]';


  break;


  case 'html':

  if(kreator){
      if(zaznaczony!=true){
    wartosc=prompt('Podaj kod html który chcesz wstawić:','kod');
    if(wartosc.length==0){
        insert=false;
    }
      }
  }

  wartosc='[HTML]' + wartosc + '[/HTML]';

  break;


  case 'strona':

  if(zaznaczony!=true&&insert){
      wartosc=prompt('Podaj nazwę podstrony:','podstrona');
      if(wartosc.length==0){
    insert=false;
      }
  }
  if(wartosc.length>0){
      wartosc=':'+wartosc;
  }

  wartosc='[strona' + wartosc + ']';

  break;


  case 'wstep':

  if(pole_.value.split('[wstep').length>1){
      alert('W tek¶cie znajduje się już znacznik wstępu lub strony! Nie mozn± wstawiać znacznika wstepu');
      insert=false;
  }


  if(zaznaczony!=true&&insert){
      wartosc=prompt('Podaj odno¶nik na zakończenie wstępu:','kontynuuj...');
      if(wartosc.length==0){
    insert=false;
      }
  }
  if(wartosc.length>0){
      wartosc=':'+wartosc;
  }
  wartosc='[wstep' + wartosc + ']';

  break;

  default:

  wartosc=znazanczony_tekst;

  break;

    }

    if(insert){
  add(wartosc,pole);
    }

}

var jestemwoknie=0;


function add(add1,pole) {
    if(jestemwoknie==1){
  pole_ = opener.document.getElementById(pole);
  seel=opener.document.selection;
    }else{
  pole_ = document.getElementById(pole);
  seel=document.selection;
    }
    pole_.focus();
    if (seel) {
  sel = seel.createRange();
  sel.text = add1;
    }
    else if (pole_.selectionStart || pole_.selectionStart == 0) {
  var startPos = pole_.selectionStart;
  var endPos = pole_.selectionEnd;
  pole_.value = pole_.value.substring(0, startPos)+add1+pole_.value.substring(endPos, pole_.value.length);

    } else {
  pole_.value += add1;
    }
}


Tak w kwestii wyjasnienia - skrypt wstawia bbcode do textarea o id pole - podawanym jako parametr - uwzglednia zaznaczenie itd - mozna mu podawac jakies wlasne tagi - i wystarczy do tego prosta znajomosc js (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował occulkot 5.02.2006, 14:56:57
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 14:29