Seite 1 von 1

bb-codes "global" deaktiviert nach Umzug?

Verfasst: 02.01.2008 13:49
von mitternacht
Nach einen Umzug von wbb1.2 zum phpbb3 hab ich nun folgendes Problem bei den alten Beiträgen:

Überall wurde der BB-Code bei den Beiträgen de-aktiviert, keine Ahnung woran das liegen kann.

Gibt es einen einfachen SQL-Befehl oder so mit den man dies wieder ändern kann das in allen Beiträgen bb-codes aktiviert sind?

Verfasst: 02.01.2008 13:56
von nickvergessen

Code: Alles auswählen

UPDATE phpbb_posts SET enable_bbcode = 1;

Verfasst: 16.01.2008 06:43
von mitternacht
Vielen Dank für die schnelle Hilfe.

Hab den obigen Code zwischenzeitlich mal ausprobiert, auch den phpbb-cache danach gelöscht. Doch leider zeigt er mir noch immer bei den alten Beiträgen die bb-codes an (hab auch schon geguckt, er kennt sie auch alle, z. B. das i, b, und img-tag.

Woran könnte das jetzt noch liegen?

Verfasst: 31.01.2008 21:30
von mitternacht
Hab jetzt festgestellt das wenn ich bei einen Beitrag auf editieren klicke und dann wieder speicher die Bilder korrekt angezeigt werden (betrifft übrigens alle bb-codes, nicht nur Bilder).

Gibt es eine Möglichkeit das man als Admin alle Datenbankeinräge nochmal "durchlaufen" läßt, so daß die alten Codes wieder aktiviert sind überall?

Verfasst: 31.01.2008 23:11
von gn#36
Das ist nicht so ganz einfach, vermutlich wurde die Konvertierung nicht korrekt durchgeführt und die BBcode UID nicht an die BBcodes gehängt. Die Beiträge müssen also noch mal durch den message_parser laufen.

Das hier ist ein ungetesteter Versuch das zu beheben, bitte vorher die DB sichern:

Code: Alles auswählen

<?php
define('IN_PHPBB', true);
$phpbb_root_path =  './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$sql = "SELECT post_id, post_text, bbcode_uid, bbcode_bitfield,  FROM " . POSTS_TABLE;
$result = $db->sql_query($sql);
while($sql_data = $db->sql_fetchrow($result))
{
$flags = '';
$post_id = $sql_data['post_id'];
unset($sql_data['post_id']);
decode_message($sql_data['post_text'], $sql_data['bbcode_uid']);
$sql_data['post_checksum'] = md5($sql_data['post_text']);
generate_text_for_storage($sql_data['post_text'], $sql_data['bbcode_uid'], $sql_data['bbcode_bitfield'], $flags, true, true, true);
$sql = "UPDATE " . POSTS_TABLE . " SET " . $db->sql_build_array('UPDATE', $sql_data) . " WHERE post_id=" . $post_id;
			$db->sql_query($sql);
}
trigger_error('Fertig!'); 
?>
Die Ausführung kann bei sehr vielen Posts evtl. ein wenig dauern, das Skript muss mit beliebigem Namen ins Forum-Root und dann aufgerufen werden.