templates/base.html.twig line 1

Open in your IDE?
  1. <!DOCTYPE html>
  2. <html lang="{{ app.request.locale }}" class="{{ app.request.host|replace({'.': '_'}) }} app-color-{{ app_color() }}">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  7. {% if no_index %}
  8. <meta name="robots" content="noindex,nofollow"/>
  9. {% endif %}
  10. {% block meta %}
  11. {% endblock %}
  12. {# <meta content="width=1280" name="viewport">#}
  13. <meta http-equiv="Content-Style-Type" content="text/css" />
  14. <meta http-equiv="Content-Script-Type" content="text/javascript"/>
  15. {% if block('seoKeywords') is not empty -%}
  16. <meta name="keywords" content="{% block seoKeywords %}{% endblock %}"/>
  17. {%- endif %}
  18. {% if block('seoDescription') is not empty -%}
  19. <meta name="description" content="{% block seoDescription %}{% endblock %}"/>
  20. {%- endif %}
  21. {% if block('seoCreated') is not empty -%}
  22. <meta name="date" content="{% block seoCreated %}{% endblock %}"/>
  23. {%- endif %}
  24. <meta name="author" content="{{ app_name }}"/>
  25. <meta name="copyright" content="copyright by {{ app_name }}"/>
  26. <!-- SCRIPTS -->
  27. <title>{% block title %}Welcome{% endblock %} | {{ app_name }}</title>
  28. <!-- LINK -->
  29. <link rel="shortcut icon" type="image/x-icon" href="{{ asset('assets/static/favicon.ico') }}"/>
  30. <link rel="shortcut icon" type="image/png" href="{{ asset('assets/static/favicon.png') }}"/>
  31. <link rel="apple-touch-icon" type="image/png" href="{{ asset('assets/static/favicon.png') }}"><!-- iPhone -->
  32. <link rel="apple-touch-icon" sizes="57x57" href="{{ asset('assets/static/apple-touch-icon-57x57.png') }}" />
  33. <link rel="apple-touch-icon" sizes="72x72" href="{{ asset('assets/static/apple-touch-icon-72x72.png') }}" />
  34. <link rel="apple-touch-icon" sizes="76x76" href="{{ asset('assets/static/apple-touch-icon-76x76.png') }}" />
  35. <link rel="apple-touch-icon" sizes="114x114" href="{{ asset('assets/static/apple-touch-icon-114x114.png') }}" />
  36. <link rel="apple-touch-icon" sizes="120x120" href="{{ asset('assets/static/apple-touch-icon-120x120.png') }}" />
  37. <link rel="apple-touch-icon" sizes="144x144" href="{{ asset('assets/static/apple-touch-icon-144x144.png') }}" />
  38. <link rel="apple-touch-icon" sizes="152x152" href="{{ asset('assets/static/apple-touch-icon-152x152.png') }}" />
  39. <link rel="apple-touch-icon" sizes="180x180" href="{{ asset('assets/static/apple-touch-icon-180x180.png') }}" />
  40. {# <link rel="stylesheet" href="{{ asset(style()) }}">#}
  41. {% block stylesheets %}
  42. {{ encore_entry_link_tags(app_color('app/app-')) }}
  43. {% endblock %}
  44. <!-- GOOGLE -->
  45. {# <script type="application/javascript" src="{{ asset('assets/runtime.js') }}"></script>#}
  46. {# <script type="application/javascript" src="{{ asset('assets/vendor.js') }}"></script>#}
  47. <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCxYi_Sk25cIlLkMEQlM7I-jAqWYTDQj64&loading=async"></script>
  48. <!-- Global site tag (gtag.js) - Google Analytics -->
  49. <script async src="https://www.googletagmanager.com/gtag/js?id=UA-151104863-1"></script>
  50. <script>window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}gtag('js', new Date());gtag('config', 'UA-151104863-1');</script>
  51. </head>
  52. <body class="{% block body_class %}{% endblock %}">
  53. {% set allMessages = app.flashes() %}
  54. {% if allMessages is not empty %}
  55. <div aria-live="polite" aria-atomic="true">
  56. <!-- Position it -->
  57. <div>
  58. {% for type,messages in allMessages %}
  59. {% for message in messages %}
  60. <div class="toast" role="alert" aria-live="assertive" aria-atomic="true" data-delay="10000">
  61. <div class="alert alert-{{ type }} mb-0" role="alert" aria-live="assertive" aria-atomic="true">
  62. <button type="button" class="ml-2 mb-1 close" data-dismiss="toast" aria-label="Close">
  63. <span aria-hidden="true">&times;</span>
  64. </button>
  65. {{ message|raw }}
  66. </div>
  67. </div>
  68. {% endfor %}
  69. {% endfor %}
  70. </div>
  71. </div>
  72. {% endif %}
  73. <div class="card cookie-card" style="position:fixed; bottom:0; left:0; width: 100vw; z-index: 9999; max-height: 100vh; max-width: 100vw; overflow: auto">
  74. <div class="card-body">
  75. <h5 class="card-title">Cookies</h5>
  76. <p class="card-text">
  77. {{ 'cookie.text'|trans({
  78. ':link': path('mdl_public_page_show', { '_locale': app.request.locale, 'slug': 'privacy-policy' })
  79. })|raw }}
  80. </p>
  81. <a href="#" class="btn btn-primary cookie-btn">{{ 'cookie.action'|trans }}</a>
  82. </div>
  83. </div>
  84. <script>function checkGDPRCookie(){var e=document.cookie.split("; ").find(e=>e.startsWith("gdpr"));void 0!==e&&"true"===(e=e.split("=")[1])&&(document.querySelector(".cookie-card").style.display="none")}document.querySelector(".cookie-btn").addEventListener("click",function(){document.cookie="gdpr=true; ;max-age=31536000; path=/; SameSite",checkGDPRCookie()}),checkGDPRCookie();</script>
  85. {{ render(controller('App\\Controller\\ECommerce\\App\\InvoiceController::unPaidAction'))|raw }}
  86. <!-- header -->
  87. {% set isUser = is_granted('ROLE_USER') %}
  88. <div class="container-fluid">
  89. {#{% if isUser %}#}
  90. <div class="container font-medium" id="header-login">
  91. <div class="row top-row nowrap">
  92. <div class="top-left">
  93. <div class="header-contact map-pin">
  94. <img src="{{ asset('assets/static/map-pin.svg') }}" alt="Map Pin Icon">
  95. <span class="font-medium">{{ company_address }}</span>
  96. </div>
  97. <div class="header-contact header-phone">
  98. <img src="{{ asset('assets/static/phone.svg') }}" alt="Phone Icon">
  99. <a class="font-medium phone-link" href="tel:{{ company_phone|regex_replace('/,.*/', '') }}">
  100. {{ company_phone|regex_replace('/,.*/', '') }}
  101. </a>
  102. </div>
  103. <div class="header-contact header-email">
  104. <img src="{{ asset('assets/static/mail.svg') }}" alt="Envelope Icon">
  105. <span class="font-medium">{{ company_email }}</span>
  106. </div>
  107. </div>
  108. <div class="top-right">
  109. <div class="language-picker">
  110. <div class="btn-group float-right">
  111. {% if block('translations') is defined %}
  112. {% block translations %}{{ defaultLanguagePicker() }}{% endblock %}
  113. {% else %}
  114. {{ defaultLanguagePicker() }}
  115. {% endif %}
  116. </div>
  117. </div>
  118. <div class="help">
  119. <a class="text-decoration-none" href="{{ path(
  120. 'mdl_app_product_filter',
  121. {
  122. '_locale': app.request.locale,
  123. 'title': 'S 30X47X7',
  124. 'help': 1,
  125. 'on_complete': path(
  126. 'mdl_app_product_index',
  127. {'_locale': app.request.locale},
  128. 'true'
  129. )
  130. })
  131. }}">{{ 'nav.help'|trans|raw}}</a>
  132. </div>
  133. {% if isUser == false %}
  134. <div class="header-login-btn margin-header">
  135. <a class="text-decoration-none btn btn-dark align-content-center font-medium" id="login-btn" href="{{ path(
  136. 'login',
  137. {
  138. '_locale': app.request.locale,
  139. })
  140. }}"><span>{{ 'nav.login'|trans|raw }}</span><img src="{{ asset('assets/static/arrow-button.svg') }}" alt="Arrow Button Icon"></a>
  141. </div>
  142. {% else %}
  143. <div class="header-login-btn margin-header">
  144. <img src="{{ asset('assets/static/user.svg') }}" class="wh-42" alt="User Profile Icon" />
  145. </div>
  146. {% endif %}
  147. </div>
  148. </div>
  149. </div>
  150. </div>
  151. <div class="container-fluid">
  152. <div class="container" id="header-login">
  153. <div class="row bottom-row">
  154. <div class="header-logo">
  155. <a href="{{ path('mdl_public_page_index', {'_locale': app.request.locale}) }}">
  156. <img src="{{ asset(logo()) }}" class="img-fluid" alt="{{ app_name }}"/>
  157. </a>
  158. </div>
  159. <div class="input-group" id="search-bar">
  160. {{ render(controller('App\\Controller\\ECommerce\\App\\ProductController::filterAction')) }}
  161. </div>
  162. {{ render(controller('App\\Controller\\ECommerce\\App\\CountdownController::countdown')) }}
  163. {% if is_granted('CART_CREATE') %}
  164. {{ render(controller('App\\Controller\\ECommerce\\App\\CartController::smallWidgetAction')) }}
  165. {% else %}
  166. {{ render(controller('App\\Controller\\ECommerce\\App\\IndividualOrderController::smallWidgetAction')) }}
  167. {% endif %}
  168. <nav class="navbar navbar-expand-lg navbar-light sm-screen-navbar">
  169. <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
  170. <span class="navbar-toggler-icon"></span>
  171. </button>
  172. {% set currentRoute = app.request.attributes.get('_route') %}
  173. {% set shopRoute = 'mdl_app_product_index' %}
  174. <div class="collapse navbar-collapse text" id="navbar">
  175. <div class="mobile-menu">
  176. <div class="language-picker">
  177. <div class="btn-group float-left">
  178. {% if block('translations') is defined %}
  179. {{ defaultLanguagePicker() }}
  180. {% else %}
  181. {{ defaultLanguagePicker() }}
  182. {% endif %}
  183. </div>
  184. </div>
  185. <div class="float-right">
  186. {% if isUser == false %}
  187. <div class="header-login-btn margin-header">
  188. <a class="text-decoration-none btn btn-dark align-content-center font-medium" id="login-btn" href="{{ path(
  189. 'login',
  190. {
  191. '_locale': app.request.locale,
  192. })
  193. }}"><span>{{ 'nav.login'|trans|raw }}</span><img src="{{ asset('assets/static/arrow-button.svg') }}" alt="Arrow Button Icon"></a>
  194. </div>
  195. {% else %}
  196. <div class="header-login-btn margin-header">
  197. <img src="{{ asset('assets/static/user.svg') }}" class="wh-42" alt="User Profile Icon" />
  198. </div>
  199. {% endif %}
  200. </div>
  201. </div>
  202. <div class="mobile-widgets">
  203. <div class="widgets">
  204. {{ render(controller('App\\Controller\\ECommerce\\App\\CountdownController::countdown')) }}
  205. {% if is_granted('CART_CREATE') %}
  206. {{ render(controller('App\\Controller\\ECommerce\\App\\CartController::smallWidgetAction')) }}
  207. {% else %}
  208. {{ render(controller('App\\Controller\\ECommerce\\App\\IndividualOrderController::smallWidgetAction')) }}
  209. {% endif %}
  210. </div>
  211. <div class="input-group" id="search-bar">
  212. {{ render(controller('App\\Controller\\ECommerce\\App\\ProductController::filterAction')) }}
  213. </div>
  214. </div>
  215. {{ menu('main_menu') }}
  216. </div>
  217. </nav>
  218. </div>
  219. </div>
  220. </div>
  221. <!-- / header -->
  222. <!-- nav -->
  223. <div class="container-fluid">
  224. <div class="container">
  225. <div class="row">
  226. <div class="col">
  227. <nav class="navbar navbar-expand-lg navbar-light lg-screen-navbar">
  228. <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbar" aria-controls="navbar" aria-expanded="false" aria-label="Toggle navigation">
  229. <span class="navbar-toggler-icon"></span>
  230. </button>
  231. {% set currentRoute = app.request.attributes.get('_route') %}
  232. {% set shopRoute = 'mdl_app_product_index' %}
  233. <div class="collapse navbar-collapse text" id="navbar">
  234. {{ menu('main_menu') }}
  235. {% if currentRoute == shopRoute %}
  236. <ul class="navbar-nav ml-auto mr-5 link-help">
  237. <li class="nav-item">
  238. <a href="{{ path(
  239. 'mdl_app_product_filter',
  240. {
  241. '_locale': app.request.locale,
  242. 'title': 'S 30X47X7',
  243. 'help': 1,
  244. 'on_complete': path(
  245. 'mdl_app_product_index',
  246. {'_locale': app.request.locale},
  247. 'true'
  248. )
  249. })
  250. }}" class="nav-link">{{ 'nav.help'|trans }}</a>
  251. </li>
  252. </ul>
  253. {% endif %}
  254. </div>
  255. </nav>
  256. </div>
  257. </div>
  258. </div>
  259. </div>
  260. <!-- / nav -->
  261. {% if isUser %}
  262. <div class="container-fluid">
  263. <div class="container">
  264. <div class="content">
  265. <div class="row">
  266. {{ menu('user_menu') }}
  267. </div>
  268. </div>
  269. </div>
  270. </div>
  271. {% endif %}
  272. {% block slider %}{% endblock %}
  273. <!-- body1 -->
  274. {% block body %}
  275. {% block content %}{% endblock %}
  276. {% endblock %}
  277. <!-- / body2 -->
  278. <!-- footer -->
  279. <div class="container-fluid" id="page-footer">
  280. <div class="container">
  281. <div class="row">
  282. <div class="newsletter">
  283. <span>{{ 'newsletter.subscribe'|trans|raw }}</span>
  284. </div>
  285. <div class="footer-mail">
  286. <form action="{{ path('mdl_newsletter_new') }}" method="post" class="input-group">
  287. <input type="text" class="form-control bg-white p-lg-3 mr-sm-2 font-medium" placeholder="Email" aria-label="Email">
  288. <button type="submit" class="btn btn-dark font-medium" id="login-btn">
  289. <span>{{ 'newsletter.apply'|trans|raw }}</span><img src="{{ asset('assets/static/arrow-button.svg') }}" class="mw-17 mh-11" alt="Arrow Button Icon">
  290. </button>
  291. </form>
  292. </div>
  293. </div>
  294. <div class="row">
  295. <div class="optima-group">
  296. <img src="{{ asset(group()) }}" alt="optima-group">
  297. <div>
  298. <span class="optima-group-bolded">By Optima Group</span>
  299. <div class="optima-group-text">
  300. <span>Ready to get things moving</span>
  301. </div>
  302. </div>
  303. <div class="social-media input-group">
  304. <a href="https://www.linkedin.com/showcase/optima-srbija/" class="linkedin"></a>
  305. <a href="https://www.instagram.com/optima.rs/" class="instagram"></a>
  306. <a href="https://www.facebook.com/people/Optimars/61571058540257/" class="facebook"></a>
  307. <a href="https://www.youtube.com/channel/UCb-qzB-4PGf1EhZtnaageew" class="youtube"></a>
  308. </div>
  309. </div>
  310. <div class="footer-menu">
  311. <div class="simple-menu">
  312. {{ menu('footer_left') }}
  313. {{ menu('footer_right') }}
  314. {{ render(controller('App\\Controller\\ECommerce\\App\\WorkingHoursController::workingHoursWidgetAction'))|raw }}
  315. </div>
  316. </div>
  317. </div>
  318. <div class="row">
  319. <p class="text-color-grey">{{ 'now'|date('Y') }} {{ 'rights-reserved'|trans }}</p>
  320. <div>
  321. <a href="{{ path('public_privacy_policy') }}" class="text-color-grey">{{ 'policy.privacy'|trans }}</a>
  322. <a href="{{ path('public_terms_of_use') }}" class="text-color-grey">{{ 'policy.use'|trans }}</a>
  323. <a href="{{ path('public_cookie_policy') }}" class="text-color-grey">{{ 'policy.cookies'|trans }}</a>
  324. </div>
  325. </div>
  326. </div>
  327. </div>
  328. <!-- / footer -->
  329. <a href="#" class="scrollup">Scroll</a>
  330. <!-- SCRIPTS -->
  331. {#<script type="application/javascript" src="{{ asset('assets/app/app.js') }}"></script>#}
  332. {% block javascripts %}
  333. {{ encore_entry_script_tags(app_color('app/app-')) }}
  334. <!-- Renders app.js & a webpack runtime.js file
  335. <script src="/build/runtime.js" defer></script>
  336. <script src="/build/app.js" defer></script>
  337. See note below about the "defer" attribute -->
  338. {% endblock %}
  339. </body>
  340. </html>