<?php
namespace App\Controller;
use App\Helpers\HomePageFetcher;
use Exception;
use Pimcore\Targeting\VisitorInfoStorageInterface;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\Routing\RouterInterface;
class ProductController extends DefaultFrontendController
{
public function __construct(
protected RouterInterface $router,
VisitorInfoStorageInterface $visitorInfoStorage
) {
parent::__construct($visitorInfoStorage);
}
/**
* @Template
* @param Request $request
* @return array
* @throws Exception
*
*/
public function singleAction(Request $request): array
{
$product = $this->getDocumentEditable('relation', 'product')->getElement();
if ($product) {
$this->addAreaBrickData('faq-brick', [
'faqs' => $product->getFaqs(),
'faqs_source' => "Product",
]);
}
/** @see SpecificationSheetController::singlePdfAction() */
//$homePageForThisLanguage = HomePageFetcher::homePages()[$request->getLocale() ?? "en"] ?? null;
//$specSheet = $product ? $homePageForThisLanguage->getUrl() . "product-download-sheet/" . $product->getId() : null;
$specSheetUrl = $product
? $this->router->generate('product_spec_sheet', ['_locale' => $request->getLocale() ?? 'en', 'product' => $product->getId()])
: null;
$data = parent::data($request);
$data['product'] = $product;
$data['linkToSpecificationSheet'] = $specSheetUrl;
if ($product && $product->getDefaultFeaturedImage()) {
$data['page']['og']['image'] = $product->getDefaultFeaturedImage()->getFullPath();
}
return $data;
}
}