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:
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 ]----------------------------------------------
#