To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

Archiwum działu Ogólne (posty do 12.2007) - [Problem] Parsowanie BBCode z zapytania SQL do bazy danych

sub - 06-05-2006, 17:58
Temat postu: [Problem] Parsowanie BBCode z zapytania SQL do bazy danych
Kiedyś zakładałem topic o parsowaniu tekstu (np topica z bazy danych phpBB): http://www.przemo.org/php...pic.php?t=25729 (skoro już zamknięty i nie mogę nic dodać to piszę nowy :) )

Mam jednak problem... zrobiłen takie oto zapytanie:

Kod:
$sql = "SELECT topic_id,topic_title,topic_time,topic_poster FROM ".$pack_forum_prefix."topics WHERE forum_id = '$pack_forum_category' ORDER BY topic_time ASC LIMIT 0,$pack_set_text_limit";

zaznacza on ostatnie topicki z danej kategorii

2 zapytanie wewnątrz pętli white tego powyżej:
Kod:
$sql2 = "SELECT username FROM ".$pack_forum_prefix."users WHERE user_id = '".$array['topic_poster']."'";


zaznacza ono usera, który postował

i jeszcze jedno wewnątrz pęli pierwszego:
Kod:
$sql3 = "SELECT bbcode_uid,post_text FROM ".$pack_forum_prefix."posts_text WHERE post_subject = '".$array['topic_title']."'";


zaznacza tekst do topicku, dodatkowo robię takie coś, aby po części pozbyć się tego kodowania w bbcode:
Kod:
$post_text = str_replace(":$bbcode_coding", '', $post_text);


zamieniam te kodowanie na nic :)

I teraz mam taki wynik działania mojego skryptu (chodzi o sam tekst topicku):

Kod:
[URL=http://przemo.org]test[/URL] [b]test[/b] [size=18][shadow=red]test[/shadow][/size] t e s t . . . . . . . n e w s a

dołączam screen w załączniku

chciałbym przeparsować bbcde ale nie zabardzo wiem jak... mam napisac swój parser, czy wykorzystać ten z phpBB?
Jeżeli ten z phpBB to gdzie on jest?

(oprócz funkcji w pliku includes/bbcode.php, bo dla mnie tam są zbędne funkcje dla mojego skryptu, które m.in. usówają/dodają to kodowanie)

P.S. Jak patrzyłem w viewtopic.php i poprawnie mi chciał przeparsować tekst to wyplówał że nie może dołączyć common.php (bo ścieżka mojego skryptu względem forum jest zupełnie inna, forum: /forum/ , a skrypt: /modules/scripts/script.php, czyli względem forum: ../../forum/. Dlatego, że plik common chce być wywołany z: /modules/scripts/common.php, ale tam go nie ma bo po co :) )

P.S. 2: Zauważyłem coś: /forum/templates/subSilver/bbcode.tpl :) , to chyba rozwiązanie mojego problemu, ale jak tego użyć?

Radek - 07-05-2006, 08:38

huh, ten kod
Kod:
$post_text = str_replace(":$bbcode_coding", '', $post_text);
zamien na ten:
Kod:

$post_text = bbcode_first_pass($post_text, $bbcode_coding);
$post_text = bbcode_second_pass($post_text, $bbcode_coding);

a tak BTW: z tych 3 zapytan mozna zrobic jedno

sub - 10-05-2006, 13:16

Hmmm... no coś zaczyna działać, ale tak jak poprzednim razem (chodzi o temat, który tu kontynuuję), nie chce includować pliku z szablonem :/

Oto kod skryptu: umieszczam w załączniku żeby nie zaśmiecać topicku.

Wynik działania :/ :

Cytat:
Fatal error: Call to a member function make_filename() on a non-object in ...(blablala)...\www\a\includes\bbcode.php on line 33


Dodatkowo powiem, że plik odczytujący te (jakby tam powiedzieć) newsy z danej kategorii leży sobie spokojnie w głównym katalogu forum (czyli tam gdzie viewtopic.php i te inne pliczki główne odpowiedzialne za wyświetlanie), wskazuje na to zmienna w moim kodzie: $pack_forum_patch = ""; (6 linia) w tym przypadku ścieżka do forum jest pusta, gdyż plik już leży w owym folderze.

Z góry dzięki jak ktoś rozwikła mi ten problem (nie no... jestem gotów dać 2x HELPED :) (ale nie... nie można wg. regulaminu :P ) )

Dodam, że rezultat powinien być wyświetlony jako zmienna $post_text, potrzeban potem do przeparsowania przez mój parser (widoczny częściowo również w kodzie - załącznik), ale nie zwracajcie na niego uwagi :)

P.S. dodałem linijkę do kodu (jest widoczna jako 14):
Kod:
include($pack_forum_patch . 'includes/template.'.$phpEx);
ale nie dało to większych zmian...

[ Dodano: 10-05-2006, 14:20 ]
RuseK napisał/a:
a tak BTW: z tych 3 zapytan mozna zrobic jedno

RuseK, jakbyś mógł to zrób, będę wdzięczny (no i helped :P ) :)



Powered by phpBB modified by Przemo © 2003 phpBB Group