コード例 #1
0
ファイル: preview.php プロジェクト: avisota/contao-message
        if (!$message) {
            header("HTTP/1.0 404 Not Found");
            echo '<h1>404 Not Found</h1>';
            exit;
        }
        $GLOBALS['TL_LANGUAGE'] = $message->getLanguage();
        $event = new \Avisota\Contao\Core\Event\CreateFakeRecipientEvent($message);
        $eventDispatcher->dispatch(\Avisota\Contao\Core\CoreEvents::CREATE_FAKE_RECIPIENT, $event);
        $recipient = $event->getRecipient();
        if ($message->getCategory()->getViewOnlinePage()) {
            // Fixme can rmove this?
            $event = new LoadLanguageFileEvent('avisota_message');
            $eventDispatcher->dispatch(ContaoEvents::SYSTEM_LOAD_LANGUAGE_FILE, $event);
            $url = sprintf($translator->translate('viewOnline', 'avisota_message'), sprintf('%ssystem/modules/avisota-message/web/preview.php?id=%s', \Environment::get('base'), $message->getId()));
        } else {
            $url = false;
        }
        $additionalData = array('view_online_link' => $url);
        /** @var \Avisota\Contao\Message\Core\Renderer\MessageRendererInterface $renderer */
        $renderer = $container['avisota.message.renderer'];
        $messageTemplate = $renderer->renderMessage($message);
        $messagePreview = $messageTemplate->renderPreview($recipient, $additionalData);
        header('Content-Type: ' . $messageTemplate->getContentType() . '; charset=' . $messageTemplate->getContentEncoding());
        header('Content-Disposition: inline; filename="' . $messageTemplate->getContentName() . '"');
        echo $messagePreview;
        exit;
    }
}
$preview = new preview();
$preview->run();