templates/base.html.twig line 1

Open in your IDE?
  1. <!doctype html>
  2. <html lang="en" data-bs-theme="auto">
  3.   <head>
  4.     <meta charset="utf-8">
  5.     <meta name="viewport" content="width=device-width, initial-scale=1">
  6.     <meta name="description" content="">
  7.     <meta name="author" content="Jince, Grinesh">
  8.     <title>Noble Native</title>
  9.     <link rel="icon" href="{{ asset('img/favicon.png')    }}">
  10.     <link href="{{ asset('css/bootstrap.css')    }}" rel="stylesheet" type="text/css">
  11.     <link href="{{ asset('css/bootstrap-icons.css')    }}" rel="stylesheet" type="text/css">
  12.     <link href="{{ asset('css/noblenative.css')    }}" rel="stylesheet" type="text/css">
  13.     {% block stylesheets %}{% endblock %}
  14.   </head>
  15.   <body>
  16.     <div class="offcanvas offcanvas-start p-4 shadow-lg" tabindex="-1" id="login" aria-labelledby="loginlabel">
  17.       <div class="offcanvas-header">
  18.         <h5 class="offcanvas-title" id="loginlabel">Welcome</h5>
  19.         <button type="button" class="btn-close shadow-none" data-bs-dismiss="offcanvas" aria-label="Close"></button>
  20.       </div>
  21.       <div class="offcanvas-body">
  22.         <div>
  23.           <h1>Step Back into Your World!</h1>
  24.           <form method="POST" action="{{ path('sajong_ecom_email_login') }}" id="emailotploginform">
  25.             <div class="form-floating mb-3 mt-4">
  26.               <input type="email" class="form-control rounded-pill shadow-none border mb-4 px-4" id="loginemail" name="loginemail" placeholder="name@example.com" required>
  27.               <label for="loginemail" class="px-4">Email address</label>
  28.               <input type="hidden" id="logincsrf" name="logincsrf" value="{{ csrf_token('otplogincsrf') }}" />
  29.             </div>
  30.             <div class="form-check">
  31.               <input class="form-check-input shadow-none border" type="checkbox" value="" name="loginsubscribe" id="loginsubscribe" onchange="loginsubscribe('{{ path('sajong_ecom_email_subscribe') }}')" checked>
  32.               <label class="form-check-label" for="loginsubscribe">
  33.                 Email me with news and offers
  34.               </label>
  35.             </div>
  36.             <button type="submit" class="btn bg-secondary text-white px-4 py-3 w-100 rounded-pill mb-4 mt-3"  role="button" aria-controls="otp">Sign In</button>
  37.             <div class="text-danger" id="otploginerror"></div>
  38.           </form>
  39.           <p class="text-center">OR</p>
  40.           <div class="btn px-4 py-3 w-100 rounded-pill" >
  41.             <div id="g_id_onload"
  42.                  data-client_id="62339956659-gf4p78s73c5p33ajso8fbk9quhk7h4qe.apps.googleusercontent.com"
  43.                  data-context="signin"
  44.                  data-ux_mode="popup"
  45.                  data-callback="onSignIn"
  46.                  data-auto_prompt="false">
  47.             </div>
  48.             <div class="g_id_signin"
  49.                  data-type="standard"
  50.                  data-shape="rectangular"
  51.                  data-theme="outline"
  52.                  data-text="signin_with"
  53.                  data-size="large"
  54.                  data-logo_alignment="left"
  55.                  data-height="50"
  56.                  data-width="250">
  57.             </div>
  58.           </div>
  59.           <p>By signing in, you agree to our <a href="{{ path('sajong_ecom_privacy') }}" class="text-decoration-underline">privacy policy</a> and <a href="{{ path('sajong_ecom_terms') }}" class="text-decoration-underline">terms of services</a></p>
  60.         </div>
  61.         
  62.       </div>
  63.     </div>
  64.     <div class="offcanvas offcanvas-start p-4 shadow-lg" tabindex="-1" id="otp" aria-labelledby="otplabel">
  65.       <div class="offcanvas-header">
  66.         <h5 class="offcanvas-title" id="otplabel">Welcome</h5>
  67.         <button type="button" class="btn-close shadow-none" data-bs-dismiss="offcanvas" aria-label="Close"></button>
  68.       </div>
  69.       <div class="offcanvas-body">
  70.         <div class="text-center">
  71.           <h1>Verify your identity</h1> 
  72.           <h6>Enter the code sent to</h6>
  73.           <h5 class="fw-bold mb-4" id="loginemailgiven">username@mailid.com</h5>
  74.           <form>
  75.             <div id="inputs" class="inputs mb-4">
  76.               <input class="input" type="text" name="loginotp1" id="loginotp1" inputmode="numeric" maxlength="1" onchange="emailotp('{{ path('sajong_ecom_email_otp') }}')" />
  77.               <input class="input" type="text" name="loginotp2" id="loginotp2" inputmode="numeric" maxlength="1" onchange="emailotp('{{ path('sajong_ecom_email_otp') }}')" />
  78.               <input class="input" type="text" name="loginotp3" id="loginotp3" inputmode="numeric" maxlength="1" onchange="emailotp('{{ path('sajong_ecom_email_otp') }}')" />
  79.               <input class="input" type="text" name="loginotp4" id="loginotp4" inputmode="numeric" maxlength="1" onchange="emailotp('{{ path('sajong_ecom_email_otp') }}')" />
  80.             </div>
  81.             <div class="text-danger" id="otperror"></div>
  82.             <button type="button" class="shadow-none border-0 bg-transparent text-uppercase fw-semibold text-body mb-2 border-bottom">Send Another Code</button>
  83.             <button type="button" class="shadow-none border-0 bg-transparent text-uppercase fw-semibold text-body mb-2 border-bottom">Try Another Email</button>
  84.           </form>    
  85.         </div>
  86.       </div>
  87.     </div>
  88.     <div class="bg-black text-white fixed-top w-100">
  89.       <div class="container-fluid px-5">
  90.         <div class="col-md-12 py-3 small">{{ ecomvariables.textcontent('free_shipping_banner')|raw()    }}</div>
  91.       </div>
  92.     </div>
  93.     <nav class="navbar navbar-expand-md fixed-top mt-5 bg-light">
  94.       <div class="container-fluid px-5"> <a class="navbar-brand" href="{{ path('sajong_ecom_index') }}"> <img src="{{ asset('img/logo.png')    }}" alt="logo" title="NobleNative" class="main-logo"> </a>
  95.         <button class="navbar-toggler border-0 shadow-none" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button>
  96.         <div class="collapse navbar-collapse" id="navbarCollapse">
  97.           <ul class="navbar-nav me-auto mb-2 mb-md-0">
  98.             <li class="nav-item"> <a class="nav-link" href="#0">City</a> </li>
  99.             <li class="nav-item"> <a class="nav-link" href="#0">Brands</a> </li>
  100.             <li class="nav-item"> <a class="nav-link" href="#0">Products</a> </li>
  101.           </ul>
  102.           <div class="d-flex">
  103.             <ul class="mt-0 pt-0 list-inline list-unstyled">
  104.               <li class="list-inline-item ms-3">{% if app.user %}<a href="{{ path('sajong_ecom_user_account') }}">{% else %}<a data-bs-toggle="offcanvas" href="#login" role="button" aria-controls="login">{% endif %}<i data-feather="user" class="iconsize"></i></a></li>
  105.               <li class="list-inline-item ms-3"> <a href="{{ path('sajong_ecom_cart_list') }}" class="position-relative"> <i data-feather="shopping-bag" class="iconsize"></i> <span class="position-absolute small bg-secondary text-white rounded-circle cart-count">{{ ecomvariables.cartdetails().cartcount }}</span> </a> </li>
  106.               <li class="list-inline-item ms-3"><a href="{{ path('sajong_ecom_faq') }}"><i data-feather="help-circle" class="iconsize"></i></a></li>
  107.             </ul>
  108.           </div>
  109.         </div>
  110.       </div>
  111.     </nav>
  112.     <main>
  113.       {% block body %}{% endblock %}  
  114.       <div class="container-fluid px-5 text-white bg-dark pt-5 pb-5 mt-5">
  115.         <div class="row">
  116.           <div class="col-lg-2">
  117.             <ul class="list-unstyled mb-4">
  118.               <li class="mt-3"><a href="{{ path('sajong_ecom_about') }}" class="text-white">About Us</a></li>
  119.               <li class="mt-2"><a href="{{ path('sajong_ecom_contact') }}" class="text-white">Contact Us</a></li>
  120.               <li class="mt-2"><a href="{{ path('sajong_ecom_faq') }}" class="text-white">FAQ's</a></li>
  121.               <li class="mt-2"><a href="{{ path('sajong_ecom_faq') }}" class="text-white">Gift Card</a></li>
  122.             </ul>
  123.           </div>
  124.           <div class="col-lg-2">
  125.             <ul class="list-unstyled">
  126.               <li class="mt-3"><a href="{{ path('sajong_ecom_faq') }}" class="text-white">Join N|N</a></li>
  127.               <li class="mt-2"><a href="{{ path('sajong_ecom_faq') }}" class="text-white">Brand Collab</a></li>
  128.               <li class="mt-2"><a href="{{ path('sajong_ecom_faq') }}" class="text-white">Designer Collab</a></li>
  129.             </ul>
  130.           </div>
  131.           <div class="col-lg-12">
  132.             <ul class="list-unstyled list-inline mb-4">
  133.               <li class="list-inline-item"><a href="{{ ecomvariables.textcontent('site_insta_page')    }}"><i data-feather="instagram" class="iconsize-footer"></i></a></li>
  134.               <li class="list-inline-item"><a href="{{ ecomvariables.textcontent('site_fb_page')    }}"><i data-feather="facebook" class="iconsize-footer"></i></a></li>
  135.               <li class="list-inline-item"><a href="{{ ecomvariables.textcontent('site_yt_page')    }}"><i data-feather="youtube" class="iconsize-footer"></i></a></li>
  136.             </ul>
  137.           </div>
  138.           <div class="col-lg-12">Copyright {{ "now"|date("Y") }} Noble Native. All rights reserved</div>
  139.         </div>
  140.       </div>
  141.     </main>
  142.     <script src="https://accounts.google.com/gsi/client" async defer></script>
  143.     <script src="{{ asset('js/jquery-3.6.3.js')    }}"></script> 
  144.     <script src="{{ asset('js/bootstrap.bundle.min.js')    }}" type="text/javascript" ></script> 
  145.     <script src="{{ asset('js/feather.min.js')    }}" type="text/javascript" ></script>    
  146.     <script type="text/javascript" src="{{ asset('js/jquery-validate.js')    }}"></script>
  147.     <script src="{{    asset('js/sajongecom.js')    }}"></script>
  148.     <script src="{{    asset('js/otp.js')    }}"></script>
  149.     <script>
  150.           feather.replace();
  151.           {% if app.user is empty %}
  152.           $(document).ready(function() {
  153.             var locationpath = ""+window.location+"";
  154.             var nn_loginreg = locationpath.split("#");    
  155.             if(nn_loginreg[1] == 'nnlogin' ) {
  156.               var offcanvasElement = $("#login");
  157.               var offcanvas = new bootstrap.Offcanvas(offcanvasElement);
  158.               offcanvas.toggle();
  159.             }
  160.           });
  161.           
  162.           function onSignIn(googleUser) {
  163.             $.ajax({
  164.               type:"post",
  165.               url: "{{ path('sajong_ecom_social_login') }}", 
  166.               data: {'credential':googleUser.credential, loginsubscribe:$('#loginsubscribe').is(':checked')},
  167.               dataType: "json",
  168.               success: function(res) {
  169.                 if(res.success == 'Authentication failed') {
  170.                   alert('Google Authentication failed!!');
  171.                 }
  172.                 else {
  173.                   window.location.reload();
  174.                 }
  175.               },
  176.               error: function() {
  177.                 alert('We are facing some technical issue. Please try again.');
  178.               }
  179.             });
  180.           }
  181.           
  182.           {% endif %}
  183.     </script>
  184.     {% block scripts %}{% endblock %}
  185.   </body>
  186. </html>