/**
*/
public function downloadAll()
{
global $page_output, $session;
$headers = $this->_contents->getHeader();
$zipfile = trim(preg_replace('/[^\\pL\\pN-+_. ]/u', '_', $headers->getValue('subject')), ' _');
if (empty($zipfile)) {
$zipfile = _("attachments.zip");
} else {
$zipfile .= '.zip';
}
$page_output->disableCompression();
$session->close();
$tosave = array();
foreach ($this->_contents->downloadAllList() as $val) {
$mime = $this->_getRawDownloadPart($val);
if (!($name = $mime->getName(true))) {
$name = sprintf(_("part %s"), $val);
}
$tosave[] = array('data' => $mime->getContents(array('stream' => true)), 'name' => $name);
}
if (empty($tosave)) {
return array();
}
return array('data' => Horde_Compress::factory('Zip')->compress($tosave, array('stream' => true)), 'name' => $zipfile, 'type' => 'application/zip');
}