Hier findet Ihr Modifikationen (MODs) für phpBB3 Olympus (3.0.x)
Forumsregeln
Support für die MODs findet Ihr auf
http://www.phpbb.de
Bereich:
phpBB 3.0: MOD Support
Foren Mitglied
Site Admin
Beiträge: 1984 Registriert: 05.02.2005 15:41
Wohnort: Xanten
Kontaktdaten:
Beitrag
von Foren Mitglied » 22.09.2008 07:38
MOD Name : Reparse BBcodes
Author: EXreaction
MOD Beschreibung : BBCodes werden neu berechnet.
Quelle :
http://startrekguide.com/community/view ... 648#p47648
Problem:
In phpBB2 hattest Du spezielle BBCodes installiert welche aber nach einer Konvertierung in phpBB3 nicht mehr funktionieren.
Lösung:
Der beste Weg ist die BBCodes aus dem alten phpBB2 Forum vor der Konvertierung in das phpBB3 Forum zu übernehmen.
Während der Konvertierung werden dann die BBcodes neu berechnet und umgesetzt.
Solltest Du das vorher nicht gemacht haben, so kann Dir das folgende Script dabei helfen.
Bevor Du das u.a. Script startest musst du die alten BBCodes in Deinem phpBB3 Forum hinzufügen ( Benutzerdefinierte BBCodes ).
Das Script wird dann alle vorhandenen Beiträge prüfen und die gefundenen BBCodes erneut berechnen.
Achtung:
Je nach größe Deines Forums kann dies einige Zeit dauern.
Entferne das Script unbedingt nachdem es komplett durchgelaufen ist !
Mache als erstes ein Datenbank Backup!
Erstelle eine neue php Datei mit u.a. Inhalt.
Speicher die neue php Datei unter folgendem Namen: resync_bbcode.php
Lade die Datei in Deinen Forums Root hoch ( dort wo auch die memberlist.php liegt )
Führe das Script durch Aufruf mit Deinem Browser aus.
Code: Alles auswählen
<?php
/**
* The file must be named resync_bbcode.php
*/
define('IN_PHPBB', true);
$phpbb_root_path = ((isset($phpbb_root_path)) ? $phpbb_root_path : './');
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('posting');
$start = intval(request_var('start', 0));
$limit = 200;
include($phpbb_root_path . 'includes/message_parser.' . $phpEx);
$bbcode_status = ($config['allow_bbcode']) ? true : false;
$img_status = ($bbcode_status) ? true : false;
$flash_status = ($bbcode_status && $config['allow_post_flash']) ? true : false;
$sql = 'SELECT * FROM ' . POSTS_TABLE . ' p, ' . TOPICS_TABLE . ' t
WHERE t.topic_id = p.topic_id
ORDER BY p.post_id ASC
LIMIT ' . $start . ', ' . $limit;
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
decode_message($row['post_text'], $row['bbcode_uid']);
$message_parser = new parse_message();
$message_parser->message = str_replace('"', '"', html_entity_decode($row['post_text']));
$message_parser->parse((($bbcode_status) ? $row['enable_bbcode'] : false), (($config['allow_post_links']) ? $row['enable_magic_url'] : false), $row['enable_smilies'], $img_status, $flash_status, true, $config['allow_post_links']);
if ($row['poll_title'] && $row['post_id'] == $row['topic_first_post_id'])
{
$row['poll_option_text'] = '';
$sql = 'SELECT * FROM ' . POLL_OPTIONS_TABLE . ' WHERE topic_id = ' . $row['topic_id'];
$result2 = $db->sql_query($sql);
while ($row2 = $db->sql_fetchrow($result2))
{
$row['poll_option_text'] .= $row2['poll_option_text'] . "n";
}
$db->sql_freeresult($result2);
$poll = array(
'poll_title' => $row['poll_title'],
'poll_length' => $row['poll_length'],
'poll_max_options' => $row['poll_max_options'],
'poll_option_text' => $row['poll_option_text'],
'poll_start' => $row['poll_start'],
'poll_last_vote' => $row['poll_last_vote'],
'poll_vote_change' => $row['poll_vote_change'],
'enable_bbcode' => $row['enable_bbcode'],
'enable_urls' => $row['enable_magic_url'],
'enable_smilies' => $row['enable_smilies'],
'img_status' => $img_status
);
$message_parser->parse_poll($poll);
}
$sql_data = array(
'post_text' => $message_parser->message,
'post_checksum' => md5($message_parser->message),
'bbcode_bitfield' => $message_parser->bbcode_bitfield,
'bbcode_uid' => $message_parser->bbcode_uid,
);
$sql = 'UPDATE ' . POSTS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_data) . '
WHERE post_id = ' . $row['post_id'];
$db->sql_query($sql);
if ($row['poll_title'] && $row['post_id'] == $row['topic_first_post_id'])
{
$sql_data = array(
'poll_title' => str_replace($row['bbcode_uid'], $message_parser->bbcode_uid, $poll['poll_title']),
);
$sql = 'UPDATE ' . TOPICS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_data) . '
WHERE topic_id = ' . $row['topic_id'];
$db->sql_query($sql);
$sql = 'SELECT * FROM ' . POLL_OPTIONS_TABLE . ' WHERE topic_id = ' . $row['topic_id'];
$result2 = $db->sql_query($sql);
while ($row2 = $db->sql_fetchrow($result2))
{
$sql_data = array(
'poll_option_text' => str_replace($row['bbcode_uid'], $message_parser->bbcode_uid, $row2['poll_option_text']),
);
$sql = 'UPDATE ' . POLL_OPTIONS_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_data) . '
WHERE topic_id = ' . $row['topic_id'] . '
AND poll_option_id = ' . $row2['poll_option_id'];
$db->sql_query($sql);
}
}
}
$sql = 'SELECT count(post_id) as post_cnt FROM ' . POSTS_TABLE;
$result = $db->sql_query($sql);
$cnt = $db->sql_fetchrow($result);
if ($cnt['post_cnt'] > ($start + $limit))
{
meta_refresh(1, './resync_bbcode.' . $phpEx . '?start=' . ($start + $limit));
trigger_error('The script is not finished yet, please wait. Part ' . (($start + $limit) / $limit) . ' of ' . intval($cnt['post_cnt'] / $limit) . ' is finished.');
}
else
{
trigger_error('Finished!');
}
?>
Source -
Doc.