<?php
namespace App\Controller;
use App\Service\SolrService;
use Pimcore\Controller\FrontendController;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
use Symfony\Component\Routing\Annotation\Route;
class DefaultController extends FrontendController
{
/**
* @Template
* @param Request $request
* @return array
*/
public function defaultAction(Request $request)
{
return [];
}
public function contactAction(Request $request)
{
// Related Products
$list = new \Pimcore\Model\DataObject\Ansprechpartner\Listing();
//$list->setCondition("o_id > ?", [$product->getId()]);
//$list->setLimit(3);
$ansprechpartner = $list->load();
$countries = [];
foreach ($ansprechpartner as $ap) {
$machineTypes = $ap->getMachineType();
ksort($machineTypes);
foreach ($machineTypes as $mT) {
$countries[$ap->getCountry()][$mT][] = $ap;
}
}
ksort($countries);
// Default Ansprechpartner, wenn in diesem Land keiner gesetzt ist
foreach ($countries as $k => $c) {
if (!isset($countries[$k]["cutting"])) {
$ap = new \Pimcore\Model\DataObject\Ansprechpartner;
$ap->setTitel("Vertrieb Stanzmaschinen");
$ap->setPhone("+49 6331 713 100");
$ap->setFax("+49 6331 713 120");
$ap->setEmail("sales@schoen-sandt.de");
$countries[$k]["cutting"][] = $ap;
}
}
$request = Request::createFromGlobals();
if ($request->isMethod('POST')) {
$recaptchaSecretsetting = \Pimcore\Model\WebsiteSetting::getByName('recaptchaSecret');
$recaptchaSecret = $recaptchaSecretsetting->getData();
$recaptcha = new \ReCaptcha\ReCaptcha($recaptchaSecret);
$resp = $recaptcha->setExpectedHostname($request->getHttpHost())
->verify($request->get('g-recaptcha-token'), $request->getClientIp());
if ($resp->isSuccess()) {
$parameters = $request->request->all();
if (isset($parameters['name']) && $parameters['name'] != "") {
$parameters['message'] = nl2br($parameters['message']);
try {
$mail = new \Pimcore\Mail();
$mail->setDocument('/email/kontakt');
$mail->setParams($parameters);
$mail->send();
// $info->getView()->success = true;
} catch (\Exception $e) {
echo $e->getMessage();
exit;
}
}
} else {
$errors = $resp->getErrorCodes();
\Pimcore\Log\Simple::log('GoogleReCaptacha', 'ERROR: ' . print_r($errors, true) . print_r($recaptcha, true). print_r($resp, true));
// $info->getView()->success = false;
}
}
// $info->getView()->countries = $countries;
return $this->render('includes/kontakt-formular.html.twig', [
'countries' => $countries,
]);
}
/**
* @Route("/search-pages", name="ajax_search")
*/
public function searchAction(Request $request, SolrService $solrService)
{
$results = array();
$language = $request->get("language");
$keywords = $request->get("keywords");
$solr_results = $solrService->search($keywords, $language);
foreach ($solr_results as $result) {
$results[$result["id"]]["url"] = $result["url_txt_$language"];
$results[$result["id"]]["title"] = $result["title_txt_$language"];
}
return new JsonResponse($results);
}
}