<?php
declare(strict_types=1);
namespace App\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Contracts\Translation\TranslatorInterface;
/**
* @Route(requirements={"_locale": "en|de|sk"})
*/
class ServiceController extends CommonController
{
/**
* @Route(
* "/our-services"
* )
* @Route(
* "/{_locale}/our-services",
* name="service_index"
* )
*/
public function index(Request $request, TranslatorInterface $translator): Response
{
return $this->render(
'service/index.html.twig',
[
'meta_keywords' => 'software house,custom software,consulting,enterprise solutions'
. ',web applications,mobile applications',
'meta_description' => 'We are a european software house. We offer custom software '
. 'development, consulting and enterprise solutions.',
'lang' => $request->getLocale(),
'menu' => $this->getMenuItems($request),
'year' => date('Y'),
'eLang' => 'sk',
'failLang' => 'sk',
'sendLang' => 'sk',
'nameAlert' => 'sk',
'emailAlert' => 'sk',
'messageAlert' => 'sk',
'header' => [
'title' => $translator->trans('Our Services'),
'section' => $translator->trans('Portfolio'),
],
'services' => $this->config->getPortfolio(),
'jobsCount' => $this->config->getOpenJobPositionsCount(),
]
);
}
/**
* @Route(
* "/{_locale}/services/{uri}",
* name="service_portfolio",
* requirements={"uri": "consulting|development|solutions"}
* )
*/
public function portfolio(Request $request, string $uri): Response
{
$info = [];
$categories = $this->config->getPortfolio();
foreach ($categories as $category) {
if ($category['filename'] === $uri) {
$info = $category;
}
}
return $this->render(
'service/portfolio.html.twig',
[
'meta_keywords' => 'software house,custom software,consulting,enterprise solutions'
. ',web applications,mobile applications',
'meta_description' => 'We are a european software house. We offer custom software '
. 'development, consulting and enterprise solutions.',
'lang' => $request->getLocale(),
'menu' => $this->getMenuItems($request),
'year' => date('Y'),
'eLang' => 'sk',
'failLang' => 'sk',
'sendLang' => 'sk',
'nameAlert' => 'sk',
'emailAlert' => 'sk',
'messageAlert' => 'sk',
'header' => [
'title' => $info['title'][$request->getLocale()],
'section' => 'Portfolio',
],
'portfolio' => $info,
'services' => $this->config->getPortfolio($uri),
'jobsCount' => $this->config->getOpenJobPositionsCount(),
]
);
}
/**
* @Route(
* "/{_locale}/services/{type}/{uri}",
* name="service_detail",
* requirements={"type": "consulting|development|solutions"}
* )
*/
public function detail(Request $request, string $type, string $uri): Response
{
$service = $this->config->getPortfolioItem($type, $uri);
return $this->render(
'service/detail.html.twig',
[
'meta_keywords' => 'software house,custom software,consulting,enterprise solutions'
. ',web applications,mobile applications',
'meta_description' =>
isset($service['item']['desc'][$request->getLocale()]) ?
$service['item']['desc'][$request->getLocale()]['first-block']['desc']
: 'We are a european software house. We offer custom software '
. 'development, consulting and enterprise solutions.',
'lang' => $request->getLocale(),
'menu' => $this->getMenuItems($request),
'year' => date('Y'),
'eLang' => 'sk',
'failLang' => 'sk',
'sendLang' => 'sk',
'nameAlert' => 'sk',
'emailAlert' => 'sk',
'messageAlert' => 'sk',
'header' => [
'title' => $service['item']['title'][$request->getLocale()] ?? 'N/A',
'section' => $service['item']['client']['title'] ?? 'N/A',
],
'service' => $service,
'serviceType' => $type,
'jobsCount' => $this->config->getOpenJobPositionsCount(),
]
);
}
}