Blokada [img] lub ograniczenie tylko do jednego obrazka w podpisach na forum
|
fusionek |
Dodany dnia 03.02.2007 17:40:09
|

Początkujący

Postów: 122 Ostrzeżeń: 1
Data rejestracji: 25.01.2005 18:53
|
Czy dałoby się zablokować możliwość wstawiania tagu [img] (czyli plików graficznych) w podpisach na forum? Jeśli tak to w jaki sposób?
Edytowane przez Pieka dnia 29.05.2011 15:07:36
|
|
|
|
Wścibski Gość |
Dodany dnia 30.04.2025 07:19:52
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
IP: localhost |
|
|
Pieka |
Dodany dnia 03.02.2007 19:14:51
|


Postów: 19887 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
Zyczysz sobie pliki, czy opis?
Zmiany dotycza trzech plikow, z czego 2 forum + maincore.php.
Jestem jaki jestem 
|
|
|
|
fusionek |
Dodany dnia 03.02.2007 19:42:19
|

Początkujący

Postów: 122 Ostrzeżeń: 1
Data rejestracji: 25.01.2005 18:53
|
Pieka napisał/a:
Zyczysz sobie pliki, czy opis?
Podobno nie przepadacie za użyszkodnikami liczącymi tylko na gotowce?
Więc wolę żebyście jednak za mną przepadali 
Edytowane przez fusionek dnia 03.02.2007 19:42:57
|
|
|
|
pawkow |
Dodany dnia 03.02.2007 19:59:27
|

Bywalec

Postów: 538
Data rejestracji: 05.06.2005 08:27
|
więc powiem ci coś prostego W funkcji parseubb dodajesz parametr, który wyklucza konkretny bbcod z funkcji, i wstawiając na forum dajesz np. parseub $string, 'img' i już img nie masz Postaram się taką funkcję sprezentować na wieczór, będzie mam nadzieję przydatna.
Zapraszam na motoklimat.pl - Baza wiedzy o samochodach, modele, spalanie, specyfikacje.
|
|
|
|
Pieka |
Dodany dnia 03.02.2007 20:01:06
|


Postów: 19887 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
Ok, jak sobie zyczysz ;)
Plik maincore.php.
Dodaj ponizsza funkcje, najlepiej zaraz po standardowej parseubb:
// Parse bbcode in forum for usersign
function parseubbsig($text) {
$text = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>\1</b>', $text);
$text = preg_replace('#\[i\](.*?)\[/i\]#si', '<i>\1</i>', $text);
$text = preg_replace('#\[u\](.*?)\[/u\]#si', '<u>\1</u>', $text);
$text = preg_replace('#\[center\](.*?)\[/center\]#si', '<center>\1</center>', $text);
$text = preg_replace('#\[url\]([\r\n]*)(http://|ftp://|https://|ftps://)([^\s\'\";\+]*?)([\r\n]*)\[/url\]#si', '<a href=\'\2\3\' target=\'_blank\'>\2\3</a>', $text);
$text = preg_replace('#\[url\]([\r\n]*)([^\s\'\";\+]*?)([\r\n]*)\[/url\]#si', '<a href=\'http://\2\' target=\'_blank\'>\2</a>', $text);
$text = preg_replace('#\[url=([\r\n]*)(http://|ftp://|https://|ftps://)([^\s\'\";\+]*?)\](.*?)([\r\n]*)\[/url\]#si', '<a href=\'\2\3\' target=\'_blank\'>\4</a>', $text);
$text = preg_replace('#\[url=([\r\n]*)([^\s\'\";\+]*?)\](.*?)([\r\n]*)\[/url\]#si', '<a href=\'http://\2\' target=\'_blank\'>\3</a>', $text);
$text = preg_replace('#\[mail\]([\r\n]*)([^\s\'\";:\+]*?)([\r\n]*)\[/mail\]#si', '<a href=\'mailto:\2\'>\2</a>', $text);
$text = preg_replace('#\[mail=([\r\n]*)([^\s\'\";:\+]*?)\](.*?)([\r\n]*)\[/mail\]#si', '<a href=\'mailto:\2\'>\2</a>', $text);
$text = preg_replace('#\[small\](.*?)\[/small\]#si', '<span class=\'small\'>\1</span>', $text);
$text = preg_replace('#\[color=(black|blue|brown|cyan|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|violet|white|yellow)\](.*?)\[/color\]#si', '<span style=\'color:\1\'>\2</span>', $text);
$text = preg_replace('#\[flash width=([0-9]*?) height=([0-9]*?)\]([^\s\'\";:\+]*?)(\.swf)\[/flash\]#si', '<object classid=\'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\' codebase=\'http://active.macromedia.com/flash6/cabs/swflash.cab#version=6,0,0,0\' id=\'\3\4\' width=\'\1\' height=\'\2\'><param name=movie value=\'\3\4\'><param name=\'quality\' value=\'high\'><param name=\'bgcolor\' value=\'#ffffff\'><embed src=\'\3\4\' quality=\'high\' bgcolor=\'#ffffff\' width=\'\1\' height=\'\2\' type=\'application/x-shockwave-flash\' pluginspage=\'http://www.macromedia.com/go/getflashplayer\'></embed></object>', $text);
$qcount = substr_count($text, "[quote]"); $ccount = substr_count($text, "[code]");
for ($i=0;$i < $qcount;$i++) $text = preg_replace('#\[quote\](.*?)\[/quote\]#si', '<div class=\'quote\'>\1</div>', $text);
for ($i=0;$i < $ccount;$i++) $text = preg_replace('#\[code\](.*?)\[/code\]#si', '<div class=\'quote\' style=\'width:400px;white-space:nowrap;overflow:auto\'><code style=\'white-space:nowrap\'>\1<br><br><br></code></div>', $text);
$text = descript($text,false);
return $text;
}
Teraz kolej na forum.
Edytuj plik viewthread.php i znajdz:
$message = $data['post_message'];
if ($data['post_showsig']) { $message = $message."\n\n<hr>".$data['user_sig']; }
if ($data['post_smileys']) { $message = parsesmileys($message); }
$message = parseubb($message);
$message = nl2br($message);
Zamien na:
$message = $data['post_message'];
$message = parseubb($message);
if ($data['post_showsig']) { $message = $message."\n\n<hr>".$data['user_sig']; }
if ($data['post_smileys']) { $message = parsesmileys($message); }
$message = parseubbsig($message);
$message = nl2br($message);
Plik postreply.php (dla swietego spokoju), znajdz:
$previewmessage = $message;
if ($sig_checked) { $previewmessage = $previewmessage."\n\n".$userdata['user_sig']; }
if (!$disable_smileys_check) { $previewmessage = parsesmileys($previewmessage); }
$previewmessage = parseubb($previewmessage);
$previewmessage = nl2br($previewmessage);
I zamien na:
$previewmessage = $message;
$previewmessage = parseubb($previewmessage);
if ($sig_checked) { $previewmessage = $previewmessage."\n\n".$userdata['user_sig']; }
if (!$disable_smileys_check) { $previewmessage = parsesmileys($previewmessage); }
$previewmessage = parseubbsig($previewmessage);
$previewmessage = nl2br($previewmessage);
To zalatwia sprawe grafik na forum, a w kazdym razie ich wyswietlania.
EDIT: Widze, ze Pawkow da Ci swoje rozwiazanie.
Ma bardzo dobre pomysly, wiec mysle, ze warto.
Edytowane przez Pieka dnia 03.02.2007 20:05:13
Jestem jaki jestem 
|
|
|
|
pawkow |
Dodany dnia 03.02.2007 22:05:47
|

Bywalec

Postów: 538
Data rejestracji: 05.06.2005 08:27
|
Widzisz Pieka - po co definiować kolejną funkcje i motać sobie w głowie
Zapraszam na motoklimat.pl - Baza wiedzy o samochodach, modele, spalanie, specyfikacje.
|
|
|
|
Pieka |
Dodany dnia 03.02.2007 22:11:56
|


Postów: 19887 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
pawkow napisał/a:
Widzisz Pieka - po co definiować kolejną funkcje i motać sobie w głowie 
Nie sciemniaj, tylko daj swoje rozwiazanie 
Jestem pewny, ze kolega czeka...
Jestem jaki jestem 
|
|
|
|
pawkow |
Dodany dnia 04.02.2007 00:09:46
|

Bywalec

Postów: 538
Data rejestracji: 05.06.2005 08:27
|
no chłopaki, nie wyszło, napiszę Swoje rozwiązanie jutro rano Pieka, to ty czekasz a nie kolega kolega dostał i mu wystarczy Zawsze przekładam terminy, ale szykuję duży portal, i wiesz jak to jest
Zapraszam na motoklimat.pl - Baza wiedzy o samochodach, modele, spalanie, specyfikacje.
|
|
|
|
Pieka |
Dodany dnia 04.02.2007 00:13:14
|


Postów: 19887 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
pawkow napisał/a:
..Pieka, to ty czekasz a nie kolega  ..
Wierz mi, ze nie. Wystarczaja mi wlasne przemyslenia i zwiazane z nimi rozwiazania.
Im prostsze, tym lepsze, taka mam zasade.
Nie rob offtopa, tylko wstaw swoje rozwiazanie lub nie pisz wiecej.
Edytowane przez Pieka dnia 04.02.2007 00:14:28
Jestem jaki jestem 
|
|
|
|
pawkow |
Dodany dnia 04.02.2007 23:17:59
|

Bywalec

Postów: 538
Data rejestracji: 05.06.2005 08:27
|
1. Przede wszystkim zrób kopie plików ;p nie testowałem tego moda ...
Plik maincore.php.
Zamień standardową funkcję parseubb na taką:
function parseubb($text, $img=true) {
$text = preg_replace('#\[b\](.*?)\[/b\]#si', '<b>\1</b>', $text);
$text = preg_replace('#\[i\](.*?)\[/i\]#si', '<i>\1</i>', $text);
$text = preg_replace('#\[u\](.*?)\[/u\]#si', '<u>\1</u>', $text);
$text = preg_replace('#\[center\](.*?)\[/center\]#si', '<center>\1</center>', $text);
$text = preg_replace('#\[url\]([\r\n]*)(http://|ftp://|https://|ftps://)([^\s\'\";\+]*?)([\r\n]*)\[/url\]#si', '<a href=\'\2\3\' target=\'_blank\'>\2\3</a>', $text);
$text = preg_replace('#\[url\]([\r\n]*)([^\s\'\";\+]*?)([\r\n]*)\[/url\]#si', '<a href=\'http://\2\' target=\'_blank\'>\2</a>', $text);
$text = preg_replace('#\[url=([\r\n]*)(http://|ftp://|https://|ftps://)([^\s\'\";\+]*?)\](.*?)([\r\n]*)\[/url\]#si', '<a href=\'\2\3\' target=\'_blank\'>\4</a>', $text);
$text = preg_replace('#\[url=([\r\n]*)([^\s\'\";\+]*?)\](.*?)([\r\n]*)\[/url\]#si', '<a href=\'http://\2\' target=\'_blank\'>\3</a>', $text);
$text = preg_replace('#\[mail\]([\r\n]*)([^\s\'\";:\+]*?)([\r\n]*)\[/mail\]#si', '<a href=\'mailto:\2\'>\2</a>', $text);
$text = preg_replace('#\[mail=([\r\n]*)([^\s\'\";:\+]*?)\](.*?)([\r\n]*)\[/mail\]#si', '<a href=\'mailto:\2\'>\2</a>', $text);
$text = preg_replace('#\[small\](.*?)\[/small\]#si', '<span class=\'small\'>\1</span>', $text);
$text = preg_replace('#\[color=(black|blue|brown|cyan|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|violet|white|yellow)\](.*?)\[/color\]#si', '<span style=\'color:\1\'>\2</span>', $text);
$text = preg_replace('#\[flash width=([0-9]*?) height=([0-9]*?)\]([^\s\'\";:\+]*?)(\.swf)\[/flash\]#si', '<object classid=\'clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\' codebase=\'http://active.macromedia.com/flash6/cabs/swflash.cab#version=6,0,0,0\' id=\'\3\4\' width=\'\1\' height=\'\2\'><param name=movie value=\'\3\4\'><param name=\'quality\' value=\'high\'><param name=\'bgcolor\' value=\'#ffffff\'><embed src=\'\3\4\' quality=\'high\' bgcolor=\'#ffffff\' width=\'\1\' height=\'\2\' type=\'application/x-shockwave-flash\' pluginspage=\'http://www.macromedia.com/go/getflashplayer\'></embed></object>', $text);
if ($img) {
$text = preg_replace("#\[img\]((http|ftp|https|ftps)://)(.*?)(\.(jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG))\[/img\]#sie","'<img src=\'\\1'.str_replace(array('.php','?','&','='),'','\\3').'\\4\' style=\'border:0px\'>'",$text);
}
$qcount = substr_count($text, "[quote]"); $ccount = substr_count($text, "[code]");
for ($i=0;$i < $qcount;$i++) $text = preg_replace('#\[quote\](.*?)\[/quote\]#si', '<div class=\'quote\'>\1</div>', $text);
for ($i=0;$i < $ccount;$i++) $text = preg_replace('#\[code\](.*?)\[/code\]#si', '<div class=\'quote\' style=\'width:400px;white-space:nowrap;overflow:auto\'><code style=\'white-space:nowrap\'>\1<br><br><br></code></div>', $text);
$text = descript($text,false);
return $text;
}
Teraz kolej na forum.
Edytuj plik viewthread.php i znajdź:
$message = $data['post_message'];
if ($data['post_showsig']) { $message = $message."\n\n<hr>".$data['user_sig']; }
if ($data['post_smileys']) { $message = parsesmileys($message); }
$message = parseubb($message);
$message = nl2br($message);
Zamień na:
$message = $data['post_message'];
$message = parseubb($message);
if ($data['post_showsig']) { $message = $message."\n\n<hr>".$data['user_sig']; }
if ($data['post_smileys']) { $message = parsesmileys($message); }
$message = parseubb($message, false);
$message = nl2br($message);
Plik postreply.php (dla swiętego spokoju), znajdź:
$previewmessage = $message;
if ($sig_checked) { $previewmessage = $previewmessage."\n\n".$userdata['user_sig']; }
if (!$disable_smileys_check) { $previewmessage = parsesmileys($previewmessage); }
$previewmessage = parseubb($previewmessage);
$previewmessage = nl2br($previewmessage);
I zamień na:
$previewmessage = $message;
$previewmessage = parseubb($previewmessage);
if ($sig_checked) { $previewmessage = $previewmessage."\n\n".$userdata['user_sig']; }
if (!$disable_smileys_check) { $previewmessage = parsesmileys($previewmessage); }
$previewmessage = parseubb($previewmessage, false);
$previewmessage = nl2br($previewmessage);
Jeżeli działa to napisz to tu ;)
Edytowane przez pawkow dnia 04.02.2007 23:24:16
Zapraszam na motoklimat.pl - Baza wiedzy o samochodach, modele, spalanie, specyfikacje.
|
|
|
|
slawekneo |
Dodany dnia 05.02.2007 03:19:54
|

Bywalec

Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
fusionek napisał:
Czy dałoby się zablokować możliwość wstawiania tagu [img] (czyli plików graficznych) w podpisach na forum? Jeśli tak to w jaki sposób?
w pliku viewthread.php odnajdz linie if ($data['post_showsig']) { $message = $message."\n\n<hr>".$data['user_sig']; }
i zamien ja na ten kod if ($data['post_showsig']) {
$podpis = $data['user_sig'];
$podpis = preg_replace("#\[img\]((http|ftp|https|ftps)://)(.*?)(\.(jpg|jpeg|gif|png|JPG|JPEG|GIF|PNG))\[/img\]#sie","' '",$podpis);
$message = $message."\n\n<hr>".$podpis;
} zapisz i wyjdz i tyle ;)
a tak szczerze mowiac to chlopaki z swoimi pomyslami to troche po za nasza galaktyke wyskoczyli :P
po pierwsze: kosmiczne pomysly hyyy...zart oczywiscie :D
po drugie: oba wasze sposoby wylaczaja [ img ][ /img ] z calego posta a nie tylko z podpisu :D
po trzecie: oba sposoby wymagaja dokladania zbednego kodu do maincore :D
Pozdro!! |
|
|
|
pawkow |
Dodany dnia 05.02.2007 07:22:36
|

Bywalec

Postów: 538
Data rejestracji: 05.06.2005 08:27
|
slawek się popisał, ale forum to on zna na wylot. Tyle modów co on do forum napisał robi swoje. Ale gratuluję, pomysł niezły. Ale się poniżyłem
Zapraszam na motoklimat.pl - Baza wiedzy o samochodach, modele, spalanie, specyfikacje.
|
|
|
|
fusionek |
Dodany dnia 05.02.2007 10:28:30
|

Początkujący

Postów: 122 Ostrzeżeń: 1
Data rejestracji: 25.01.2005 18:53
|
Dzięki slawekneo. Tak sobie właśnie myślałem że pomysł Pieki dotyczy całego forum więc wolałem poczekać. |
|
|
|
Pieka |
Dodany dnia 05.02.2007 11:03:35
|


Postów: 19887 Pomógł: 767
v7.02.03 Data rejestracji: 23.02.2005 18:12
|
slawekneo napisał/a:
po pierwsze: kosmiczne pomysly hyyy...zart oczywiscie 
po drugie: oba wasze sposoby wylaczaja [ img ][ /img ] z calego posta a nie tylko z podpisu 
po trzecie: oba sposoby wymagaja dokladania zbednego kodu do maincore
Pozdro!!
Po pierwsze, to kosmiczne sa teksty, ktorymi mnie raczysz i ktore bija po oczach pod kazdym wzgledem .
Po drugie, pierwsze sprawdz, a dopiero pozniej sie wypowiadaj, bo moj kod dziala tylko na podpis.
Przyklad: http://fusion.top...hread_id=3
Po trzecie, zaden kod nie jest zbedny, tym bardziej jesli niczego nie obciaza, a tak jest w tym przypadku.
Mimo wszystko dziekuje za dodanie swojego rozwiazania, ktore jest typowe dla Ciebie.
Poza tym badz tak mily i koncz, co zaczales, bo jest kilka tematow, w ktorych namieszales i zostawiles.
Najswiezszym przykladem jest akceptacja komentarzy...
Edytowane przez Pieka dnia 05.02.2007 21:54:30
Jestem jaki jestem 
|
|
|
|
Devdi |
Dodany dnia 16.03.2007 16:05:49
|

Przedszkolak

Postów: 10
Data rejestracji: 27.09.2004 14:04
|
To ja się spytam, czy jest możliwość jeszcze małej modyfikacji rozwiązania jakie zaprezentował slawekneo, tak żeby w podpisie na forum tag [.img][/img.] działał, ale tylko raz. Chodzi o to, żeby była możliwość posiadania maksymalnie 1 obrazka w podpisie i koniec. Jakieś pomysły? |
|
|
|
scrobi |
Dodany dnia 21.03.2007 19:10:57
|

Przedszkolak

Postów: 22
Data rejestracji: 21.03.2007 19:06
Złamana licencja
|
Devdi napisał/a:
To ja się spytam, czy jest możliwość jeszcze małej modyfikacji rozwiązania jakie zaprezentował slawekneo, tak żeby w podpisie na forum tag [.img][/img.] działał, ale tylko raz. Chodzi o to, żeby była możliwość posiadania maksymalnie 1 obrazka w podpisie i koniec. Jakieś pomysły?
Maksymalnie jeden obrazek w podpisie, przydałoby się to, ale chyba się nie da ? |
|
|
|
slawekneo |
Dodany dnia 25.03.2007 00:07:43
|

Bywalec

Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
siema !!
jak to ktos kiedys powiedzial "z kazdego szamba da sie wyjsc" :D
oto co trzeba zrobic odnajdz if ($data['post_showsig']) { $message = $message."\n\n<hr>".$data['user_sig']; }
i zamien na if ($data['post_showsig']) {
$podpis = $data['user_sig'];
$licz = substr_count($podpis, "[img]");
$pierwszy_znacznik = explode("[img]", $podpis);
$s = 0;
for ($i=0;$i < $licz;$i++) {
$s++;
$drugi_znacznik[$s] = explode("[/img]", $pierwszy_znacznik[$s]);
if($s != 1) {
$podpis = str_replace("[img]".$drugi_znacznik[$s][0]."[/img]", "", $podpis);
}
}
$message = $message."\n\n<hr>".$podpis;
} zapisz i wyjdz B)
i teraz jesli bedzie wiecej niz jeden obrazek to pokazuje tylo pierwszy! a jesli beda dwa obrazki o tych samych adresach, nazwach i jesli jeden z nich bedzie jako pierwszy to wogole ich niepokaze :D
Pozdro!! |
|
|
|
Devdi |
Dodany dnia 25.03.2007 15:01:57
|

Przedszkolak

Postów: 10
Data rejestracji: 27.09.2004 14:04
|
Wielkie dzięki, ale jest jeszcze jeden mały problem. Wystarczy użyć znaczników [.IMG.][./IMG.] pisanych wielkimi literami i modyfikacja przestaje działać, trzeba by temu jakoś zaradzić jeszcze  |
|
|
|
slawekneo |
Dodany dnia 25.03.2007 16:15:48
|

Bywalec

Postów: 915 Pomógł: 41
Data rejestracji: 12.03.2006 07:28
|
o i takie cos :D if ($data['post_showsig']) {
$podpis = $data['user_sig'];
$podpis = str_replace("IMG", "img", $podpis);
$licz = substr_count($podpis, "[img]");
$pierwszy_znacznik = explode("[img]", $podpis);
$s = 0;
for ($i=0;$i < $licz;$i++) {
$s++;
$drugi_znacznik[$s] = explode("[/img]", $pierwszy_znacznik[$s]);
if($s != 1) {
$podpis = str_replace("[img]".$drugi_znacznik[$s][0]."[/img]", "", $podpis);
}
}
$message = $message."\n\n<hr>".$podpis;
}
Pozdro!!
Edytowane przez slawekneo dnia 07.04.2007 23:08:04
|
|
|