PN Nachrichten auf den Pc speichern
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
PN Nachrichten auf den Pc speichern
Hi!
meine frage ist folgende:
gibt es einen mod , der es den usern ermöglicht seine privaten nachrichten auf seinen pc zu speicehrn?
vielen dank
für die wahrscheinlich wie immer schnelle und hilfreichen antowrten!
meine frage ist folgende:
gibt es einen mod , der es den usern ermöglicht seine privaten nachrichten auf seinen pc zu speicehrn?
vielen dank
für die wahrscheinlich wie immer schnelle und hilfreichen antowrten!
-
- Mitglied
- Beiträge: 2295
- Registriert: 09.12.2003 15:02
- Wohnort: Irgendwo im Nirgendwo
Ka ob der im 2.0.13 noch funzt, hab ihn lange nicht eingebaut:
Grüße Mario##############################################################################
## Mod Title: download PM
##
## Mod Version: 1.0
##
## Author: makue <makue@nena.de> - http://www.nena.de
##
## Beschreibung: Erlaubt es, PN's downloaden zu können. Es wird ein
## zusätzlicher Knopf "download" im PN-Bereich erzeugt.
## Das Download-File ist reines Textformat, die PM's
## sind durch eine Trennlinie getrennt.
##
## Installation Level: leicht
## Installation Time: 5 Minuten
##
## Files zum editieren: 4
## + 1 je zusätzliche Sprache (hier deutsch und englisch)
## + 1 je zusätzliches Template (hier nur subSilver)
##
## /prvmsg.php
## /language/lang_english/lang_main.php
## /language/lang_german/lang_main.php
## /templates/subSilver/prvmsgs_body.tpl
##
## zusätzliche Files: keine
##
##############################################################################
##
## Hinweis:
##
## Bei Fehlern, Hinweisen, Wünschen bitte Mail an makue@nena.de
##
## Bevor Änderungen an den Files vorgenommen werden empfiehlt es
## sich, backups der betroffenen Files vorzunehmen. Änderungen
## an der Datenbank sind nicht notwendig.
##
##############################################################################
#
#-----[ ÖFFNE ]------------------------------------------
#
/prvmsg.php
#
#-----[ SUCHE ]---------------------------------------------------------------
#
$delete_all = ( isset($HTTP_POST_VARS['deleteall']) ) ? TRUE : 0;
#
#-----[ DANACH EINFÜGEN ]-----------------------------------------------------
#
$download = ( isset($HTTP_POST_VARS['download']) ) ? TRUE : 0;
#
#-----[ SUCHE ]---------------------------------------------------------------
#
else if ( $save && $mark_list && $folder != 'savebox' && $folder != 'outbox' )
#
#-----[ DAVOR EINFÜGEN ]------------------------------------------------------
#
else if ( $download && $mark_list )
{
if ( !$userdata['session_logged_in'] )
{
$header_location = ( @preg_match('/Microsoft|WebSTAR|Xitami/', getenv('SERVER_SOFTWARE')) ) ? 'Refresh: 0; URL=' : 'Location: ';
header($header_location . append_sid("login.$phpEx?redirect=privmsg.$phpEx&folder=inbox", true));
exit;
}
switch($folder)
{
case 'inbox':
$disp_folder = $lang['Inbox'];
break;
case 'outbox':
$disp_folder = $lang['Outbox'];
break;
case 'sentbox':
$disp_folder = $lang['Sentbox'];
break;
case 'savebox':
$disp_folder = $lang['Savebox'];
break;
}
if (count($mark_list))
{
$i=0;
$pmtext = $lang['Private_Messaging']." (".$board_config['sitename'].")\n";
$user_dateformat = ($userdata['user_dateformat']) ? $userdata['user_dateformat'] : $board_config['default_dateformat'];
$pmtext .= $disp_folder . " (". date($user_dateformat,time()). ")\n";
while($mark_list[$i] != "")
{
$sql = "SELECT pt.privmsgs_text, 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 = pm.privmsgs_from_userid";
if ( $result = $db->sql_query($sql) )
{
$db_row = $db->sql_fetchrow($result);
$from = ($folder=='inbox' || $folder=='savebox') ? $lang['From'] : $lang['To'];
$pmtext .= "----------------------------------------------------------------------------\n";
$pmtext .= $lang['Mailbox'].": ".$userdata['username']."\n";
$pmtext .= $from.": ".$db_row['username']."\n";
$pmtext .= $lang['Posted'].": ".date($user_dateformat,time($db_row['privmsgs_date']))."\n";
$pmtext .= $lang['Subject'].": ".$db_row['privmsgs_subject']."\n\n";
$pmtext .= $db_row['privmsgs_text']."\n";
}
else
{
print $sql."<p>";
message_die(GENERAL_ERROR, 'Could not read private message info', '', __LINE__, __FILE__, $sql);
}
$i++;
}
$filename = $board_config['sitename']."_".$disp_folder."_".date("Ymd",time()).".txt";
header('Content-Type: text/x-delimtext; name="' . $file_name . '"');
header("Content-Disposition: attachment;filename=".$filename);
header("Content-Transfer-Encoding: plain/text");
header("Content-Length: ".strlen($pmtext));
print $pmtext;
exit;
}
}
#
#-----[ SUCHE ]---------------------------------------------------------------
#
'L_SAVE_MARKED' => $lang['Save_marked'],
#
#-----[ DANACH EINFÜGEN ]-----------------------------------------------------
#
'L_DOWNLOAD_MARKED' => $lang['Download_marked'],
#
#-----[ ÖFFNE ]------------------------------------------
#
/language/lang_english/lang_main.php
#
#-----[ SUCHE ]---------------------------------------------------------------
#
$lang['Save_marked'] = 'Save Marked';
#
#-----[ DANACH EINFÜGEN ]-----------------------------------------------------
#
$lang['Download_marked'] = 'Download Marked';
$lang['Mailbox'] = 'Mailbox';
#
#-----[ ÖFFNE ]------------------------------------------
#
/language/lang_german/lang_main.php
#
#-----[ SUCHE ]---------------------------------------------------------------
#
$lang['Save_marked'] = "Markierte speichern";
#
#-----[ DANACH EINFÜGEN ]-----------------------------------------------------
#
$lang['Download_marked'] = 'Markierte downloaden';
$lang['Mailbox'] = 'Postfach';
#
#-----[ ÖFFNE ]---------------------------------------------------------------
#
/templates/subSilver/prvmsgs_body.tpl
#
#-----[ SUCHE ]---------------------------------------------------------------
#
<td class="catBottom" colspan="5" height="28" align="right"> {S_HIDDEN_FIELDS}
#
#-----[ DANACH EINFÜGEN ]-----------------------------------------------------
#
<input type="submit" name="download" value="{L_DOWNLOAD_MARKED}" class="liteoption" />
# Ich empfehle die zwischen den Input-Tags zu löschen, die verursachen nur
# einen zu großen Button-Abstand!
#
#-----[ ALLE DATEIEN SPEICHERN ]----------------------------------------------
#
Wer gegen eine geringe Gebühr (höhe der Gebühr bestimmst du selbst!!) ein phpBB installiert oder Mods eingebaut haben möchte sollte sich melden unter: netcom_service@gmx.net - Bisherige Aufträge 68.071
Auf Anfrage führe ich auch Reparaturen/Updates und Serverumzüge durch oder baue Mods!
Auf Anfrage führe ich auch Reparaturen/Updates und Serverumzüge durch oder baue Mods!
-
- Mitglied
- Beiträge: 854
- Registriert: 25.02.2004 00:41
- Wohnort: Regen
- Kontaktdaten:
Hallo,
[quote]$filename = $board_config['sitename']."_".$disp_folder."_".date("Ymd",time()).".txt";
header('Content-Type: text/x-delimtext; name="' . $file_name . '"');
header("Content-Disposition: attachment;filename=".$filename);[/quote]
Ist das Absicht oder ein Fehler dass es da einmal $filename und dann wieder $file_name heißt?
Gruß,
Chris
[quote]$filename = $board_config['sitename']."_".$disp_folder."_".date("Ymd",time()).".txt";
header('Content-Type: text/x-delimtext; name="' . $file_name . '"');
header("Content-Disposition: attachment;filename=".$filename);[/quote]
Ist das Absicht oder ein Fehler dass es da einmal $filename und dann wieder $file_name heißt?
Gruß,
Chris
Der Mod funktioniert so problemlos, wenn man aber z.B die gesendeten Nachrichten speichert, müssen die nicht von einem sein, sondern an jemanden.
Ich hab das mit meinen Newbiephp Skill erstmal so gelöst:
Gespeicherte Dateien aus dem Archiv korrekt zu speichern, ist dann wohl schwieriger, weil die aus verschieden Boxen kommen können.
Und noch ne Newbiefrage hintendran
:
Seit der Sichheitslücke in dem einen downloadmod ist mir etwas unwohl, was Downloads angeht. Wäre das bei diesem Mod eher Paranoia?
// Nachtrag: Firefox hat wohl leider manchmal einige Schwierigkeiten beim Speichern mit dem korrekten Dateinamen.
Ich hab das mit meinen Newbiephp Skill erstmal so gelöst:
Code: Alles auswählen
if ($folder == 'sentbox')
{
$sql = "SELECT pt.privmsgs_text, 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 = pm.privmsgs_to_userid";
}
else
{
$sql = "SELECT pt.privmsgs_text, 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 = pm.privmsgs_from_userid";
}
Und noch ne Newbiefrage hintendran

Seit der Sichheitslücke in dem einen downloadmod ist mir etwas unwohl, was Downloads angeht. Wäre das bei diesem Mod eher Paranoia?
// Nachtrag: Firefox hat wohl leider manchmal einige Schwierigkeiten beim Speichern mit dem korrekten Dateinamen.
-
- Mitglied
- Beiträge: 854
- Registriert: 25.02.2004 00:41
- Wohnort: Regen
- Kontaktdaten:
Hallo,
... erweitert.
Zu bedenken ist, dass evtl. auch bereits der Boardname (Variable $board_config['sitename']) Probleme bereiten kann, falls dort Leerzeichen oder sonstige unerlaubte (Dateinamen-)Zeichen enthalten sind. Dann sollte man auch diesbezüglich geeignete Maßnahmen treffen.
Gruß,
Chris
Stimmt, danke für den Hinweis. Das gilt aber nicht nur für die PNs unter "Gesendete Nachrichten" sondern auch für den "Postausgang". Ich habe daher die vorgeschlagene Codeänderung entsprechend um ...Der Mod funktioniert so problemlos, wenn man aber z.B die gesendeten Nachrichten speichert, müssen die nicht von einem sein, sondern an jemanden.
Code: Alles auswählen
if ($folder == 'sentbox' || $folder == 'outbox')
Ist mir auch schon aufgefallen. Das könnte u.a. daran liegen, weil der Dateiname ja aus den "Ordner-Namen" gebildet wird und bei "Gesendete Nachrichten" ist ein Leerzeichen enthalten. Bei der Bildung des Dateinamens wird dann alles nach dem Leerzeichen abgeschnitten. Ich habe das ganz einfach folgendermaßen behoben:// Nachtrag: Firefox hat wohl leider manchmal einige Schwierigkeiten beim Speichern mit dem korrekten Dateinamen.
Code: Alles auswählen
#-----[ SUCHE ]-----
$filename = $board_config['sitename']."_".$disp_folder."_".date("Ymd",time()).".txt";
#-----[ DAVOR EINFÜGEN ]-----
$disp_folder = str_replace(' ', '_', $disp_folder);
Gruß,
Chris
Danke, habe
analog auch für $board_config['sitename'] benutzt, weil ich da ein Leerzeichen drin hab, und nun speichert auch Firefox die Dateien richtig ab.
Das ist imo ein sehr nützlicher Mod, den Pm Boxen sind schnell voll.
Code: Alles auswählen
$disp_folder = str_replace(' ', '_', $disp_folder);
Das ist imo ein sehr nützlicher Mod, den Pm Boxen sind schnell voll.
-
- Mitglied
- Beiträge: 854
- Registriert: 25.02.2004 00:41
- Wohnort: Regen
- Kontaktdaten:
Hallo,
noch ein kleiner Nachtrag.
Die bbcodes werden wie's scheint nicht umgesetzt, bzw. verbleiben in der Datei samt der bbcode_uid. Da das irgendwie unschön aussieht, habe ich noch ein bischen weitergebastelt.
Da ich leider nur wenig Ahnung davon habe: Anwendung auf eigene Gefahr - und vielleicht kann mir/uns ein php-Coder sagen, wie man das besser/richtig(er) machen kann. Bitteee ... *liebschau* 
So etwas a la "strip_bbcode()" gibt's ja leider nicht oder doch?
Noch ein kleiner Hinweis am Rande: Unter Windoof reicht das \n möglicherweise nicht aus für die Zeilenschaltung. Daher habe ich diese Stellen im Mod alle durch \r\n ersetzt.
Gruß,
Chris
noch ein kleiner Nachtrag.

Die bbcodes werden wie's scheint nicht umgesetzt, bzw. verbleiben in der Datei samt der bbcode_uid. Da das irgendwie unschön aussieht, habe ich noch ein bischen weitergebastelt.
Code: Alles auswählen
#-----[ FIND ]-----------------------------------------
# (Hinweis: Falls die von John Doe vorgeschlagene Erweiterung eingebaut
# wurde, gibt's die zu findende Stelle nun natürlich zweimal.)
$sql = "SELECT pt.privmsgs_text, us.username, us.user_id, pm.privmsgs_date, pm.privmsgs_subject
#-----[ IN-LINE FIND ]---------------------------------
pm.privmsgs_subject
#-----[ IN-LINE AFTER, ADD ]---------------------------
, pt.privmsgs_bbcode_uid
#-----[ FIND ]-----------------------------------------
$pmtext .= $db_row['privmsgs_text']."\n";
#-----[ REPLACE WITH ]---------------------------------
$privbbcode_uid = $db_row['privmsgs_bbcode_uid'];
$privmesstext = preg_replace('/\[img:[a-z0-9]{10,}\].*?\[\/img:[a-z0-9]{10,}\]/', ' ', strip_tags($db_row['privmsgs_text']));
$privmesstext = preg_replace('/\[url\]|\[\/url\]/si', '', $privmesstext);
$privmesstext = preg_replace('/\[\/?url(=.*?)?\]/', '', $privmesstext);
$privmesstext = preg_replace("/\[.*?:$privbbcode_uid:?.*?\]/si", '', $privmesstext);
$pmtext .= $privmesstext."\r\n";

So etwas a la "strip_bbcode()" gibt's ja leider nicht oder doch?
Noch ein kleiner Hinweis am Rande: Unter Windoof reicht das \n möglicherweise nicht aus für die Zeilenschaltung. Daher habe ich diese Stellen im Mod alle durch \r\n ersetzt.
Gruß,
Chris
Ich habe den Mod mal überarbeitet. Da ist jetzt alles mit eingeflossen, was Ihr so erwähnt habt. Scheint soweit alles korrekt zu funktionieren, jedenfalls bei mir! Falls Ihr Fehler feststellt, bitte melden. Danke!
Die neue Version 1.3 findet Ihr hier: http://www.nenafan.de/mods/downloadpm13.txt
Für ein update von der vorherigen Version einfach den Block
ersetzten. An anderen Stellen habe ich nichts geändert.
Die neue Version 1.3 findet Ihr hier: http://www.nenafan.de/mods/downloadpm13.txt
Für ein update von der vorherigen Version einfach den Block
Code: Alles auswählen
if (count($mark_list))
{
...
}
Code: Alles auswählen
Leider hast Du keinen Zugriff auf diesen Datenbereich.
