#1342 #1343 #1345 #1346 #1349 git-svn-id: http://78.47.251.156/svn/dev/sterntours-3@3340 f459cee4-fb09-11de-96c3-f9c5f16c3c76
This commit is contained in:
parent
27d2713283
commit
652eeb16cb
27 changed files with 994 additions and 204 deletions
|
|
@ -13,6 +13,8 @@ use AppBundle\Form\TtSearchRequestType;
|
|||
use AppBundle\Listener\KernelControllerListener;
|
||||
use Doctrine\ORM\EntityManager;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use AppBundle\Util;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
/**
|
||||
* Controller for CMS pages. CMS pages are represented by Page instances (i.e. entries of the page database table).
|
||||
|
|
@ -121,6 +123,53 @@ class CmsController extends Controller
|
|||
]);
|
||||
}
|
||||
|
||||
public function pdfAction(Page $page)
|
||||
{
|
||||
$travelProgram = $page->getTravelProgram();
|
||||
$program_id = $travelProgram->getId();
|
||||
|
||||
if($program_id != NULL)
|
||||
{
|
||||
|
||||
$url = Util::getBaseUrl().$page->getUrlPath();
|
||||
|
||||
// Initialisierung
|
||||
$pdfObj = $this->container->get('app.pdf');
|
||||
$pdfObj->SetMargins(PDF_MARGIN_LEFT, 40, PDF_MARGIN_RIGHT);
|
||||
$pdfObj->SetAutoPageBreak(true, 65);
|
||||
$pdfObj->AddPage();
|
||||
|
||||
// Erzeugen des HTML über das Twig-Template
|
||||
$pageHTML = $this->render('default/pages/cms/travelProgramPDF.html.twig', [
|
||||
'base_dir' => realpath($this->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
|
||||
'page' => $page,
|
||||
'show_offers_sidebar_widget' => false,
|
||||
'travel_program' => $page->getTravelProgram()
|
||||
]);
|
||||
|
||||
// Filtern von Hyper-Links
|
||||
$filteredContent = preg_replace('#<p><a(.*)>(.*)</a></p>#Uis', '', $pageHTML->getContent());
|
||||
$filteredContent = preg_replace('#<a(.*)>#Uis', '', $filteredContent);
|
||||
$filteredContent = preg_replace('#</a>#Uis', '', $filteredContent);
|
||||
$filteredContent = str_replace('*', '<img src="https://www.stern-tours.de/images/icons/star-mini.png" />', $filteredContent);
|
||||
|
||||
// Schreiben des HTML
|
||||
$pdfObj->writeHTML('<strong>Reiseangebot zu finden unter:</strong><br /><a href="'.$url.'"style="text-decoration: none!; font-size: 10px; color: black;">'.$url.'</a><br />');
|
||||
$pdfObj->writeHTML($filteredContent);
|
||||
|
||||
// Ersetzen der Umlaute
|
||||
$germanLetters = array("/ä/","/ö/","/ü/","/Ä/","/Ö/","/Ü/","/ß/");
|
||||
$replace = array("ae","oe","ue","Ae","Oe","Ue","ss");
|
||||
$filename = preg_replace($germanLetters, $replace, $travelProgram->getTitle());
|
||||
|
||||
header('Link: <'.$travelProgram->getUrl().'>; rel="canonical"');
|
||||
|
||||
$pdfObj->Output($filename.'.pdf', 'D');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param Page $page
|
||||
*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue