Oops, sorry, blöde .htaccess! Ich habe den Fehler korrigiert.
Für ältere Versionen (zum vergleichen) kann man auch ins Verzeichnis: http://www.nenafan.de/mods/
Vielleicht packe ich da noch andere Mods von mir hin.
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.
Re: PN Nachrichten auf den Pc speichern
Hallo,
ich habe diesen Mod eingebaut, er funktionert soweit einwandfrei bis auf ein paar Kleinigkeiten. Anführungszeichen werden z.B so dargestellt: "Testtext". Könnte man im Code etwas ändern, daß entweder die Anführungszeichen richtig darstellt werden oder wenigstens " etc. verschwindet?
Bei BB-Code-Zitatblöcken dürfte es wohl schwierig werden, diese brauchbar darszustellen. Das ist aber nicht so wichtig.
Besten Dank im voraus.
Hier ist der aktuellste Code des Mods:
ich habe diesen Mod eingebaut, er funktionert soweit einwandfrei bis auf ein paar Kleinigkeiten. Anführungszeichen werden z.B so dargestellt: "Testtext". Könnte man im Code etwas ändern, daß entweder die Anführungszeichen richtig darstellt werden oder wenigstens " etc. verschwindet?
Bei BB-Code-Zitatblöcken dürfte es wohl schwierig werden, diese brauchbar darszustellen. Das ist aber nicht so wichtig.
Besten Dank im voraus.
Hier ist der aktuellste Code des Mods:
Code: Alles auswählen
##############################################################################
## $Author: makue $
## $Date: 2005/12/10 08:48:30 $
## $RCSfile: downloadpm13.txt,v $
## $Revision: 1.1 $
## $State: Exp $
##############################################################################
## Mod Title: download PM
##
## Mod Version: 1.3
##
## Autor: makue <mario@nenafan.de> - http://www.nenafan.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
##
## für update von Version 1.1 Zeilen 110 bis 149 ersetzen.
## für update von 1.2 auf 1.3 den kompletten Block "if (count($mark_list)) { ... }"
## ersetzen
##
##############################################################################
##
## Hinweis:
##
## Bei Fehlern, Hinweisen, Wünschen bitte Mail an mario@nenafan.de
##
## Bevor Änderungen an den Files vorgenommen werden empfiehlt es
## sich, backups der betroffenen Files vorzunehmen. Änderungen
## an der Datenbank sind nicht notwendig.
##
##############################################################################
##
## History
##
## Version 1.1 23.11.2003
## - erste öffentliche Version
##
## Version 1.2 02.02.2004
## - Zeilenumbrüche für Windows-basierende PC's angepasst. Bei Bedarf kann
## $crlf = "\r\n"; an eigene Bedürfnisse angepasst werden, z.B. in
## $crlf = "\n"; für Linux. (Zeile 113)
## - wordwrap für die eigentliche PN ergänzt
##
## Version 1.3 10.12.2005
## - Zeilenumbrüche "\r\n" bzw. "\n" werden nun anhand des erkannten
v## Betriebbsystems automatisch gesetzt.
## - BBCode aus dem text entfernt
## - Leerzeichen aus Dateinamen entfernt und Dateinamen mit StundenMinutenSekunden
## ergänzt. (Ist sinnvoll, wenn man mehrere Seiten speichern will ohne den
## Dateinamen ändern zu müssen.)
## - bei outbox und sentbox wird nun im Text korrekt "von:" (anstatt "an")
## angezeigt.
##
## Version 1.4 15.02.2008
## - Als Postingdatum wurde das donwload-Datum eingetragen, was durch einen
## unsinnigen Aufruf von time() verursacht wurde.
##
## suche: date($user_dateformat,time($db_row['privmsgs_date']))
## ersetze mit: date($user_dateformat,$db_row['privmsgs_date'])
##
##############################################################################
#
#-----[ Ö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;
$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"; // default value
$pmtext = $lang['Private_Messaging']." (".$board_config['sitename'].")".$crlf;
$user_dateformat = ($userdata['user_dateformat']) ? $userdata['user_dateformat'] : $board_config['default_dateformat'];
$pmtext .= $disp_folder . " (". date($user_dateformat,time()). ")".$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);
$privbbcode_uid = $db_row['privmsgs_bbcode_uid'];
$tmpmsg = preg_replace('/\[.*'.$privbbcode_uid.'\]/U', '', strip_tags($db_row['privmsgs_text']));
$tmpmsg = wordwrap($tmpmsg,78,$crlf);
$from = ($folder=='inbox' || $folder=='savebox') ? $lang['From'] : $lang['To'];
$pmtext .= "------------------------------------------------------------------------------".$crlf;
$pmtext .= $lang['Mailbox'].": ".$userdata['username'].$crlf;
$pmtext .= $from.": ".$db_row['username'].$crlf;
$pmtext .= $lang['Posted'].": ".date($user_dateformat,$db_row['privmsgs_date']).$crlf;
$pmtext .= $lang['Subject'].": ".$db_row['privmsgs_subject'].$crlf.$crlf;
$pmtext .= $tmpmsg.$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("YmdHis",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($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 ]----------------------------------------------
#
Gruß, Norbert
Re: PN Nachrichten auf den Pc speichern
Hallo an alle Hardcore-2.0-User,
mir ist aufgefallen, daß auch noch BB-Code ausgegeben wurde, z.B. Bilder und URL. Ich habe den Mod nun so weit hingebogen, daß weder BB-Code noch andere Sonderzeichen in den PN erscheinen. Die Anführungszeichen werden korrekt ersetzt. Eventuelle Zitate werden durch [Zitatanfang]: und [Zitatende] gekennzeichnet, auch wenn Großbuchstaben und Leerzeichen im Usernamen sind. Falls jemandem noch irgendwelche Sonderzeichen im Text auffallen sollten, einfach noch eine preg_replace-Zeile unten hinzufügen.
Suche:
Ersetze durch:
mir ist aufgefallen, daß auch noch BB-Code ausgegeben wurde, z.B. Bilder und URL. Ich habe den Mod nun so weit hingebogen, daß weder BB-Code noch andere Sonderzeichen in den PN erscheinen. Die Anführungszeichen werden korrekt ersetzt. Eventuelle Zitate werden durch [Zitatanfang]: und [Zitatende] gekennzeichnet, auch wenn Großbuchstaben und Leerzeichen im Usernamen sind. Falls jemandem noch irgendwelche Sonderzeichen im Text auffallen sollten, einfach noch eine preg_replace-Zeile unten hinzufügen.
Suche:
Code: Alles auswählen
$privbbcode_uid = $db_row['privmsgs_bbcode_uid'];
$tmpmsg = preg_replace('/\[.*'.$privbbcode_uid.'\]/U', '', strip_tags($db_row['privmsgs_text']));
Code: Alles auswählen
$privbbcode_uid = $db_row['privmsgs_bbcode_uid'];
$tmpmsg = preg_replace('/\[img:[a-z0-9]{10,}\].*?\[\/img:[a-z0-9]{10,}\]/', ' ', strip_tags($db_row['privmsgs_text']));
$tmpmsg = preg_replace('/\[url\]|\[\/url\]/si', '', $tmpmsg);
$tmpmsg = preg_replace('/\[\/?url(=.*?)?\]/', '', $tmpmsg);
$tmpmsg = preg_replace('/\"/si', '"', $tmpmsg);
$tmpmsg = preg_replace('/\&/si', '&', $tmpmsg);
$tmpmsg = preg_replace('/\[b:[a-z0-9]{10,}\]|\[\/b:[a-z0-9]{10,}\]/', '', $tmpmsg);
$tmpmsg = preg_replace('/\[u:[a-z0-9]{10,}\]|\[\/u:[a-z0-9]{10,}\]/', '', $tmpmsg);
$tmpmsg = preg_replace('/\[quote:[a-z0-9="A-Z a-z0-9]{10,}\]/', '[Zitatanfang]: ', $tmpmsg);
$tmpmsg = preg_replace('/\[\/quote:[a-z0-9]{10,}\]/', '[Zitatende]', $tmpmsg);
Gruß, Norbert
- Dungeonwatcher
- Mitglied
- Beiträge: 635
- Registriert: 11.07.2004 10:04
- Wohnort: Berlin
Re:
Hi!
Bye
Hat dies zufälligerweise jemand gelöst und verrät auch noch wie?John Doe hat geschrieben: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.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"; }
Bye