Files
server/usr/share/psa-horde/imp/lib/Compose/View.php
2026-01-07 20:52:11 +01:00

63 lines
1.7 KiB
PHP

<?php
/**
* Copyright 2012-2017 Horde LLC (http://www.horde.org/)
*
* See the enclosed file COPYING for license information (GPL). If you
* did not receive this file, see http://www.horde.org/licenses/gpl.
*
* @category Horde
* @copyright 2012-2017 Horde LLC
* @license http://www.horde.org/licenses/gpl GPL
* @package IMP
*/
/**
* Provides logic to format compose message data for delivery to the browser.
*
* @author Michael Slusarz <slusarz@horde.org>
* @category Horde
* @copyright 2012-2017 Horde LLC
* @license http://www.horde.org/licenses/gpl GPL
* @package IMP
*/
class IMP_Compose_View
{
protected $_compose;
public function __construct($cache_id)
{
$this->_compose = $GLOBALS['injector']->getInstance('IMP_Factory_Compose')->create($cache_id);
}
/**
* @throws IMP_Exception
*/
public function composeAttachPreview($id, $autodetect = false,
$ctype = null)
{
if (!($atc = $this->_compose[$id]) || !($mime = $atc->getPart(true))) {
$e = new IMP_Exception(_("Could not display attachment data."));
$e->logged = true;
throw $e;
}
$mime->setMimeId($id);
$contents = new IMP_Contents($mime);
$render = $contents->renderMIMEPart($id, $contents::RENDER_RAW_FALLBACK, array(
'autodetect' => $autodetect,
'type' => $ctype
));
if (!empty($render)) {
return reset($render);
} elseif ($autodetect) {
$e = new IMP_Exception(_("Could not display attachment data."));
$e->logged = true;
throw $e;
}
return array();
}
}