Exceptions
Exception
Twig\Error\ SyntaxError
Show exception properties
Twig\Error\SyntaxError {#2369 -lineno: 35 -rawMessage: "Unknown "is_mobile" function." -source: Twig\Source {#1245 -code: """ {% extends 'base.html.twig' %}\n \n {% block title %}{{ 'title.page_contact_us'|trans }} | {{ domain_name }}{% endblock %}\n {% block description %}{{ 'description.page_contact_us'|trans({'%domain_name%': domain_name}) }}{% endblock %}\n \n {% block stylesheets %}\n <script src="https://www.google.com/recaptcha/enterprise.js?render={{ google_recaptcha_site_key }}"></script>\n <script>\n function executeRecaptchaAndSubmit() {\n grecaptcha.enterprise.execute('{{ google_recaptcha_site_key }}', {action: 'submit'}).then(function(token) {\n const form = document.getElementById("contact-form");\n const input = document.createElement("input");\n input.type = "hidden";\n input.name = "g-recaptcha-response";\n input.value = token;\n form.appendChild(input);\n form.submit();\n });\n }\n </script>\n {{ parent() }}\n <link rel="stylesheet" href="/frontend/v1/styles/layout_styles_screen.css" type="text/css" media="screen">\n <link rel="stylesheet" href="/frontend/v1/styles/contact_styles.css" type="text/css" media="screen">\n <link rel="stylesheet" href="/frontend/v1/styles/layout_styles_print.css" type="text/css" media="print">\n {% endblock %}\n \n {% block body_id 'contact_us' %}\n \n {% block body %}\n <main>\n <div class="bckImage global-banner__background"></div>\n <div id="main" class="v5-main">\n <!-- ======= BEGIN - WRAP ======= -->\n <div class="wrap">\n {% if is_mobile() %}{% if not is_tablet() %}\n <header class="global-banner">\n <h1 class="global-banner__title">Get in touch</h1>\n <h4 class="global-banner__description">Fill in the contact form on this page and we will get back to you as soon as practical</h4>\n </header>\n {% endif %}{% endif %}\n <div class="global-banner--space"></div>\n {{ include('default/_flash_messages.html.twig') }}\n <section class="v5__container remove--social">\n <div class="v5__row">\n <div class="v5__col v5__col-main v5__col-main--left-padding">\n <div class="mainForm formRedesigned margin-bottom-large form-v5--with-bg sg-redesign form-v5">\n {% if not is_tablet() %}{% if not is_mobile() %}\n <h1 class="form-v5__h1 hide-phone">Get in touch</h1>\n <h2 class="form-v5__desc is--small hide-phone margin-bottom-large">Fill in the contact form on this page and we will get back to you as soon as practical</h2>\n {% endif %}{% endif %}\n <h3 class="form-v5__h3">{{ 'legend.contact_us'|trans }}</h3>\n {{ form_start(form, {'action': path('contact'), 'method': 'POST', attr: {'class': 'form-v5', 'id': 'contact-form'}}) }}\n {{ form_errors(form) }}\n {{ form_row(form._token) }}\n <div class="v5__row">\n <div class="v5__col v5__col-half--lg">\n <div class="v5__row">\n <div class="v5__col v5__col-full">\n <div class="form-v5__wrap">\n {% if form.firstName.vars.errors|length > 0 %}\n {{ form_widget(form.firstName, {'attr': {'autofocus': true}}) }}\n {{ form_errors(form.firstName) }}\n {% else %}\n {{ form_widget(form.firstName) }}\n {% endif %}\n </div>\n </div>\n <div class="v5__col v5__col-full">\n <div class="form-v5__wrap">\n {% if form.lastName.vars.errors|length > 0 %}\n {{ form_widget(form.lastName, {'attr': {'autofocus': true}}) }}\n {{ form_errors(form.lastName) }}\n {% else %}\n {{ form_widget(form.lastName) }}\n {% endif %}\n </div>\n </div>\n <div class="v5__col v5__col-full">\n <div class="form-v5__wrap">\n {% if form.email.vars.errors|length > 0 %}\n {{ form_widget(form.email, {'attr': {'autofocus': true}}) }}\n {{ form_errors(form.email) }}\n {% else %}\n {{ form_widget(form.email) }}\n {% endif %}\n </div>\n </div>\n <div class="v5__col v5__col-full">\n <div class="form-v5__wrap">\n {% if form.phoneNumber.vars.errors|length > 0 %}\n <div class="input-group">\n <span class="input-group-text">+373</span>\n <div class="form-floating flex-grow-1">\n {{ form_widget(form.phoneNumber, {'attr': {'autofocus': true, 'placeholder': 'label.phone_number'}}) }}\n </div>\n </div>\n <div>\n {{ form_errors(form.phoneNumber) }}\n </div>\n {% else %}\n <div class="input-group">\n <span class="input-group-text">+373</span>\n <div class="form-floating flex-grow-1">\n {{ form_widget(form.phoneNumber, {'attr': {'placeholder': 'label.phone_number'}}) }}\n </div>\n </div>\n {% endif %}\n </div>\n </div>\n </div>\n </div>\n <div class="v5__col v5__col-half--lg">\n <div class="v5__row">\n <div class="v5__col v5__col-full">\n <div class="form-v5__wrap">\n {% if form.subject.vars.errors|length > 0 %}\n {{ form_widget(form.subject, {'attr': {'autofocus': true}}) }}\n {{ form_errors(form.subject) }}\n {% else %}\n {{ form_widget(form.subject) }}\n {% endif %}\n </div>\n </div>\n <div class="v5__col v5__col-full">\n <div class="form-v5__wrap msForm__field" data-app="jsCounterApp" data-max="600">\n <div class="form-v5__flex">\n <small class="form-v5__counter hide-phone"><span class="counterNum light_grey">0</span> / 600</small>\n </div>\n {% if form.message.vars.errors|length > 0 %}\n {{ form_widget(form.message, {'attr': {'autofocus': true, 'class': 'msForm__field__input'}}) }}\n {{ form_errors(form.message) }}\n {% else %}\n {{ form_widget(form.message, {'attr': {'cols': '30', 'rows': '5', 'class': 'msForm__field__input'}}) }}\n {% endif %}\n </div>\n </div>\n <div class="v5__col v5__col-full">\n <div class="auto--height msForm__field">\n {{ form_widget(form.accept, {'id': 'fv_acceptTermsCheckboxReq'}) }} \n </div>\n </div>\n <div class="v5__col v5__col-full">\n <div id="requestFormSubmit">\n {{ form_widget(form.submit, {attr: {\n 'class': 'w-100 w-100--mob mainButton button-submit button-submit-2 text-center',\n 'onclick': 'event.preventDefault(); executeRecaptchaAndSubmit();'\n }}) }}\n </div>\n </div>\n </div>\n </div>\n </div>\n {{ form_end(form) }}\n </div>\n <ul class="v5__tick-list no--icon tick-list" style="margin-top:40px;margin-bottom: 80px;">\n <li>{{ 'body.clarifications'|trans({'%domain_name%': domain_name, '%create_company_account%': path('create_company_account')})|raw }}</li>\n </ul>\n </div>\n <div class="v5__col v5__col-sidebar global-banner--space-sidebar">\n <div class="center margin-bottom hide-print">\n <!-- ======= BEGIN - Ad manager ======= -->\n {% if is_mobile() %}\n {% if is_tablet() %}\n <!-- ======= BEGIN - Ads on tablet ======= -->\n \n <!-- ======= END - Ads on tablet ======= -->\n {% else %}\n <!-- ======= BEGIN - Ads on phone ======= -->\n \n <!-- ======= END - Ads on phone ======= -->\n {% endif %}\n {% else %}\n <!-- ======= BEGIN - Ads on computer ======= -->\n \n <!-- ======= END - Ads on computer ======= -->\n {% endif %}\n <!-- ======= END - Ad manager ======= -->\n </div>\n <div class="hide-phone">\n <div class="brokerMainText v5-sidebar similarSearches-wrapper has--border" style="margin-top: 0;">\n <h4>Useful links</h4>\n <div class="similarSearches__item">\n <svg viewBox="0, 0, 20, 20">\n <use xlink:href="/frontend/v1/images/svg/icons.svg#link-thin"></use>\n </svg>\n <a href="{{ path('create_company_account') }}" rel="nofollow">Agent registration</a>\n </div>\n <div class="similarSearches__item">\n <svg viewBox="0, 0, 20, 20">\n <use xlink:href="/frontend/v1/images/svg/icons.svg#link-thin"></use>\n </svg>\n <a href="{{ path('list_real_estate_agencies') }}">Find agents</a>\n </div>\n <div class="similarSearches__item">\n <svg viewBox="0, 0, 20, 20">\n <use xlink:href="/frontend/v1/images/svg/icons.svg#link-thin"></use>\n </svg>\n <a href="{{ path('faq') }}">FAQ</a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </section>\n </div>\n <!-- ======= END - WRAP ======= -->\n </div>\n </main>\n {% endblock %}\n \n {% block javascripts_footer %}\n <script src="/frontend/v1/scripts/layout_scripts.js"></script>\n <script src="/frontend/v1/scripts/scripts_en.js"></script>\n <script src="/frontend/v1/scripts/contact_scripts.js"></script>\n {% endblock %} """ -name: "web/contact.html.twig" -path: "/var/www/vhosts/1007/domains/n46.net/xpanel/templates/web/contact.html.twig" } -phpFile: "/var/www/vhosts/1007/domains/n46.net/xpanel/vendor/twig/twig/src/Parser.php" -phpLine: 462 }
in
templates/web/contact.html.twig
(line 35)
<main><div class="bckImage global-banner__background"></div><div id="main" class="v5-main"><!-- ======= BEGIN - WRAP ======= --><div class="wrap">{% if is_mobile() %}{% if not is_tablet() %}<header class="global-banner"><h1 class="global-banner__title">Get in touch</h1><h4 class="global-banner__description">Fill in the contact form on this page and we will get back to you as soon as practical</h4></header>{% endif %}{% endif %}
in
vendor/twig/twig/src/ExpressionParser/Infix/FunctionExpressionParser.php
->
getFunction
(line 51)
return new MacroReferenceExpression($alias['node']->getNode('var'), $alias['name'], $this->parseCallableArguments($parser, $line, false), $line);}$args = $this->parseNamedArguments($parser, false);$function = $parser->getFunction($name, $line);if ($function->getParserCallable()) {$fakeNode = new EmptyNode($line);$fakeNode->setSourceContext($parser->getStream()->getSourceContext());
in
vendor/twig/twig/src/Parser.php
->
parse
(line 396)
}$token = $this->getCurrentToken();while ($token->test(Token::OPERATOR_TYPE) && ($ep = $this->parsers->getByName(InfixExpressionParserInterface::class, $token->getValue())) && $ep->getPrecedence() >= $precedence) {$this->getStream()->next();$expr = $ep->parse($this, $expr, $token);$this->checkPrecedenceDeprecations($ep, $expr);$token = $this->getCurrentToken();}return $expr;
in
vendor/twig/twig/src/TokenParser/IfTokenParser.php
->
parseExpression
(line 39)
final class IfTokenParser extends AbstractTokenParser{public function parse(Token $token): Node{$lineno = $token->getLine();$expr = $this->parser->parseExpression();$stream = $this->parser->getStream();$stream->expect(Token::BLOCK_END_TYPE);$body = $this->parser->subparse([$this, 'decideIfFork']);$tests = [$expr, $body];$else = null;
in
vendor/twig/twig/src/Parser.php
->
parse
(line 230)
}$this->stream->next();$subparser->setParser($this);$node = $subparser->parse($token);if (!$node) {trigger_deprecation('twig/twig', '3.12', 'Returning "null" from "%s" is deprecated and forbidden by "TokenParserInterface".', $subparser::class);} else {$node->setNodeTag($subparser->getTag());$rv[] = $node;
in
vendor/twig/twig/src/TokenParser/BlockTokenParser.php
->
subparse
(line 46)
$this->parser->setBlock($name, $block = new BlockNode($name, new EmptyNode(), $lineno));$this->parser->pushLocalScope();$this->parser->pushBlockStack($name);if ($stream->nextIf(Token::BLOCK_END_TYPE)) {$body = $this->parser->subparse([$this, 'decideBlockEnd'], true);if ($token = $stream->nextIf(Token::NAME_TYPE)) {$value = $token->getValue();if ($value != $name) {throw new SyntaxError(\sprintf('Expected endblock for block "%s" (but "%s" given).', $name, $value), $stream->getCurrent()->getLine(), $stream->getSourceContext());
in
vendor/twig/twig/src/Parser.php
->
parse
(line 230)
}$this->stream->next();$subparser->setParser($this);$node = $subparser->parse($token);if (!$node) {trigger_deprecation('twig/twig', '3.12', 'Returning "null" from "%s" is deprecated and forbidden by "TokenParserInterface".', $subparser::class);} else {$node->setNodeTag($subparser->getTag());$rv[] = $node;
in
vendor/twig/twig/src/Parser.php
->
subparse
(line 110)
$this->importedSymbols = [[]];$this->embeddedTemplates = [];$this->expressionRefs = new \WeakMap();try {$body = $this->subparse($test, $dropNeedle);if (null !== $this->parent && null === $body = $this->filterBodyNodes($body)) {$body = new EmptyNode();}} catch (SyntaxError $e) {
in
vendor/twig/twig/src/Environment.php
->
parse
(line 558)
{if (null === $this->parser) {$this->parser = new Parser($this);}return $this->parser->parse($stream);}/*** @return void*/
in
vendor/twig/twig/src/Environment.php
->
parse
(line 589)
* @throws SyntaxError When there was an error during tokenizing, parsing or compiling*/public function compileSource(Source $source): string{try {return $this->compile($this->parse($this->tokenize($source)));} catch (Error $e) {$e->setSourceContext($source);throw $e;} catch (\Exception $e) {throw new SyntaxError(\sprintf('An exception has been thrown during the compilation of a template ("%s").', $e->getMessage()), -1, $source, $e);
in
vendor/twig/twig/src/Environment.php
->
compileSource
(line 408)
$this->cache->load($key);}if (!class_exists($cls, false)) {$source = $this->getLoader()->getSourceContext($name);$content = $this->compileSource($source);if (!isset($this->hotCache[$name])) {$this->cache->write($key, $content);$this->cache->load($key);}
in
vendor/twig/twig/src/Environment.php
->
loadTemplate
(line 370)
trigger_deprecation('twig/twig', '3.9', 'Passing a "%s" instance to "%s" is deprecated.', self::class, __METHOD__);return $name;}return new TemplateWrapper($this, $this->loadTemplate($this->getTemplateClass($name), $name));}/*** Loads a template internal representation.*
in
vendor/twig/twig/src/Environment.php
->
load
(line 333)
* @throws SyntaxError When an error occurred during compilation* @throws RuntimeError When an error occurred during rendering*/public function render($name, array $context = []): string{return $this->load($name)->render($context);}/*** Displays a template.*
in
vendor/symfony/framework-bundle/Controller/AbstractController.php
->
render
(line 472)
if (null !== $block) {return $this->container->get('twig')->load($view)->renderBlock($block, $parameters);}return $this->container->get('twig')->render($view, $parameters);}private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response{$content = $this->doRenderView($view, $block, $parameters, $method);
in
vendor/symfony/framework-bundle/Controller/AbstractController.php
->
doRenderView
(line 477)
return $this->container->get('twig')->render($view, $parameters);}private function doRender(string $view, ?string $block, array $parameters, ?Response $response, string $method): Response{$content = $this->doRenderView($view, $block, $parameters, $method);$response ??= new Response();if (200 === $response->getStatusCode()) {foreach ($parameters as $v) {if ($v instanceof FormInterface && $v->isSubmitted() && !$v->isValid()) {
in
vendor/symfony/framework-bundle/Controller/AbstractController.php
->
doRender
(line 281)
* If an invalid form is found in the list of parameters, a 422 status code is returned.* Forms found in parameters are auto-cast to form views.*/protected function render(string $view, array $parameters = [], ?Response $response = null): Response{return $this->doRender($view, null, $parameters, $response, __FUNCTION__);}/*** Renders a block in a view.*
$this->addFlash('success', 'flash.success.message_sent');return $this->redirectToRoute('contact');}return $this->render('web/contact.html.twig', ['form' => $form,]);}}
in
vendor/symfony/http-kernel/HttpKernel.php
->
index
(line 188)
$this->dispatcher->dispatch($event, KernelEvents::CONTROLLER_ARGUMENTS);$controller = $event->getController();$arguments = $event->getArguments();// call controller$response = $controller(...$arguments);// viewif (!$response instanceof Response) {$event = new ViewEvent($this, $request, $type, $response, $controllerMetadata);$this->dispatcher->dispatch($event, KernelEvents::VIEW);
in
vendor/symfony/http-kernel/HttpKernel.php
->
handleRaw
(line 79)
$request->headers->set('X-Php-Ob-Level', (string) ob_get_level());$this->requestStack->push($request);$response = null;try {return $response = $this->handleRaw($request, $type, $controllerMetadata);} catch (\Throwable $e) {if ($e instanceof \Error && !$this->handleAllThrowables) {throw $e;}
in
vendor/symfony/http-kernel/Kernel.php
->
handle
(line 143)
if (!$this->handlingHttpCache) {$this->resetServices = true;}try {return $this->getHttpKernel()->handle($request, $type, $catch);} finally {--$this->requestStackSize;}}
in
vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php
->
handle
(line 34)
) {}public function run(): int{$response = $this->kernel->handle($this->request);$response->send(false);if (\function_exists('fastcgi_finish_request') && !$this->debug) {fastcgi_finish_request();
in
vendor/autoload_runtime.php
->
run
(line 32)
$app = $app(...$args);exit($runtime->getRunner($app)->run());
require_once('/var/www/vhosts/1007/domains/n46.net/xpanel/vendor/autoload_runtime.php')
in
public_html/index.php
(line 5)
<?php declare(strict_types=1);use App\Kernel;require_once dirname(__DIR__).'/vendor/autoload_runtime.php';return function (array $context) {return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);};
Logs
| Level | Channel | Message |
|---|---|---|
| INFO 07:27:35 | request |
Matched route "_profiler". {
"route": "_profiler",
"route_parameters": {
"_route": "_profiler",
"_controller": "web_profiler.controller.profiler::panelAction",
"token": "1dd986"
},
"request_uri": "https://xpanel.n46.net/_profiler/1dd986?panel=exception&type=request",
"method": "GET"
}
|
Stack Trace
|
SyntaxError
|
|---|
Twig\Error\SyntaxError:
Unknown "is_mobile" function in "web/contact.html.twig" at line 35.
at templates/web/contact.html.twig:35
at Twig\Parser->getFunction()
(vendor/twig/twig/src/ExpressionParser/Infix/FunctionExpressionParser.php:51)
at Twig\ExpressionParser\Infix\FunctionExpressionParser->parse()
(vendor/twig/twig/src/Parser.php:396)
at Twig\Parser->parseExpression()
(vendor/twig/twig/src/TokenParser/IfTokenParser.php:39)
at Twig\TokenParser\IfTokenParser->parse()
(vendor/twig/twig/src/Parser.php:230)
at Twig\Parser->subparse()
(vendor/twig/twig/src/TokenParser/BlockTokenParser.php:46)
at Twig\TokenParser\BlockTokenParser->parse()
(vendor/twig/twig/src/Parser.php:230)
at Twig\Parser->subparse()
(vendor/twig/twig/src/Parser.php:110)
at Twig\Parser->parse()
(vendor/twig/twig/src/Environment.php:558)
at Twig\Environment->parse()
(vendor/twig/twig/src/Environment.php:589)
at Twig\Environment->compileSource()
(vendor/twig/twig/src/Environment.php:408)
at Twig\Environment->loadTemplate()
(vendor/twig/twig/src/Environment.php:370)
at Twig\Environment->load()
(vendor/twig/twig/src/Environment.php:333)
at Twig\Environment->render()
(vendor/symfony/framework-bundle/Controller/AbstractController.php:472)
at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRenderView()
(vendor/symfony/framework-bundle/Controller/AbstractController.php:477)
at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->doRender()
(vendor/symfony/framework-bundle/Controller/AbstractController.php:281)
at Symfony\Bundle\FrameworkBundle\Controller\AbstractController->render()
(src/Controller/ContactController.php:67)
at App\Controller\ContactController->index()
(vendor/symfony/http-kernel/HttpKernel.php:188)
at Symfony\Component\HttpKernel\HttpKernel->handleRaw()
(vendor/symfony/http-kernel/HttpKernel.php:79)
at Symfony\Component\HttpKernel\HttpKernel->handle()
(vendor/symfony/http-kernel/Kernel.php:143)
at Symfony\Component\HttpKernel\Kernel->handle()
(vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:34)
at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
(vendor/autoload_runtime.php:32)
at require_once('/var/www/vhosts/1007/domains/n46.net/xpanel/vendor/autoload_runtime.php')
(public_html/index.php:5)
|