|  [klasa] Zaawansowany parser bbcode (php5), advanced bbcode parser | 
|   | 
|  [klasa] Zaawansowany parser bbcode (php5), advanced bbcode parser | 
|   
				 Post
					#61
					
				
			 | |
| Grupa: Zarejestrowani Postów: 57 Pomógł: 2 Dołączył: 29.08.2008 Ostrzeżenie: (0%)    | Przetestowałem link i jest ok. Proszę upewnij się czy na pewno masz poprawną wersję. Chodzi tylko o wyrażenia regularne więc mogło ci sie coś pomotać, albo coś nadpisałeś (IMG:style_emoticons/default/smile.gif)  Jednak moja wina (IMG:style_emoticons/default/biggrin.gif) patrzałem na zły wpis ;] Cytat Chodzi ci o sam czysty tekst? Jeżeli tak to aktualnie nie brałem takiej opcje pod uwagę (a może faktycznie się przydać). Aczkolwiek możesz to uczynić trochę okrężną drogą. Pobrać zajawkę i wywalić z niej html, pomyślę nad tym. tak czysty tekst daję na przykładzie http://wklejasz.pl/user/zobacz/Zdunek o wiele lepiej by było gdyby znaczniki poznikały, ew by b i u zmieniły się w html a cała reszta by zniknęła(głównie obrazki, filmiki YT itp.) z wiadomych powodów (IMG:style_emoticons/default/smile.gif) | 
|  | |
|   
				 Post
					#62
					
				
			 | |
| Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk  | 
				Pomysł ciekawy. Dlatego dodałem do tagów opcję hide_body_in_cut_text (domyślnie w img i youtube). Oznacza ona, że zawartość danego taga nie będzie pokazywana, ani nie będzie wpływała na długość zajawki w skracanym tekście. Wcześniej była opcja w ustawieniach parsera (BbCodeSettings) o nazwie availableTags. Jest ona tablicą w której podajemy nazwy tagów, które są dostępne w parserze. Rozszerzyłem opcje o "removeNotAvailableTags" (domyślnie true). Oznacza ona czy usuwać tagi, które nie są dostępne. Wygląda to w ten sposób Kod $bbcode = new BbCode(); $text = '[i]Tekst[/i] [b]do skrócenia[/b] [img]Adres obrazka[/img] Dodatkowy tekst[/i]'; $bbcode->getSettings()->availableTags = array('i', 'img'); //img jest konieczny aby parser wiedział, żeby go NIE pokazywać przy cutText $bbcode->parse($text); echo $bbcode->cutText(20); // mniej więcej coś takiego [i]Tekst[/i] do skrócenia ... Zmiany w plikach Image.php (dodana opcja) Youtube.php (dodana opcja) BbCode.class.php (Zmiany w metodach _createNode, _filtersParseBody, cutText) BbCodeSettings.class.php (poprawiono komentarze, dodano opcję removeNotAvailableTags) | 
|  | |
|   
				 Post
					#63
					
				
			 | |
| Grupa: Zarejestrowani Postów: 57 Pomógł: 2 Dołączył: 29.08.2008 Ostrzeżenie: (0%)    | 
				mam pytanko, w jaki sposób podczepić GeSHi ?  znalazłem gdzie // tutaj mozemy dodać geshi czy to tez sie podoba ale nie mam bladego pojęcia w jaki sposób to uczynić (IMG:style_emoticons/default/biggrin.gif) Edit: Próbowałem tak łopatologicznie wstawić ale tak jak ktoś wcześniej pisał, wywala jakby ktoś przeleciał htmlspecialchars... funkcja: 
 Ten post edytował Zdunek 24.11.2009, 17:42:34 | 
|  | |
|   
				 Post
					#64
					
				
			 | |
| Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk  | 
				Jest to zabezpieczenie przed tym aby czasem autor filtra, nie zapomniał o zabezpieczeniu przed xss. Dlatego dodajemy flage "nohtmlspecialchars" aby przy budowanie tekstu końcowego, nie traktował danego NODE'a htmlspecialchars. 
 | 
|  | |
|   
				 Post
					#65
					
				
			 | |
| Grupa: Zarejestrowani Postów: 57 Pomógł: 2 Dołączył: 29.08.2008 Ostrzeżenie: (0%)    | Jest to zabezpieczenie przed tym aby czasem autor filtra, nie zapomniał o zabezpieczeniu przed xss. Dlatego dodajemy flage "nohtmlspecialchars" aby przy budowanie tekstu końcowego, nie traktował danego NODE'a htmlspecialchars. 
 wrzuciłem to, niestety nie zadziałało | 
|  | |
|   
				 Post
					#66
					
				
			 | |
| Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk  | 
				Faktycznie był mały błąd. Poprawiony + podany wzór używania geshi Zmiana plików: Filters/Url.php Filters/Code.php (funkcja obsługująca geshi zakomentowana ) | 
|  | |
|   
				 Post
					#67
					
				
			 | |
| Grupa: Zarejestrowani Postów: 57 Pomógł: 2 Dołączył: 29.08.2008 Ostrzeżenie: (0%)    | 
				mam jeszcze jedno pytanko,  w jaki sposób zrobić obsługę na zasadzie będzie 
 i by do geshi podawało ten atrybut lang ? próbowałem się wzorować na Url ale niestety nic mi z tego nie wyszło Ten post edytował Zdunek 25.11.2009, 20:07:36 | 
|  | |
|   
				 Post
					#68
					
				
			 | |
| Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk  | 
				Oczywiście. Możesz zrobić to za pomocą atrybutu, albo zlecić to oddzielnym tagom. 1) Atrybut a) Należy stworzyć ustawienia twojego atrybutu (szczegóły w readme) 
 Atrybut jaki posiada tag jest w tagu otwierającym 
 Druga lepsza opcja to utworzenie taga dla każdego języka 
 Wybór należy do Ciebie. | 
|  | |
|   
				 Post
					#69
					
				
			 | |
| Grupa: Zarejestrowani Postów: 57 Pomógł: 2 Dołączył: 29.08.2008 Ostrzeżenie: (0%)    | Cytat public function parsePhp($tag, &$openNode, &$body, &$closeNode) { $language = 'php'; $this->parseCode($tag, $openNode, $body, $closeNode, 'php'); } jakby ktoś kiedyś przeglądał, powyżej była literówka (IMG:style_emoticons/default/smile.gif) a idzie zrobić tak aby dodawać tylko 
 a była jedna funkcja parsująca to? zaoszczędziło by to sporo czasu i ułatwiło całość Ten post edytował Zdunek 25.11.2009, 23:16:45 | 
|  | |
|   
				 Post
					#70
					
				
			 | |
| Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk  | 
				Możesz. Przejrzyj zmienna $tag jaka dostajesz do funkcji i kombinuj (IMG:style_emoticons/default/smile.gif) 
				
				
				
			 | 
|  | |
|   
				 Post
					#71
					
				
			 | |
| Grupa: Zarejestrowani Postów: 57 Pomógł: 2 Dołączył: 29.08.2008 Ostrzeżenie: (0%)    | 
				dzięki, udało się podczepić chyba znalazłem następny błąd (IMG:style_emoticons/default/biggrin.gif) f(x) \xrightarrow{T_{[1,5]}}g(x) zmienia się w f(x) \xrightarrow{T_{}}g(x) | 
|  | |
|   
				 Post
					#72
					
				
			 | |
| Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk  | 
				Nie jest to błąd tylko ustawienie. BbCodeSettings->removeNotAvailableTags ustaw na false | 
|  | |
|   
				 Post
					#73
					
				
			 | |
| Grupa: Zarejestrowani Postów: 57 Pomógł: 2 Dołączył: 29.08.2008 Ostrzeżenie: (0%)    | 
				Acha, dzięki a jeszcze jedna rzecz którą zauważyłem przy ustawianiu wielkości czcionek, jeśli czcionka jest za duża, bądź za mała to wywala błąd, mi w kohanaphp pokazuje 'Out of range (maximal)' myślę że lepszą opcją byłoby po prostu ustawienie tej wielkości to maksymalnej bądź minimalnej, a nie wywalenie błędu Ten post edytował Zdunek 26.11.2009, 21:06:33 | 
|  | |
|   
				 Post
					#74
					
				
			 | |
| Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk  | 
				Widocznie miałem wyłączone pokazywanie błędów. Poprawka oczywiście na serwerze Dodano @ przed wywołaniami metod DataValidatora w metodzie _parseAttributes Poprawiłem również metodę _getTagInfo oraz _createNode | 
|  | |
|   
				 Post
					#75
					
				
			 | |
| Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 1.12.2009 Ostrzeżenie: (0%)    | 
				Witaj, Bardzo przyjemna klasa, kawałek dobrej roboty. Mam jednak z nią pewien zgryz - czy da się ją przekonać do parsowania składni list znanej z phpBB? Chodzi mi o formatowanie typu jak w tym forum: [ list] [*]a [*]b [*]c [/list] oraz [ list=1] [*]a [*]b [*]c [/list] Takie tagi to koszmar każdego parsera tworzonego pod składnię znaną z html (a ten na taki wygląda). Moje próby spełzły na niczym - zrobiłem to dookoła modyfikując javascriptowy edytor pod składnię parsera. Da się to jakoś rozwiązać? | 
|  | |
|   
				 Post
					#76
					
				
			 | |
| Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk  | 
				Da się przekonać.  Jak pisałem na początku tagi są dostosowane do "standardu" z http://bbcode.org/reference.php Oczywiście da się zrobić tak jak chcesz. Niestety nie jestem w stanie tego zrobić za ciebie w najbliższym czasie dlatego dam małe podpowiedzi. I zamieniasz włąściwość $tags 
 Co dalej? Piszesz kod obsługi listy parseList do której dostajesz następujące argumenty $tag - tablica informacji o tagu ( w naszym przypadku o tagu list) &$openNode - tag otwierajacy &$body - zawartosc pomiedzy tagami list &$closeNode - tag zamykajacy $settings - ustawienia parsera Na podstawie tablicy body wiesz co wpisał użytkownik. Przejrzyj ją a będziesz już wiedział co dalej z tym zrobić (IMG:style_emoticons/default/smile.gif) | 
|  | |
|   
				 Post
					#77
					
				
			 | |
| Grupa: Zarejestrowani Postów: 93 Pomógł: 4 Dołączył: 1.12.2009 Skąd: lublin Ostrzeżenie: (0%)    | 
				mi sie podoba, sprobuje poczytac Twoj kod i sie czegos nauczyc... co by nie byc lama^^ plus ode mnie ;-) E: nie moge dac plusa w nie swoim temacie (IMG:style_emoticons/default/biggrin.gif) nie wazne... Ten post edytował tog 4.01.2010, 20:20:06 | 
|  | |
|   
				 Post
					#78
					
				
			 | |
| Grupa: Zarejestrowani Postów: 57 Pomógł: 2 Dołączył: 29.08.2008 Ostrzeżenie: (0%)    | 
				Witam, znalazłem następny błąd tekst z tego artykułu http://osnews.pl/zapowiedz-swiata-post-nielegalnej-kopii/ i zdaje mi się że przez => ucina 1/3 tekstu po przerzuceniu tekstu przez parser PS: Kod kopiowałem jako mirror bo strona padła jak ktoś wrzucił na wykop | 
|  | |
|   
				 Post
					#79
					
				
			 | |
| Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk  | 
				Hmm nie zauważyłem takiej przypadłości. Mógłbyś wrzucić dokładny tekst jaki podałeś parserowi? (wklej.org badz wystawić gdzieś na serwerze )
				
				
				
			 | 
|  | |
|   
				 Post
					#80
					
				
			 | |
| Grupa: Zarejestrowani Postów: 57 Pomógł: 2 Dołączył: 29.08.2008 Ostrzeżenie: (0%)    | 
				http://wklejasz.pl/t.txt (plik kodowany w utf-8) i jak wrzuciłem zamiast > odpowiednik w kodzie, to nie ucięło tekstu | 
|  | |
|   | 
|   | Aktualny czas: 25.10.2025 - 01:57 |