<?php
namespace App\Controller\Site;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Annotation\Route;
class ContentController extends Controller
{
/**
* @Route("/", name="raiz")
*/
public function indexRaiz(Request $request)
{
return $this->redirectToRoute('homepage', ['_locale' => 'es']);
}
/**
* @Route("/{_locale}/", name="homepage", methods={"GET","POST"}, requirements={"_locale" = "es|en"})
*/
public function index(Request $request)
{
$em = $this->getDoctrine()->getManager();
$page = $em->getRepository('App\Entity\Page')->findOneBySlug('inicio');
return $this->render('site/content/index.html.twig', [
'page' => $page,
]);
}
/**
* @Route("/{_locale}/oferta", name="landing", requirements={"_locale" = "es|en"})
*/
public function landing(Request $request)
{
$em = $this->getDoctrine()->getManager();
$page = $em->getRepository('App\Entity\Page')->findOneBySlug('landing');
return $this->render('site/content/landing.html.twig', [
'page' => $page,
]);
}
/**
* @Route("/{_locale}/oferta-thanks", name="landing_thanks", requirements={"_locale" = "es|en"})
*/
public function landingThanks(Request $request)
{
$em = $this->getDoctrine()->getManager();
$page = $em->getRepository('App\Entity\Page')->findOneBySlug('landing');
return $this->render('site/content/landing-thanks.html.twig', [
'page' => $page,
]);
}
/**
* Example:
* $this->editDocument([
* '[name]' => 'Adam Frame',
* '[address]' => '14 Eton Dorney Walk, Riverside Close, Andover SP11 6YL',
* ]);.
*
* TODO: Add Filename as parameter
*
* @param bool $replacements
*/
public function editDocument($replacements = false)
{
$template_file_name = __DIR__.'/../../../template.docx';
if (!is_file($template_file_name)) {
exit('No file');
}
$rand_no = rand(111111, 999999);
$fileName = 'results_'.$rand_no.'.docx';
$folder = __DIR__.'/../../../pdf/results_';
$full_path = $folder.'/'.$fileName;
try {
if (!file_exists($folder)) {
mkdir($folder);
}
//Copy the Template file to the Result Directory
copy($template_file_name, $full_path);
// add calss Zip Archive
$zip_val = new \ZipArchive();
//Docx file is nothing but a zip file. Open this Zip File
if (true == $zip_val->open($full_path)) {
// In the Open XML Wordprocessing format content is stored.
// In the document.xml file located in the word directory.
$key_file_name = 'word/document.xml';
$message = $zip_val->getFromName($key_file_name);
$timestamp = date('d-M-Y H:i:s');
// this data Replace the placeholders with actual values
$message = str_replace('[dni]', 'Replaced dni', $message);
if (is_array($replacements)) {
foreach ($replacements as $string => $replacement) {
$message = str_replace($string, $replacement, $message);
}
}
//Replace the content with the new content created above.
$zip_val->addFromString($key_file_name, $message);
$zip_val->close();
}
} catch (Exception $exc) {
$error_message = 'Error creating the Word Document';
}
}
/**
* @Route("/{_locale}/personalizada", name="personalized_landing", methods={"GET"}, requirements={"_locale" = "es|en"})
*/
public function personalizedLanding(Request $request)
{
$em = $this->getDoctrine()->getManager();
$page = $em->getRepository('App\Entity\Page')->findOneBySlug('personalizada');
return $this->render('site/content/personalized_landing.html.twig', [
'page' => $page,
]);
}
/**
* @Route("/{_locale}/autonomos", name="self_employed_landing", methods={"GET"}, requirements={"_locale" = "es|en"})
*/
public function selfEmployedLanding(Request $request)
{
$em = $this->getDoctrine()->getManager();
$page = $em->getRepository('App\Entity\Page')->findOneBySlug('autonomos');
return $this->render('site/content/self_employed_landing.html.twig', [
'page' => $page,
]);
}
/**
* @Route("/{_locale}/pymes", name="small_company_landing", methods={"GET"}, requirements={"_locale" = "es|en"})
*/
public function smallCompanyLanding(Request $request)
{
$em = $this->getDoctrine()->getManager();
$page = $em->getRepository('App\Entity\Page')->findOneBySlug('pymes');
return $this->render('site/content/small_company_landing.html.twig', [
'page' => $page,
]);
}
/**
* @Route("/{_locale}/nominas", name="salaries_landing", methods={"GET"}, requirements={"_locale" = "es|en"})
*/
public function salariesLanding(Request $request)
{
$em = $this->getDoctrine()->getManager();
$page = $em->getRepository('App\Entity\Page')->findOneBySlug('nominas');
return $this->render('site/content/salaries_landing.html.twig', [
'page' => $page,
'imageCabecera' => 'fondo-hojas.png',
]);
}
/**
* @Route("/{_locale}/irpf", name="tax_landing", methods={"GET"}, requirements={"_locale" = "es|en"})
*/
public function taxLanding(Request $request)
{
$em = $this->getDoctrine()->getManager();
$page = $em->getRepository('App\Entity\Page')->findOneBySlug('irpf');
return $this->render('site/content/tax_landing.html.twig', [
'page' => $page,
'imageCabecera' => 'fondo-hojas.png',
]);
}
}