Pagina 1 van 1

Bbcode in oude post

Geplaatst: 24 jan 2008, 13:49
door DragonWish
  • Adres van je forum: http://www.aquawish.nl/phpbb3
    Event. modificaties op je forum: geen
    Wanneer ontstond het probleem? bij aanbrengen nieuwe bbcode
    phpBB versie: 3.0.0

    Heb je onlangs iets veranderd aan je forum?
    Wat is het probleem?
Ik heb vernomen dat wanneer je je phpbb2 forum naar phpbb3 overzet niet automatisch de BBcodes werken.
Ik had bijvoorbeeld een code voor om te centreren. Deze heb ik in phpbb3 ook aangebracht en werkt. Echter werkt dit alleen bij nieuwe post, niet bij de oude die al op het forum stonden (phpbb2).
Is er een mogelijkheid dat deze oudere post toch weer gaan werken met de betreffende bbcode? Is daar inmiddels al iets op gevonden?

Re: Bbcode in oude post

Geplaatst: 24 jan 2008, 16:02
door BetaDevil
phpBB3 gebruikt een geheel eigen BBCode-systeem. Ik denk niet dat het mogelijk is om oude (aparte) BBCodes te veranderen.

Maar heel misschien dat dit kan werken

Code: Selecteer alles

<?php

set_time_limit(0);

define('IN_PHPBB', true);
$phpbb_root_path = './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.'.$phpEx);
include($phpbb_root_path . 'includes/message_parser.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

$echos = 0;

// Now adjust posts

$message_parser = new parse_message();
$message_parser->mode = 'post';
$message_parser->bbcode_init();

// Update posts
$sql = 'SELECT post_id, post_text, bbcode_uid, enable_bbcode, enable_smilies, enable_sig
    FROM ' . POSTS_TABLE;
$result = $db->sql_query($sql);

while ($row = $db->sql_fetchrow($result))
{
    // Convert bbcodes back to their normal form
    if ($row['enable_bbcode'])
    {
        decode_message($row['post_text'], $row['bbcode_uid']);

        $message_parser->message = $row['post_text'];

        $message_parser->prepare_bbcodes();
        $message_parser->parse_bbcode();

        $bitfield = $message_parser->bbcode_bitfield;

        $sql = 'UPDATE ' . POSTS_TABLE . " SET bbcode_bitfield = '" . $db->sql_escape($bitfield) . "'
            WHERE post_id = " . $row['post_id'];
        $db->sql_query($sql);

        if ($echos > 200)
        {
            echo '<br />' . "\n";
            $echos = 0;
        }

        echo '.';
        $echos++;

        flush();
    }
    else
    {
        $sql = 'UPDATE ' . POSTS_TABLE . " SET bbcode_bitfield = ''
            WHERE post_id = " . $row['post_id'];
        $db->sql_query($sql);
    }
}
$db->sql_freeresult($result);

// Done
$db->sql_close();

?>
Opslaan in de root-map (waar config.php instaat) en draaien.
Maak eerst een back-up van je database

Re: Bbcode in oude post

Geplaatst: 24 jan 2008, 16:11
door DragonWish
Zou super zijn als het werkt, dan laat ik het meteen weten :)

Dit werkt helaas niet :(
Toch bedankt voor de moeite.

Wat deed het script precies?
Topics kicken doen we niet aan, al helemaal niet binnen 24 uur! Dankjewel.
- Coen

Re: Bbcode in oude post

Geplaatst: 27 jan 2008, 14:54
door DragonWish
hmm ik geloof niet dat ik iets gekickt had en het was een reactie op een voorganger...

Maar goed.
Een volgende vraag met betrekking tot deze post.

Door een post te wijzigen werken de ubb codes van die post weer wel.
Is het dan niet mogelijk door een sql query ofzo, dat alle post automatisch bewerkt worden, waardoor alle ubb codes weer werken?