MODs: Nein
Dein Wissensstand: Einsteiger
Link zu Deinem Forum: [url]http://[/url]
PHP Version:
MySQL Version:
Was hast Du gemacht, bevor das Problem aufgetreten ist?
Was hast Du bereits versucht um das Problem zu lösen?
Fehlerbeschreibung und Nachricht
Sodele, ich hab' mir mal den "Extended Private Message Notivication MOD" in der neuen Version verbaut (Email MIT Nachricht an User) und bin mit 1-2 Änderungen meinerseits recht angetan. Seine BBcode-Umsetzung findet als neue function in der bbcode.php statt:
Code: Alles auswählen
function message_to_plain_text($text)
{
global $lang;
$agent = getenv("HTTP_USER_AGENT");
if (preg_match("/windows/i",$agent)) $newline= "\r\n";
else if (preg_match("/linux/i",$agent)) $newline= "\n";
else $newline= "\r\n";
$q1 = $newline . '----------------------------------------' . $newline;
$q2 = $newline . '----------------------------------------' . $newline; $newline;
$l1 = $newline . ' (*) ';
$img1 = '[ Bild: ';
$img2 = ' ]';
$text = preg_replace('/\[quote=\"(.*?)\"\]/', $newline . $lang['Quote'].' - \\1 '. $lang['wrote'].':'.$q1, $text);
$text = preg_replace('/\[quote\]/', $newline . $lang['Quote'].':'.$q1, $text);
$text = preg_replace('/\[\/quote\]/', $q2, $text);
$text = preg_replace('/\[code\]/', $newline . $lang['Code'].':'.$q1, $text);
$text = preg_replace('/\[\/code:?1*\]/', $q2, $text);
$text = preg_replace('/(/', '(', $text);
$text = preg_replace('/)/', ')', $text);
$text = preg_replace('/:/', ':', $text);
$text = preg_replace('/[/', '[', $text);
$text = preg_replace('/]/', ']', $text);
$text = preg_replace('/{/', '{', $text);
$text = preg_replace('/}/', '}', $text);
$text = preg_replace('/\[list\]/', $newline . '\\1 '. $lang['List'].':'.$q1, $text);
$text = preg_replace('/\[list=[a-z]+\]/', $newline . '\\1 '. $lang['Ordered_list'].':'.$q1, $text);
$text = preg_replace('/\[list=[1-2]?[0-9]+\]/', $newline . '\\1 '. $lang['Ordered_list'].':'.$q1, $text);
$text = preg_replace('/\[\/list\]/', $q2, $text);
$text = preg_replace('/\[\*\]/', $l1, $text);
$text = preg_replace('/\[img\](.*?)\[\/img\]/', $img1 .'\\1' . $img2, $text);
$text = preg_replace('/\[url=(.*?)\](.*?)\[\/url\]/', '\\1', $text);
$text = preg_replace('/\[url\](.*?)\[\/url\]/', '\\1', $text);
$text = preg_replace('/\[b\](.*?)\[\/b\]/', '\\1', $text);
$text = preg_replace('/\[u\](.*?)\[\/u\]/', '\\1', $text);
$text = preg_replace('/\[i\](.*?)\[\/i\]/', '\\1', $text);
$text = preg_replace('/\[color=\#[0-9A-F]{6}\](.*?)\[\/color\]/', '\\1', $text);
$text = preg_replace('/\[color=[a-z]+\](.*?)\[\/color\]/', '\\1', $text);
$text = preg_replace('/\[size=[1-2]?[0-9]\](.*?)\[\/size\]/', '\\1', $text);
$text = preg_replace('/\[email\](.*?)\[\/email\]/', '\\1', $text);
$text = preg_replace('/(\\r\\n){3,}/s', $newline.$newline, $text);
return $text;
}Code: Alles auswählen
if (count($mark_list))
{
$i=0;
$agent = getenv("HTTP_USER_AGENT");
if (preg_match("/windows/i",$agent)) $crlf = "\r\n";
else if (preg_match("/linux/i",$agent)) $crlf = "\n";
else $crlf = "\r\n";
$download_text = $lang['Private_Messaging']." (".$board_config['sitename'].")".$crlf;
$user_dateformat = ($userdata['user_dateformat']) ? $userdata['user_dateformat'] : $board_config['default_dateformat'];
$download_text .= $disp_folder . " (". date($user_dateformat,time()). ")".$crlf.$crlf;
while($mark_list[$i] != "")
{
$sql = "SELECT pt.privmsgs_text, us.username, us.user_id, pm.privmsgs_date, pm.privmsgs_subject, pt.privmsgs_bbcode_uid
FROM " . PRIVMSGS_TEXT_TABLE . " pt, " . PRIVMSGS_TABLE . " pm, " . USERS_TABLE . " us
WHERE pt.privmsgs_text_id = " . $mark_list[$i] . " AND pm.privmsgs_id = " . $mark_list[$i] . "
AND us.user_id = ";
if ($folder == 'sentbox' || $folder == 'outbox') $sql .= "pm.privmsgs_to_userid";
else $sql .= "pm.privmsgs_from_userid";
if ( $result = $db->sql_query($sql) )
{
$db_row = $db->sql_fetchrow($result);
$bbcode_uid = $db_row['privmsgs_bbcode_uid'];
$message = $db_row['privmsgs_text'];
$message = strip_tags($message);
$message = preg_replace("/\[.*?:$bbcode_uid:?.*?\]/si", '', $message);
$message = preg_replace('/\[url\]|\[\/url\]/si', '', $message);
$message = preg_replace('/\:[0-9a-z\:]+\]/si', ']', $message);
$message = unprepare_message($message);
$message = preg_replace('/(/', '(', $message);
$message = preg_replace('/)/', ')', $message);
$message = preg_replace('/:/', ':', $message);
$message = preg_replace('/[/', '[', $message);
$message = preg_replace('/]/', ']', $message);
$message = preg_replace('/{/', '{', $message);
$message = preg_replace('/}/', '}', $message);
$from = ($folder=='inbox' || $folder=='savebox') ? $lang['From'] : $lang['To'];
$download_text .= "----------------------------------------".$crlf;
$download_text .= $from.": ".$db_row['username'].$crlf;
$download_text .= $lang['Posted'].": ".date($user_dateformat,time($db_row['privmsgs_date'])).$crlf.$crlf;
$download_text .= $lang['Subject'].": ".$db_row['privmsgs_subject'].$crlf;
$download_text .= $lang['Message'].": ".$message.$crlf.$crlf;
}
else
{
print $sql."<p>";
message_die(GENERAL_ERROR, 'Could not read private message info', '', __LINE__, __FILE__, $sql);
}
$i++;
}
$disp_folder = str_replace(' ', '_', $disp_folder);
$filename = $board_config['sitename']."_".$disp_folder."_".date("dmY_His",time()).".txt";
header('Content-Type: text/x-delimtext; name="' . $filename . '"');
header("Content-Disposition: attachment;filename=".$filename);
header("Content-Transfer-Encoding: plain/text");
header("Content-Length: ".strlen($download_text));
print $download_text;
exit;
}Code: Alles auswählen
$message_text = trim(stripslashes($HTTP_POST_VARS['message']));
$message_text = message_to_plain_text($message_text);Eine Idee, bzw. mehr benötigt, damit hier eventuell eine Lösung gefunden werden kann? Ich würde die message_to_plain_text dann nmlich auch gern für die Topics und Posts nutzen, also in Kombination mit Oxpus MOD...
EDIT: Hm,, da hier der Code eh verändert erscheint...anbei die Dateien....