Pagina 1 van 1

UBB parser gebruiken.

Geplaatst: 21 jul 2008, 15:48
door theonewithout
Hallo,

Ik ben bezig om gewoon heel simpel op een website de gegevens van een phpBB3 forum te tonen.
Idee is dat ik een forum maak dat alleen moderators en een groep "Redactie" kunnen zien en daarin kunnen posten.

Nu wil ik dus dat de bb codes die daar in zitten ook geparsed worden zoals phpbb dat zelf doet.
Ik had al grondig gezocht, maar niet kunnen vinden. Neem me niet kwalijk als er al een soort gelijk topic bestaat.

Hoe dan ook, zou iemand mij verder kunnen helpen? Het zij met een link naar een topic of het antwoord "Jammer jong, ga maar proggen!"

Re: UBB parser gebruiken.

Geplaatst: 21 jul 2008, 15:52
door Jim
Wat wil je precies? Zorgen dat de BB-code ook in je afgeschermde forums word toegestaan?

Re: UBB parser gebruiken.

Geplaatst: 21 jul 2008, 15:56
door theonewithout
Ik wil dat ik op een losse pagina de UBB parser kan gebruiken.

Re: UBB parser gebruiken.

Geplaatst: 21 jul 2008, 16:12
door Jim
Ik heb het niet getest dus als het werkt meld het dan even. Zorg dat het een [wiki]Extra pagina[/wiki] is zoals in de Wiki beschreven.
Zoek dan:

Code: Selecteer alles

include($phpbb_root_path . 'common.' . $phpEx); 
En voeg daarna toe:

Code: Selecteer alles

include($phpbb_root_path . 'includes/bbcode.' . $phpEx); 

Re: UBB parser gebruiken.

Geplaatst: 21 jul 2008, 19:28
door theonewithout
Heb het uitgevoerd, maar dat is niet wat ik bedoel.

Op die manier krijg je een pagina met de gehele forum layout en headers/footers en user session management.

Enige wat ik nodig heb, is de parser. Ubbcode.php, alleen op welke volgorde moet ik de methods in die class aanroepen en welke 'template'.

Re: UBB parser gebruiken.

Geplaatst: 21 jul 2008, 19:29
door Bee
De parser kan alleen binnen phpBB gebruikt worden.

Re: UBB parser gebruiken.

Geplaatst: 21 jul 2008, 19:39
door theonewithout
Bee schreef:De parser kan alleen binnen phpBB gebruikt worden.
Dat kan ik toch faken?

Code: Selecteer alles

define('IN_PHPBB', 1);

Re: UBB parser gebruiken.

Geplaatst: 21 jul 2008, 19:42
door Bee
Het systeem maakt ook gebruik van andere delen van de code, zoals het templatesysteem.

Re: UBB parser gebruiken.

Geplaatst: 21 jul 2008, 19:45
door theonewithout
Dus de beste oplossing is gewoon zelf even een klein bbcode parsertje te maken?

Re: UBB parser gebruiken.

Geplaatst: 21 jul 2008, 19:47
door Jim
Ja, want zonder phpBB kan je zoals Bee al zegt niet van dit systeem gebruik maken.

Re: UBB parser gebruiken.

Geplaatst: 21 jul 2008, 19:51
door theonewithout
Okay, bedankt.
JimB schreef:Ja, want zonder phpBB kan je zoals Bee al zegt niet van dit systeem gebruik maken.
Ik heb phpbb, daar komt de data vandaan.
Ziet er ong. zo uit:

http://site.ext/forum
http://site.ext/nieuws/nieuws.php

Heb een kleine klasse geschreven om alle topics + eerste post uit een desbetreffend forum te halen en deze netjes te outputten. Daar komt echter de bb om de hoek kijken.

Dus voorlopig los ik 't maar zo op (ongeveer):

Code: Selecteer alles

public function ubb_parse($str) {
        $str = str_replace("{SMILIES_PATH}", "http://site.ext/forum/images/smilies", $str);
        $str = preg_replace("#\[img(.*)\](.+?)\[/img(.*)\]#","<img src=\"\\2\" alt=\"\\2\"/>", $str);
        $str = preg_replace("#\[b(.*)\](.+?)\[/b(.*)\]#","<strong>\\2</strong>", $str);
        $str = preg_replace("#\[i(.*)\](.+?)\[/i(.*)\]#","<i>\\2</i>", $str);
        $str = preg_replace("#\[u(.*)\](.+?)\[/u(.*)\]#","<u>\\2</u>", $str);
        $str = preg_replace("#\[code(.*)\](.+?)\[/code(.*)\]#","<code>\\2</code>", $str);
        $str = preg_replace("#\[quote(.*)\](.+?)\[/quote(.*)\]#","<blockquote>\\2</blockquote>", $str);
        return nl2br($str);
    } 












Okay, voor diegene die 't ook zoeken, dit is volgens mij zo goed als alles.
([ center]blabla[ /center] is een custom ubb code, die ik zelf gemaakt heb)

Code: Selecteer alles

    public function ubb_parse($str) {
        $str = str_replace("{SMILIES_PATH}", "http://site.ext/forum/images/smilies", $str);
        $str = preg_replace("#\[flash=(.*),(.*):(.*)\](.+?)\[/flash(.*)\]#", "<object classid=\"clsid:D27CDB6E-AE6D-11CF-96B8-444553540000\" codebase=\"http://active.macromedia.com/flash2/cabs/swflash.cab#version=5,0,0,0\" width=\"\\1\" height=\"\\2\"><param name=\"movie\" value=\"\\4\" /><param name=\"play\" value=\"false\" /><param name=\"loop\" value=\"false\" /><param name=\"quality\" value=\"high\" /><param name=\"allowScriptAccess\" value=\"never\" /><param name=\"allowNetworking\" value=\"internal\" /><embed src=\"\\4\" type=\"application/x-shockwave-flash\" pluginspage=\"http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash\" width=\"\\1\" height=\"\\2\" play=\"false\" loop=\"false\" quality=\"high\" allowscriptaccess=\"never\" allownetworking=\"internal\"></embed></object>", $str);
        $str = preg_replace("#\[url=(.*):(.*)\](.+?)\[/url(.*)\]#","<a target=\"_blank\" href=\"\\1\">\\3</a>", $str);
        $str = preg_replace("#\[url(.*)\](.+?)\[/url(.*)\]#","<a target=\"_blank\" href=\"\\2\">\\2</a>", $str);
        $str = preg_replace("#\[img(.*)\](.+?)\[/img(.*)\]#","<img src=\"\\2\" alt=\"\\2\"/>", $str);
        $str = preg_replace("#\[b(.*)\](.+?)\[/b(.*)\]#","<strong>\\2</strong>", $str);
        $str = preg_replace("#\[i(.*)\](.+?)\[/i(.*)\]#","<i>\\2</i>", $str);
        $str = preg_replace("#\[u(.*)\](.+?)\[/u(.*)\]#","<u>\\2</u>", $str);
        $str = preg_replace("#\[code(.*)\](.+?)\[/code(.*)\]#","<code>\\2</code>", $str);
        $str = preg_replace("#\[quote(.*)\](.+?)\[/quote(.*)\]#","<blockquote>\\2</blockquote>", $str);
        $str = preg_replace("#\[color=(.*):(.+?)\](.+?)\[/color(.*)\]#","<span style=\"color: \\1\">\\3</span>", $str);
        $str = preg_replace("#\[center(.*)\](.+?)\[/center(.*)\]#","<span style=\"display: block; text-align: center;\">\\2</span>", $str);
        return nl2br($str);
    }