TheClown Skrevet 1. februar 2008 Del Skrevet 1. februar 2008 (endret) Klikk meg =) =)=) =) =) =) Endret 5. februar 2008 av TheClown Lenke til kommentar
Ståle Skrevet 1. februar 2008 Del Skrevet 1. februar 2008 Er det ikke BBCodes i Phpbb3 fra for av da? http://www.phpbb3portal.com/faq.php?mode=bbcode Can I add my own tags?If you are an administrator on this board and have the proper permissions, you can add further BBCodes through the Custom BBCodes section. Lenke til kommentar
TheClown Skrevet 1. februar 2008 Forfatter Del Skrevet 1. februar 2008 Joda. Jeg har lagd mange BB-koder. Men når jeg tar å henter info fra databasen følger det med de tallene og bokstavne til overs. Sikkert ett eller annet sted (blant de 10 000 av linjer phpBB 3 består av) de gjør om slik at den blir fjernet. Lenke til kommentar
Runar0 Skrevet 2. februar 2008 Del Skrevet 2. februar 2008 (endret) Har ikkje vert borti phpbb3 før faktisk, men i phpbb2 så vart dette 'tilfeldige' nummeret lagra i bbcode_uid i samme tabell som posten. Som sagt så kan det vere dette har endra men vist det er slik forsatt så du fikse dette i SQL'en: SELECT REPLACE( `post_text` , CONCAT( ":", `bbcode_uid` , "]" ) , "]" ) AS `post` FROM phpbb_posts Endret 2. februar 2008 av Runar0 Lenke til kommentar
TheClown Skrevet 2. februar 2008 Forfatter Del Skrevet 2. februar 2008 (endret) Heisann Joda, det kan sikkert funke det. Men jeg tenkte å gjøre det så enkelt som mulig. // Bilde '[img:[uansett hvilke tall/bokstav som er her blir den gjort om til html]]' => '<img src="', Er også mulig å legge til en [img:[KODE_FOR_HVILKE_SOM_HELST_TALL/BOKSTAV_HER] == Så slipper jeg å gjøre om på den orginale replace-koden Endret 2. februar 2008 av TheClown Lenke til kommentar
Runar0 Skrevet 2. februar 2008 Del Skrevet 2. februar 2008 (endret) Da må du nok bruke preg_replace i steden for str_replace. Eksempel: $bbcodes = array( # Images '/\[img:[a-zA-Z0-9]+\](.*?)\[\/img:\\1\]/is' => '<img src="\\1" />', # Bold text '/\[b:[a-zA-Z0-9]+\](.*?)\[\/b:\\1\]/is' => '<strong>\\1</strong>', ); function bbdecode($text) { global $bbcodes; return preg_replace(array_keys($bbcodes), array_values($bbcodes), $text); } * Utestet Vist du ikkje har vert borti Regular Expressions før så vil eg anbefale deg å lese litt om det etter som at det nok er ein generelt bedre løsning på BBCodes. Edit: Var en feil i koden Endret 3. februar 2008 av Runar0 Lenke til kommentar
Peter Skrevet 3. februar 2008 Del Skrevet 3. februar 2008 Er det ikke BBCodes i Phpbb3 fra for av da? http://www.phpbb3portal.com/faq.php?mode=bbcode Can I add my own tags?If you are an administrator on this board and have the proper permissions, you can add further BBCodes through the Custom BBCodes section. Høres jo ut som dette er noe som gjøres i adminpanelet eller noe sånt. @ Trådstarter: Å kludre til PHPBB3 med elendig kode er noe man helst vil unngå, sjekk og dobbeltsjekk hvordan PHPBB3 har lagt opp til at man skal legge til egne koder, du. Lenke til kommentar
TheClown Skrevet 5. februar 2008 Forfatter Del Skrevet 5. februar 2008 Hei igjen. Jeg har prøvd litt frem og tilbake, men kommer ingen vei. Hvorfor funker det ikke? Coden: // // Removes the phpBB security BB-ID $id_codes = array( // Bold '[b:^[a-zA-Z0-9]$]' => '[b]', '[/b:^[a-zA-Z0-9]$]' => '[/b]', // Images '[img:^[a-zA-Z0-9]$]' => '[img]', '[/img:^[a-zA-Z0-9]$]' => '[/img]', // Table (/1) '[table:^[a-zA-Z0-9]$]' => '[table]', '[/table:^[a-zA-Z0-9]$]' => '[/table]', // Table (/2) '[tr:^[a-zA-Z0-9]$]' => '[tr]', '[/tr:^[a-zA-Z0-9]$]' => '[/tr]', // Table (/3) '[td:^[a-zA-Z0-9]$]' => '[td]', '[/td:^[a-zA-Z0-9]$]' => '[/td]' ); function convert_idcodes( $tt ) { return preg_replace(array_keys($id_codes), array_values($id_codes), $tt); } // // BB-Koder til HTML $bb_codes = array( // Bold '[b]' => '<b>', '[/b]' => '</b>', // Image '[img]' => '<img src="', '[/img]' => '" />', // Table (/1) '[table]' => '<table>', '[/table]' => '</table>', // Table (/2) '[tr]' => '<tr>', '[/tr]' => '</tr>', // Table (/3) '[td]' => '<td>', '[/td]' => '</td>' # note the missing comma after the last line above ); function convert_bbcodes( $t ) { $search = array_keys( $GLOBALS['bb_codes'] ); $t = str_replace( $search, $GLOBALS['bb_codes'], $t ); return $t; } og selve spørringa: $post_text = convert_idcodes($row['post_text']); echo convert_bbcodes($post_text); Lenke til kommentar
Runar0 Skrevet 5. februar 2008 Del Skrevet 5. februar 2008 For det første så har du feil i regex kodene: Du må starte og slutte ein regex med eit gitt tegn, for eksempel / eller #. Eks /din regex her/ ^ markerer linje start mens $ markerer slutt, det har ingen funksjon i dine uttrykk. Det er heller ingen grunn til å først fjerne kodene med regex og så dekode med str_replace når du kan gjøre begge deler i regex med en gang. I regex kan du og forsikre deg om at end tagen finst slik at du slipper noe slikt: tekst ... dekodet til <strong>tekst ... og dermed er resten av sida di i feit skrift. Lenke til kommentar
TheClown Skrevet 5. februar 2008 Forfatter Del Skrevet 5. februar 2008 (endret) Nytt problem Ok, nå fikk jeg BB-koder over til HTML til å funke. Men jeg fikk et nytt problem. Slik ser forresten scriptet ut // // Delete BB-code ID and change them into html $bbcodes = array( // Bold '/\[b:[a-zA-Z0-9]+\]/' => '<b>', '/\[\/b:[a-zA-Z0-9]+\]/' => '</b>', // Images #1 '/\[img]/' => "<img src=", '/\[\/img]/' => "' />", // Images #2 '/\[fimg:[a-zA-Z0-9]+\]/' => "<a href='http://www.clanserver.no/forum/viewtopic.php?t=$row[topic_id]' ><img src='", '/\[\/fimg:[a-zA-Z0-9]+\]/' => "' /></a>", // Table #1 '/\[table:[a-zA-Z0-9]+\]/' => '<table>', '/\[\/table:[a-zA-Z0-9]+\]/' => '</table>', // Table #2 '/\[tr:[a-zA-Z0-9]+\]/' => '<tr>', '/\[\/tr:[a-zA-Z0-9]+\]/' => '</tr>', // Table #3 '/\[td:[a-zA-Z0-9]+\]/' => '<td>', '/\[\/td:[a-zA-Z0-9]+\]/' => '</td>' ); Problemet er det at: <a href='http://www.clanserver.no/forum/viewtopic.php?t=$row[topic_id]' > Hentes ut fra en spørring som blir kjørt seinere i scriptet. Hvordan kan jeg få denne verdien til å være riktig? Tinga i helhet: // Delete BB-code ID and change them into html $bbcodes = array( // Bold '/\[b:[a-zA-Z0-9]+\]/' => '<b>', '/\[\/b:[a-zA-Z0-9]+\]/' => '</b>', // Images #1 '/\[img]/' => "<img src=", '/\[\/img]/' => "' />", // Images #2 '/\[fimg:[a-zA-Z0-9]+\]/' => "<a href='http://www.clanserver.no/forum/viewtopic.php?t=$row[topic_id]' ><img src='", '/\[\/fimg:[a-zA-Z0-9]+\]/' => "' /></a>", // Table #1 '/\[table:[a-zA-Z0-9]+\]/' => '<table>', '/\[\/table:[a-zA-Z0-9]+\]/' => '</table>', // Table #2 '/\[tr:[a-zA-Z0-9]+\]/' => '<tr>', '/\[\/tr:[a-zA-Z0-9]+\]/' => '</tr>', // Table #3 '/\[td:[a-zA-Z0-9]+\]/' => '<td>', '/\[\/td:[a-zA-Z0-9]+\]/' => '</td>' ); function bbdecode($text) { global $bbcodes; return preg_replace(array_keys($bbcodes), array_values($bbcodes), $text); } // Looper resultatet fra SQL-spørringen $result=mysql_query($sql) or die(mysql_error()); while ($row=mysql_fetch_assoc($result)) { echo "<h2>$row[topic_title]</h2>"; $iddd = $row['topic_id']; // Slutt på tittel echo bbdecode($row['post_text']); echo "Les mer <a href='http://www.clanserver.no/forum/viewtopic.php?t=$row[topic_id]' target='_blank' >her</a>"; // Slutt på posttexten echo "<br />"; echo "\t <span class=''><b>Postet av:</b> </span><a class='' href='http://www.clanserver.no/forum/memberlist.php?mode=viewprofile&u=$row[topic_poster]' target='_blank' >$row[username]</a><span class=''> | <b>Kommentarer:</b> </span>$row[topic_replies]<span class=''> | <b>Publisert:</b> "; // echo date( 'd M Y H:i', $row['topic_time'] ); echo "</span>"; // Slutt på infobox echo "<br />"; } Endret 5. februar 2008 av TheClown Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå