var/cache/review/twig/fe/fe6ae84e185bac133a8df8c62c15d6de.php line 84

Open in your IDE?
  1. <?php
  2. use Twig\Environment;
  3. use Twig\Error\LoaderError;
  4. use Twig\Error\RuntimeError;
  5. use Twig\Extension\SandboxExtension;
  6. use Twig\Markup;
  7. use Twig\Sandbox\SecurityError;
  8. use Twig\Sandbox\SecurityNotAllowedTagError;
  9. use Twig\Sandbox\SecurityNotAllowedFilterError;
  10. use Twig\Sandbox\SecurityNotAllowedFunctionError;
  11. use Twig\Source;
  12. use Twig\Template;
  13. /* Map/page.html.twig */
  14. class __TwigTemplate_a28a045d3be3f3299f645cdfe29370c8 extends Template
  15. {
  16.     private $source;
  17.     private $macros = [];
  18.     public function __construct(Environment $env)
  19.     {
  20.         parent::__construct($env);
  21.         $this->source $this->getSourceContext();
  22.         $this->blocks = [
  23.             'title' => [$this'block_title'],
  24.             'metaDescription' => [$this'block_metaDescription'],
  25.             'stylesheet' => [$this'block_stylesheet'],
  26.             'preconnect' => [$this'block_preconnect'],
  27.             'name_page' => [$this'block_name_page'],
  28.             'mainContainer' => [$this'block_mainContainer'],
  29.             'javascripts' => [$this'block_javascripts'],
  30.         ];
  31.     }
  32.     protected function doGetParent(array $context)
  33.     {
  34.         // line 1
  35.         return "grid.html.twig";
  36.     }
  37.     protected function doDisplay(array $context, array $blocks = [])
  38.     {
  39.         $macros $this->macros;
  40.         $__internal_b91a4435ea3baf1e2b6bfda56133dace $this->extensions["Sentry\\SentryBundle\\Tracing\\Twig\\TwigTracingExtension"];
  41.         $__internal_b91a4435ea3baf1e2b6bfda56133dace->enter($__internal_b91a4435ea3baf1e2b6bfda56133dace_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""Map/page.html.twig"));
  42.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  43.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""Map/page.html.twig"));
  44.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  45.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "template""Map/page.html.twig"));
  46.         $this->parent $this->loadTemplate("grid.html.twig""Map/page.html.twig"1);
  47.         $this->parent->display($contextarray_merge($this->blocks$blocks));
  48.         
  49.         $__internal_b91a4435ea3baf1e2b6bfda56133dace->leave($__internal_b91a4435ea3baf1e2b6bfda56133dace_prof);
  50.         
  51.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  52.         
  53.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  54.     }
  55.     // line 3
  56.     public function block_title($context, array $blocks = [])
  57.     {
  58.         $macros $this->macros;
  59.         $__internal_b91a4435ea3baf1e2b6bfda56133dace $this->extensions["Sentry\\SentryBundle\\Tracing\\Twig\\TwigTracingExtension"];
  60.         $__internal_b91a4435ea3baf1e2b6bfda56133dace->enter($__internal_b91a4435ea3baf1e2b6bfda56133dace_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  61.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  62.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  63.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  64.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""title"));
  65.         // line 4
  66.         echo "    ";
  67.         echo twig_escape_filter($this->env$this->extensions['App\Twig\SeoExtension']->metaTitle(), "html"nulltrue);
  68.         echo "
  69. ";
  70.         
  71.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  72.         
  73.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  74.         
  75.         $__internal_b91a4435ea3baf1e2b6bfda56133dace->leave($__internal_b91a4435ea3baf1e2b6bfda56133dace_prof);
  76.     }
  77.     // line 7
  78.     public function block_metaDescription($context, array $blocks = [])
  79.     {
  80.         $macros $this->macros;
  81.         $__internal_b91a4435ea3baf1e2b6bfda56133dace $this->extensions["Sentry\\SentryBundle\\Tracing\\Twig\\TwigTracingExtension"];
  82.         $__internal_b91a4435ea3baf1e2b6bfda56133dace->enter($__internal_b91a4435ea3baf1e2b6bfda56133dace_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""metaDescription"));
  83.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  84.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""metaDescription"));
  85.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  86.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""metaDescription"));
  87.         // line 8
  88.         echo "    <meta name=\"description\" content=\"";
  89.         echo twig_escape_filter($this->env$this->extensions['App\Twig\SeoExtension']->metaDescription(), "html"nulltrue);
  90.         echo "\">
  91. ";
  92.         
  93.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  94.         
  95.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  96.         
  97.         $__internal_b91a4435ea3baf1e2b6bfda56133dace->leave($__internal_b91a4435ea3baf1e2b6bfda56133dace_prof);
  98.     }
  99.     // line 11
  100.     public function block_stylesheet($context, array $blocks = [])
  101.     {
  102.         $macros $this->macros;
  103.         $__internal_b91a4435ea3baf1e2b6bfda56133dace $this->extensions["Sentry\\SentryBundle\\Tracing\\Twig\\TwigTracingExtension"];
  104.         $__internal_b91a4435ea3baf1e2b6bfda56133dace->enter($__internal_b91a4435ea3baf1e2b6bfda56133dace_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  105.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  106.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  107.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  108.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""stylesheet"));
  109.         // line 12
  110.         echo "    ";
  111.         $this->displayParentBlock("stylesheet"$context$blocks);
  112.         echo "
  113.     <link rel=\"stylesheet\" href=\"//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css\">
  114. ";
  115.         
  116.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  117.         
  118.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  119.         
  120.         $__internal_b91a4435ea3baf1e2b6bfda56133dace->leave($__internal_b91a4435ea3baf1e2b6bfda56133dace_prof);
  121.     }
  122.     // line 16
  123.     public function block_preconnect($context, array $blocks = [])
  124.     {
  125.         $macros $this->macros;
  126.         $__internal_b91a4435ea3baf1e2b6bfda56133dace $this->extensions["Sentry\\SentryBundle\\Tracing\\Twig\\TwigTracingExtension"];
  127.         $__internal_b91a4435ea3baf1e2b6bfda56133dace->enter($__internal_b91a4435ea3baf1e2b6bfda56133dace_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""preconnect"));
  128.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  129.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""preconnect"));
  130.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  131.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""preconnect"));
  132.         // line 17
  133.         echo "\t";
  134.         $this->displayParentBlock("preconnect"$context$blocks);
  135.         echo "
  136. \t<link rel=\"preconnect\" href=\"https://yastatic.net\">
  137. \t<link rel=\"preconnect\" href=\"https://api-maps.yandex.ru\">
  138. ";
  139.         
  140.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  141.         
  142.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  143.         
  144.         $__internal_b91a4435ea3baf1e2b6bfda56133dace->leave($__internal_b91a4435ea3baf1e2b6bfda56133dace_prof);
  145.     }
  146.     // line 22
  147.     public function block_name_page($context, array $blocks = [])
  148.     {
  149.         $macros $this->macros;
  150.         $__internal_b91a4435ea3baf1e2b6bfda56133dace $this->extensions["Sentry\\SentryBundle\\Tracing\\Twig\\TwigTracingExtension"];
  151.         $__internal_b91a4435ea3baf1e2b6bfda56133dace->enter($__internal_b91a4435ea3baf1e2b6bfda56133dace_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""name_page"));
  152.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  153.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""name_page"));
  154.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  155.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""name_page"));
  156.         echo "map";
  157.         
  158.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  159.         
  160.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  161.         
  162.         $__internal_b91a4435ea3baf1e2b6bfda56133dace->leave($__internal_b91a4435ea3baf1e2b6bfda56133dace_prof);
  163.     }
  164.     // line 24
  165.     public function block_mainContainer($context, array $blocks = [])
  166.     {
  167.         $macros $this->macros;
  168.         $__internal_b91a4435ea3baf1e2b6bfda56133dace $this->extensions["Sentry\\SentryBundle\\Tracing\\Twig\\TwigTracingExtension"];
  169.         $__internal_b91a4435ea3baf1e2b6bfda56133dace->enter($__internal_b91a4435ea3baf1e2b6bfda56133dace_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""mainContainer"));
  170.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  171.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""mainContainer"));
  172.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  173.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""mainContainer"));
  174.         // line 25
  175.         echo "
  176.     <h1 class=\"border-line\">";
  177.         // line 26
  178.         echo (($this->extensions['App\Twig\SeoExtension']->pageHeading()) ? ($this->extensions['App\Twig\SeoExtension']->pageHeading()) : ("Интим карта"));
  179.         echo "</h1>
  180.     <p class=\"mb-lg-4\">
  181.         На карте обозначено местоположение зарегистрированных анкет.
  182.         Кликнув на маркер Вы узнаете краткую информацию о девушке.
  183.     </p>
  184.     <div class=\"map p-2 p-md-3 p-lg-4 mb-3 mb-md-4\">
  185.         <div class=\"d-flex justify-content-center justify-content-md-between mb-2 mb-md-3 mb-lg-4\">
  186.             <button class=\"btn btn-secondary btn-collapse-filter\" type=\"button\" id=\"filter-expand\">
  187.                 <svg class=\"icon mr-1\">
  188.                     <use xlink:href=\"";
  189.         // line 36
  190.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets_domain/images/icons/svg-library.svg""nodomainConfig"), "html"nulltrue);
  191.         echo "#icon-dropdown\"></use>
  192.                 </svg>
  193.                 Расширенный поиск
  194.             </button>
  195.             <div class=\"d-flex align-items-center collapse-reset ml-2\">
  196.                 <span class=\"d-none d-md-block\" id=\"count-parameters\">Выбрано <em>0</em> параметров</span>
  197.                 <button class=\"btn btn-secondary btn-collapse-reset ml-md-2\" id=\"reset-form-2\">
  198.                     <svg class=\"icon mr-1\">
  199.                         <use xlink:href=\"";
  200.         // line 44
  201.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets_domain/images/icons/svg-library.svg""nodomainConfig"), "html"nulltrue);
  202.         echo "#icon-reset\"></use>
  203.                     </svg>
  204.                     Сброс
  205.                 </button>
  206.             </div>
  207.         </div>
  208.         <div class=\"collapse\" id=\"collapseFilter\">
  209.             ";
  210.         // line 52
  211.         echo "                ";
  212.         // line 159
  213.         echo "            ";
  214.         // line 160
  215.         echo "        </div>
  216.         <div class=\"map-wrap loading\" id=\"map-wrap\">
  217.             <img src=\"";
  218.         // line 163
  219.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/images/preloader.svg""basicConfig"), "html"nulltrue);
  220.         echo "\" class=\"preloader\" id=\"preloader\" style=\"display: none;\" />
  221.             <div class=\"map\" id=\"map\" style=\"width: 100%; height: 700px;\"
  222.                 data-icon-single=\"islands#redIcon\"
  223.                 data-icon-saloon=\"islands#violetIcon\"
  224.                 data-icon-cluster=\"islands#invertedRedClusterIcons\"
  225.             ></div>
  226.         </div>
  227.     </div>
  228. \t";
  229.         // line 172
  230.         echo twig_include($this->env$context"components/seo_text.html.twig", ["type" => "top""noindex" => true]);
  231.         echo "
  232. \t";
  233.         // line 173
  234.         echo twig_include($this->env$context"components/seo_text.html.twig", ["type" => "bottom""noindex" => true]);
  235.         echo "
  236. ";
  237.         
  238.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  239.         
  240.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  241.         
  242.         $__internal_b91a4435ea3baf1e2b6bfda56133dace->leave($__internal_b91a4435ea3baf1e2b6bfda56133dace_prof);
  243.     }
  244.     // line 177
  245.     public function block_javascripts($context, array $blocks = [])
  246.     {
  247.         $macros $this->macros;
  248.         $__internal_b91a4435ea3baf1e2b6bfda56133dace $this->extensions["Sentry\\SentryBundle\\Tracing\\Twig\\TwigTracingExtension"];
  249.         $__internal_b91a4435ea3baf1e2b6bfda56133dace->enter($__internal_b91a4435ea3baf1e2b6bfda56133dace_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascripts"));
  250.         $__internal_5a27a8ba21ca79b61932376b2fa922d2 $this->extensions["Symfony\\Bundle\\WebProfilerBundle\\Twig\\WebProfilerExtension"];
  251.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->enter($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascripts"));
  252.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f $this->extensions["Symfony\\Bridge\\Twig\\Extension\\ProfilerExtension"];
  253.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->enter($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof = new \Twig\Profiler\Profile($this->getTemplateName(), "block""javascripts"));
  254.         // line 178
  255.         echo "    ";
  256.         $this->displayParentBlock("javascripts"$context$blocks);
  257.         echo "
  258.     ";
  259.         // line 180
  260.         if ((array_key_exists("city"$context) && twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["city"]) || array_key_exists("city"$context) ? $context["city"] : (function () { throw new RuntimeError('Variable "city" does not exist.'180$this->source); })()), "mapCoordinate", [], "any"falsefalsefalse180), "latitude", [], "any"falsefalsefalse180))) {
  261.             // line 181
  262.             echo "\t\t";
  263.             $context["lat"] = twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["city"]) || array_key_exists("city"$context) ? $context["city"] : (function () { throw new RuntimeError('Variable "city" does not exist.'181$this->source); })()), "mapCoordinate", [], "any"falsefalsefalse181), "latitude", [], "any"falsefalsefalse181);
  264.             // line 182
  265.             echo "\t\t";
  266.             $context["lon"] = twig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["city"]) || array_key_exists("city"$context) ? $context["city"] : (function () { throw new RuntimeError('Variable "city" does not exist.'182$this->source); })()), "mapCoordinate", [], "any"falsefalsefalse182), "longitude", [], "any"falsefalsefalse182);
  267.             // line 183
  268.             echo "\t";
  269.         } else {
  270.             // line 184
  271.             echo "\t\t";
  272.             $context["lat"] = "55.753215";
  273.             // line 185
  274.             echo "\t\t";
  275.             $context["lon"] = "37.622504";
  276.             // line 186
  277.             echo "\t";
  278.         }
  279.         // line 187
  280.         echo "
  281.     <script src=\"";
  282.         // line 188
  283.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("bundles/fosjsrouting/js/router.min.js"), "html"nulltrue);
  284.         echo "\"></script>
  285.     <script src=\"";
  286.         // line 189
  287.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("fos_js_routing_js", ["callback" => "fos.Router.setData"]);
  288.         echo "\"></script>
  289. \t<script src=\"https://api-maps.yandex.ru/2.1/?lang=ru_RU&onload=initMap&ns=ym\" defer></script>
  290. \t<script>
  291.         const mapConfig = {
  292. \t\t\tid:\"map-wrap\",
  293. \t\t\tmultiple_cities:\"";
  294.         // line 195
  295.         echo twig_escape_filter($this->env, (isset($context["multipleCities"]) || array_key_exists("multipleCities"$context) ? $context["multipleCities"] : (function () { throw new RuntimeError('Variable "multipleCities" does not exist.'195$this->source); })()), "html"nulltrue);
  296.         echo "\",
  297. \t\t\troutes_url: \"";
  298.         // line 196
  299.         echo ((((isset($context["multipleCities"]) || array_key_exists("multipleCities"$context) ? $context["multipleCities"] : (function () { throw new RuntimeError('Variable "multipleCities" does not exist.'196$this->source); })()) == 0)) ? ("/js/fos_js_routes.json") : ("/js/fos_js_routes_city_prefixed.json"));
  300.         echo "\",
  301. \t\t\tcity_uri_identity:\"";
  302.         // line 197
  303.         echo twig_escape_filter($this->env, (isset($context["cityUriIdentity"]) || array_key_exists("cityUriIdentity"$context) ? $context["cityUriIdentity"] : (function () { throw new RuntimeError('Variable "cityUriIdentity" does not exist.'197$this->source); })()), "html"nulltrue);
  304.         echo "\",
  305. \t\t\tcity_latitude:\"";
  306.         // line 198
  307.         echo twig_escape_filter($this->env, (isset($context["lat"]) || array_key_exists("lat"$context) ? $context["lat"] : (function () { throw new RuntimeError('Variable "lat" does not exist.'198$this->source); })()), "html"nulltrue);
  308.         echo "\",
  309. \t\t\tcity_longitude:\"";
  310.         // line 199
  311.         echo twig_escape_filter($this->env, (isset($context["lon"]) || array_key_exists("lon"$context) ? $context["lon"] : (function () { throw new RuntimeError('Variable "lon" does not exist.'199$this->source); })()), "html"nulltrue);
  312.         echo "\",
  313. \t\t\tlocale:\"";
  314.         // line 200
  315.         echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->sourcetwig_get_attribute($this->env$this->source, (isset($context["app"]) || array_key_exists("app"$context) ? $context["app"] : (function () { throw new RuntimeError('Variable "app" does not exist.'200$this->source); })()), "request", [], "any"falsefalsefalse200), "locale", [], "any"falsefalsefalse200), "html"nulltrue);
  316.         echo "\",
  317. \t\t\tpath:\"";
  318.         // line 201
  319.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("map.filter", ["city" => (isset($context["cityUriIdentity"]) || array_key_exists("cityUriIdentity"$context) ? $context["cityUriIdentity"] : (function () { throw new RuntimeError('Variable "cityUriIdentity" does not exist.'201$this->source); })())]), "html"nulltrue);
  320.         echo "\",
  321. \t\t\ticon_profile:\"";
  322.         // line 203
  323.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/images/map/profile.svg"), "html"nulltrue);
  324.         echo "\",
  325. \t\t\ticon_profile_active:\"";
  326.         // line 204
  327.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/images/map/profile-active.svg"), "html"nulltrue);
  328.         echo "\",
  329. \t\t\ticon_profile_hover:\"";
  330.         // line 205
  331.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/images/map/profile-hover.svg"), "html"nulltrue);
  332.         echo "\",
  333. \t\t\ticon_saloon:\"";
  334.         // line 207
  335.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/images/map/saloon.svg"), "html"nulltrue);
  336.         echo "\",
  337. \t\t\ticon_saloon_active:\"";
  338.         // line 208
  339.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/images/map/saloon-active.svg"), "html"nulltrue);
  340.         echo "\",
  341. \t\t\ticon_saloon_hover:\"";
  342.         // line 209
  343.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/images/map/saloon-hover.svg"), "html"nulltrue);
  344.         echo "\",
  345. \t\t\ticon_masseur:\"";
  346.         // line 211
  347.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/images/map/masseur.svg"), "html"nulltrue);
  348.         echo "\",
  349. \t\t\ticon_masseur_active:\"";
  350.         // line 212
  351.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/images/map/masseur-active.svg"), "html"nulltrue);
  352.         echo "\",
  353. \t\t\ticon_masseur_hover:\"";
  354.         // line 213
  355.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/images/map/masseur-hover.svg"), "html"nulltrue);
  356.         echo "\",
  357. \t\t\ticon_cluster_small:\"";
  358.         // line 215
  359.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/images/map/cluster-small.svg"), "html"nulltrue);
  360.         echo "\",
  361. \t\t\ticon_cluster_medium:\"";
  362.         // line 216
  363.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/images/map/cluster-medium.svg"), "html"nulltrue);
  364.         echo "\",
  365. \t\t\ticon_cluster_big:\"";
  366.         // line 217
  367.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\AssetExtension']->getAssetUrl("assets/images/map/cluster-big.svg"), "html"nulltrue);
  368.         echo "\",
  369. \t\t\tavatar_path : \"";
  370.         // line 219
  371.         echo twig_escape_filter($this->env$this->extensions['App\Twig\ResponsiveAssetExtension']->getResponsiveImageUrl("replace_path""profile_media_avatar""200x280""jpg"), "html"nulltrue);
  372.         echo "\",
  373. \t\t\tphoto_path : \"";
  374.         // line 220
  375.         echo twig_escape_filter($this->env$this->extensions['App\Twig\ResponsiveAssetExtension']->getResponsiveImageUrl("replace_path""profile_media""200x280""jpg"), "html"nulltrue);
  376.         echo "\",
  377. \t\t\tthumb_path : \"";
  378.         // line 221
  379.         echo twig_escape_filter($this->env$this->extensions['App\Twig\ResponsiveAssetExtension']->getResponsiveImageUrl("replace_path""saloon_media_thumb""200x280""jpg"), "html"nulltrue);
  380.         echo "\",
  381. \t\t\tprocess_profile_shows_url  : \"";
  382.         // line 222
  383.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("map.increment_profile_shows", (((isset($context["multipleCities"]) || array_key_exists("multipleCities"$context) ? $context["multipleCities"] : (function () { throw new RuntimeError('Variable "multipleCities" does not exist.'222$this->source); })())) ? (["city" => (isset($context["cityUriIdentity"]) || array_key_exists("cityUriIdentity"$context) ? $context["cityUriIdentity"] : (function () { throw new RuntimeError('Variable "cityUriIdentity" does not exist.'222$this->source); })())]) : ([]))), "html"nulltrue);
  384.         echo "\"
  385. \t\t};
  386.         var isMapInitialized = false;
  387. \t\tvar yaMapLoaded = false;
  388.         function initMap() {
  389. \t\t\twindow.ymap = new ym.Map(document.getElementById('map'), {
  390. \t\t\t\tcenter: [\"";
  391.         // line 229
  392.         echo twig_escape_filter($this->env, (isset($context["lat"]) || array_key_exists("lat"$context) ? $context["lat"] : (function () { throw new RuntimeError('Variable "lat" does not exist.'229$this->source); })()), "html"nulltrue);
  393.         echo "\", \"";
  394.         echo twig_escape_filter($this->env, (isset($context["lon"]) || array_key_exists("lon"$context) ? $context["lon"] : (function () { throw new RuntimeError('Variable "lon" does not exist.'229$this->source); })()), "html"nulltrue);
  395.         echo "\"],
  396. \t\t\t\tzoom: 8,
  397. \t\t\t\tcontrols: ['zoomControl', 'typeSelector',  'fullscreenControl']
  398. \t\t\t});
  399. \t\t\tyaMapLoaded = true;
  400. \t\t}
  401.         window.stations = {";
  402.         // line 236
  403.         $context['_parent'] = $context;
  404.         $context['_seq'] = twig_ensure_traversable($this->extensions['App\Twig\StationsExtension']->stations());
  405.         $context['loop'] = [
  406.           'parent' => $context['_parent'],
  407.           'index0' => 0,
  408.           'index'  => 1,
  409.           'first'  => true,
  410.         ];
  411.         if (is_array($context['_seq']) || (is_object($context['_seq']) && $context['_seq'] instanceof \Countable)) {
  412.             $length count($context['_seq']);
  413.             $context['loop']['revindex0'] = $length 1;
  414.             $context['loop']['revindex'] = $length;
  415.             $context['loop']['length'] = $length;
  416.             $context['loop']['last'] = === $length;
  417.         }
  418.         foreach ($context['_seq'] as $context["_key"] => $context["station"]) {
  419.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["station"], "id", [], "any"falsefalsefalse236), "html"nulltrue);
  420.             echo ":{icon:`";
  421.             $this->loadTemplate("components/metro/icon_generate.partial.twig""Map/page.html.twig"236)->display(twig_array_merge($context, ["data" => $this->extensions['App\Twig\StationsExtension']->stationLines($context["station"])]));
  422.             echo "`,name:`";
  423.             echo twig_escape_filter($this->envtwig_get_attribute($this->env$this->source$context["station"], "name", [], "any"falsefalsefalse236), "html"nulltrue);
  424.             echo "`},";
  425.             ++$context['loop']['index0'];
  426.             ++$context['loop']['index'];
  427.             $context['loop']['first'] = false;
  428.             if (isset($context['loop']['length'])) {
  429.                 --$context['loop']['revindex0'];
  430.                 --$context['loop']['revindex'];
  431.                 $context['loop']['last'] = === $context['loop']['revindex0'];
  432.             }
  433.         }
  434.         $_parent $context['_parent'];
  435.         unset($context['_seq'], $context['_iterated'], $context['_key'], $context['station'], $context['_parent'], $context['loop']);
  436.         $context array_intersect_key($context$_parent) + $_parent;
  437.         // line 237
  438.         echo "};
  439.         document.addEventListener('DOMContentLoaded', function () {
  440. \t\t\tfunction loadForm() {
  441. \t\t\t\treturn fetch('";
  442.         // line 240
  443.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("map.form", ["city" => (isset($context["cityUriIdentity"]) || array_key_exists("cityUriIdentity"$context) ? $context["cityUriIdentity"] : (function () { throw new RuntimeError('Variable "cityUriIdentity" does not exist.'240$this->source); })())]), "html"nulltrue);
  444.         echo "', {
  445. \t\t\t\t\tmode: \"cors\",
  446. \t\t\t\t\timportance: \"low\",
  447. \t\t\t\t\tmethod: \"POST\",
  448. \t\t\t\t\theaders: {
  449. \t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\",
  450. \t\t\t\t\t\t\"X-Requested-With\": \"XMLHttpRequest\"
  451. \t\t\t\t\t},
  452. \t\t\t\t}).then(response => {
  453. \t\t\t\t\tif (response.status < 300) {
  454. \t\t\t\t\t\treturn response.text();
  455. \t\t\t\t\t} else {
  456. \t\t\t\t\t\tconsole.warn(\"🤔\");
  457. \t\t\t\t\t\treturn null;
  458. \t\t\t\t\t}
  459. \t\t\t\t}).then(response => {
  460. \t\t\t\t\tdocument.getElementById('collapseFilter').innerHTML = response;
  461. \t\t\t\t});
  462. \t\t\t}
  463. \t\t\tloadForm().then(()=>{
  464.                 filterLoader()
  465.             });
  466. \t\t\tfunction filterLoader() {
  467. \t\t\t\tconst stringifyData = `{\"city_id\":\"\${document.getElementById('filter_map_form_city_id').value}\",\"_token\":\"\${document.getElementById('filter_map_form__token').value}\"}`;
  468. \t\t\t\tfetch(\"";
  469.         // line 266
  470.         echo twig_escape_filter($this->env$this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("map.filter", ["city" => (isset($context["cityUriIdentity"]) || array_key_exists("cityUriIdentity"$context) ? $context["cityUriIdentity"] : (function () { throw new RuntimeError('Variable "cityUriIdentity" does not exist.'266$this->source); })())]), "html"nulltrue);
  471.         echo "\", {
  472. \t\t\t\t\tmethod: \"POST\",
  473. \t\t\t\t\theaders: {
  474. \t\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
  475. \t\t\t\t\t\t'X-Requested-With': 'XMLHttpRequest',
  476. \t\t\t\t\t},
  477. \t\t\t\t\tbody: new URLSearchParams({ form: stringifyData }).toString(),
  478. \t\t\t\t})
  479. \t\t\t\t\t.then(response => response.json())
  480. \t\t\t\t\t.then(data => {
  481. \t\t\t\t\t\t//console.log('map-data-loaded')
  482. \t\t\t\t\t\tconst mapLoadedInterval = setInterval(()=>{
  483. \t\t\t\t\t\t\tif (yaMapLoaded) {
  484. \t\t\t\t\t\t\t\tnew MapPage(mapConfig);
  485. \t\t\t\t\t\t\t\tdocument.dispatchEvent(new CustomEvent('map:data:loaded', { detail: { data, stringifyData } }));
  486. \t\t\t\t\t\t\t\tclearInterval(mapLoadedInterval)
  487. \t\t\t\t\t\t\t}
  488. \t\t\t\t\t\t}, 200)
  489. \t\t\t\t\t})
  490. \t\t\t\t\t.catch(error => console.error(error));
  491. \t\t\t}
  492. \t\t})
  493. \t\twindow.profileShowed = function ({id}) {
  494. \t\t\tif (!id) return;
  495. \t\t\tfetch('";
  496.         // line 294
  497.         echo $this->extensions['Symfony\Bridge\Twig\Extension\RoutingExtension']->getPath("profile_ctr.increase_shows");
  498.         echo "', {
  499. \t\t\t\tmethod: \"POST\",
  500. \t\t\t\tbody: JSON.stringify({ profiles: [id], source: 'map' }),
  501. \t\t\t});
  502. \t\t}
  503. \t</script>
  504. ";
  505.         
  506.         $__internal_6f47bbe9983af81f1e7450e9a3e3768f->leave($__internal_6f47bbe9983af81f1e7450e9a3e3768f_prof);
  507.         
  508.         $__internal_5a27a8ba21ca79b61932376b2fa922d2->leave($__internal_5a27a8ba21ca79b61932376b2fa922d2_prof);
  509.         
  510.         $__internal_b91a4435ea3baf1e2b6bfda56133dace->leave($__internal_b91a4435ea3baf1e2b6bfda56133dace_prof);
  511.     }
  512.     /**
  513.      * @codeCoverageIgnore
  514.      */
  515.     public function getTemplateName()
  516.     {
  517.         return "Map/page.html.twig";
  518.     }
  519.     /**
  520.      * @codeCoverageIgnore
  521.      */
  522.     public function isTraitable()
  523.     {
  524.         return false;
  525.     }
  526.     /**
  527.      * @codeCoverageIgnore
  528.      */
  529.     public function getDebugInfo()
  530.     {
  531.         return array (  573 => 294,  542 => 266,  513 => 240,  508 => 237,  473 => 236,  462 => 229,  452 => 222,  448 => 221,  444 => 220,  440 => 219,  435 => 217,  431 => 216,  427 => 215,  422 => 213,  418 => 212,  414 => 211,  409 => 209,  405 => 208,  401 => 207,  396 => 205,  392 => 204,  388 => 203,  383 => 201,  379 => 200,  375 => 199,  371 => 198,  367 => 197,  363 => 196,  359 => 195,  350 => 189,  346 => 188,  343 => 187,  340 => 186,  337 => 185,  334 => 184,  331 => 183,  328 => 182,  325 => 181,  323 => 180,  317 => 178,  304 => 177,  289 => 173,  285 => 172,  273 => 163,  268 => 160,  266 => 159,  264 => 52,  254 => 44,  243 => 36,  230 => 26,  227 => 25,  214 => 24,  189 => 22,  171 => 17,  158 => 16,  141 => 12,  128 => 11,  112 => 8,  99 => 7,  83 => 4,  70 => 3,  41 => 1,);
  532.     }
  533.     public function getSourceContext()
  534.     {
  535.         return new Source("{% extends 'grid.html.twig' %}
  536. {% block title %}
  537.     {{ seo_title() }}
  538. {% endblock %}
  539. {% block metaDescription %}
  540.     <meta name=\"description\" content=\"{{ seo_description() }}\">
  541. {% endblock %}
  542. {% block stylesheet %}
  543.     {{ parent() }}
  544.     <link rel=\"stylesheet\" href=\"//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css\">
  545. {% endblock %}
  546. {% block preconnect %}
  547. \t{{ parent() }}
  548. \t<link rel=\"preconnect\" href=\"https://yastatic.net\">
  549. \t<link rel=\"preconnect\" href=\"https://api-maps.yandex.ru\">
  550. {% endblock %}
  551. {% block name_page %}map{% endblock %}
  552. {% block mainContainer %}
  553.     <h1 class=\"border-line\">{{ seo_heading() ? seo_heading() : 'Интим карта' }}</h1>
  554.     <p class=\"mb-lg-4\">
  555.         На карте обозначено местоположение зарегистрированных анкет.
  556.         Кликнув на маркер Вы узнаете краткую информацию о девушке.
  557.     </p>
  558.     <div class=\"map p-2 p-md-3 p-lg-4 mb-3 mb-md-4\">
  559.         <div class=\"d-flex justify-content-center justify-content-md-between mb-2 mb-md-3 mb-lg-4\">
  560.             <button class=\"btn btn-secondary btn-collapse-filter\" type=\"button\" id=\"filter-expand\">
  561.                 <svg class=\"icon mr-1\">
  562.                     <use xlink:href=\"{{ asset('assets_domain/images/icons/svg-library.svg', 'nodomainConfig') }}#icon-dropdown\"></use>
  563.                 </svg>
  564.                 Расширенный поиск
  565.             </button>
  566.             <div class=\"d-flex align-items-center collapse-reset ml-2\">
  567.                 <span class=\"d-none d-md-block\" id=\"count-parameters\">Выбрано <em>0</em> параметров</span>
  568.                 <button class=\"btn btn-secondary btn-collapse-reset ml-md-2\" id=\"reset-form-2\">
  569.                     <svg class=\"icon mr-1\">
  570.                         <use xlink:href=\"{{ asset('assets_domain/images/icons/svg-library.svg', 'nodomainConfig') }}#icon-reset\"></use>
  571.                     </svg>
  572.                     Сброс
  573.                 </button>
  574.             </div>
  575.         </div>
  576.         <div class=\"collapse\" id=\"collapseFilter\">
  577.             {# <div class=\"mb-3 mb-lg-4\"> #}
  578.                 {# {{ form_start(form) }}
  579.                 <div class=\"pl-2 pr-2 pl-xs-0 pr-xs-0\">
  580.                     <div class=\"filter-form d-md-flex\">
  581.                         <div class=\"form-items d-xxl-flex\">
  582.                             <div class=\"form-item min-input\">
  583.                                 <div class=\"mb-3 mb-md-5\">
  584.                                     <div class=\"title mb-3\">Основные параметры</div>
  585.                                     <div class=\"d-flex align-items-center mb-2\">
  586.                                         <label>Возраст:</label>
  587.                                         {{ form_widget(form.age.min, {'attr': {'size': '3', 'type': 'text', 'placeholder': 'от'}}) }}
  588.                                         <span class=\"mr-1 ml-1\">-</span>
  589.                                         {{ form_widget(form.age.max, {'attr': {'size': '3', 'type': 'text', 'placeholder': 'до'}}) }}
  590.                                     </div>
  591.                                     <div class=\"d-flex align-items-center mb-2\">
  592.                                         <label>Размер груди:</label>
  593.                                         {{ form_widget(form.breast_size.min, {'attr': {'size': '3', 'type': 'text', 'placeholder': 'от'}}) }}
  594.                                         <span class=\"mr-1 ml-1\">-</span>
  595.                                         {{ form_widget(form.breast_size.max, {'attr': {'size': '3', 'type': 'text', 'placeholder': 'до'}}) }}
  596.                                     </div>
  597.                                     <div class=\"d-flex align-items-center mb-2\">
  598.                                         <label>Рост:</label>
  599.                                         {{ form_widget(form.height.min, {'attr': {'size': '3', 'type': 'text', 'placeholder': 'от'}}) }}
  600.                                         <span class=\"mr-1 ml-1\">-</span>
  601.                                         {{ form_widget(form.height.max, {'attr': {'size': '3', 'type': 'text', 'placeholder': 'до'}}) }}
  602.                                     </div>
  603.                                     <div class=\"d-flex align-items-center mb-2\">
  604.                                         <label>Вес:</label>
  605.                                         {{ form_widget(form.weight.min, {'attr': {'size': '3', 'type': 'text', 'placeholder': 'от'}}) }}
  606.                                         <span class=\"mr-1 ml-1\">-</span>
  607.                                         {{ form_widget(form.weight.max, {'attr': {'size': '3', 'type': 'text', 'placeholder': 'до'}}) }}
  608.                                     </div>
  609.                                 </div>
  610.                                 <div class=\"mb-3 mb-md-5 inline-label\">
  611.                                     <div class=\"title mb-3\">Интимная стрижка</div>
  612.                                     <div class=\"d-flex align-items-center mb-2\">
  613.                                         <div id=\"filter_map_form_private_haircut\" size=\"3\">
  614.                                             {% for elem in form.private_haircut %}
  615.                                                 {{form_widget(elem, {'attr': {
  616.                                                     'class': 'item'
  617.                                                 }}) }}
  618.                                                 <label for=\"{{elem.vars.id}}\">{{elem.vars.label|trans({}, 'left_menu')}}</label>
  619.                                             {% endfor %}
  620.                                         </div>
  621.                                     </div>
  622.                                 </div>
  623.                             </div>
  624.                             <div class=\"form-item ml-xxl-4\">
  625.                                 <div class=\"mb-3 mb-md-5 inline-label\">
  626.                                     <div class=\"title mb-3\">Цвет волос</div>
  627.                                     <div class=\"d-flex flex-wrap align-items-center mb-2\">
  628.                                         <div id=\"filter_map_form_hair_color\" size=\"3\">
  629.                                             {% for elem in form.hair_color %}
  630.                                                 {{form_widget(elem, {'attr': {
  631.                                                     'class': 'item'
  632.                                                 }}) }}
  633.                                                 <label for=\"{{elem.vars.id}}\">{{elem.vars.label|trans({}, 'left_menu')}}</label>
  634.                                             {% endfor %}
  635.                                         </div>
  636.                                     </div>
  637.                                 </div>
  638.                                 <div class=\"mb-3 mb-md-5 inline-label\">
  639.                                     <div class=\"title mb-3\">Телосложение</div>
  640.                                     <div class=\"d-flex flex-wrap align-items-center mb-2\">
  641.                                         <div id=\"filter_map_form_body_type\">
  642.                                             {% for elem in form.body_type %}
  643.                                                 {{form_widget(elem, {'attr': {
  644.                                                     'class': 'item'
  645.                                                 }}) }}
  646.                                                 <label for=\"{{elem.vars.id}}\">{{elem.vars.label|trans({}, 'left_menu')}}</label>
  647.                                             {% endfor %}
  648.                                         </div>
  649.                                     </div>
  650.                                 </div>
  651.                             </div>
  652.                         </div>
  653.                         <div class=\"form-items pl-0 pl-md-4\">
  654.                             <div class=\"form-item ml-xl-4\">
  655.                                 <div class=\"mb-3 mb-md-5 inline-label\">
  656.                                     <div class=\"title mb-3\">Национальность</div>
  657.                                     <div class=\"d-flex align-items-center mb-2\">
  658.                                         <div id=\"filter_map_form_nationality\">
  659.                                             {% for elem in form.nationality %}
  660.                                                 {{form_widget(elem, {'attr': {
  661.                                                     'class': 'item'
  662.                                                 }}) }}
  663.                                                 <label for=\"{{elem.vars.id}}\">{{elem.vars.label|trans({}, 'left_menu')}}</label>
  664.                                             {% endfor %}
  665.                                         </div>
  666.                                     </div>
  667.                                 </div>
  668.                             </div>
  669.                         </div>
  670.                     </div>
  671.                     <div class=\"form-line mb-2 mb-md-4\"></div>
  672.                     <div class=\"d-flex justify-content-center\">
  673.                         <button type=\"reset\" class=\"btn btn-secondary btn-collapse-reset mr-2\" id=\"reset-form\">
  674.                             <svg class=\"icon mr-1\">
  675.                                 <use xlink:href=\"{{ asset('assets_domain/images/icons/svg-library.svg', 'nodomainConfig') }}#icon-reset\"></use>
  676.                             </svg>
  677.                             Сброс
  678.                         </button>
  679.                         {{ form_widget(form.search, {'label': 'Подобрать', 'attr': {
  680.                             'class': 'btn btn-danger'
  681.                         }}) }}
  682.                     </div>
  683.                 </div>
  684.                 {{ form_end(form) }} #}
  685.             {# </div> #}
  686.         </div>
  687.         <div class=\"map-wrap loading\" id=\"map-wrap\">
  688.             <img src=\"{{ asset('assets/images/preloader.svg','basicConfig') }}\" class=\"preloader\" id=\"preloader\" style=\"display: none;\" />
  689.             <div class=\"map\" id=\"map\" style=\"width: 100%; height: 700px;\"
  690.                 data-icon-single=\"islands#redIcon\"
  691.                 data-icon-saloon=\"islands#violetIcon\"
  692.                 data-icon-cluster=\"islands#invertedRedClusterIcons\"
  693.             ></div>
  694.         </div>
  695.     </div>
  696. \t{{ include('components/seo_text.html.twig', { \"type\": 'top', \"noindex\": true }) }}
  697. \t{{ include('components/seo_text.html.twig', { \"type\": 'bottom', \"noindex\": true }) }}
  698. {% endblock %}
  699. {% block javascripts %}
  700.     {{ parent() }}
  701.     {% if city is defined and city.mapCoordinate.latitude %}
  702. \t\t{% set lat = city.mapCoordinate.latitude %}
  703. \t\t{% set lon = city.mapCoordinate.longitude %}
  704. \t{% else %}
  705. \t\t{% set lat = '55.753215' %}
  706. \t\t{% set lon = '37.622504' %}
  707. \t{% endif %}
  708.     <script src=\"{{ asset('bundles/fosjsrouting/js/router.min.js') }}\"></script>
  709.     <script src=\"{{ path('fos_js_routing_js', { callback: 'fos.Router.setData' }) }}\"></script>
  710. \t<script src=\"https://api-maps.yandex.ru/2.1/?lang=ru_RU&onload=initMap&ns=ym\" defer></script>
  711. \t<script>
  712.         const mapConfig = {
  713. \t\t\tid:\"map-wrap\",
  714. \t\t\tmultiple_cities:\"{{ multipleCities }}\",
  715. \t\t\troutes_url: \"{{ multipleCities == 0 ? '/js/fos_js_routes.json' : '/js/fos_js_routes_city_prefixed.json' }}\",
  716. \t\t\tcity_uri_identity:\"{{ cityUriIdentity }}\",
  717. \t\t\tcity_latitude:\"{{ lat }}\",
  718. \t\t\tcity_longitude:\"{{ lon }}\",
  719. \t\t\tlocale:\"{{ app.request.locale }}\",
  720. \t\t\tpath:\"{{ path('map.filter', {city:cityUriIdentity}) }}\",
  721. \t\t\ticon_profile:\"{{ asset('assets/images/map/profile.svg') }}\",
  722. \t\t\ticon_profile_active:\"{{ asset('assets/images/map/profile-active.svg') }}\",
  723. \t\t\ticon_profile_hover:\"{{ asset('assets/images/map/profile-hover.svg') }}\",
  724. \t\t\ticon_saloon:\"{{ asset('assets/images/map/saloon.svg') }}\",
  725. \t\t\ticon_saloon_active:\"{{ asset('assets/images/map/saloon-active.svg') }}\",
  726. \t\t\ticon_saloon_hover:\"{{ asset('assets/images/map/saloon-hover.svg') }}\",
  727. \t\t\ticon_masseur:\"{{ asset('assets/images/map/masseur.svg') }}\",
  728. \t\t\ticon_masseur_active:\"{{ asset('assets/images/map/masseur-active.svg') }}\",
  729. \t\t\ticon_masseur_hover:\"{{ asset('assets/images/map/masseur-hover.svg') }}\",
  730. \t\t\ticon_cluster_small:\"{{ asset('assets/images/map/cluster-small.svg') }}\",
  731. \t\t\ticon_cluster_medium:\"{{ asset('assets/images/map/cluster-medium.svg') }}\",
  732. \t\t\ticon_cluster_big:\"{{ asset('assets/images/map/cluster-big.svg') }}\",
  733. \t\t\tavatar_path : \"{{ responsive_asset('replace_path', 'profile_media_avatar', \"200x280\", \"jpg\") }}\",
  734. \t\t\tphoto_path : \"{{ responsive_asset('replace_path', 'profile_media', \"200x280\", \"jpg\") }}\",
  735. \t\t\tthumb_path : \"{{ responsive_asset('replace_path', 'saloon_media_thumb', \"200x280\", \"jpg\") }}\",
  736. \t\t\tprocess_profile_shows_url  : \"{{ path('map.increment_profile_shows', multipleCities ? {city:cityUriIdentity} : {}) }}\"
  737. \t\t};
  738.         var isMapInitialized = false;
  739. \t\tvar yaMapLoaded = false;
  740.         function initMap() {
  741. \t\t\twindow.ymap = new ym.Map(document.getElementById('map'), {
  742. \t\t\t\tcenter: [\"{{ lat }}\", \"{{ lon }}\"],
  743. \t\t\t\tzoom: 8,
  744. \t\t\t\tcontrols: ['zoomControl', 'typeSelector',  'fullscreenControl']
  745. \t\t\t});
  746. \t\t\tyaMapLoaded = true;
  747. \t\t}
  748.         window.stations = {
  749. \t\t\t{%- for station in stations() -%}{{- station.id -}}:{icon:`{%- include 'components/metro/icon_generate.partial.twig' with {data: station|station_lines} -%}`,name:`{{- station.name -}}`},{%- endfor -%}
  750. \t\t};
  751.         document.addEventListener('DOMContentLoaded', function () {
  752. \t\t\tfunction loadForm() {
  753. \t\t\t\treturn fetch('{{ path('map.form', {city: cityUriIdentity}) }}', {
  754. \t\t\t\t\tmode: \"cors\",
  755. \t\t\t\t\timportance: \"low\",
  756. \t\t\t\t\tmethod: \"POST\",
  757. \t\t\t\t\theaders: {
  758. \t\t\t\t\t\t\"Content-Type\": \"application/x-www-form-urlencoded\",
  759. \t\t\t\t\t\t\"X-Requested-With\": \"XMLHttpRequest\"
  760. \t\t\t\t\t},
  761. \t\t\t\t}).then(response => {
  762. \t\t\t\t\tif (response.status < 300) {
  763. \t\t\t\t\t\treturn response.text();
  764. \t\t\t\t\t} else {
  765. \t\t\t\t\t\tconsole.warn(\"🤔\");
  766. \t\t\t\t\t\treturn null;
  767. \t\t\t\t\t}
  768. \t\t\t\t}).then(response => {
  769. \t\t\t\t\tdocument.getElementById('collapseFilter').innerHTML = response;
  770. \t\t\t\t});
  771. \t\t\t}
  772. \t\t\tloadForm().then(()=>{
  773.                 filterLoader()
  774.             });
  775. \t\t\tfunction filterLoader() {
  776. \t\t\t\tconst stringifyData = `{\"city_id\":\"\${document.getElementById('filter_map_form_city_id').value}\",\"_token\":\"\${document.getElementById('filter_map_form__token').value}\"}`;
  777. \t\t\t\tfetch(\"{{ path('map.filter', {city:cityUriIdentity}) }}\", {
  778. \t\t\t\t\tmethod: \"POST\",
  779. \t\t\t\t\theaders: {
  780. \t\t\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
  781. \t\t\t\t\t\t'X-Requested-With': 'XMLHttpRequest',
  782. \t\t\t\t\t},
  783. \t\t\t\t\tbody: new URLSearchParams({ form: stringifyData }).toString(),
  784. \t\t\t\t})
  785. \t\t\t\t\t.then(response => response.json())
  786. \t\t\t\t\t.then(data => {
  787. \t\t\t\t\t\t//console.log('map-data-loaded')
  788. \t\t\t\t\t\tconst mapLoadedInterval = setInterval(()=>{
  789. \t\t\t\t\t\t\tif (yaMapLoaded) {
  790. \t\t\t\t\t\t\t\tnew MapPage(mapConfig);
  791. \t\t\t\t\t\t\t\tdocument.dispatchEvent(new CustomEvent('map:data:loaded', { detail: { data, stringifyData } }));
  792. \t\t\t\t\t\t\t\tclearInterval(mapLoadedInterval)
  793. \t\t\t\t\t\t\t}
  794. \t\t\t\t\t\t}, 200)
  795. \t\t\t\t\t})
  796. \t\t\t\t\t.catch(error => console.error(error));
  797. \t\t\t}
  798. \t\t})
  799. \t\twindow.profileShowed = function ({id}) {
  800. \t\t\tif (!id) return;
  801. \t\t\tfetch('{{ path('profile_ctr.increase_shows') }}', {
  802. \t\t\t\tmethod: \"POST\",
  803. \t\t\t\tbody: JSON.stringify({ profiles: [id], source: 'map' }),
  804. \t\t\t});
  805. \t\t}
  806. \t</script>
  807. {% endblock %}
  808. ""Map/page.html.twig""/app/templates/Map/page.html.twig");
  809.     }
  810. }