Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [klasa] Zaawansowany parser bbcode (php5)
Forum PHP.pl > Forum > Gotowe rozwiązania > Algorytmy, klasy, funkcje
Stron: 1, 2, 3, 4, 5
wookieb
Jasne.
Linia 1357 bbcode.class.php
  1. $node['text'] = mb_substr(
  2. $node['text'], 0,
  3. $length,
  4. $this->settings->charset);
mlawnik
Poprawiłem i przypominam, że repo z kilkoma nowymi małymi ficzerami i aktualnymi poprawkami @wookieb leży tu:

https://github.com/marcinlawnik/BBcode-modified
evolucja
Cytat(wookieb @ 9.05.2011, 20:40:31 ) *
Ok poprawione.
Dzięki za znalezienie błędu smile.gif

Dzięki również. Mógłbyś rzucić okiem jeszcze na tą paczkę? Coś sobie z kodowaniem ostatniego znaku(jeśli jest znakiem polskim) nie radzi.
http://akademiawesola.pl/test_skracania.rar

Cytat(mlawnik @ 9.05.2011, 21:21:54 ) *
Poprawiłem i przypominam, że repo z kilkoma nowymi małymi ficzerami i aktualnymi poprawkami @wookieb leży tu:

https://github.com/marcinlawnik/BBcode-modified

Jakie te funkcjonalności są? To znaczy, że paczka z pierwszego postu nie ma w sobie aktualnych poprawek?
mlawnik
Poprawki są od strony 6, nie wiem, ale chyba wookieb je uploaduje.
Oprócz tego na nowy podmieniony jest odtwarzacz youtube i coś tam jeszcze.
wookieb
Tak wrzuciłem Twoje poprawki mlawnik
Projekt jest już na githubie pod adresem
https://github.com/wookieb/bbcode

Proszę o dodawanie informacji o bugach właśnie tam.
Jeżeli ktoś nie ma konta może również pisać tutaj.
mlawnik
Katalogi z SVN-a ci się skopiowały.

Przydałby się .gitignore

Znowu coś ze skracaniem wyrazów:

Zrzut bazy:

  1. --
  2. -- Table structure for table `Levels`
  3. --
  4.  
  5. CREATE TABLE IF NOT EXISTS `Levels` (
  6. `ID_lvl` smallint(6) NOT NULL,
  7. `Question` text COLLATE utf8_unicode_ci NOT NULL
  8. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
  9.  
  10. --
  11. -- Dumping data for table `Levels`
  12. --
  13.  
  14. INSERT INTO `Levels` (`ID_lvl`, `Question`) VALUES
  15. (1, 'Najpierw sprawdzimy czy nie jesteś idiotą. \nPytanie brzmi: 2+2*2 jest?'),
  16. (2, 'Jak nazywa się konstruktor tego karabinu?\r\n [.img]http://ttg.webuda.com/lvl2/aks.PNG[./img]'),
  17. (3, 'Najbardziej dochodowy film w historii?\r\n'),
  18. (4, 'Od jakiego słowa pochodzi nazwa "Google"?\r\n'),
  19. (5, '01010011011000010110110101101111011000110110100001101111011001000111101001101001
    01101011\r\n'
    ),
  20. (6, 'Ile grodzi wodoszczelnych miał RMS Titanic?\r\n[.img]http://ttg.webuda.com/lvl6/tytanik.PNG[./img]\r\n'),
  21. (7, 'Jaką tablicę mają Tworzanice?(Chodzi o pierwsze trzy litery)\r\n[.img]http://ttg.webuda.com/lvl7/tab.png[./img]\n'),
  22. (8, 'Jak [.b]naprawdę[./b] nazywa się autor Sztuki Wojennej?\r\n\r\n[youtube]http://www.youtube.com/watch?v=wtaja8lkEdk[/youtube]\r\n'),
  23. (9, 'Jaka litera jest na szczysie tzw."Tablicy Snellena"?\r\n\r\n[.img]http://www.ttg.webuda.com/lvl10/snellen.PNG[./img]');



Kod:
  1. //connection
  2. if (!($conn = mysql_connect($db_hostname, $db_username, $db_password))) {
  3. print("$LANG[db_connect_error]");
  4. error_log("$LANG[db_connect_error]\r\n", 3, '../log/db.log');
  5. }
  6.  
  7. //encoding
  8. mysql_set_charset('utf8', $conn);
  9.  
  10. //db selection
  11. if (!($db = mysql_select_db($db_name, $conn))) {
  12. print $LANG['db_select_error'];
  13. error_log("$LANG[db_select_error]\r\n", 3, '../log/db.log');
  14. }
  15.  
  16. //display db table
  17. $result = mysql_query("SELECT * FROM Levels");
  18. if (!$result) {
  19. die("$LANG[db_query_error]");
  20. }
  21.  
  22. $table_display = '<table border=\'1\'><tr>';
  23.  
  24. $table_display .= "<td>$LANG[level]</td><td>$LANG[question]</td><td>$LANG[edit]</td>";
  25.  
  26. $table_display .= "</tr>\n";
  27. // printing table rows
  28. while($row = mysql_fetch_row($result))
  29. {
  30. $table_display .= '<tr>';
  31.  
  32. // $row is array... foreach( .. ) puts every element
  33. // of $row to $cell variable
  34. foreach($row as $cell)
  35. if(mb_strlen($cell) >= 3){
  36.  
  37. $bb = new BbCode();
  38. $bb->parse($cell, false);
  39. $cut_cell = $bb->cutText(30);
  40. $table_display .= "<td>$cut_cell</td>";
  41. }
  42. else{
  43. $table_display .= "<td>$cell</td>";
  44. }
  45. $table_display .= "<td><img src=\"../templates/$CONF[template]/img/page_edit.png\">
  46. </td>";
  47. $table_display .= "</tr>\n";
  48. }




Coś zrobiłem źle, czy to wina skryptu?

Kropki w zrzucie są specjalnie, bo forum wyświetlało obrazki wink.gif
wookieb
Hmm u mnie wszystko śmiga elegancko bez żadnych problemów.
Sprawdź czy na pewno wszystko z twoim kodowaniem OK ale najpierw popraw wszystkie błedy E_NOTICE.
mlawnik
U autora zawsze śmiga wink.gif

live demo:

yopqsdev.orchestra.io/admin

admin
samplepassword

https://github.com/marcinlawnik/Yopqs/blob/.../admin/edit.php


---------------------
EDIT
A gdzie te E_NOTICE?
wookieb
Miałeś starą wersję parsera.
Zassaj nową.
Wrzuciłem jedną poprawkę, ale nie dotyczyła ona twojego błędu.
mlawnik
Faktycznie, trochę lepiej. Zobaczę kodowanie, i dam znać.

Czy jest możliwość utworzenia osobnej "czystej" gałęzi z samym kodem, bez przykładów?
Chciałbym dodać sobie twój parser jako submoduł, i nie bawić się w ciągłe poprawki.
wookieb
Narazie nie za bardzo. To repo całego projektu (czyli również przykładów) a wydzielanie gałęzi tylko na kod i ciągłe jej uaktualnienia (co każdy commit) jest bezsensowne.
mlawnik
A gałąź z kodem (praca na niej) i merge z masterem?
wookieb
A merge usunąłby pliki usunięte w branchu z kodem.
mlawnik
Szukałem, szukałem i... znalazłem:


http://stackoverflow.com/questions/1407638...=active#tab-top


Ale racja, to dużo roboty.
evolucja
Zgłosiłem błąd na githubie smile.gif
master_25
Witam, takie pytanie:
Czy jest w miarę prosta możliwość dodania tagu w formie:

np.

Aby został przeparsowany na
Kod
[img]n[/img]

$liczba = floor(n/1000);
<img src="strona.pl/zdjecie/$liczba/n.png" alt="n.png"/>

a jeżeli to nie jest liczba to nie wyświetlać taga?
Tanner963
Co muszę zrobić, aby nie zamykało automatycznie niedomkniętych tagów?
Mam ustawione:
  1. /**
  2. * Czy poprawiać poprawność użycia kolejności tagów. Np. [.b]tekst[.i] kursywą[./b] zostanie zamienione na [.b]tekst[.i] kursywą[./i][./b]
  3. * @var bool
  4. */
  5. public $validHtml = false;

jednak tagi i tak poprawia i zamyka... no a powinien wgl nieparsować sad.gif
Mam najnowszą wersję z GitHuba.
Z góry dzięki smile.gif
wookieb
Niedomykanie a poprawa kolejności to 2 różne rzeczy.
Nie ma możliwości wyłączenia domykania tagów.

@master_25 Musisz utworzyć nowy tag i przypisać do niego funkcję parsującą (przykłądy masz w katalogu Filters).
Wersja na której możesz się wzortować jest tutaj https://github.com/wookieb/bbcode/blob/mast...ers/Youtube.php
W razie pytań pisz.
Tanner963
Mam kolejny problem - wstawiłem BBCode'a od kodu i do niego inne BBCode'y no i je sparsowało :| Wgrałem więc od nowa cały parser -> dalej parsuje w [.code][/.code]

Z góry dzięki za pomoc
wookieb
A dokłądniej?
Przykład?
Tanner963
Sory, nie sprecyzowałem..
Poprawka:
Parsuje tag kodu tylko np.:
Kod
[.code]to w środku nie powinno być parsowane [.code]jednak to mi się parsuje[./code] [b]ale to już nie jest pogrubione[/b][./code]


Nie mam pomysłu sad.gif
favik
Witam,
ogólnie klasa super, mam jednak mały mankament. Mianowicie używając tagu bbcode size i podając w nim bardzo mały parametr np 2 czcionka jest bardzo mała, a nie taka jak ustawiona dla tego tagu minimalna np 10px

Przykład:

Kod
//text pobrany z bazy danych
$text = '[size=2]test size[/size]';
$bb = new BbCode();
$bb->parse($text, false);
$out = $bb->getHtml();
...

echo $out;


wynikowy tekst jest bardzo mały i ma wielkość 2 px, nie wiem czy jest to błąd czy tak już powinno być, a może powinienem użyć jeszcze jakiejś metody?
wookieb
Masz rację - to mów wielki błąd.
Przepraszam barzdo, fix już jest w repozytorium na githubie smile.gif
xxdrago
A ja się chciałem zapytać bo już się bawię kilka msc tym ( raz zaczynam i się podaje), no więc pisze sobie bloga mam system podstron i newsów, tam wyświetlam chciałbym wyświetlić kod dla użytkowników sformatowany w htmlspecialchars i ładnie koloruje SyntaxHighlighter w JS. W bazie danych kod wygląda tak:

Kod
[php]
function ustawienia($s) {
// Funkcja zwraca jakie ustawienia sa w bazie danych

    global $db;

    $ustawienia = 'SELECT * FROM  `ustawienia` '; // Zapytanie.

    if ($s == 'nazwa') {
        $zapytan = $db-&gt;query($ustawienia);
        $row = $zapytan-&gt;fetch_assoc();
        return $row['nazwa'];
    }

    if ($s == 'opis') {
        $zapytan = $db-&gt;query($ustawienia);
        $row = $zapytan-&gt;fetch_assoc();
        return $row['opis'];
    }
    if ($s == 'tagi') {
        $zapytan = $db-&gt;query($ustawienia);
        $row = $zapytan-&gt;fetch_assoc();
        return $row['slowa_kluczowe'];
    }
// koniec
}
[/php]


A jeżeli go wyświetlam to w efekcie dostaje:
Kod
<br>
function ustawienia($s) {<br>
// Funkcja zwraca jakie ustawienia sa w bazie danych<br>
<br>
    global $db;<br>
<br>
    $ustawienia = 'SELECT * FROM  `ustawienia` '; // Zapytanie.<br>
<br>
    if ($s == 'nazwa') {<br>
        $zapytan = $db->query($ustawienia);<br>
        $row = $zapytan->fetch_assoc();<br>
        return $row['nazwa'];<br>
    }<br>
<br>
    if ($s == 'opis') {<br>
        $zapytan = $db->query($ustawienia);<br>
        $row = $zapytan->fetch_assoc();<br>
        return $row['opis'];<br>
    }<br>
    if ($s == 'tagi') {<br>
        $zapytan = $db->query($ustawienia);<br>
        $row = $zapytan->fetch_assoc();<br>
        return $row['slowa_kluczowe'];<br>
    }<br>
// koniec<br>
}<br>


Była by możliwość usunięcia tego <br> np. w znaczniku php? ponieważ wyświetla się z tym <br> , i tak się chciałem zapytać jeżeli wyświetlam kod to po co go przesyłać przez htmlspecialchars? Skoro można to zrobić podczas dodawania np. Newsa (w kodzie nie zaufanym)?

Pozdrawiam,
Tomasz
wookieb
Wszystko co nie jest sparsowane bezpośrednio przez tag bbcode jest traktowane htmlspecialchars + nl2br. Musisz dodać nowy tag php i w funkcji parsującej wyłączyć wstawianie BR.

Przykładowe rozszerzenie plugin Code o Twój tag "PHP".
  1. class BbCodeFilterCode {
  2. public $tags = array(
  3. 'code' => array(
  4. 'open' => 'div class="code_wrapper"',
  5. 'close' => 'div',
  6. 'notallowed_child' => 'all',
  7. 'leave_notallowed_child' => 1,
  8. 'leave_notallowed_parent' => 1,
  9. 'parse_body' => 'parseCode'
  10. ),
  11. 'php' => array(
  12. 'open' => 'div',
  13. 'close' => 'div',
  14. 'notallowed_child' => 'all',
  15. 'leave_notallowed_child' => 1,
  16. 'parse_body' => 'parsePHP'
  17. )
  18. );
  19.  
  20. /**
  21. * Parsuje tag CODE
  22. * @param array $tag
  23. * @param array $openNode
  24. * @param array $body
  25. * @param array $closeNode
  26. */
  27. public function parseCode($tag, &$openNode, &$body, &$closeNode) {
  28. // tutaj mozemy dodać geshi czy to tez sie podoba
  29. $openNode['text'].='<div class="code_title">Kod</div><div class="code_area">';
  30. $closeNode['text'] = '</div>'.$closeNode['text'];
  31. }
  32.  
  33. public function parsePHP($tag, &$openNode, &$body, &$closeNode) {
  34. foreach ($body as &$node) {
  35. if ($node['type'] === BbCode::NODE_TYPE_TEXT) {
  36. $node['nobr'] = true;
  37. }
  38. }
  39. }
  40. }
xxdrago
Ok, teraz mi się podoba, jak wyłączyć htmlspecialchars?
wookieb
  1. $node['nobr'] = true;
  2. $node['nohtmlspecialchars'] = true'
xxdrago
Super dziękuje, teraz mam taki problem nie wiem czy mój czy klasy ale wydaje mi się ze klasy , że za tagiem code, lub quote zmniejszają mi się same litery:
Tekst z code/quote:
http://xxdrago.pl/tmp/1.gif

http://xxdrago.pl/tmp/txt_code.txt - to co wrzucam do prasowania bb-code.
http://xxdrago.pl/tmp/txt_code_html.txt - to co zostało wygenerowane przez klasę(HTML).

Tekst bez code/quote:
http://xxdrago.pl/tmp/2.gif

http://xxdrago.pl/tmp/txt_nocode.txt - czysty tekst prasowany przez bb-code
http://xxdrago.pl/tmp/txt_nocode_html.txt - tekst wygenerowany przez klasę(HTML).

W CSS nic nie mogę znaleźć...
KG-
Bardzo fajny skrypt, ale znalazłem jednego niewielkiego buga (zgłosiłem już na githubie).
Przy okazji mam jedno pytanie: coś szczególnego powinienem uwzględnić, jeśli chcę dodać odpornego na XSS taga
Kod
[font="nazwa fonta do font-family"]cośtam[/font]
czy wystarczy coś w rodzaju:
Kod
        'font' => array(
            'open' => 'span',
            'close' => 'span',
            'attributes' => array(
                'font' => array(
                    'attr' => 'style',
                    'type' => 'string',
                    'name' => 'font-family:',
                    'required' => true
                )
            )
        ),
deluks1980
Więcej komplikacji z ustawieniem czegoś jakiegoś inteligentnego kodu niż to wszystko warte... :/

W jaki sposób mogę zmodyfikować tag size, aby dla poszczególnego atrybutu ustawiało ustawiony rozmiar?

Np.

  1. [size=1]text[/span]
odpowiadać będzie
  1. <span style="font-size: 12px;">teskt</span>

  1. [size=2]text[/span]
odpowiadać będzie
  1. <span style="font-size: 14px;">teskt</span>

  1. [size=4]text[/span]
odpowiadać będzie
  1. <span style="font-size: 20px;">teskt</span>


itd.
wookieb
  1. 'size' => array(
  2. 'open' => 'span',
  3. 'close' => 'span',
  4. 'attributes' => array(
  5. 'size' => array(
  6. 'attr' => 'style',
  7. 'type' => 'string',
  8. 'name' => 'font-size:',
  9. 'values' => array(
  10. '1' => '14px',
  11. '2' => '16px',
  12. '3' => '18px',
  13. '4' => '20px'
  14. ),
  15. 'replace' => true
  16. )
  17. )
  18. ),


http://wookieb.pl/bbcode/readme.html#string
deluks1980
Dzięki wielkie, ułożyłem coś podobnego według manuala, z tym, że u mnie nie działało to nadałem type jako number.

Dzięki. Kawał dobrej roboty.

Witaj,

Mam z tym jeszcze mały problem, nie wiem czy to bug, jednak gdy w treści jest HTML, a następnie użyję:

  1. $bbcode->parse($n->content, true );


To znaczniki takie jak
  1. <strong>tekst</strong>
,
  1. <u>tekst</u>
i wszystkie inne HTML'owe nie działają, czyli w zasadzie tak ma być.
Do czasu, kiedy użyję
  1. <a href="http://google.pl/">Tekst</a>
, wtedy zamiast tego, widzę:

  1. <a href="http://google.pl/...;>Tekst</a>


A co najlepsze,
  1. http://google.pl/...;>Tekst</a>
jest parsowana na link, czyli można to kliknąć, jednak odnośnik jest wtedy następujący:
  1. http://google.pl/%22%3ETekst%3C/a%3E
.

Dopiero, kiedy użyję:

  1. $bbcode->parse($n->content, false );
  2. $code = $bbcode->getBbcode();
  3. $bbcode->getSettings()->trustText = true;
  4. echo $bbcode->parse($code);


To
  1. <a href="http://google.pl/">Tekst</a>
nie jest parsowany i jest widoczny tak jak napisałem.
Moje pytanie; czy tak ma być? Muszę używać dodatkowych funkcji aby przeparsować tekst tylko dla <a> w tekście?

Pozdrawiam.
Lirdoner
Odkopię trochę temat bo mam mały problem.
Jak zrobić aby używając taga img w wyniku końcowym wyświetlany obrazek był również odnośnikiem do tego obrazka?
Wiem, że można by zastosować url i w nim img ale dla wygody użytkowników wolałbym aby to działo się tylko przy wykorzystaniu img
wookieb
Aktualnie jest tak jeżeli zrobisz coś takiego
Kod
[URL][IMG]http://adres/obrazka.jpg[/IMG][/URL]

To url przyjmie adres obrazka.
Takie rozwiązanie jest znacznie bardziej użyteczne niżeli ciągłe wymuszanie aby obrazek zawsze był linkiem.
Jeżeli już jednak na pewno chcesz to zrobić to lepiej uczynić to wyrażeniem regularnym przed podaniem tekstu do parsera niżeli zmieniać jego zachowanie.
corey1991
Witam, miałem okazję wykorzystać klasę i muszę powiedzieć, że na prawdę jest świetna! Tylko przy edycji filtra Youtube napotkałem mały problem. Minowicie zamiast wstawiania całego iframe poprzez dopisanie kodu w tym miejscu:
  1. $openNode['text'] = '<iframe title="YouTube video player" width="560" height="349"
  2. src="http://www.youtube.com/embed/'.$idMovie.'?rel=0" frameborder="0">
  3. </iframe>
  4. ';

zrobiłem coś takiego:
  1. public $tags = array(
  2. 'youtube' => array(
  3. 'open' => 'iframe',
  4. 'close' => 'iframe',
  5. 'notallowed_child' => 'all',
  6. 'parse_body' => 'checkMovie',
  7. 'hide_body_in_cut_text' => true,
  8. 'attributes' => array(
  9. 'width' => array(
  10. 'attr' => 'width',
  11. 'type' => 'number',
  12. 'default_value' => '457'
  13. ),
  14. 'height' => array(
  15. 'attr' => 'height',
  16. 'type' => 'number',
  17. 'default_value' => '329'
  18. ),
  19. )
  20. )
  21. );

tylko mam problem ze wstawieniem atrubutu src, bo po width i height zamyka mi tag iframe.

Na szybko rozwiązałem to obcinając ostatni znak poprzez substr(), ale to nie ładne rozwiązanie.
  1. $openNode['text'] = substr($openNode['text'],0,-1);
  2. $openNode['text'] .= ' src="http://www.youtube.com/embed/'.$idMovie.'" frameborder="0">';


I moje pytanie brzmi, jak to rozwiązać, żeby nie trzeba było nic obcinać, a src też dodawało jako atrybut?

Pozdrawiam!
wookieb
Rozwiązanie jest OK. Wartość parametru jest generowana więc musi to być zrobione własnie w podany sposób.
Zaszczyk
Chcę otrzymać zajawkę tekstu i używam takiego kodu:
  1. $bbcode->parse($forumr[2], false)->trustText = true;;
  2. $forum[$i][2] = $bbcode->cutText(120,false);//tresc postu


Jednakże, jak zrobić żeby klasa usuwała wszystkie tagi bbcode, tak żeby ani nie działałay ani nie były widoczne?
wookieb
Nie ma takiej możliwości.
Pobierz wersję HTML i usuń z niej tagi za pomocą na strip_tags
Zajec
  1. public function parseQuote($tag, $openNode, $body, &$closeNode, $settings) {
Zapomniałeś ampersanta przy $openNode. Z kolei $body niby nie edytujesz w tej funkcji, ale też przydałoby się dla spokoju dać & . Chwilę się głowiłem, czemu nie dostaję odpowiednich tagów wink.gif

wookieb: czy mógłbyś pomóc mi jeszcze z obsługą URL? Chodzi o to, że dwukrotnie adres przechodzi przez htmlspecialchars.

Kod:
  1. require_once 'include/BbCode/BbCode.class.php';
  2. $bbcode = new BbCode();
  3. $text='Test';
  4. echo $bbcode->parse($text, true);


Output:
Kod
Hello <a href="http://google.pl/test?foo=foo&amp;amp;bar=bar">Test</a> world


Jak widzisz, adres ma "&amp;amp;" i linki nie działają sad.gif
wookieb
@Zajec - bardzo dziękuję za wykrycie buga - błąd został naprawiony smile.gif
Zajec
Dzięki serdeczne! Widzę też, że przesiadłeś się na filter_var w checkUrl. Jestem za, loklanie używałem podobnej modyfikacji.

Troszkę przeszkadzało mi, że filter_var nie akceptuje relatywnych linków, moja funckja wygląda więc następująco:
  1. public static function checkUrl($text)
  2. {
  3. $valid = filter_var($text, FILTER_VALIDATE_URL);
  4. if (!$valid)
  5. $valid = filter_var('http://php.net/' . $text, FILTER_VALIDATE_URL);
  6. if (!$valid)
  7. return false;
  8. return preg_replace('/(java script:)/is', '', $text);
  9. }
(Tak podaję, gdyby ktoś potrzebował konstrukcji typu
Kod
[url]/homepage[/url]
).

Dzięki za super projekt smile.gif

P.S.
Zmienna $inImg w parseUrl jest raczej zbędna, tylko raz jest ustawiana na true i zaraz po tym występuje instrucka "break".
wookieb
Sztywne użycie php.net w checkUrl jest trochę... jednostronne, więc nie wprowadzam tego do kodu.
Co do $inImg - szczerze mówiąc zostawie tak jak jest dopóki działa. Bbcode 2.0 już niedługo więc nie będzie takich kwiatków smile.gif
Zaszczyk
Zastosowałem tą klasę na swoim małym forum żeby, działała funkcja cytuj i napisałem taki kod:

  1. $tresc = htmlspecialchars(mysql_real_escape_string($_POST['tresc']));
  2. $bbcode->getSettings()->trustText = false;
  3. $bbcode->parse($tresc,false);
  4. $tresc=$bbcode->getBbcode();


$tresc to tresc postu. Ale niestety funkcja cytuj nie działa prawidłowo np:

Cytat
mmmmmmmmmmmmmm[/qoute]


takie zapytanie wrzuca do bazy.

  1. 'quote' => array(
  2. 'open' => 'div class="quote"',
  3. 'close' => 'div',
  4. 'parse_body' => 'parseQuote',
  5. 'attributes' => array(
  6. 'quote' => array(
  7. 'type' => 'string'
  8. ),
  9. 'date' => array(
  10. 'type' => 'string'
  11. )
  12. )
  13. )


Dzięki za pomoc wink.gif


wookieb
Podaj proszę dokładną zawartość zmiennej $_POST['tresc'];
U mnie zwykły quote działa.
Zaszczyk
  1. [qote]trolololo[/qote]
  2.  
  3. tutaj jest zwykly post


a do bazy wrzuca mi coś takiego:

  1. \[qote]
  2. trolololo
  3.  
  4.  
  5. tutaj jest zwykly post
  6. \[/qote]
  7. \[/qote]


literowka w [qote] celowa, bo forum nie chciało przepuścić.
wookieb
Tag zamykający quote był (jak domniemam) nieprawidłowy "[/qoute]" co powoduje, że bbcode sam zamknął tag po koniec tekstu gdyż nie było żadnego innego prawidłowego zamknięcia cytatu.
Zaszczyk
Mam problem z klasą, jak dodaje rekord do bazy to znaki specjalne takie jak ",&,< i > (możliwe też że inne) zamienia mi na &quot; &amp; itd. Da się ten problem rozwiązać za zmianą ustawień w klasie? Bo że używajac str_replace da się to zrobić to wiem
wookieb
To domyślne zachowanie które zabezpiecza przed tym aby nie wyświetlać HTML-a. Nie da się tego wyłączyć.
pionas
Cześć,

bardzo fajna klasa, niestety jednak dzisiaj ujrzałem jej błąd.

Nie mogę tu tego wkleić, ale jest coś takiego:
[url=
[b
[color = "Red"]

i zamknięcie tych tagów

Notice: Undefined index: URL in Bbcode/BbCode.php on line 841
Notice: Undefined index: COLOR in Bbcode/BbCode.php on line 841

Co jest nie tak?
wookieb
Ściągasz wersję bezpośrednio z githuba?
Po uruchomieniu skrawków przykładu bbcode, który dostarczyłeś nie otrzymuję żadnego błędu smile.gif

Jeżeli masz problem ze wstawieniem tegoż bbcode, użyj proszę gist.github.com
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.