Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.39 veröffentlicht (02.06.25)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
[NG] PMs exportieren in html
#1
Es kommt eine leere Seite:
Zitat:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Wenn es keine gibt, kommt die passende Fehlermeldung. TXT und CSV geht
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
#2
Der Fehler ist bekannt.

Versuche es so:

Öffne die Datei private.php und suche nach
PHP-Code:
elseif($mybb->input['action'] == "do_export")
{
$plugins->run_hooks("private_do_export_start");
$lang->private_messages_for = sprintf($lang->private_messages_for, $mybb->user['username']);
$exdate = mydate($mybb->settings['dateformat'], time(), 0, 0);
$extime = mydate($mybb->settings['timeformat'], time(), 0, 0);
$lang->exported_date = sprintf($lang->exported_date, $exdate, $extime);
$foldersexploded = explode("$%%$", $mybb->user['pmfolders']);
if(
$mybb->input['pmid'])
{
$wsql = "pmid='".intval($mybb->input['pmid'])."' AND uid='".$mybb->user[uid]."'";
}
else
{
if(
$mybb->input['daycut'] && ($mybb->input['dayway'] != "all"))
{
$datecut = time()-($daycut * 86400);
$wsql = "pm.dateline";
if(
$mybb->input['dayway'] == "older")
{
$wsql .= "<=";
}
elseif(
$mybb->input['dayway'] == "newer")
{
$wsql .= ">=";
}
$wsql .= "'$datecut'";
}
else
{
$wsql = "1=1";
}
if(
is_array($mybb->input['exportfolders']))
{
reset($mybb->input['exportfolders']);
while(list(
$key, $val) = each($mybb->input['exportfolders']))
{
$val = addslashes($val);
if(
$val == "all")
{
$folderlst = "";
break;
}
else
{
if(!
$folderlst)
{
$folderlst = " AND pm.folder IN ('$val'";
}
else
{
$folderlst .= ",'$val'";
}
}
}
if(
$folderlst)
{
$folderlst .= ")";
}
$wsql .= "$folderlst";
}
else
{
error($lang->error_pmnoarchivefolders);
}
if(
$mybb->input['exportunread'] != "yes")
{
$wsql .= " AND pm.status!='0'";
}
}
if(
$mybb->input['exporttype'] != "html" && $mybb->input['exporttype'] != "csv")
{
$exporttype = "txt";
}
$query = $db->query("SELECT pm.*, fu.username AS fromusername, tu.username AS tousername FROM ".TABLE_PREFIX."privatemessages pm LEFT JOIN ".TABLE_PREFIX."users fu ON (fu.uid=pm.fromid) LEFT JOIN ".TABLE_PREFIX."users tu ON (tu.uid=pm.toid) WHERE $wsql AND pm.uid='".$mybb->user[uid]."' ORDER BY pm.folder ASC, pm.dateline DESC");
$numpms = $db->num_rows($query);
if(!
$numpms)
{
error($lang->error_nopmsarchive);
}
while(
$message = $db->fetch_array($query))
{
if(
$message['folder'] == 2 || $message['folder'] == 3)
{
// Sent Items or Drafts Folder Check
if($message['toid'])
{
$tofromuid = $message['toid'];
$tofromusername = "<a href=\"member.php?action=profile&uid=$tofromuid\">$message[tousername]</a>";
}
else
{
$tofromusername = $lang->not_sent;
}
$tofrom = $lang->to;
}
else
{
$tofromuid = $message['fromid'];
$tofromusername = "<a href=\"member.php?action=profile&uid=$tofromuid\">$message[fromusername]</a>";
if(
$tofromuid == -2)
{
$tofromusername = "MyBB Engine";
}
$tofrom = $lang->from;
}
if(
$tofromuid == -2)
{
$message['fromusername'] = "MyBB Engine";
}
if(!
$message['toid'])
{
$message['tousername'] = $lang->not_sent;
}

$message['subject'] = $message['subject'];
if(
$message['folder'] != "3")
{
$senddate = mydate($mybb->settings['dateformat'], $message['dateline'], 0, 0);
$sendtime = mydate($mybb->settings['timeformat'], $message['dateline'], 0, 0);
$senddate .= " $lang->at $sendtime";
}
else
{
$senddate = $lang->not_sent;
}
if(
$mybb->input['exporttype'] == "html")
{
$message['message'] = postify($message['message'], $mybb->settings['pmsallowhtml'], $mybb->settings['pmsallowmycode'], "no", $mybb->settings['pmsallowimgcode']);
// do me code
if($mybb->settings['pmsallowmycode'] != "no")
{
$message['message'] = domecode($message['message'], $message['username']);
}
}
if(
$mybb->input['exporttype'] == "txt" || $mybb->input['exporttype'] == "csv")
{
$message['message'] = str_replace("\r\n", "\n", $message['message']);
$message['message'] = str_replace("\n", "\r\n", $message['message']);
}
if(!
$donefolder[$message['folder']])
{
reset($foldersexploded);
while(list(
$key, $val) = each($foldersexploded))
{
$folderinfo = explode("**", $val, 2);
if(
$folderinfo[0] == $message['folder'])
{
$foldername = $folderinfo[1];
if(
$exporttype != "csv")
{
eval(
"\$pmsdownload .= \"".$templates->get("private_archive_".$exporttype."_folderhead", 1, 0)."\";");
}
$donefolder[$message['folder']] = 1;
}
}
}
eval(
"\$pmsdownload .= \"".$templates->get("private_archive_".$exporttype."_message", 1, 0)."\";");
$ids .= ",'$message[pmid]'";
}
$query = $db->query("SELECT css FROM ".TABLE_PREFIX."themes WHERE tid='$theme[tid]'");
$css = $db->result($query, 0);

eval(
"\$archived = \"".$templates->get("private_archive_".$exporttype, 1, 0)."\";");
if(
$mybb->input['deletepms'] == "yes")
{
// delete the archived pms
$db->query("DELETE FROM ".TABLE_PREFIX."privatemessages WHERE pmid IN (''$ids)");
}
if(
$mybb->input['exporttype'] == "html")
{
$filename = "pm-archive.html";
}
elseif(
$mybb->input['exporttype'] == "csv")
{
$filename = "pm-archive.csv";
}
else
{
$filename = "pm-archive.txt";
}
$archived = ereg_replace("\\\'","'",$archived);
header("Content-disposition: filename=$filename");
header("Content-type: unknown/unknown");
$plugins->run_hooks("private_do_export_end");
if(
$mybb->input['exporttype'] == "html")
{
outputpage($archived);
}
else
{
echo
$archived;
}
}
Ersetzen durch
PHP-Code:
elseif($mybb->input['action'] == "do_export")
{
$plugins->run_hooks("private_do_export_start");
$lang->private_messages_for = sprintf($lang->private_messages_for, $mybb->user['username']);
$exdate = mydate($mybb->settings['dateformat'], time(), 0, 0);
$extime = mydate($mybb->settings['timeformat'], time(), 0, 0);
$lang->exported_date = sprintf($lang->exported_date, $exdate, $extime);
$foldersexploded = explode("$%%$", $mybb->user['pmfolders']);
if(
$mybb->input['pmid'])
{
$wsql = "pmid='".intval($mybb->input['pmid'])."' AND uid='".$mybb->user[uid]."'";
}
else
{
if(
$mybb->input['daycut'] && ($mybb->input['dayway'] != "all"))
{
$datecut = time()-($daycut * 86400);
$wsql = "pm.dateline";
if(
$mybb->input['dayway'] == "older")
{
$wsql .= "<=";
}
elseif(
$mybb->input['dayway'] == "newer")
{
$wsql .= ">=";
}
$wsql .= "'$datecut'";
}
else
{
$wsql = "1=1";
}
if(
is_array($mybb->input['exportfolders']))
{
reset($mybb->input['exportfolders']);
while(list(
$key, $val) = each($mybb->input['exportfolders']))
{
$val = addslashes($val);
if(
$val == "all")
{
$folderlst = "";
break;
}
else
{
if(!
$folderlst)
{
$folderlst = " AND pm.folder IN ('$val'";
}
else
{
$folderlst .= ",'$val'";
}
}
}
if(
$folderlst)
{
$folderlst .= ")";
}
$wsql .= "$folderlst";
}
else
{
error($lang->error_pmnoarchivefolders);
}
if(
$mybb->input['exportunread'] != "yes")
{
$wsql .= " AND pm.status!='0'";
}
}
$query = $db->query("SELECT pm.*, fu.username AS fromusername, tu.username AS tousername FROM ".TABLE_PREFIX."privatemessages pm LEFT JOIN ".TABLE_PREFIX."users fu ON (fu.uid=pm.fromid) LEFT JOIN ".TABLE_PREFIX."users tu ON (tu.uid=pm.toid) WHERE $wsql AND pm.uid='".$mybb->user[uid]."' ORDER BY pm.folder ASC, pm.dateline DESC");
$numpms = $db->num_rows($query);
if(!
$numpms)
{
error($lang->error_nopmsarchive);
}
while(
$message = $db->fetch_array($query))
{
if(
$message['folder'] == 2 || $message['folder'] == 3)
{
// Sent Items or Drafts Folder Check
if($message['toid'])
{
$tofromuid = $message['toid'];
$tofromusername = "<a href=\"member.php?action=profile&uid=$tofromuid\">$message[tousername]</a>";
}
else
{
$tofromusername = $lang->not_sent;
}
$tofrom = $lang->to;
}
else
{
$tofromuid = $message['fromid'];
$tofromusername = "<a href=\"member.php?action=profile&uid=$tofromuid\">$message[fromusername]</a>";
if(
$tofromuid == -2)
{
$tofromusername = "MyBB Engine";
}
$tofrom = $lang->from;
}
if(
$tofromuid == -2)
{
$message['fromusername'] = "MyBB Engine";
}
if(!
$message['toid'])
{
$message['tousername'] = $lang->not_sent;
}

$message['subject'] = $message['subject'];
if(
$message['folder'] != "3")
{
$senddate = mydate($mybb->settings['dateformat'], $message['dateline'], 0, 0);
$sendtime = mydate($mybb->settings['timeformat'], $message['dateline'], 0, 0);
$senddate .= " $lang->at $sendtime";
}
else
{
$senddate = $lang->not_sent;
}
if(
$mybb->input['exporttype'] == "html")
{
$message['message'] = postify($message['message'], $mybb->settings['pmsallowhtml'], $mybb->settings['pmsallowmycode'], "no", $mybb->settings['pmsallowimgcode']);
// do me code
if($mybb->settings['pmsallowmycode'] != "no")
{
$message['message'] = domecode($message['message'], $message['username']);
}
}
if(
$mybb->input['exporttype'] == "txt" || $mybb->input['exporttype'] == "csv")
{
$message['message'] = preg_replace("#(\r\n|\r|\n)#s", "\r\n", $message['message']);
}
if(!
$donefolder[$message['folder']])
{
reset($foldersexploded);
while(list(
$key, $val) = each($foldersexploded))
{
$folderinfo = explode("**", $val, 2);
if(
$folderinfo[0] == $message['folder'])
{
$foldername = $folderinfo[1];
if(
$mybb->input['exporttype'] != "csv")
{
eval(
"\$pmsdownload .= \"".$templates->get("private_archive_".$mybb->input['exporttype']."_folderhead", 1, 0)."\";");
}
$donefolder[$message['folder']] = 1;
}
}
}
eval(
"\$pmsdownload .= \"".$templates->get("private_archive_".$mybb->input['exporttype']."_message", 1, 0)."\";");
$ids .= ",'$message[pmid]'";
}
$query = $db->query("SELECT css FROM ".TABLE_PREFIX."themes WHERE tid='$theme[tid]'");
$css = $db->result($query, 0);

eval(
"\$archived = \"".$templates->get("private_archive_".$mybb->input['exporttype'], 1, 0)."\";");
if(
$mybb->input['deletepms'] == "yes")
{
// delete the archived pms
$db->query("DELETE FROM ".TABLE_PREFIX."privatemessages WHERE pmid IN (''$ids)");
}
if(
$mybb->input['exporttype'] == "html")
{
$filename = "pm-archive.html";
$contenttype = "text/html";
}
elseif(
$mybb->input['exporttype'] == "csv")
{
$filename = "pm-archive.csv";
$contenttype = "application/octet-stream";
}
else
{
$filename = "pm-archive.txt";
$contenttype = "text/plain";
}
$archived = ereg_replace("\\\'","'",$archived);
header("Content-Disposition: attachment; filename=$filename");
header("Content-type: $contenttype");
$plugins->run_hooks("private_do_export_end");
if(
$mybb->input['exporttype'] == "html")
{
outputpage($archived);
}
else
{
echo
$archived;
}
}

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
#3
Danke für den Patch,
noch ein Fehler : (?)
wenn ich beim Exportieren angebe :Nachrichten "älter als 30 Tage"
bekomme ich ein Ergebnis als hätte ich : "jünger als 30 Tage"
eingegeben.
Auch Zahnschmerzen tun weh ... ( jetzt nicht mehr)


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  ACP Theme Exportieren toto 4 3.500 01.05.2005, 17:46
Letzter Beitrag: toto