![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 14:29 |