Kleine Kombinationsfrage...wenn möglich!

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Kleine Kombinationsfrage...wenn möglich!

Beitrag von schmidtedv »

Deine phpBB Version: Vanilla phpBB 2.0.19
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;
}
Nun hab' ich aber in der privmsg.php noch einen anderen MOD drin für den direkten Download der PN's als Textdatei und der bastelt BBCode direkt in der privmsg.php um:

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;
	}
Verfeinert hab' ich beide mit ein, zwei Zeilen aus Oxpus "Download Topics and Posts". Mein Wunsch wäre nun aber an dieser Stelle den MOD mit dem Download als Textdatei mit dem Erstgenannten zu kombinieren (bisher leider ohne Erfolg). Kurz, die Funktion des Oberen (sieht in der Mail wirklich gut aus), in der privmsg.php folgendermaßen aufgerufen:

Code: Alles auswählen

$message_text = trim(stripslashes($HTTP_POST_VARS['message']));
				$message_text = message_to_plain_text($message_text);
...auch mittels der message_to_plain_text-Funktion anstelle der $message-Zeilen nutzen. Alle eigenen Versuch aben allerdings keinen Erfolg gebracht bzw. der BBcode wird nicht so umgesetzt, wie es über die Email-Benachrichtigung der Fall ist.

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....
Zuletzt geändert von schmidtedv am Di 17.Jan, 2006 22:22, insgesamt 1-mal geändert.
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Müsste doch gehen, wenn Du nach

Code: Alles auswählen

$download_text .= $lang['Message'].": ".$message.$crlf.$crlf;
dieses hier anfügst:

Code: Alles auswählen

$download_text = message_to_plain_text($download_text);
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

...aber dann hab' ich das ganze ja schon zuvor durch die $message-Passage gewurstet...und das wollte ich eigentlich nicht...zumal mir doch dadruch so Dinge wie "Zitat - F.Schmidt hat geschrieben: ..." verloren gingen...

Ich bräuchte für die &message-Passage eher einen Ersatz wie:

Code: Alles auswählen

$message_text = trim(stripslashes($db_row['privmsgs_text'])); 
            $message_text = message_to_plain_text($message_text);
Leider ist hier das Ergebnis nicht das gleiche wie für den $HTTP_POST_VARS-Part der E-Mail....wohl weil er hier aus der DB zieht während er weiter unten BBcode noch gar nicht umgewandelt hat???
Zuletzt geändert von schmidtedv am Di 17.Jan, 2006 23:02, insgesamt 1-mal geändert.
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Dann müsste das direkt hier umgewandelt werden:

Code: Alles auswählen

$message = $db_row['privmsgs_text'];
wird zu

Code: Alles auswählen

$message = message_to_plain_text($db_row['privmsgs_text']);
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

ja, so hatte ich auch gedacht und das sogar in verschiedenen Varianten aber immermit weglassen von:

Code: Alles auswählen

// $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);
Leider ist das Ergebnis dann:

Code: Alles auswählen

Nachricht: [quote:0d837a04bd="Florian Schmidt"]Hallo, ich teste mal:

[code:1:0d837a04bd]$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;[/code:1:0d837a04bd]

[img:0d837a04bd]http://www.google.de/intl/de_de/images/logo.gif[/img:0d837a04bd]

So, mal gucken[/quote:0d837a04bd]
und nicht:

Code: Alles auswählen

Nachricht:


Zitat - Florian Schmidt hat geschrieben:
----------------------------------------
Hallo, ich teste mal:

Code:
----------------------------------------
$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;
----------------------------------------

[ Bild: http://www.google.de/intl/de_de/images/logo.gif ]

So, mal gucken
----------------------------------------
Zuletzt geändert von schmidtedv am Mi 18.Jan, 2006 07:34, insgesamt 1-mal geändert.
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Jo, diesen ersten Part darfst Du auch nicht weglassen!
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

Also das hat alles nicht den gewünschten Effekt...irgendwie wird message_to_plain_text nicht genutzt und zudem, warum nicht weglassen des $message darüber? In der funtion message_to_plain_text in der bbcode.php wird doch eigentlich die bbcode-anpassung schon vorgenommen...
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Wenn Du das auch alles auskommentierst, kann der Code auch nicht ausgeführt werden.
Die neue Funktion scheint hier auch nicht zu greifen, daher "zusätzlich" diese Umcodierung.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

also ich habe wieder das gefühl, du traust mir nichts zu...wenn ich doch hier mit so einer frage komme, habe ich eigentlich schon alle variationen, umschreibungen, auskommentierungen probiert, tststs...ich hätt' halt nur gern die message_to_plain_text hier greifend, damit ich code sparen kann, der unterschied liegt ja eigentlich, wenn ich's recht verstehe nur darin, das er für die mail-function direkt auf den text zugreift und für den download zieht er sich das ganze erst aus der DB....da scheint der Kasus-Knaxus, denke ich, eher mit der sog. bbcode_uid-definierung an beiden stellen zu tun zu haben...denn bei der download-funktion scheint dies gar nicht mit der message_to_plain_text kombiniert zu werden...oder?
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

1. Ich halte hier keinen für unfähig, aber ich erlebe es immer wieder, daß jemand trotz 1000facher Nachfrage dennoch eine bestätigte Aktion nicht gemacht hat oder ein bestätigter "Zustand" nicht vorzufinden ist.
Sprich: Der Gesprächspartner hatte partout nicht das gemacht, was er auf Nachfrage hin bestätigte. Daher die Nachfrage.

2. Wenn ich das richtig nachvollziehe, wird die gewünschte Funktion in der bbcode.php definiert.
Diese Datei ist wirklich auch im Script eingebunden (hier die viewtopic.php)?!?
Das kann man prüfen, wenn man die Funktion in der bbcode.php einfach mal umbenennt.
Dann kommt hinzu, daß, wie Du schon richtig erkannt hast, der Text unformatiert aus der Datenbank ausgelesen wird, die Funktion aber bereits formatierten Text erwartet!
Daher muss jeder Konvertierungsschritt, der durch meinen MOD zusätzlich zu den in der Funktion bestehenden Konvertierungen vorkommt, auch weiterhin gemacht werden, damit die Funktion die einzelnen Textstellen auch korrekt trifft.
Dadurch muss der Aufruf dieser Funktion nach der Zeile

Code: Alles auswählen

$message = preg_replace("/\[.*?:$bbcode_uid:?.*?\]/si", '', $message);
in Deinem ersten Post eingestellt werden (was ich ja auch ursprünglich meinte), um zumindest die BBCode-UID hier aus den Text heraus zu bekommen. Erst dann kann ja auch die Funktion weiter arbeiten.
Wichtig dabei aber auch, wie ich so sehr, ist, daß die Zeile

Code: Alles auswählen

$message = strip_tags($message);
ebenfalls nicht zur Anwendung kommt, also zu löschen ist.

Wie gesagt, sind alle "doppelten" Konvertierungsschritte aus meinem MOD zu entfernen, bevor die Funktion aufgerufen wird, damit eben der Text korrekt zurückgegeben werden kann.
Aber alle Schritte behalten, bevor die Funktion verwendet wird, um den Text vorformatiert der Funktion zur weiteren Bearbeitung zu übergeben.
Zuletzt geändert von oxpus am Fr 20.Jan, 2006 14:42, insgesamt 1-mal geändert.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

...hm, also die privmsg.php hat zwar oben include(....bbcode.php) drin, aber mir scheint es allmählich als müßte ich da ansetzen: Es kommt mir vor als würde die function message_to_plain_text einfach nicht greifen, da ich, trotz vorgesehener Umwandlung von " immer das quot drinhabe, wenn ich deine anderen Zeilen weglasse....und das zumindest dürfte ja eigentlich nicht sein...hättest Du da eine Idee, bzw. soll ich dir die Datei anhängen?

Ich würde ja dann wirklich gerne noch den Download Topics und Post in ähnlicher Weise verbauen, da message_to_plain_text halt auch einrückungen einbaut für verschalchtelte Zitate und dergleichen und das ist irgendwie logischer....aber ich werd' jetzt erst nochmal einfach hingehen und die function direkt in die privmsg einsetzen...dann sollte es ja auf jeden Fall gehen...

EDIT: Hm, immernoch ohne jeglichen Erfolg bzgl. der Formatierung...vielleicht bin ich ja wirklich doof...mein letzter Versuch sieht nun so aus:

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, pt.privmsgs_bbcode_uid, us.username, us.user_id, pm.privmsgs_date, pm.privmsgs_subject
				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 = trim(stripslashes($message));

				$q1 = $crlf . '----------------------------------------' . $crlf;
				$q2 = $crlf . '----------------------------------------' . $crlf; $crlf;
				$l1 = $crlf . '   (*) '; 
				$img1 = '[ Bild: ';
				$img2 = ' ]';

				$message = preg_replace('/\[quote=\"(.*?)\"\]/', $crlf . $lang['Quote'].' - \\1 '. $lang['wrote'].':'.$q1, $message);
				$message = preg_replace('/\[quote\]/', $crlf . $lang['Quote'].':'.$q1, $message);
				$message = preg_replace('/\[\/quote\]/', $q2, $message);

				$message = preg_replace('/\[code\]/', $crlf . $lang['Code'].':'.$q1, $message);
				$message = preg_replace('/\[\/code:?1*\]/', $q2, $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);

				$message = preg_replace('/\[list\]/', $crlf . '\\1 '. $lang['List'].':'.$q1, $message);
				$message = preg_replace('/\[list=[a-z]+\]/', $crlf . '\\1 '. $lang['Ordered_list'].':'.$q1, $message);
				$message = preg_replace('/\[list=[1-2]?[0-9]+\]/', $crlf . '\\1 '. $lang['Ordered_list'].':'.$q1, $message);
				$message = preg_replace('/\[\/list\]/', $q2, $message);
				$message = preg_replace('/\[\*\]/', $l1, $message);

				$message = preg_replace('/\[img\](.*?)\[\/img\]/', $img1 .'\\1' . $img2, $message);
				$message = preg_replace('/\[url=(.*?)\](.*?)\[\/url\]/', '\\1', $message);
				$message = preg_replace('/\[url\](.*?)\[\/url\]/', '\\1', $message);
	
				$message = preg_replace('/\[b\](.*?)\[\/b\]/', '\\1', $message);
				$message = preg_replace('/\[u\](.*?)\[\/u\]/', '\\1', $message);
				$message = preg_replace('/\[i\](.*?)\[\/i\]/', '\\1', $message);
				$message = preg_replace('/\[color=\#[0-9A-F]{6}\](.*?)\[\/color\]/', '\\1', $message);
				$message = preg_replace('/\[color=[a-z]+\](.*?)\[\/color\]/', '\\1', $message);
				$message = preg_replace('/\[size=[1-2]?[0-9]\](.*?)\[\/size\]/', '\\1', $message);
				$message = preg_replace('/\[email\](.*?)\[\/email\]/', '\\1', $message);

				$message = preg_replace('/(\\r\\n){3,}/s', $crlf.$crlf, $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'].": ".$crlf.$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;
	}
}
Bzw. siehe anhang, da hier ja mache Stellen flöten gehen :-)
Zuletzt geändert von schmidtedv am Mo 23.Jan, 2006 08:22, insgesamt 1-mal geändert.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Du solltest doch das hier löschen:

Code: Alles auswählen

$message = trim(stripslashes($message));
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

Ja, hatte ich auch dort auskommentiert...aber auch damit entsteht nur:

Code: Alles auswählen

Private Nachrichten (phpBB Aphrodite)
Posteingang (23.01.06 11:09)

----------------------------------------
Von: Florian Schmidt
Verfasst am: 23.01.06 11:09

Titel: Re: Testen
Nachricht: 
Hallo, ich teste mal:

$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;

http://www.google.de/intl/de_de/images/logo.gif

So, mal gucken
also ohne extra -------------------- bzw. ohne "Florian ...hat geschirieben:...
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Dann schau Dir Deinen Code mal genauer an. Dort ist das auch nicht eingetragen ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

....öhm, verzeih' meinen langsamen kopf....wie meinst Du das? Was ist nicht eingetragen?
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Na, die fehlenden Zeilen!
Du hast nur eine Trennlinie da eingebastelt, z. B.
Dann kann auch keine zweite Linie angezeigt werden ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
schmidtedv
Beiträge: 607
Registriert: So 13.Feb, 2005 10:46
Wohnort: St. Blasien (seit 01.06)
Kontaktdaten:

Beitrag von schmidtedv »

?? Ich hab' $q1 und $q2....$q2 wird mehrmals erzeugt, und zwar z.B. VOR und NACH Code: ...jedenfalls für den Mail-Versand...zum Downloaden funktioniert das gleiche bisschen Code nicht...aber wie ich es verstehe, wird die Trennlinie richtig deklariert...

Kannst du mir den Code mal so umbasteln, das er funktionieren würde? Könnte ich dann auch verstehen, was ich falsch mache (gedanklich)...

von $q1 bis zum letzten $message = preg_replace ist es jedenfalls die gleiche Umwandlungs-Funktion wie in der bbcode.php...also, so sehe ich es, liegt der Hase immernoch woanders begraben, wenn es nun in der privmsg.php NICHT greift, obwohl er sogar direkt verbaut ist...
Zuletzt geändert von schmidtedv am Mo 23.Jan, 2006 18:44, insgesamt 1-mal geändert.
Rettet den Wald, esst mehr Specht!

Forum [ sofern im Beitrag darauf verwiesen :-) ]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Nichts umwandeln, sondern zusätzlich einbauen!
Du hattest doch die Nachricht gepostet, wie sie ist und sein sollte.
Nun schau Dir den Code an, was wo eingetragen wird, damit eben die gewünschten Linien und Ansätze entstehen.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten