SELECT 
  cscart_bm_snapping.grid_id as grid_id, 
  cscart_bm_snapping.block_id as block_id, 
  IFNULL(
    dynamic_object_content.content, 
    default_content.content
  ) as content, 
  IFNULL(
    dynamic_object_content.object_id, 
    default_content.object_id
  ) AS object_id, 
  IFNULL(
    dynamic_object_content.object_type, 
    default_content.object_type
  ) AS object_type, 
  cscart_bm_block_statuses.object_ids as object_ids, 
  cscart_bm_snapping.*, 
  cscart_bm_blocks.*, 
  cscart_bm_blocks_descriptions.* 
FROM 
  cscart_bm_snapping 
  LEFT JOIN cscart_bm_blocks ON cscart_bm_blocks.block_id = cscart_bm_snapping.block_id 
  LEFT JOIN cscart_bm_block_statuses ON cscart_bm_snapping.snapping_id = cscart_bm_block_statuses.snapping_id 
  AND cscart_bm_block_statuses.object_type LIKE '' 
  LEFT JOIN cscart_bm_blocks_descriptions ON cscart_bm_blocks.block_id = cscart_bm_blocks_descriptions.block_id 
  LEFT JOIN cscart_bm_blocks_content AS default_content ON cscart_bm_blocks.block_id = default_content.block_id 
  AND cscart_bm_blocks_descriptions.lang_code = default_content.lang_code 
  AND default_content.snapping_id = 0 
  AND default_content.object_id = 0 
  AND default_content.object_type like '' 
  LEFT JOIN cscart_bm_blocks_content AS dynamic_object_content ON cscart_bm_blocks.block_id = dynamic_object_content.block_id 
  AND cscart_bm_blocks_descriptions.lang_code = dynamic_object_content.lang_code 
  AND dynamic_object_content.object_id = 0 
  AND dynamic_object_content.object_type like '' 
WHERE 
  cscart_bm_snapping.grid_id IN (
    568, 569, 570, 571, 572, 573, 574, 575, 
    576, 577, 578, 802, 803, 579, 580, 801, 
    800, 806, 805, 779, 782, 788, 780, 783, 
    784, 785, 786, 787, 789, 781, 790, 791
  ) 
  AND cscart_bm_blocks_descriptions.lang_code = 'en' 
ORDER BY 
  cscart_bm_snapping.order, 
  cscart_bm_snapping.block_id

Query time 0.00283

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost": 0.872217187,
    "nested_loop": [
      {
        "read_sorted_file": {
          "filesort": {
            "sort_key": "cscart_bm_snapping.`order`, cscart_bm_snapping.block_id",
            "table": {
              "table_name": "cscart_bm_snapping",
              "access_type": "range",
              "possible_keys": ["grid_id"],
              "key": "grid_id",
              "key_length": "4",
              "used_key_parts": ["grid_id"],
              "loops": 1,
              "rows": 74,
              "cost": 0.10567592,
              "filtered": 100,
              "index_condition": "cscart_bm_snapping.grid_id in (568,569,570,571,572,573,574,575,576,577,578,802,803,579,580,801,800,806,805,779,782,788,780,783,784,785,786,787,789,781,790,791)"
            }
          }
        }
      },
      {
        "table": {
          "table_name": "cscart_bm_blocks",
          "access_type": "eq_ref",
          "possible_keys": ["PRIMARY"],
          "key": "PRIMARY",
          "key_length": "4",
          "used_key_parts": ["block_id"],
          "ref": ["u428615623_ecartifygonje.cscart_bm_snapping.block_id"],
          "loops": 74,
          "rows": 1,
          "cost": 0.07028456,
          "filtered": 100
        }
      },
      {
        "table": {
          "table_name": "cscart_bm_blocks_descriptions",
          "access_type": "eq_ref",
          "possible_keys": ["PRIMARY"],
          "key": "PRIMARY",
          "key_length": "10",
          "used_key_parts": ["block_id", "lang_code"],
          "ref": ["u428615623_ecartifygonje.cscart_bm_snapping.block_id", "const"],
          "loops": 74,
          "rows": 1,
          "cost": 0.07110376,
          "filtered": 100,
          "attached_condition": "cscart_bm_blocks_descriptions.lang_code = 'en'"
        }
      },
      {
        "table": {
          "table_name": "cscart_bm_block_statuses",
          "access_type": "ref",
          "possible_keys": ["snapping_id"],
          "key": "snapping_id",
          "key_length": "4",
          "used_key_parts": ["snapping_id"],
          "ref": ["u428615623_ecartifygonje.cscart_bm_snapping.snapping_id"],
          "loops": 74,
          "rows": 1,
          "cost": 0.07219738,
          "filtered": 100,
          "attached_condition": "trigcond(cscart_bm_snapping.snapping_id = cscart_bm_block_statuses.snapping_id and cscart_bm_block_statuses.object_type like '')"
        }
      },
      {
        "table": {
          "table_name": "default_content",
          "access_type": "ref",
          "possible_keys": ["PRIMARY"],
          "key": "PRIMARY",
          "key_length": "18",
          "used_key_parts": ["block_id", "snapping_id", "lang_code", "object_id"],
          "ref": [
            "u428615623_ecartifygonje.cscart_bm_snapping.block_id",
            "const",
            "u428615623_ecartifygonje.cscart_bm_blocks_descriptions.lang_code",
            "const"
          ],
          "loops": 74,
          "rows": 1,
          "cost": 0.13199898,
          "filtered": 100,
          "attached_condition": "trigcond(default_content.object_type like '')"
        }
      },
      {
        "table": {
          "table_name": "dynamic_object_content",
          "access_type": "ref",
          "possible_keys": ["PRIMARY"],
          "key": "PRIMARY",
          "key_length": "4",
          "used_key_parts": ["block_id"],
          "ref": ["u428615623_ecartifygonje.cscart_bm_snapping.block_id"],
          "loops": 74,
          "rows": 5,
          "cost": 0.18024698,
          "filtered": 100,
          "attached_condition": "trigcond(dynamic_object_content.lang_code = cscart_bm_blocks_descriptions.lang_code and dynamic_object_content.object_id = 0 and dynamic_object_content.object_type like '')"
        }
      }
    ]
  }
}

Result

grid_id block_id content object_id object_type object_ids snapping_id wrapper user_class order status type properties company_id storefront_id lang_code name
569 4 0 889 blocks/wrappers/onclick_dropdown.tpl top-my-account 0 A my_account a:1:{s:8:"template";s:21:"blocks/my_account.tpl";} 0 1 en My Account
568 5 0 885 top-logo 0 D template a:2:{s:8:"template";s:32:"blocks/static_templates/logo.tpl";s:11:"enable_link";s:1:"Y";} 0 1 en Logo
570 8 0 891 top-cart-content 0 A cart_content a:4:{s:8:"template";s:23:"blocks/cart_content.tpl";s:22:"display_bottom_buttons";s:1:"Y";s:20:"display_delete_icons";s:1:"Y";s:19:"products_links_type";s:5:"thumb";} 0 1 en Cart content
791 10 0 1354 0 A breadcrumbs a:1:{s:8:"template";s:22:"common/breadcrumbs.tpl";} 0 1 en Breadcrumbs
805 10 0 1355 0 A breadcrumbs a:1:{s:8:"template";s:22:"common/breadcrumbs.tpl";} 0 1 en Breadcrumbs
789 18 0 1306 0 A template a:1:{s:8:"template";s:37:"blocks/static_templates/copyright.tpl";} 0 1 en Copyright
573 48 a:1:{s:7:"content";s:24:"<h2> {__("stores")}</h2>";} 0 897 0 D safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 en Stores
571 49 0 892 0 D vendor_logo a:1:{s:8:"template";s:30:"blocks/vendors/vendor_logo.tpl";} 0 1 en Vendor logo
577 51 0 900 0 D vendor_information a:1:{s:8:"template";s:37:"blocks/vendors/vendor_information.tpl";} 0 1 en Vendor information
578 52 a:1:{s:5:"items";a:1:{s:7:"filling";s:8:"manually";}} 0 901 0 A product_filters a:1:{s:8:"template";s:43:"blocks/product_filters/selected_filters.tpl";} 0 1 en Selected product filters
783 128 0 1300 blocks/wrappers/footer_general.tpl 0 D template a:1:{s:8:"template";s:39:"blocks/static_templates/quick_links.tpl";} 0 1 en My account
784 130 a:1:{s:7:"content";s:611:" <ul id="demo_store_links"> <li class="ty-footer-menu__item"><a href="{"pages.view?page_id=2"|fn_url}">About us</a></li> <li class="ty-footer-menu__item"><a href="{"pages.view?page_id=30"|fn_url}">Contact us</a></li> <li class="ty-footer-menu__item"><a href="{"gift_certificates.add"|fn_url}">Gift certificates</a></li> <li class="ty-footer-menu__item"><a href="{"product_features.view_all?filter_id=10"|fn_url}">Our brands</a></li> <li class="ty-footer-menu__item"><a href="{"sitemap.view"|fn_url}">Sitemap</a></li> <li class="ty-footer-menu__item"><a href="{"pages.view?page_id=7"|fn_url}">Blog</a></li> </ul>";} 0 1302 blocks/wrappers/footer_general.tpl footer-no-wysiwyg 0 D safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 en Quick Links
785 131 a:1:{s:7:"content";s:705:" <ul id="customer_service_links"> <li class="ty-footer-menu__item"><a href="{"orders.search"|fn_url}">About your order</a></li> {if $addons.wishlist && $addons.wishlist.status == 'A'} <li class="ty-footer-menu__item"><a href="{"wishlist.view"|fn_url}">Wishlist</a></li> {/if} {if $settings.General.enable_compare_products == 'Y'} <li class="ty-footer-menu__item"><a href="{"product_features.compare"|fn_url}">Comparison list</a></li> {/if} </ul>";} 0 1303 blocks/wrappers/footer_general.tpl footer-no-wysiwyg 0 D safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 en Customer Service
787 178 a:1:{s:7:"content";s:3486:"<p> <title>Gonje Footer Quick Links</title></p> <style> .footer { position: relative; top: -50px; font-family: Arial, sans-serif; color: #333; text-align: center; font-size: 13px; padding-bottom: 20px; font-weight: normal; /* Or use 400 */ } .footer .quick-links-container { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; max-width: 1200px; margin: 0 auto; text-align: left; } .footer .quick-links { color: #fff; list-style-type: none; padding: 0; margin: 0; } .footer .quick-links li { color: #ffffff; margin: 10px 0; } .footer .quick-links a { color: #ffffff; text-decoration: none; transition: color 0.3s ease; } .footer .quick-links a:hover { color: #70ab4b; } .footer h3 { color: #bdc3c7; margin-bottom: 10px; } .gonje-text-style { color: #fff; } /* Media Queries for smaller screens */ @media (max-width: 768px) { .footer { position: relative; top: -20px; } .footer .quick-links-container { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 480px) { .footer .quick-links-container { grid-template-columns: 1fr; text-align: left; } .footer .quick-links { text-align: left; } .footer .quick-links li { margin: 5px 0; } } </style> <footer class="footer"> <br><br> <div class="quick-links-container"> <div> <h3>Gonje Market</h3> <p class="gonje-text-style">We connect buyers and sellers of natural, organic, environmentally sound products.</p> </div> <div> <h3>The Company</h3> <ul class="quick-links"> <li><a href="https://gonje.com/aboutUs">About Us</a></li> <li><a href="https://gonje.com/terms">Terms & Conditions</a></li> <li><a href="https://gonje.com/terms#privacy">Privacy Policy</a></li> <li><a href="https://gonje.com/terms#refunds">Refunds Policy</a></li> </ul> </div> <div> <h3>Customer Service</h3> <ul class="quick-links"> <li><a href="https://gonje.com/contactUs">Help & Contact Us</a></li> <li><a href="https://gonje.com/faq">FAQ</a></li> </ul> </div> <div> <h3>Address</h3> <p class="gonje-text-style">ABN - 46 649 251 007<br> Unit 12, 442 Geelong Road, West Footscray, Victoria, 3013<br> Parcel Collect 10143 43082, 341 Barry Road, Campbellfield VIC 3061<br> Tel – 0399692891<br> Email – operations@gonje.com</p> </div> </div> </footer>";} 0 1305 0 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Gonje Footer
579 180 a:1:{s:7:"content";s:4374:"<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Collapsible Navigation</title> <style> .gonje-vendors-container { font-family: Arial, sans-serif; max-width: 300px; padding: 16px; text-align: left; background-color: #fff; border-radius: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); } .gonje-vendors-heading { font-size: 24px; font-weight: bold; margin-bottom: 20px; color: #333; cursor: pointer; display: flex; justify-content: space-between; align-items: center; } .gonje-vendors-heading::after { content: "▼"; font-size: 16px; transition: transform 0.2s; } .gonje-vendors-heading.collapsed::after { transform: rotate(-90deg); } .gonje-vendors-list { display: flex; flex-direction: column; } .gonje-vendors-grid-item { background-color: #fff; border-radius: 5px; padding: 10px; display: flex; justify-content: flex-start; align-items: center; transition: background-color 0.2s, box-shadow 0.2s, transform 0.2s; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); margin-bottom: 10px; } .gonje-vendors-grid-item a { display: flex; flex-direction: row; align-items: center; color: black; text-decoration: none; width: 100%; } .gonje-vendors-grid-item img { width: 40px; margin-right: 10px; } .gonje-vendors-grid-item:hover { background-color: #F7D594; box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2); transform: scale(1.05); } .gonje-vendors-grid-item a span { font-weight: bold; } @media (max-width: 400px) { .gonje-vendors-container { max-width: 100%; padding: 10px; } .gonje-vendors-heading { font-size: 20px; margin-bottom: 15px; } .gonje-vendors-grid-item { padding: 8px; margin-bottom: 8px; } .gonje-vendors-grid-item img { width: 30px; margin-right: 8px; } } </style> </head> <body> <div class="gonje-vendors-container"> <div class="gonje-vendors-heading" onclick="toggleVendorsList()"> Vendor Categories </div> <div class="gonje-vendors-list" id="vendors-list"> <div class="gonje-vendors-grid-item"> <a href="https://marketplace.gonje.com/groceries"> <img src="https://www.gonje.com.au/assets/images/shopping-basket.svg" alt="Groceries"> <span>Groceries</span> </a> </div> <div class="gonje-vendors-grid-item"> <a href="https://marketplace.gonje.com/fridge"> <img src="https://www.gonje.com.au/assets/images/fridge.svg" alt="Fridge"> <span>Fridge</span> </a> </div> <div class="gonje-vendors-grid-item"> <a href="https://marketplace.gonje.com/meal-kits"> <img src="https://www.gonje.com.au/assets/images/kitchen-book.svg" alt="Meal Kits"> <span>Meal Kits</span> </a> </div> <div class="gonje-vendors-grid-item"> <a href="https://marketplace.gonje.com/todays-sale"> <img src="https://www.gonje.com.au/assets/images/sale(1).svg" alt="Today's Sale"> <span>Today's Sale</span> </a> </div> <div class="gonje-vendors-grid-item"> <a href="https://marketplace.gonje.com/gift-card"> <img src="https://www.gonje.com.au/assets/images/gift-box.svg" alt="Gift Card"> <span>Gift Card</span> </a> </div> <div class="gonje-vendors-grid-item"> <a href="https://marketplace.gonje.com/top-deals"> <img src="https://www.gonje.com.au/assets/images/offers.svg" alt="Top Deals"> <span>Top Deals</span> </a> </div> <div class="gonje-vendors-grid-item"> <a href="https://marketplace.gonje.com/go-club"> <img src="https://www.gonje.com.au/assets/images/project-launch.svg" alt="Go Club"> <span>Go Club</span> </a> </div> <div class="gonje-vendors-grid-item"> <a href="https://marketplace.gonje.com/whats-new"> <img src="https://www.gonje.com.au/assets/images/new-items.svg" alt="What's New"> <span>What's New</span> </a> </div> </div> </div> <script> function toggleVendorsList() { var vendorsList = document.getElementById('vendors-list'); var heading = document.querySelector('.gonje-vendors-heading'); vendorsList.style.display = vendorsList.style.display === 'none' ? 'flex' : 'none'; heading.classList.toggle('collapsed'); } </script> </body> </html> ";} 0 904 0 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Gonje Vendor Categories Vertical
568 197 a:1:{s:7:"content";s:679:"{** block-description:tmpl_logo **} <div class="ty-logo-container"> {$logo_link = $block.properties.enable_link|default:"Y" == "Y"} {if $logo_link} <a href="https://marketplace.gonje.com/" title="{$logos.theme.image.alt}"> {/if} {include file="common/image.tpl" images=$logos.theme.image class="ty-logo-container__image" image_additional_attrs=["width" => $logos.theme.image.image_x, "height" => $logos.theme.image.image_y] obj_id=false show_no_image=false show_detailed_link=false capture_image=false } {if $logo_link} </a> {/if} </div> ";} 0 886 0 A safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 en Modified logo for href linking
572 223 a:1:{s:7:"content";s:12172:"<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Ecommerce Links</title> <style> .gonje-nav-buttons-container { position: relative; width: 100%; max-width: 100%; overflow: hidden; background-color: #f7f5f0; border-radius: 20px; padding: 5px 0; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); margin: 0 auto; z-index: 1; } .gonje-nav-buttons-list { display: flex; gap: 8px; padding: 10px; scroll-behavior: smooth; overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; white-space: nowrap; position: relative; z-index: 2; -webkit-overflow-scrolling: touch; /* Better scrolling on iOS */ } .gonje-nav-buttons-list::-webkit-scrollbar { display: none; } .gonje-nav-buttons-button { display: flex; align-items: center; gap: 6px; padding: 6px 12px; background: white; border-radius: 20px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); text-decoration: none; color: #333; font-size: 14px; font-weight: bold; transition: all 0.3s ease; flex-shrink: 0; position: relative; z-index: 3; } .gonje-nav-buttons-button:hover { background: #70ab4b; color: white; transform: scale(1.05); } .gonje-nav-buttons-button img { width: 18px; height: 18px; object-fit: contain; } .gonje-nav-buttons-arrow { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(0, 0, 0, 0.5); color: white; border: none; padding: 6px; border-radius: 50%; cursor: pointer; font-size: 12px; opacity: 0; transition: opacity 0.3s ease; z-index: 9999; display: flex; align-items: center; justify-content: center; width: 26px; height: 26px; } .gonje-nav-buttons-left-arrow { left: 5px; } .gonje-nav-buttons-right-arrow { right: 5px; } .gonje-nav-buttons-container:hover .gonje-nav-buttons-arrow { opacity: 1; } .gonje-nav-buttons-arrow:hover { background: rgba(0, 0, 0, 0.8); } /* Mobile styles */ @media (max-width: 768px) { .gonje-nav-buttons-arrow { display: none !important; } .gonje-nav-buttons-list { gap: 6px; padding: 8px 10px; } .gonje-nav-buttons-button { padding: 5px 10px; font-size: 11px; } .gonje-nav-buttons-button img { width: 18px; height: 18px; } } /* Extra small mobile devices */ @media (max-width: 480px) { .gonje-nav-buttons-button { padding: 4px 8px; font-size: 12px; border-radius: 15px; } .gonje-nav-buttons-button img { width: 12px; height: 12px; } .gonje-nav-buttons-list { gap: 4px; padding: 6px 8px; } } </style> </head> <body class="gonje-nav-buttons-body"> <div class="gonje-nav-buttons-container" id="gonjeNavButtonsScrollContainer"> <button class="gonje-nav-buttons-arrow gonje-nav-buttons-left-arrow" onclick="gonjeNavButtonsScrollList(-200)">׀</button> <div class="gonje-nav-buttons-list" id="gonjeNavButtonsList"> <a href="https://marketplace.gonje.com/fulfilment-by-gonje/" class="gonje-nav-buttons-button"> <img src="https://backendapi.gonje.com/public/gonje-storage/public/images/cheers-in-love.svg" alt="Beverages"> <span>Beverages</span> </a> <a href="https://marketplace.gonje.com/fulfilment-by-gonje/" class="gonje-nav-buttons-button"> <img src="https://backendapi.gonje.com/public/gonje-storage/public/images/cherry.svg" alt="Fresh Fruits"> <span>Fresh Fruits</span> </a> <a href="https://marketplace.gonje.com/fulfilment-by-gonje/" class="gonje-nav-buttons-button"> <img src="https://backendapi.gonje.com/public/gonje-storage/public/images/grocery.svg" alt="Daily Groceries"> <span>Daily Groceries</span> </a> <a href="https://marketplace.gonje.com/fulfilment-by-gonje/" class="gonje-nav-buttons-button"> <img src="https://backendapi.gonje.com/public/gonje-storage/public/images/ice-cream.svg" alt="Cool Desserts"> <span>Cool Desserts</span> </a> <a href="https://marketplace.gonje.com/fulfilment-by-gonje/" class="gonje-nav-buttons-button"> <img src="https://backendapi.gonje.com/public/gonje-storage/public/images/fridge-items.svg" alt="Fresh Items"> <span>Fresh Items</span> </a> <a href="https://marketplace.gonje.com/fulfilment-by-gonje/" class="gonje-nav-buttons-button"> <img src="https://backendapi.gonje.com/public/gonje-storage/public/images/fridge-sushi.svg" alt="Sushi"> <span>Sushi</span> </a> <a href="https://marketplace.gonje.com/fulfilment-by-gonje/" class="gonje-nav-buttons-button"> <img src="https://backendapi.gonje.com/public/gonje-storage/public/images/fridge-pasta.svg" alt="Pasta"> <span>Pasta</span> </a> <a href="https://marketplace.gonje.com/fulfilment-by-gonje/" class="gonje-nav-buttons-button"> <img src="https://backendapi.gonje.com/public/gonje-storage/public/images/fridge-meal.svg" alt="Meals"> <span>Meals</span> </a> <a href="https://marketplace.gonje.com/fulfilment-by-gonje/" class="gonje-nav-buttons-button"> <img src="https://backendapi.gonje.com/public/gonje-storage/public/images/handbag.svg" alt="Accessories"> <span>Accessories</span> </a> <a href="https://marketplace.gonje.com/fulfilment-by-gonje/" class="gonje-nav-buttons-button"> <img src="https://backendapi.gonje.com/public/kosher.jpg" alt="Kosher"> <span>Kosher</span> </a> <a href="https://marketplace.gonje.com/fulfilment-by-gonje/" class="gonje-nav-buttons-button"> <img src="https://backendapi.gonje.com/public/halal.webp" alt="Halal"> <span>Halal</span> </a> <a href="https://marketplace.gonje.com/fulfilment-by-gonje/" class="gonje-nav-buttons-button"> <img src="https://backendapi.gonje.com/public/gonje-storage/public/images/fridge-meals.svg" alt="Ready-to-Eat"> <span>Ready-to-Eat</span> </a> </div> <button class="gonje-nav-buttons-arrow gonje-nav-buttons-right-arrow" onclick="gonjeNavButtonsScrollList(200)">ֶ</button> </div> <script> const gonjeNavButtonsContainer = document.getElementById('gonjeNavButtonsScrollContainer'); const gonjeNavButtonsList = document.getElementById('gonjeNavButtonsList'); let autoScrollInterval; let isHovering = false; let isTouching = false; let scrollAmount = 200; let scrollDelay = 3000; function gonjeNavButtonsScrollList(amount) { gonjeNavButtonsList.scrollBy({ left: amount, behavior: 'smooth' }); } function calculateScrollAmount() { // Adjust scroll amount based on screen size if (window.innerWidth <= 480) { return 150; // Smaller scroll for very small devices } else if (window.innerWidth <= 768) { return 180; // Medium scroll for tablets } return 200; // Default for desktop } function startAutoScroll() { // Only start autoscroll if not on mobile and not touching if (window.innerWidth > 768 && !isTouching) { scrollAmount = calculateScrollAmount(); autoScrollInterval = setInterval(() => { if (!isHovering && !isTouching) { // Check if we've reached the end if (gonjeNavButtonsList.scrollLeft + gonjeNavButtonsList.clientWidth >= gonjeNavButtonsList.scrollWidth - 10) { // Scroll back to start smoothly gonjeNavButtonsList.scrollTo({ left: 0, behavior: 'smooth' }); } else { // Scroll right gonjeNavButtonsList.scrollBy({ left: scrollAmount, behavior: 'smooth' }); } } }, scrollDelay); } } function stopAutoScroll() { clearInterval(autoScrollInterval); } // Handle touch events to pause auto-scroll on mobile gonjeNavButtonsList.addEventListener('touchstart', () => { isTouching = true; stopAutoScroll(); }); gonjeNavButtonsList.addEventListener('touchend', () => { isTouching = false; // Restart autoscroll after a delay if not on mobile if (window.innerWidth > 768) { setTimeout(startAutoScroll, scrollDelay); } }); // Handle hover events to pause auto-scroll gonjeNavButtonsContainer.addEventListener('mouseenter', () => { isHovering = true; // Show arrows on hover const arrows = document.querySelectorAll('.gonje-nav-buttons-arrow'); arrows.forEach(arrow => arrow.style.opacity = '1'); }); gonjeNavButtonsContainer.addEventListener('mouseleave', () => { isHovering = false; // Hide arrows when not hovering (only on desktop) if (window.innerWidth > 768) { const arrows = document.querySelectorAll('.gonje-nav-buttons-arrow'); arrows.forEach(arrow => arrow.style.opacity = '0'); } }); // Initialize function initCarousel() { // Hide arrows on mobile, show on desktop (initially hidden) const arrows = document.querySelectorAll('.gonje-nav-buttons-arrow'); if (window.innerWidth <= 768) { arrows.forEach(arrow => arrow.style.display = 'none'); } else { arrows.forEach(arrow => { arrow.style.display = 'flex'; arrow.style.opacity = '0'; }); } // Adjust scroll delay based on screen size scrollDelay = window.innerWidth <= 480 ? 4000 : 3000; // Start auto-scroll stopAutoScroll(); startAutoScroll(); } // Initial setup initCarousel(); // Re-initialize on resize window.addEventListener('resize', () => { initCarousel(); }); // Pause auto-scroll when window loses focus window.addEventListener('blur', stopAutoScroll); window.addEventListener('focus', startAutoScroll); </script> </body> </html>";} 0 894 0 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Horizontal Nav Button list
790 356 a:1:{s:7:"content";s:9408:"<script> // Mobile Bottom Navigation Script with CS-Cart auth check document.addEventListener('DOMContentLoaded', function() { // Check if user is logged in (CS-Cart specific check) if (typeof Tygh === 'undefined' || !Tygh.$('.cm-auth-container').length || Tygh.$('.cm-auth-container').hasClass('logged-in')) { // Only proceed if user is logged in // First, ensure Font Awesome is loaded if (!document.querySelector('link[href*="font-awesome"]')) { const faLink = document.createElement('link'); faLink.rel = 'stylesheet'; faLink.href = 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css'; document.head.appendChild(faLink); } // Create the navigation container const mobileNav = document.createElement('div'); mobileNav.className = 'g-bottom-nav'; // Create the navigation items container const navItems = document.createElement('ul'); navItems.className = 'g-bottom-nav__items'; navItems.style.listStyle = 'none'; navItems.style.margin = '0'; navItems.style.padding = '0'; // Navigation items data with CS-Cart URLs const navLinks = [ { url: fn_url('companies.apply_for_vendor'), faIcon: 'fas fa-store', fallbackIcon: '&#x1F3EA;', text: 'Vendor', show: true }, { url: fn_url('orders.search'), faIcon: 'fas fa-clipboard-list', fallbackIcon: '&#x1F4CB;', text: 'Orders', show: typeof Tygh !== 'undefined' && Tygh.auth.orders_count > 0 }, { url: fn_url('wishlist.view'), faIcon: 'fas fa-heart', fallbackIcon: '&#x2665;', text: 'Planner', show: true }, { url: fn_url('checkout.cart'), faIcon: 'fas fa-shopping-cart', fallbackIcon: '&#x1F6D2;', text: 'Cart', show: true, badge: typeof Tygh !== 'undefined' && Tygh.cart.amount > 0 ? Tygh.cart.amount : null }, { url: fn_url('pages.view?page_id=XX'), // Replace XX with actual page ID faIcon: 'fas fa-hands-helping', fallbackIcon: '&#x1F91D;', text: 'Initiative', show: true } ]; // Get current URL and clean it for comparison const currentUrl = new URL(window.location.href); const currentPath = currentUrl.pathname + currentUrl.search; // Create navigation items navLinks.forEach(link => { if (!link.show) return; const navItem = document.createElement('li'); navItem.className = 'g-bottom-nav__li'; navItem.style.listStyle = 'none'; navItem.style.margin = '0'; navItem.style.padding = '0'; const navLink = document.createElement('a'); navLink.href = link.url; // Check if this link matches current page const linkUrl = new URL(link.url); const linkPath = linkUrl.pathname + linkUrl.search; const isActive = currentPath === linkPath || (currentPath.startsWith(linkPath) && linkPath !== '/'); navLink.className = `g-bottom-nav__item ${isActive ? 'active' : ''}`; // Create icon container const iconContainer = document.createElement('span'); iconContainer.className = 'g-bottom-nav__icon'; // Create Font Awesome icon const faIcon = document.createElement('i'); faIcon.className = link.faIcon; faIcon.style.display = 'inline-block'; // Create fallback with HTML entity const fallback = document.createElement('span'); fallback.className = 'g-bottom-nav__icon-fallback'; fallback.innerHTML = link.fallbackIcon; fallback.style.display = 'none'; // Add both to container iconContainer.appendChild(faIcon); iconContainer.appendChild(fallback); // Create text label const text = document.createElement('span'); text.className = 'g-bottom-nav__text'; text.textContent = link.text; navLink.appendChild(iconContainer); navLink.appendChild(text); // Add badge if needed if (link.badge) { const badge = document.createElement('span'); badge.className = 'g-bottom-nav__badge'; badge.textContent = link.badge; navLink.appendChild(badge); } navItem.appendChild(navLink); navItems.appendChild(navItem); // Check if Font Awesome loaded properly setTimeout(() => { if (faIcon.offsetWidth === 0 && faIcon.offsetHeight === 0) { faIcon.style.display = 'none'; fallback.style.display = 'inline-block'; } }, 100); }); // Add items to navigation mobileNav.appendChild(navItems); // Add navigation to body document.body.appendChild(mobileNav); // Add CSS styles const style = document.createElement('style'); style.textContent = ` .g-bottom-nav { display: none; position: fixed; bottom: 0; left: 0; right: 0; background: white; box-shadow: 0 -2px 10px rgba(0,0,0,0.1); z-index: 1000; padding: 8px 0; } .g-bottom-nav__items { display: flex; justify-content: space-around; align-items: center; list-style: none !important; margin: 0 !important; padding: 0 !important; } .g-bottom-nav__li { list-style: none !important; margin: 0 !important; padding: 0 !important; } .g-bottom-nav__item { display: flex; flex-direction: column; align-items: center; text-decoration: none; color: #555; font-size: 10px; padding: 5px 8px; border-radius: 8px; transition: all 0.2s ease; position: relative; } .g-bottom-nav__icon { display: inline-block; width: 20px; height: 20px; text-align: center; margin-bottom: 4px; font-size: 20px; line-height: 1; } .g-bottom-nav__item i { font-size: 20px; display: inline-block; width: 100%; height: 100%; } .g-bottom-nav__icon-fallback { font-size: 20px; display: none; width: 100%; height: 100%; } .g-bottom-nav__item.active { color: #28A745; background: rgba(40, 167, 69, 0.1); } .g-bottom-nav__item.active i, .g-bottom-nav__item.active .g-bottom-nav__icon-fallback { color: #28A745; } .g-bottom-nav__item:hover { background: rgba(40, 167, 69, 0.1); } .g-bottom-nav__badge { position: absolute; top: -5px; right: -5px; background: #28A745; color: white; border-radius: 50%; width: 16px; height: 16px; font-size: 10px; display: flex; align-items: center; justify-content: center; } @media (max-width: 768px) { .g-bottom-nav { display: block; } body { padding-bottom: 70px; } } `; document.head.appendChild(style); // Add click handler to set active state document.querySelectorAll('.g-bottom-nav__item').forEach(item => { item.addEventListener('click', function(e) { document.querySelectorAll('.g-bottom-nav__item').forEach(navItem => { navItem.classList.remove('active'); }); this.classList.add('active'); }); }); } }); </script>";} 0 1323 0 D safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 en Smarty Bottom Nav
790 358 a:1:{s:7:"content";s:7210:"<script> // Mobile Bottom Navigation Script with Font Awesome + HTML entity fallbacks document.addEventListener('DOMContentLoaded', function() { // First, ensure Font Awesome is loaded if (!document.querySelector('link[href*="font-awesome"]')) { const faLink = document.createElement('link'); faLink.rel = 'stylesheet'; faLink.href = 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css'; document.head.appendChild(faLink); } // Create the navigation container const mobileNav = document.createElement('div'); mobileNav.className = 'mobile-bottom-nav'; // Create the navigation items container const navItems = document.createElement('ul'); navItems.className = 'mobile-nav-items'; // Navigation items data with both Font Awesome and HTML entity fallbacks const navLinks = [ { url: 'https://marketplace.gonje.com/index.php?dispatch=companies.catalog', faIcon: 'fas fa-store', fallbackIcon: '&#x1F3EA;', // ???? text: 'Vendor', active: false }, { url: 'https://marketplace.gonje.com/orders/', faIcon: 'fas fa-clipboard-list', fallbackIcon: '&#x1F4CB;', // ???? text: 'Orders', active: false }, { url: 'https://marketplace.gonje.com/wishlist/', faIcon: 'fas fa-heart', fallbackIcon: '&#x2665;', // ♥ text: 'Planner', active: false }, { url: 'https://marketplace.gonje.com/cart', faIcon: 'fas fa-shopping-cart', fallbackIcon: '&#x1F6D2;', // ???? text: 'Cart', active: false }, { url: 'https://marketplace.gonje.com/what-we-do', faIcon: 'fas fa-hands-helping', fallbackIcon: '&#x1F91D;', // ???? text: 'What we do', active: false } ]; // Get current URL and clean it for comparison const currentUrl = new URL(window.location.href); const currentPath = currentUrl.pathname + currentUrl.search; // Create navigation items with both icon types navLinks.forEach(link => { const navItem = document.createElement('li'); const navLink = document.createElement('a'); navLink.href = link.url; // Check if this link matches current page const linkUrl = new URL(link.url); const linkPath = linkUrl.pathname + linkUrl.search; // Compare paths to determine if this is the active link const isActive = currentPath === linkPath || (currentPath.startsWith(linkPath) && linkPath !== '/'); navLink.className = `mobile-nav-item ${isActive ? 'active' : ''}`; // Create icon container const iconContainer = document.createElement('span'); iconContainer.className = 'nav-icon'; // Create Font Awesome icon const faIcon = document.createElement('i'); faIcon.className = link.faIcon; faIcon.style.display = 'inline-block'; // Create fallback with HTML entity const fallback = document.createElement('span'); fallback.className = 'icon-fallback'; fallback.innerHTML = link.fallbackIcon; // Using innerHTML for entities fallback.style.display = 'none'; // Add both to container iconContainer.appendChild(faIcon); iconContainer.appendChild(fallback); // Create text label const text = document.createElement('span'); text.className = 'nav-text'; text.textContent = link.text; navLink.appendChild(iconContainer); navLink.appendChild(text); navItem.appendChild(navLink); navItems.appendChild(navItem); // Check if Font Awesome loaded properly setTimeout(() => { if (faIcon.offsetWidth === 0 && faIcon.offsetHeight === 0) { faIcon.style.display = 'none'; fallback.style.display = 'inline-block'; } }, 100); }); // Add items to navigation mobileNav.appendChild(navItems); // Add navigation to body document.body.appendChild(mobileNav); // Add CSS styles const style = document.createElement('style'); style.textContent = ` .mobile-bottom-nav { display: none; position: fixed; bottom: 0; left: 0; right: 0; background: white; box-shadow: 0 -2px 10px rgba(0,0,0,0.1); z-index: 1000; padding: 8px 0; } .mobile-nav-items { display: flex; justify-content: space-around; align-items: center; list-style: none; margin: 0; padding: 0; } .mobile-nav-item { display: flex; flex-direction: column; align-items: center; text-decoration: none; color: #555; font-size: 10px; padding: 5px 8px; border-radius: 8px; transition: all 0.2s ease; } .nav-icon { display: inline-block; width: 20px; height: 20px; text-align: center; margin-bottom: 4px; font-size: 20px; line-height: 1; } .mobile-nav-item i { font-size: 20px; display: inline-block; width: 100%; height: 100%; } .icon-fallback { font-size: 20px; display: none; width: 100%; height: 100%; } .mobile-nav-item.active { color: #28A745; background: rgba(40, 167, 69, 0.1); } .mobile-nav-item.active i, .mobile-nav-item.active .icon-fallback { color: #28A745; } .mobile-nav-item:hover { background: rgba(40, 167, 69, 0.1); } @media (max-width: 768px) { .mobile-bottom-nav { display: block; } body { padding-bottom: 70px; } } `; // Add styles to head document.head.appendChild(style); // Add click handler to set active state document.querySelectorAll('.mobile-nav-item').forEach(item => { item.addEventListener('click', function(e) { document.querySelectorAll('.mobile-nav-item').forEach(navItem => { navItem.classList.remove('active'); }); this.classList.add('active'); }); }); }); </script>";} 0 1324 0 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en HTML BOTTOM NAV
790 359 a:1:{s:7:"content";s:8402:"<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Gonje Page Loader</title> <style> /* Page Loader Styles */ #gonje-loading-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(255, 255, 255, 0.98); display: flex; flex-direction: column; justify-content: center; align-items: center; z-index: 9999; transition: opacity 0.5s ease; } .gonje-loading-container { text-align: center; max-width: 600px; padding: 30px; } .gonje-loading-image { max-width: 180px; margin-bottom: 30px; } .gonje-loading-text { font-size: 1.2rem; color: #28a745; margin-bottom: 25px; line-height: 1.6; font-weight: 500; } .gonje-loading-progress { width: 100%; height: 8px; background: #e0e0e0; border-radius: 4px; overflow: hidden; margin: 20px 0; } .gonje-loading-progress-bar { height: 100%; width: 0%; background: linear-gradient(90deg, #28A745, #70ab4b); border-radius: 4px; transition: width 0.4s ease; } .gonje-loading-tip { font-size: 1rem; color: #6c757d; font-style: italic; margin-top: 25px; } .gonje-loading-fact { font-size: 1.1rem; color: #333; padding: 15px; background: #f8fff8; border-radius: 8px; border-left: 4px solid #28a745; margin: 15px 0; text-align: center; } .gonje-loading-countdown { font-size: 0.9rem; color: #6c757d; margin-top: 10px; } @media (max-width: 768px) { .gonje-loading-container { padding: 20px; } .gonje-loading-text { font-size: 1.1rem; } .gonje-loading-fact { font-size: 1rem; } } </style> </head> <body> <!-- Page Loader --> <div id="gonje-loading-overlay"> <div class="gonje-loading-container"> <img src="https://marketplace.gonje.com/images/fruitloader.gif" alt="Loading..." class="gonje-loading-image"> <div class="gonje-loading-text">Preparing the freshest experience for you...</div> <div class="gonje-loading-fact" id="gonje-loading-fact"> Did you know? Eating seasonal produce ensures you get the most flavorful and nutrient-rich foods. </div> <div class="gonje-loading-progress"> <div class="gonje-loading-progress-bar" id="gonje-loading-progress-bar"></div> </div> <div class="gonje-loading-countdown" id="gonje-loading-countdown">Loading your content...</div> <div class="gonje-loading-tip">Gonje Tip: Ordering in advance helps ensure you get the best delivery slots!</div> </div> </div> <!-- Your page content would go here --> <script> document.addEventListener('DOMContentLoaded', function() { const loadingOverlay = document.getElementById('gonje-loading-overlay'); const progressBar = document.getElementById('gonje-loading-progress-bar'); const factElement = document.getElementById('gonje-loading-fact'); const countdownElement = document.getElementById('gonje-loading-countdown'); // Food and grocery facts const facts = [ "Eating seasonal produce ensures you get the most flavorful and nutrient-rich foods.", "Frozen vegetables can be just as nutritious as fresh ones, as they're frozen at peak ripeness.", "Meal planning can reduce food waste by up to 15% and save the average family $1,500 per year.", "Local food often travels less than 100 miles from farm to table, reducing carbon footprint.", "Properly stored, apples can stay fresh for up to 4 months in the refrigerator.", "Leafy greens like spinach and kale are most nutritious when consumed within 1-2 days of purchase.", "Buying in bulk reduces packaging waste and can save up to 20% on grocery bills.", "Herbs stay fresh longer when stored like flowers - stems in water, covered with a plastic bag.", "Food delivery services reduce individual car trips to grocery stores, helping the environment.", "Planning meals around sales and seasonal items can cut grocery costs by 25% or more." ]; let currentFact = 0; let progress = 0; // Change fact every 5 seconds setInterval(() => { currentFact = (currentFact + 1) % facts.length; factElement.textContent = facts[currentFact]; }, 5000); // Simulate loading progress based on actual page loading function updateProgress() { // Get the actual page load progress (this is an approximation) const resources = window.performance.getEntriesByType("resource"); const totalResources = resources.length; if (totalResources > 0) { // Calculate progress based on loaded resources const loadedResources = resources.filter(r => r.duration > 0).length; progress = Math.min(100, Math.round((loadedResources / totalResources) * 100)); } else { // Fallback: Increment progress gradually if we can't track resources progress = Math.min(100, progress + Math.random() * 15); } progressBar.style.width = progress + '%'; // Update countdown text countdownElement.textContent = `Loading: ${progress}% complete`; // Continue updating until page is fully loaded if (progress < 100) { setTimeout(updateProgress, 300); } } // Start tracking progress updateProgress(); // Hide loader when page is fully loaded window.addEventListener('load', function() { progress = 100; progressBar.style.width = '100%'; countdownElement.textContent = "Loading complete!"; // Hide loading overlay setTimeout(() => { loadingOverlay.style.opacity = '0'; setTimeout(() => { loadingOverlay.style.display = 'none'; }, 500); }, 500); }); // Fallback: If load event doesn't fire within 15 seconds, hide the loader setTimeout(function() { if (progress < 100) { progress = 100; progressBar.style.width = '100%'; countdownElement.textContent = "Loading complete!"; setTimeout(() => { loadingOverlay.style.opacity = '0'; setTimeout(() => { loadingOverlay.style.display = 'none'; }, 500); }, 500); } }, 15000); }); </script> </body> </html>";} 0 1325 0 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Gonje animated loader
790 360 a:1:{s:7:"content";s:588:"<style> .ty-pagination__selected { color: black; } .mobile-bottom-nav { z-index: 100; } .ty-control-group input[type="text"], .ty-control-group input[type="email"], .ty-control-group input[type="password"], .ty-control-group input[type="number"], .ty-control-group input[type="date"], .ty-control-group input[type="search"], .ty-control-group input[type="url"], .ty-control-group input[type="tel"], .ty-control-group textarea, .ty-control-group select { background-color: #f3f2e9; border: 1px solid #b5b4af; color: #000; border-radius: 4px; } </style>";} 0 1326 0 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en CUSTOM STYLES
790 361 a:1:{s:7:"content";s:6474:"<script> // Create and insert the promo banner as the first element in body function createPromoBanner() { // Create banner element const banner = document.createElement('div'); banner.id = 'promo-banner'; banner.innerHTML = ` <div class="promo-content"> <span class="promo-text">&#127881; Celebrate with us! Get a FREE pack of premium beverages with orders of $150 or more from <a href="https://marketplace.gonje.com/adonai-foods" class="promo-link">Adonai Foods</a>. Limited time offer!</span> <button class="promo-close" aria-label="Close promo banner">×</button> </div> `; // Apply styles to the banner const styles = ` #promo-banner { width: 100%; height: 60px; background: linear-gradient(135deg, #28a745 0%, #20c997 100%); color: white; display: flex; align-items: center; justify-content: center; position: fixed; top: 0; left: 0; box-shadow: 0 2px 10px rgba(0,0,0,0.1); z-index: 1000; } .promo-content { display: flex; align-items: center; justify-content: center; width: 100%; max-width: 1200px; padding: 0 20px; position: relative; margin: 0 auto; } .promo-text { font-size: 14px; font-weight: 500; text-align: center; padding: 0 30px; } .promo-link { color: #fff; font-weight: 700; text-decoration: underline; transition: all 0.2s ease; } .promo-link:hover { color: #ffeb3b; text-decoration: none; } .promo-close { position: absolute; right: 20px; background: rgba(255,255,255,0.2); border: none; color: white; width: 24px; height: 24px; border-radius: 50%; cursor: pointer; font-size: 16px; display: flex; align-items: center; justify-content: center; transition: background 0.2s ease; } .promo-close:hover { background: rgba(255,255,255,0.3); } /* Style for navigation when banner is visible */ .tygh-top-panel.clearfix.banner-visible { top: 60px; position: relative; } @media (max-width: 768px) { #promo-banner { height: auto; min-height: 60px; padding: 10px 0; } .promo-text { font-size: 13px; padding: 0 40px 0 20px; } .promo-close { right: 10px; } .tygh-top-panel.clearfix.banner-visible { top: 70px; position: relative; } } `; // Create style element and add styles const styleSheet = document.createElement('style'); styleSheet.textContent = styles; document.head.appendChild(styleSheet); // Insert the banner as the first element in the body document.body.insertBefore(banner, document.body.firstChild); // Function to toggle navigation style function toggleNavStyle(show) { const navElement = document.querySelector('.tygh-top-panel.clearfix'); if (navElement) { if (show) { navElement.classList.add('banner-visible'); } else { navElement.classList.remove('banner-visible'); } } } // Apply the style to navigation toggleNavStyle(true); // Scroll to the top of the page window.scrollTo({ top: 0, behavior: 'smooth' }); // Add close functionality const closeButton = banner.querySelector('.promo-close'); closeButton.addEventListener('click', function() { banner.style.display = 'none'; // Remove the style from navigation toggleNavStyle(false); // Store dismissal in localStorage for 24 hours localStorage.setItem('promoBannerDismissed', 'true'); localStorage.setItem('promoBannerDismissedTime', Date.now()); }); // Check if banner was previously dismissed const isDismissed = localStorage.getItem('promoBannerDismissed'); const dismissedTime = localStorage.getItem('promoBannerDismissedTime'); if (isDismissed && dismissedTime) { const twentyFourHours = 10 * 1000; const now = Date.now(); // Show banner again if 24 hours have passed if (now - dismissedTime > twentyFourHours) { localStorage.removeItem('promoBannerDismissed'); localStorage.removeItem('promoBannerDismissedTime'); banner.style.display = 'flex'; // Apply the style to navigation toggleNavStyle(true); } else { banner.style.display = 'none'; // Don't apply the style to navigation toggleNavStyle(false); } } } // Initialize the banner when DOM is loaded if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { createPromoBanner(); }); } else { createPromoBanner(); } </script>";} 0 1327 0 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Nav Popup Script
790 365 a:1:{s:7:"content";s:7269:"<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Support Our Mission ❤️</title> <!-- Load PayPal SDK (Live) --> <script src="https://www.paypal.com/sdk/js?client-id=BAAMI9QJMUdgcOrd78yELKz-CQZ7A-1gOFHjXEVOv_XdigjkjcZl6qGLL8BVMWHZTZsjbVvZm2YMTCUqko&currency=USD"></script> <style> /* Floating Widget Styles */ .gonje-donations-widget { position: fixed; bottom: 320px; right: 30px; width: 53px; height: 53px; background: linear-gradient(135deg, #635BFF, #635BFF); border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 20px rgba(0, 112, 186, 0.4); cursor: pointer; z-index: 1000; transition: transform 0.3s ease, box-shadow 0.3s ease; } .gonje-donations-widget:hover { transform: scale(1.1); box-shadow: 0 6px 25px rgba(0, 112, 186, 0.6); } .gonje-donations-widget span { color: white; font-size: 24px; } /* Modal Styles */ .gonje-donations-modal { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 1001; align-items: center; justify-content: center; } .gonje-donations-modal.gonje-donations-active { display: flex; } .gonje-donations-modal-content { background: white; border-radius: 16px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); width: 90%; max-width: 500px; padding: 30px; position: relative; animation: gonje-donations-modalFadeIn 0.3s ease; } @keyframes gonje-donations-modalFadeIn { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } .gonje-donations-close-modal { position: absolute; top: 15px; right: 15px; font-size: 24px; cursor: pointer; color: #888; background: none; border: none; } .gonje-donations-close-modal:hover { color: #333; } /* Container styles */ .gonje-donations-container { max-width: 100%; margin: 0; background: #fff; border-radius: 16px; text-align: center; } .gonje-donations-title { color: #0070ba; font-weight: 600; margin-bottom: 10px; } .gonje-donations-description { color: #555; font-size: 1.1rem; margin-bottom: 30px; } .gonje-donations-input { width: 100%; padding: 12px; font-size: 1.2rem; border-radius: 10px; border: 2px solid #e5e7eb; margin-bottom: 20px; text-align: center; } .gonje-donations-paypal-container { margin-top: 20px; } .gonje-donations-footer { margin-top: 20px; color: #888; font-size: 0.9rem; } </style> </head> <body> <!-- Page content (for demonstration) --> <!-- Floating Donation Widget --> <div class="gonje-donations-widget" id="gonjeDonationsWidget" style="display: none;"> <span>❤️</span> </div> <!-- Modal --> <div class="gonje-donations-modal" id="gonjeDonationsModal"> <div class="gonje-donations-modal-content"> <button class="gonje-donations-close-modal" id="gonjeCloseModal">&times;</button> <div class="gonje-donations-container"> <h1 class="gonje-donations-title">Support Our Mission &#10084;</h1> <p class="gonje-donations-description">Your donation helps us continue making an impact.</p> <input type="number" id="gonjeAmount" class="gonje-donations-input" placeholder="Enter amount (AUD)" min="1" step="0.01" /> <div id="gonje-paypal-button-container" class="gonje-donations-paypal-container"></div> <footer class="gonje-donations-footer">Powered by PayPal · Secure and Trusted</footer> </div> </div> </div> <script> // Check if /amcf is in the URL function isAmcfInUrl() { return window.location.href.includes('/amcf'); } // Initialize the widget only if /amcf is detected function initializeDonationWidget() { if (!isAmcfInUrl()) { return; // Exit if /amcf is not in the URL } // Show the widget const donationWidget = document.getElementById("gonjeDonationsWidget"); donationWidget.style.display = 'flex'; // Get other DOM elements const donationModal = document.getElementById("gonjeDonationsModal"); const closeModal = document.getElementById("gonjeCloseModal"); const amountInput = document.getElementById("gonjeAmount"); // Open modal when widget is clicked donationWidget.addEventListener("click", function() { donationModal.classList.add("gonje-donations-active"); }); // Close modal when X is clicked closeModal.addEventListener("click", function() { donationModal.classList.remove("gonje-donations-active"); }); // Close modal when clicking outside the content donationModal.addEventListener("click", function(e) { if (e.target === donationModal) { donationModal.classList.remove("gonje-donations-active"); } }); // Initialize PayPal buttons paypal.Buttons({ style: { shape: "pill", color: "blue", layout: "vertical", label: "paypal", }, // Create the order with dynamic user amount createOrder: function (data, actions) { const amount = parseFloat(amountInput.value); if (!amount || amount < 1) { alert("Please enter a valid amount (minimum $1)"); throw new Error("Invalid amount"); } return actions.order.create({ purchase_units: [{ description: "Donation to Support Our Mission", amount: { value: amount.toFixed(2), }, }], }); }, // On successful approval onApprove: function (data, actions) { return actions.order.capture().then(function (details) { alert(`???? Thank you, ${details.payer.name.given_name}! Your donation of $${details.purchase_units[0].amount.value} was successful.`); amountInput.value = ""; donationModal.classList.remove("gonje-donations-active"); // Close modal after donation }); }, // Handle payment errors onError: function (err) { console.error(err); alert("❌ An error occurred while processing your payment. Please try again."); }, }).render("#gonje-paypal-button-container"); } // Initialize the widget when the page loads document.addEventListener('DOMContentLoaded', initializeDonationWidget); </script> </body> </html>";} 0 1328 0 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Donations AMCF
790 368 a:1:{s:7:"content";s:28326:"<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Gonje Widgets</title> <link rel="stylesheet" href="https://cdn-uicons.flaticon.com/2.1.0/uicons-regular-rounded/css/uicons-regular-rounded.css"> <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet"> <style> /* ---------- Base Reset ---------- */ /* ---------- Hamburger – bottom-right ---------- */ .gonje-hamburger-btn{ position:fixed;bottom:100px;right:20px;width:56px;height:56px;background:#999;border-radius:50%; display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer; box-shadow:0 4px 12px rgba(0,0,0,.25);z-index:9999;transition:transform .3s; } .gonje-hamburger-btn:hover{transform:scale(1.08)} .gonje-hamburger-bar{width:22px;height:3px;background:#fff;margin:3px 0;border-radius:2px;transition:all .3s} .gonje-hamburger-btn.open .gonje-hamburger-bar:nth-child(1){transform:rotate(45deg) translate(5px,5px)} .gonje-hamburger-btn.open .gonje-hamburger-bar:nth-child(2){opacity:0} .gonje-hamburger-btn.open .gonje-hamburger-bar:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)} /* ---------- Modern Modal (compact) ---------- */ .gonje-modern-modal{ position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:10000;display:none; align-items:center;justify-content:center;padding:12px; animation:fadeIn .3s ease; } @keyframes fadeIn{from{opacity:0}to{opacity:1}} .gonje-modern-modal-content{ background:#fff;width:100%;max-width:420px;border-radius:12px; box-shadow:0 10px 40px rgba(0,0,0,.25); animation:slideUp .35s ease; display:flex;flex-direction:column; max-height:calc(100vh - 24px); /* prevent cutoff */ } @keyframes slideUp{from{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}} .gonje-modern-modal-header{ flex-shrink:0;display:flex;align-items:center;justify-content:space-between; padding:14px 16px 12px;border-bottom:1px solid #e5e5e5; } .gonje-modern-modal-title{font-size:16px;font-weight:600;color:#222} .gonje-modern-modal-close{ background:none;border:none;font-size:22px;color:#777;cursor:pointer;transition:color .2s; } .gonje-modern-modal-close:hover{color:#000} .gonje-modern-modal-body{ padding:12px 16px 16px;flex:1 1 auto;overflow-y:auto; /* scroll if content tall */ display:flex;flex-direction:column;gap:14px } /* Section titles */ .gonje-modal-section-title{font-size:13px;font-weight:600;color:#555;text-transform:uppercase;letter-spacing:.5px} /* Icon grid */ .gonje-icon-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px} .gonje-icon-item{ background:#28A745;border-radius:8px;display:flex;flex-direction:column; align-items:center;justify-content:center;padding:10px 6px;color:#fff; text-decoration:none;font-size:11px;font-weight:500;transition:background .2s,transform .2s; text-align:center;line-height:1.2 } .gonje-icon-item:hover{background:#218838;transform:scale(1.05)} .gonje-icon-item i{font-size:20px;margin-bottom:4px} /* Quick links */ .gonje-quick-links{display:flex;flex-direction:column;gap:8px} .gonje-quick-link{ display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:6px; background:#f7f7f7;color:#222;text-decoration:none;font-size:13px;font-weight:500; transition:background .2s; } .gonje-quick-link:hover{background:#ececec} .gonje-quick-link i{font-size:16px;width:18px;text-align:center;color:#28A745} </style> </head> <body> <!-- Hamburger --> <div class="gonje-hamburger-btn" id="gonjeHamburgerBtn" aria-label="Open menu" aria-expanded="false"> <div class="gonje-hamburger-bar"></div> <div class="gonje-hamburger-bar"></div> <div class="gonje-hamburger-bar"></div> </div> <!-- Modern Modal --> <div class="gonje-modern-modal" id="gonjeModernModal" aria-hidden="true"> <div class="gonje-modern-modal-content"> <div class="gonje-modern-modal-header"> <span class="gonje-modern-modal-title">Gonje Hub</span> <button class="gonje-modern-modal-close" id="gonjeModalClose" aria-label="Close modal">&times;</button> </div> <div class="gonje-modern-modal-body"> <!-- Utilities Section --> <div class="gonje-modal-section">Utilities</div> <div class="gonje-icon-grid"> <a href="#" class="gonje-icon-item" id="utilCamera"> <i class="fi fi-rr-camera"></i> <span>QR Code Scanner</span> </a> <a href="https://marketplace.gonje.com/support" class="gonje-icon-item"> <i class="fas fa-headset"></i> <span>Support</span> </a> <a href="#" class="gonje-icon-item" id="utilSustainable"> <i class="fas fa-leaf"></i> <span>Eco</span> </a> </div> <!-- Quick Links Section --> <div class="gonje-modal-section">Quick Links</div> <div class="gonje-quick-links"> <a href="https://marketplace.gonje.com/suppliers" class="gonje-quick-link"> <i class="fas fa-truck"></i> <span>Suppliers</span> </a> <a href="https://marketplace.gonje.com/index.php?dispatch=companies.apply_for_vendor" class="gonje-quick-link"> <i class="fas fa-store"></i> <span>Become a Seller</span> </a> <a href="https://marketplace.gonje.com/gift-cards" class="gonje-quick-link"> <i class="fas fa-gift"></i> <span>Gift Cards</span> </a> <a href="https://marketplace.gonje.com/elevate-your-shopping-experience-with-gonjes-b2c-module/" class="gonje-quick-link"> <i class="fas fa-blog"></i> <span>Blog</span> </a> <a href="https://marketplace.gonje.com/welcome-to-gonje-marketplace/" class="gonje-quick-link"> <i class="fas fa-question-circle"></i> <span>How To</span> </a> <a href="https://marketplace.gonje.com/what-we-do" class="gonje-quick-link"> <i class="fas fa-info-circle"></i> <span>What We Do</span> </a> <a href="https://marketplace.gonje.com/orders" class="gonje-quick-link"> <i class="fas fa-receipt"></i> <span>Orders</span> </a> <a href="https://marketplace.gonje.com/wishlist/" class="gonje-quick-link"> <i class="fas fa-calendar-alt"></i> <span>Grocery Planner</span> </a> </div> </div> </div> </div> <!-- Camera status message --> <div class="gonje-camera-status-message" id="gonjeCameraStatusMessage"></div> <script> /* ---------- Modal Toggle ---------- */ const hamburger = document.getElementById('gonjeHamburgerBtn'); const modal = document.getElementById('gonjeModernModal'); const closeBtn = document.getElementById('gonjeModalClose'); let open = false; function toggleModal(){ open = !open; modal.style.display = open ? 'flex' : 'none'; hamburger.classList.toggle('open', open); hamburger.setAttribute('aria-expanded', open); modal.setAttribute('aria-hidden', !open); } hamburger.addEventListener('click', toggleModal); closeBtn.addEventListener('click', toggleModal); modal.addEventListener('click', e => { if(e.target === modal) toggleModal() }); document.addEventListener('keydown', e => { if(e.key === 'Escape' && open) toggleModal() }); /* ---------- Camera Utility ---------- */ const cameraStatus = document.getElementById('gonjeCameraStatusMessage'); document.getElementById('utilCamera').addEventListener('click', e => { e.preventDefault(); cameraStatus.textContent = 'Opening camera...'; cameraStatus.className = 'gonje-camera-status-message'; const fileInput = document.createElement('input'); fileInput.type = 'file'; fileInput.accept = 'image/*'; fileInput.capture = 'environment'; fileInput.click(); fileInput.addEventListener('change', (ev) => { if (ev.target.files && ev.target.files.length > 0) { const file = ev.target.files[0]; if (file.type.startsWith('image/')) { cameraStatus.textContent = 'Camera opened successfully!'; cameraStatus.className = 'gonje-camera-status-message success'; setTimeout(() => { cameraStatus.textContent = ''; cameraStatus.className = 'gonje-camera-status-message'; }, 3000); } else { cameraStatus.textContent = 'Please select an image file.'; cameraStatus.className = 'gonje-camera-status-message error'; } } else { cameraStatus.textContent = 'Camera access was cancelled.'; cameraStatus.className = 'gonje-camera-status-message error'; } toggleModal(); // close modal after action }); }); /* ---------- Sustainable Utility ---------- */ document.getElementById('utilSustainable').addEventListener('click', e => { e.preventDefault(); toggleModal(); // close quick modal first // Inject large sustainable modal const sustainableModal = document.createElement('div'); sustainableModal.className = 'gonje-sustainable-modal'; sustainableModal.innerHTML = ` <div class="gonje-sustainable-modal-content"> <div class="gonje-sustainable-modal-header"> <h2 class="gonje-sustainable-modal-title" style="color:#fff;"> <i class="fas fa-leaf"></i> Our Sustainable Packaging </h2> <button class="gonje-sustainable-modal-close" aria-label="Close modal">&times;</button> </div> <div class="gonje-sustainable-modal-body"> <div class="gonje-sustainable-modal-intro"> <p class="gonje-sustainable-modal-description"> At our company, we're committed to sustainable packaging solutions that minimize environmental impact while protecting your products. Our comprehensive approach covers every aspect of packaging, from material selection to end-of-life disposal. </p> </div> <div class="gonje-sustainable-modal-image"> <img src="https://marketplace.gonje.com/images/gonje-sustainable-sm.jpeg" alt="Sustainable Packaging"> </div> <div class="gonje-sustainable-impact-statement"> <strong>Overall Impact:</strong> Reduced packaging waste by 45% and eliminated 12 tons of plastic annually through our sustainable packaging initiatives. </div> <div class="gonje-sustainable-practices-container"> <!-- Item 1 --> <div class="gonje-sustainable-practice-item"> <div class="gonje-sustainable-practice-header"> <div class="gonje-sustainable-practice-icon"><i class="fas fa-recycle"></i></div> Material Selection </div> <div class="gonje-sustainable-practice-details"> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i><span>100% recycled cardboard boxes</span></div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i><span>FSC-certified paper materials</span></div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i><span>Plant-based coatings</span></div> <div class="gonje-sustainable-impact-statement"><strong>Result:</strong> 92% recycled/compostable materials</div> </div> </div> <!-- Item 2 --> <div class="gonje-sustainable-practice-item"> <div class="gonje-sustainable-practice-header"> <div class="gonje-sustainable-practice-icon"><i class="fas fa-box-open"></i></div> Box Design </div> <div class="gonje-sustainable-practice-details"> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i><span>AI-optimized sizing</span></div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i><span>Soy-based inks</span></div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i><span>Reusable designs</span></div> <div class="gonje-sustainable-impact-statement"><strong>Result:</strong> 28% less material used</div> </div> </div> <!-- Item 3 --> <div class="gonje-sustainable-practice-item"> <div class="gonje-sustainable-practice-header"> <div class="gonje-sustainable-practice-icon"><i class="fas fa-shield-alt"></i></div> Protection </div> <div class="gonje-sustainable-practice-details"> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i><span>Recycled paper padding</span></div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i><span>Starch-based cool packs</span></div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i><span>Compostable fiber trays</span></div> <div class="gonje-sustainable-impact-statement"><strong>Result:</strong> 3.5 tons plastic eliminated</div> </div> </div> <!-- Item 4 --> <div class="gonje-sustainable-practice-item"> <div class="gonje-sustainable-practice-header"> <div class="gonje-sustainable-practice-icon"><i class="fas fa-tape"></i></div> Sealing </div> <div class="gonje-sustainable-practice-details"> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i><span>Plastic-free paper tape</span></div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i><span>Recyclable labels</span></div> <div class="gonje-sustainable-impact-statement"><strong>Result:</strong> 100% plastic-free sealing</div> </div> </div> <!-- Item 5 --> <div class="gonje-sustainable-practice-item"> <div class="gonje-sustainable-practice-header"> <div class="gonje-sustainable-practice-icon"><i class="fas fa-undo"></i></div> Reusability </div> <div class="gonje-sustainable-practice-details"> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i><span>Return discounts</span></div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i><span>Collapsible crates</span></div> <div class="gonje-sustainable-impact-statement"><strong>Result:</strong> 62% container return rate</div> </div> </div> <!-- Item 6 --> <div class="gonje-sustainable-practice-item"> <div class="gonje-sustainable-practice-header"> <div class="gonje-sustainable-practice-icon"><i class="fas fa-trash-alt"></i></div> Waste Reduction </div> <div class="gonje-sustainable-practice-details"> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i><span>Clear recycling guides</span></div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i><span>Paper void fill</span></div> <div class="gonje-sustainable-impact-statement"><strong>Result:</strong> 89% proper recycling</div> </div> </div> </div> </div> </div> `; document.body.appendChild(sustainableModal); const closeBtn = sustainableModal.querySelector('.gonje-sustainable-modal-close'); closeBtn.addEventListener('click', () => { sustainableModal.style.display = 'none'; document.body.style.overflow = 'auto'; }); sustainableModal.addEventListener('click', e => { if (e.target === sustainableModal) { sustainableModal.style.display = 'none'; document.body.style.overflow = 'auto'; } }); document.addEventListener('keydown', e => { if (e.key === 'Escape' && sustainableModal.style.display === 'block') { sustainableModal.style.display = 'none'; document.body.style.overflow = 'auto'; } }); sustainableModal.style.display = 'block'; sustainableModal.setAttribute('aria-hidden', 'false'); document.body.style.overflow = 'hidden'; }); /* ---------- Sustainable Modal Styles ---------- */ const sustainableStyles = document.createElement('style'); sustainableStyles.textContent = ` .gonje-sustainable-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.7); z-index: 20000; overflow-y: auto; padding: 10px; } .gonje-sustainable-modal-content { background: #fff; max-width: 900px; margin: 20px auto; border-radius: 10px; overflow: hidden; box-shadow: 0 5px 20px rgba(0,0,0,.2); animation: gonje-sustainable-modalFadeIn .3s ease-out; } @keyframes gonje-sustainable-modalFadeIn { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } .gonje-sustainable-modal-header { background: #1B5E20; color: #fff; padding: 15px; text-align: center; position: relative; } .gonje-sustainable-modal-title { font-size: 20px; font-weight: 600; margin: 0; display: flex; align-items: center; justify-content: center; gap: 10px; } .gonje-sustainable-modal-close { position: absolute; top: 10px; right: 10px; background: none; border: none; color: #fff; font-size: 24px; cursor: pointer; transition: transform .2s; } .gonje-sustainable-modal-close:hover { transform: rotate(90deg); } .gonje-sustainable-modal-body { display: flex; flex-direction: column; padding: 0; } .gonje-sustainable-modal-intro { padding: 15px; box-sizing: border-box; order: 1; } .gonje-sustainable-modal-description { font-size: 15px; line-height: 1.6; color: #555; margin-bottom: 15px; } .gonje-sustainable-modal-image { padding: 0 15px; box-sizing: border-box; display: flex; align-items: center; justify-content: center; order: 2; } .gonje-sustainable-modal-image img { max-width: 100%; height: auto; border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,.1); object-fit: contain; } .gonje-sustainable-impact-statement { font-size: 13px; background: #E8F5E9; padding: 10px; border-radius: 6px; margin: 15px; color: #1B5E20; border-left: 3px solid #2E8B57; order: 3; } .gonje-sustainable-practices-container { width: 100%; padding: 0 15px 15px; display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 15px; order: 4; } .gonje-sustainable-practice-item { background: #fff; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 8px rgba(0,0,0,.05); border: 1px solid #e0e0e0; min-width: 0; width: 100%; box-sizing: border-box; } .gonje-sustainable-practice-header { background: #1B5E20; color: #fff; padding: 10px 12px; display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; } .gonje-sustainable-practice-icon { font-size: 16px; width: 28px; height: 28px; background: rgba(255,255,255,.2); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .gonje-sustainable-practice-details { padding: 12px; } .gonje-sustainable-practice-point { display: flex; align-items: flex-start; margin-bottom: 8px; font-size: 13px; line-height: 1.5; gap: 8px; } .gonje-sustainable-point-icon { color: #2E8B57; font-size: 12px; margin-top: 3px; flex-shrink: 0; } @media (min-width: 768px) { .gonje-sustainable-modal-content { margin: 40px auto; } .gonje-sustainable-modal-header { padding: 20px; } .gonje-sustainable-modal-title { font-size: 24px; } .gonje-sustainable-modal-body { flex-direction: row; flex-wrap: wrap; } .gonje-sustainable-modal-intro { flex: 1; min-width: 300px; padding: 20px; order: 1; } .gonje-sustainable-modal-image { flex: 1; min-width: 300px; padding: 20px; order: 2; } .gonje-sustainable-impact-statement { width: 100%; margin: 0 20px 20px; order: 3; } .gonje-sustainable-modal-description { font-size: 16px; } .gonje-sustainable-practices-container { padding: 0 20px 20px; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; order: 4; } .gonje-sustainable-practice-header { font-size: 15px; padding: 12px 15px; } .gonje-sustainable-practice-point { font-size: 14px; } } `; document.head.appendChild(sustainableStyles); </script> </body> </html>";} 0 1329 0 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Gonje Hub
780 381 a:1:{s:7:"content";s:90:"<style> h3.ty-social-link__title { margin: 0px 15px 0px 0px !important; } </style> ";} 0 1330 0 A safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 en Social link text adjustment on vendor page
801 387 0 1347 0 A sg_vendor_store_detail a:1:{s:8:"template";s:33:"blocks/sg_vendor_store_detail.tpl";} 0 1 en Vendor Detail
803 388 a:1:{s:5:"items";a:3:{s:7:"filling";s:12:"most_popular";s:5:"limit";s:2:"10";s:3:"cid";s:0:"";}} 0 1348 blocks/wrappers/sidebox_important.tpl product-scroller-div 0 A products a:11:{s:8:"template";s:37:"blocks/products/products_scroller.tpl";s:10:"show_price";s:1:"Y";s:17:"enable_quick_view";s:1:"N";s:24:"not_scroll_automatically";s:1:"N";s:15:"scroll_per_page";s:1:"N";s:5:"speed";s:3:"400";s:11:"pause_delay";s:1:"3";s:13:"item_quantity";s:1:"5";s:15:"thumbnail_width";s:2:"80";s:18:"outside_navigation";s:1:"Y";s:23:"hide_add_to_cart_button";s:1:"N";} 0 1 en Trending Product
801 392 a:1:{s:7:"content";s:1314:"<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="323.781px" height="305.875px" viewBox="0 0 323.781 305.875" enable-background="new 0 0 323.781 305.875" xml:space="preserve"><path fill-rule="evenodd" clip-rule="evenodd" d="M162.124,0.019c42.604,0.001,85.21-0.058,127.814,0.028 c19.579,0.04,34.694,15.873,33.806,35.247c-0.38,8.289-3.611,15.453-9.199,21.595c-35.228,38.719-70.378,77.509-105.747,116.1 c-3.649,3.982-5.157,7.847-5.075,13.214c0.301,19.485,0.073,38.979,0.152,58.47c0.019,4.735-1.668,8.434-5.355,11.374 c-19.53,15.575-38.99,31.238-58.564,46.758c-7.748,6.144-18.059,2.629-19.866-6.615c-0.307-1.573-0.228-3.234-0.228-4.854 c-0.012-36.107-0.044-72.216,0.053-108.323c0.008-3.08-0.801-5.344-2.898-7.642C81.141,136.056,45.356,96.661,9.541,57.295 C-7.383,38.694-0.959,10.279,22.228,2.141c4.141-1.453,8.789-2.02,13.206-2.035C77.664-0.042,119.894,0.018,162.124,0.019z"/></svg> Filter <script> jQuery(document).ready(function ($) { $('.mobile-filter .ty-wysiwyg-content').on('click', function () { $('.cm-warehouse-block-depends-by-location').addClass('open'); }); $('.filter-head').on('click', function () { $('.cm-warehouse-block-depends-by-location').removeClass('open'); }); }); </script>";} 0 1353 hidden-tablet hidden-desktop mobile-filter 0 A safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 en mobile-filter
571 395 a:1:{s:7:"content";s:54:"<style> .tygh-top-panel{ padding:unset; } </style>";} 0 1358 0 A safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 en Header issue style
569 3 a:1:{s:4:"menu";s:1:"1";} 0 890 top-quick-links 1 A menu a:2:{s:8:"template";s:26:"blocks/menu/text_links.tpl";s:18:"show_items_in_line";s:1:"Y";} 0 1 en Quick links
571 5 0 893 top-logo 1 D template a:2:{s:8:"template";s:32:"blocks/static_templates/logo.tpl";s:11:"enable_link";s:1:"Y";} 0 1 en Logo
805 11 0 906 blocks/wrappers/mainbox_general.tpl 1 A main 0 1 en Main Content
786 17 a:1:{s:7:"content";s:340:" <ul id="about_cs_cart_links"> <li class="ty-footer-menu__item"><a href="{"pages.view?page_id=1"|fn_url}">Our team</a></li> <li class="ty-footer-menu__item"><a href="{"pages.view?page_id=3"|fn_url}">Privacy policy</a></li> </ul>";} 0 1304 blocks/wrappers/footer_general.tpl footer-no-wysiwyg 1 D safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 en About us
783 129 a:1:{s:7:"content";s:261:" <ul id="demo_store_links"> <li class="ty-footer-menu__item"><a href="{"companies.apply_for_vendor"|fn_url}">Apply for a seller account</a></li> <li class="ty-footer-menu__item"><a href="{"pages.view?page_id=15"|fn_url}">Vendor terms & conditions</a></li> </ul>";} 0 1301 blocks/wrappers/footer_general.tpl footer-no-wysiwyg 1 A safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 en Become a seller
790 165 a:1:{s:7:"content";s:136:"<p><br></p> <figure><img src="https://backendapi.gonje.com/public/gonje-storage/public/images/payment-methods.png"></figure> <p><br></p>";} 0 1307 1 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Gonje Payment methods
573 219 a:1:{s:7:"content";s:3825:"<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>QR Code Generator</title> <style> .gonje-qr-overlay { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.8); justify-content: center; align-items: center; text-align: center; z-index: 1000; } .gonje-qr-overlay canvas { max-width: 90%; max-height: 90%; } .gonje-qr-overlay-buttons { margin-top: 10px; } .gonje-qr-button { padding: 10px 20px; font-size: 16px; cursor: pointer; margin: 5px; border-radius: 10px; background-color: #70ab4b; color: #ffffff; } .center-text { text-align: center; margin-top: 20px; } @media (min-width: 768px) { .center-text, .gonje-qr-overlay { display: none !important; } } </style> </head> <body> <div class="center-text"> <button class="gonje-qr-button" id="show-qr-btn">Click here to get QR code</button> </div> <div class="gonje-qr-overlay" id="qr-overlay"> <div> <canvas class="gonje-qr-fullscreen-canvas" id="qr-canvas"></canvas> <br> <div class="gonje-qr-overlay-buttons"> <button class="gonje-qr-button" id="print-btn">Print</button> <button class="gonje-qr-button" id="download-btn">Download</button> <button class="gonje-qr-button" id="close-btn">Close</button> </div> </div> </div> <script src="https://cdn.jsdelivr.net/npm/qrcode/build/qrcode.min.js"></script> <script> const showQrBtn = document.getElementById('show-qr-btn'); const overlay = document.getElementById('qr-overlay'); const fullscreenCanvas = document.getElementById('qr-canvas'); const closeBtn = document.getElementById('close-btn'); const printBtn = document.getElementById('print-btn'); const downloadBtn = document.getElementById('download-btn'); // Check if screen width is less than 768px (mobile) if (window.innerWidth < 768) { showQrBtn.addEventListener('click', () => { QRCode.toCanvas(fullscreenCanvas, window.location.href, { errorCorrectionLevel: 'H', width: 400 }, (error) => { if (error) { console.error(error); alert('Failed to generate QR code'); } else { overlay.style.display = 'flex'; } }); }); } // Close the overlay closeBtn.addEventListener('click', () => { overlay.style.display = 'none'; }); // Print the QR code printBtn.addEventListener('click', () => { const printWindow = window.open('', '_blank'); printWindow.document.write('<html><body><img src="' + fullscreenCanvas.toDataURL() + '" style="width:100%"></body></html>'); printWindow.document.close(); printWindow.print(); }); // Download the QR code downloadBtn.addEventListener('click', () => { const link = document.createElement('a'); link.href = fullscreenCanvas.toDataURL(); link.download = 'qrcode.png'; link.click(); }); </script> </body> </html> ";} 0 898 1 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en QR code Download Button
579 221 a:1:{s:7:"content";s:475:"<script> function hideNotifications() { document.querySelectorAll(".notification-content").forEach(function (element) { element.style.display = "none"; }); } // Run once on initial load setTimeout(hideNotifications, 3000); // Set up MutationObserver to handle AJAX-loaded elements const observer = new MutationObserver(function (mutations) { hideNotifications(); }); observer.observe(document.body, { childList: true, subtree: true, }); </script>";} 0 905 1 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Notification timer control
572 225 a:1:{s:7:"content";s:15881:"<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Vendor Store</title> <!-- Font Awesome --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <!-- Google Fonts --> <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&family=Inter:wght@300;400;500&display=swap" rel="stylesheet"> <style> /* Base Styles */ body { font-family: 'Inter', sans-serif; line-height: 1.6; color: #333; overflow-x: hidden; background-color: #f9f9f9; margin: 0; padding: 0; } h1, h2, h3, h4, h5, h6 { font-family: 'Poppins', sans-serif; font-weight: 600; } .modern-btn { display: inline-block; padding: 12px 24px; background: #28A745; color: white; font-weight: bold; text-decoration: none; border-radius: 50px; border: none; cursor: pointer; font-size: 16px; transition: all 0.3s ease; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); margin: 10px auto; display: block; width: fit-content; max-width: 100%; white-space: nowrap; } .modern-btn:hover { background: #218838; transform: translateY(-2px); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15); } .section-bg-shape { position: absolute; border-radius: 50%; opacity: 0.1; z-index: 1; } /* Hero Section */ .hero-section { position: relative; width: 90%; max-height: 100vh; background-size: cover; background-position: center; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 40px 20px; text-align: center; overflow: hidden; border-radius: 40px; margin: 0 auto; background-image: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4)), url('https://images.unsplash.com/photo-1546069901-ba9599a7e63c?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1800&q=80'); } .hero-content { position: relative; z-index: 2; width: 100%; max-width: 800px; margin: 0 auto; padding: 0 15px; box-sizing: border-box; } .hero-content img { border-radius: 10px; max-width: 200px; height: auto; margin-bottom: 20px; border: 3px solid white; box-shadow: 0 10px 30px rgba(0,0,0,0.2); } .hero-content h1 { font-family: 'Poppins', sans-serif; font-size: 2.5rem; color: white; margin-bottom: 15px; text-shadow: 0 2px 4px rgba(0,0,0,0.3); word-wrap: break-word; } .hero-content p { font-size: 1.1rem; color: rgba(255,255,255,0.9); margin-bottom: 30px; text-shadow: 0 1px 2px rgba(0,0,0,0.2); padding: 0 10px; } .hero-buttons { display: flex; gap: 15px; justify-content: center; flex-wrap: wrap; margin-top: 30px; } /* Store Card Section */ .store-card { position: relative; z-index: 2; max-width: 1200px; width: 95%; margin: -50px auto 50px; background: rgba(255,255,255,0.95); border-radius: 16px; padding: 30px; box-shadow: 0 15px 35px rgba(0,0,0,0.1); box-sizing: border-box; } .store-card-header { position: absolute; top: 0; left: 0; width: 100%; height: 5px; background: linear-gradient(90deg, #28A745, #70ab4b); } .store-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 30px; align-items: flex-start; } .store-info { word-wrap: break-word; } .store-info h2 { font-family: 'Poppins', sans-serif; font-size: 1.5rem; margin: 0 0 5px 0; color: #333; } .gonje-card-badge { display: flex; align-items: center; gap: 8px; background-color: #dcfce7; color: #166534; padding: 5px 15px; border-radius: 50px; width: fit-content; font-size: 0.875rem; font-weight: 500; } .gonje-card-rating { display: flex; align-items: center; gap: 5px; font-size: 0.875rem; } .gonje-card-rating span:first-child { font-size: 1.2rem; color: #facc15; } /* Table Info Display */ .table-info { margin: 20px 0; padding: 15px; background-color: #e9f5ec; border-radius: 8px; text-align: center; display: none; } .table-info h4 { margin: 0 0 8px 0; color: #166534; font-weight: 600; } .table-number { font-size: 1.5rem; font-weight: bold; color: #28A745; } /* Responsive Fixes */ @media (max-width: 768px) { .hero-content h1 { font-size: 2rem; } .hero-content p { font-size: 1rem; padding: 0 5px; } .modern-btn { font-size: 0.9rem; padding: 10px 20px; } .store-info h2 { font-size: 1.25rem; } } @media (max-width: 480px) { .hero-content h1 { font-size: 1.75rem; } .hero-content p { font-size: 0.95rem; } .modern-btn { width: 100%; text-align: center; white-space: normal; } } </style> </head> <body> <!-- Hero Section --> <div class="hero-section"> <!-- Decorative Elements --> <div class="section-bg-shape" style="width: 90%; height: 600px; background: linear-gradient(135deg, rgba(40, 167, 69, 0.1), rgba(112, 171, 75, 0.1)); border-radius: 50%; top: -300px; right: -300px;"></div> <div class="section-bg-shape" style="width: 90%; height: 400px; background: linear-gradient(135deg, rgba(40, 167, 69, 0.1), rgba(112, 171, 75, 0.1)); border-radius: 50%; bottom: -200px; left: -200px;"></div> <!-- Dynamic Header Content --> <div class="hero-content"> <img id="dynamic-store-logo" src="https://marketplace.gonje.com/images/logos/8/gonje-text-2_2vlm-mu.png" alt="Gonje Logo"> <h1 id="dynamic-store-name">Gonje</h1> <p id="dynamic-store-tagline">Fulfilment and delivery of food/groceries</p> <!-- CTA Buttons --> <div class="hero-buttons"> <a href="https://marketplace.gonje.com/profiles-add/" class="modern-btn" style="background: white; color: #28A745;"> <i class="fas fa-user"></i> Join as Customer </a> <a href="https://marketplace.gonje.com/index.php?dispatch=companies.apply_for_vendor" class="modern-btn" style="background: transparent; border: 2px solid white; color: white;"> <i class="fas fa-store"></i> Sell With Us </a> </div> </div> </div> <!-- Store Card Section --> <div class="store-card"> <div class="store-card-header"></div> <div class="store-card-grid"> <!-- Store Info --> <div class="store-info"> <div style="display: flex; align-items: center; gap: 20px; margin-bottom: 20px; flex-wrap: wrap;"> <img id="gonje-card-store-logo" src="" alt="Store Logo" style="width: 70px; height: 70px; object-fit: cover; border-radius: 12px; border: 2px solid white; box-shadow: 0 5px 15px rgba(0,0,0,0.1);"> <div> <h2 id="gonje-card-store-name">Store Name</h2> <div class="gonje-card-badge">✅ Open for Business</div> </div> </div> <div style="display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 15px;"> <p id="gonje-card-store-category" style="margin: 0; color: #4b5563; font-size: 1rem; background: #f3f4f6; padding: 5px 12px; border-radius: 50px;">Category</p> <div class="gonje-card-rating"> <span>★★★★★</span> <span class="gonje-card-rating-text">(5.0)</span> </div> </div> <p id="gonje-card-store-address" style="color: #6b7280; font-size: 1rem; margin: 5px 0 15px 0;">Address will appear here</p> <div style="margin-bottom: 20px;"> <p style="font-weight: bold; color: #333; margin-bottom: 5px;">About:</p> <p id="gonje-card-store-description" style="color: #374151; line-height: 1.6;">Store description will appear here</p> </div> <!-- Table Information --> <!-- <div id="table-info" class="table-info"> <h4>Your Table Number</h4> <div id="table-number" class="table-number"></div> </div> --> <a id="gonje-card-store-url" href="https://marketplace.gonje.com/index.php?dispatch=companies.catalog" class="modern-btn" style="width: fit-content; padding: 10px 25px; font-size: 1rem; display: flex; align-items: center; gap: 8px;"> Visit Marketplace <i class="fas fa-arrow-right"></i> </a> </div> <!-- QR Code Section --> <div style="text-align: center;"> <h3 style="font-family: 'Poppins', sans-serif; font-size: 1.25rem; color: #333; margin-bottom: 20px;">Scan to Visit Store</h3> <canvas id="gonje-card-qrcode" style="width: 160px; height: 160px; margin: 0 auto; background: white; padding: 10px; border-radius: 12px;"></canvas> <p style="margin-top: 15px; color: #4b5563; font-size: 0.85rem;">Scan this QR code with your mobile device to visit our store instantly</p> <p id="qr-code-description" style="margin-top: 15px; color: #4b5563; display: none; font-size: 0.85rem;">Scan this QR code with your mobile device to visit our store instantly</p> </div> </div> </div> <!-- Error Message --> <div id="gonje-card-error-message" role="alert" style="max-width: 1200px; width: 90%; background-color: #fee2e2; border: 1px solid #fca5a5; color: #dc2626; padding: 1rem; border-radius: 0.375rem; margin: 0 auto 50px; display: none;"> <strong>Error!</strong> <span id="gonje-card-error-text" style="display: block; margin-top: 5px;"></span> </div> <script src="https://cdn.jsdelivr.net/npm/qrious@4.0.2/dist/qrious.min.js"></script> <script> // Function to strip HTML tags from a string const stripHtmlTags = (str) => { if (!str) return ''; // Handle null or undefined values return str.replace(/<[^>]*>/g, ''); // Remove all HTML tags }; // Extract SEO name from the URL, handling trailing slashes let path = window.location.pathname; // Remove trailing slash if present if (path.endsWith('/')) { path = path.slice(0, -1); } const seoName = path.split('/').pop(); // Set fallback values first document.getElementById('gonje-card-store-name').textContent = 'Gonje'; document.getElementById('gonje-card-store-logo').src = 'https://marketplace.gonje.com/images/logos/8/gonje-text-2_2vlm-mu.png'; // Store fetched data for later use let storeData = null; let qrCodeInstance = null; // Function to generate QR code function generateQRCode(url, tableNumber = null) { try { if (qrCodeInstance) { // Update existing QR code qrCodeInstance.set({ value: url }); } else { // Create new QR code qrCodeInstance = new QRious({ element: document.getElementById('gonje-card-qrcode'), value: url, size: 160, foreground: '#28A745' }); } // Update QR code description if (tableNumber) { document.getElementById('qr-code-description').textContent = `Scan this QR code to visit our store for table ${tableNumber}`; // Show table information document.getElementById('table-info').style.display = 'block'; document.getElementById('table-number').textContent = tableNumber; } else { document.getElementById('qr-code-description').textContent = 'Scan this QR code with your mobile device to visit our store instantly'; // Hide table information document.getElementById('table-info').style.display = 'none'; } } catch (error) { console.error('QR code generation error:', error); } } // Fetch store details from the backend fetch(`https://marketplace.gonje.com/api/store/index.php?seo_name=${seoName}`) .then(response => { if (!response.ok) { throw new Error(`HTTP error! Status: ${response.status}`); } return response.json(); }) .then(data => { if (data.status === 'ok') { storeData = data.data; // Populate the dynamic header elements document.getElementById('dynamic-store-logo').src = storeData.logo_url; document.getElementById('dynamic-store-name').textContent = storeData.company_name; document.getElementById('dynamic-store-tagline').textContent = storeData.company_description ? stripHtmlTags(storeData.company_description).substring(0, 100) + (storeData.company_description.length > 100 ? '...' : '') : 'Bringing authentic flavors to your kitchen'; document.querySelector('.hero-section').style.backgroundImage = `linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4)), url('${storeData.featured_image}')`; // Populate the store card elements document.getElementById('gonje-card-store-logo').src = storeData.logo_url; document.getElementById('gonje-card-store-name').textContent = storeData.company_name; document.getElementById('gonje-card-store-category').textContent = storeData.category; const description = stripHtmlTags(storeData.company_description); document.getElementById('gonje-card-store-description').textContent = description; document.getElementById('gonje-card-store-url').href = storeData.storefront_url; document.getElementById('gonje-card-store-address').textContent = storeData.company_address || 'Available online'; // Generate QR Code with table information if available generateQRCode(storeData.qr_code_url, storeData.table_number); // Hide error message if previously shown document.getElementById('gonje-card-error-message').style.display = 'none'; } else { throw new Error(data.error || 'Failed to fetch store details'); } }) .catch(error => { console.error('Error:', error); // Display error message to the user const errorMessage = document.getElementById('gonje-card-error-message'); const errorText = document.getElementById('gonje-card-error-text'); errorText.textContent = error.message; errorMessage.style.display = 'block'; }); </script> </body> </html>";} 0 895 1 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Gonje Store Card
580 248 a:1:{s:7:"content";s:342:"<script>// Find all span elements with both classes // Find all span elements with both classes const elements = document.querySelectorAll('span.ty-icon.ty-icon-short-list'); // Loop through each found element and apply the style elements.forEach(element => { element.style.top = '-20px'; element.style.background = 'none'; }); </script>";} 0 908 1 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Script to target sorting icon on product page and restyle
803 389 a:1:{s:5:"items";a:2:{s:7:"filling";s:17:"products_under_50";s:5:"limit";s:2:"10";}} 0 1349 blocks/wrappers/sidebox_important.tpl product-scroller-div 1 A products a:11:{s:8:"template";s:37:"blocks/products/products_scroller.tpl";s:10:"show_price";s:1:"Y";s:17:"enable_quick_view";s:1:"N";s:24:"not_scroll_automatically";s:1:"N";s:15:"scroll_per_page";s:1:"N";s:5:"speed";s:3:"400";s:11:"pause_delay";s:1:"3";s:13:"item_quantity";s:1:"5";s:15:"thumbnail_width";s:2:"80";s:18:"outside_navigation";s:1:"Y";s:23:"hide_add_to_cart_button";s:1:"N";} 0 1 en Product Under $50
802 10 0 902 2 A breadcrumbs a:1:{s:8:"template";s:22:"common/breadcrumbs.tpl";} 0 1 en Breadcrumbs
780 13 a:1:{s:7:"content";s:1004:"<div class="ty-social-link-block"><h3 class="ty-social-link__title" >{__("get_social")}</h3> <div class="ty-social-link facebook"> <a href="https://web.facebook.com/p/Gonje-100071509825420/?_rdc=1&_rdr"><span class="ty-icon ty-icon-facebook"></span>Facebook &nbsp; </a> </div> <div class="ty-social-link"> <a href="https://www.tiktok.com/@gonjeapp?_t=ZS-8srMJxBImeY&_r=1"><img src="https://backendapi.gonje.com/public/tiktok-logo.png" /></span>&nbsp; Tiktok &nbsp; </a> </div> <div class="ty-social-link instagram"> <a href="https://www.instagram.com/gonjeapp"><span class="ty-icon ty-icon-instagram"></span>Instagram &nbsp; </a> </div> <!-- <div class="ty-social-link twitter"> <a href="https://www.x.com/"><img src="https://backendapi.gonje.com/public/twitter-x-logo.png" /></span>X</a></div> --> <div class="ty-social-link youtube"> <a href="https://www.youtube.com/@gonjeapp"><span class="ty-icon ty-icon-youtube"></span>Youtube &nbsp; </a> </div></div> ";} 0 1299 2 A safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 en Social links
806 30 a:1:{s:5:"items";a:2:{s:7:"filling";s:8:"manually";s:8:"item_ids";s:0:"";}} 0 1344 2 A product_filters a:1:{s:8:"template";s:48:"blocks/product_filters/for_category/original.tpl";} 0 1 en Product filters
568 125 a:1:{s:4:"text";s:0:"";} 0 887 top-languages 2 D languages a:3:{s:8:"template";s:20:"blocks/languages.tpl";s:6:"format";s:4:"name";s:14:"dropdown_limit";s:2:"10";} 0 1 en Languages
573 218 a:1:{s:7:"content";s:4797:"<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>QR Code Generator</title> <style> .gonje-qr-container-lg { margin-top: 20px; cursor: pointer; text-align: center; display: none; /* Initially hidden */ } .gonje-qr-overlay-lg { display: none; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.8); justify-content: center; align-items: center; text-align: center; z-index: 1000; } .gonje-qr-overlay-lg canvas { max-width: 90%; max-height: 90%; text-align: center; } .gonje-qr-overlay-buttons-lg { margin-top: 10px; text-align: center; } .gonje-qr-button-lg { padding: 10px 20px; font-size: 16px; cursor: pointer; margin: 5px; border-radius: 10px; background-color: #70ab4b; color: #ffffff; } .center-text-lg { text-align: center; display: none; /* Initially hidden */ } /* Display the QR code container only on screens larger than 768px */ @media (min-width: 769px) { .gonje-qr-container-lg, .center-text-lg { display: block; } } </style> </head> <body> <div class="center-text-lg"><h4>Click here to get QR code</h4></div> <div class="gonje-qr-container-lg"></div> <div class="gonje-qr-overlay-lg"> <div> <canvas class="gonje-qr-fullscreen-canvas-lg"></canvas> <br> <div class="gonje-qr-overlay-buttons-lg"> <button class="gonje-qr-button-lg gonje-qr-print-btn-lg">Print</button> <button class="gonje-qr-button-lg gonje-qr-download-btn-lg">Download</button> <button class="gonje-qr-button-lg gonje-qr-close-btn-lg">Close</button> </div> </div> </div> <script src="https://cdn.jsdelivr.net/npm/qrcode/build/qrcode.min.js"></script> <script> const qrCodeContainerLg = document.querySelector('.gonje-qr-container-lg'); const overlayLg = document.querySelector('.gonje-qr-overlay-lg'); const fullscreenCanvasLg = document.querySelector('.gonje-qr-fullscreen-canvas-lg'); const printBtnLg = document.querySelector('.gonje-qr-print-btn-lg'); const downloadBtnLg = document.querySelector('.gonje-qr-download-btn-lg'); const closeBtnLg = document.querySelector('.gonje-qr-close-btn-lg'); // Extract the current page URL const urlLg = window.location.href; // Generate QR code only if the screen is larger than mobile if (window.innerWidth > 768) { QRCode.toCanvas(urlLg, { errorCorrectionLevel: 'H', width: 200, }, (error, canvas) => { if (error) { console.error(error); alert('Failed to generate QR code'); } else { qrCodeContainerLg.appendChild(canvas); // Add click event to enlarge QR code canvas.addEventListener('click', () => { const ctxLg = fullscreenCanvasLg.getContext('2d'); fullscreenCanvasLg.width = canvas.width * 3; fullscreenCanvasLg.height = canvas.height * 3; ctxLg.drawImage(canvas, 0, 0, fullscreenCanvasLg.width, fullscreenCanvasLg.height); overlayLg.style.display = 'flex'; }); } }); } // Close the overlay closeBtnLg.addEventListener('click', () => { overlayLg.style.display = 'none'; }); // Print the QR code printBtnLg.addEventListener('click', () => { const printWindowLg = window.open('', '_blank'); printWindowLg.document.write('<html><body><img src="' + fullscreenCanvasLg.toDataURL() + '" style="width:100%"></body></html>'); printWindowLg.document.close(); printWindowLg.print(); }); // Download the QR code downloadBtnLg.addEventListener('click', () => { const linkLg = document.createElement('a'); linkLg.href = fullscreenCanvasLg.toDataURL(); linkLg.download = 'qrcode.png'; linkLg.click(); }); </script> </body> </html>";} 0 899 2 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en QR Code for Vendor
572 220 a:1:{s:7:"content";s:1349:"<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>WhatsApp Share Button</title> <style> .whatsapp-button { display: inline-flex; align-items: center; background-color: #25D366; color: white; border: none; padding: 10px 30px; font-size: 16px; font-weight: bold; cursor: pointer; border-radius: 5px; text-decoration: none; transition: background 0.3s; } .whatsapp-button:hover { background-color: #1EBE5D; } .whatsapp-button img { width: 20px; height: 20px; margin-right: 8px; } </style> </head> <body> <br /> <button class="whatsapp-button" onclick="shareOnWhatsApp()"> <img src="https://upload.wikimedia.org/wikipedia/commons/6/6b/WhatsApp.svg" alt="WhatsApp Logo"> Share on WhatsApp </button> <script> function shareOnWhatsApp() { var pageUrl = encodeURIComponent(window.location.href); var whatsappUrl = "https://api.whatsapp.com/send?text=" + pageUrl; window.open(whatsappUrl, "_blank"); } </script> </body> </html> ";} 0 896 2 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Share store link on whatsapp
790 247 a:1:{s:7:"content";s:2945:"<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Back to Top Widget</title> <style> .back-to-top { position: fixed; bottom: 250px; right: 30px; width: 50px; height: 50px; background-color: rgba(74, 107, 255, 0.85); /* Added transparency */ border-radius: 50%; display: flex; justify-content: center; align-items: center; cursor: pointer; box-shadow: 0 4px 12px rgba(74, 107, 255, 0.3); transition: all 0.3s ease; opacity: 0; visibility: hidden; transform: translateY(20px); z-index: 1000; backdrop-filter: blur(2px); /* Adds a subtle blur effect to elements behind */ border: 1px solid rgba(255, 255, 255, 0.2); /* Subtle border */ } .back-to-top.active { opacity: 0.85; /* Matches the background transparency */ visibility: visible; transform: translateY(0); } .back-to-top:hover { background-color: rgba(58, 86, 212, 0.9); /* Slightly less transparent on hover */ box-shadow: 0 6px 16px rgba(74, 107, 255, 0.4); transform: translateY(-3px); opacity: 1; /* Fully opaque on hover */ } .back-to-top::after { content: ""; width: 16px; height: 16px; border-top: 3px solid #fff; border-right: 3px solid #fff; transform: rotate(-45deg); margin-top: 6px; } @media (max-width: 768px) { .back-to-top { width: 44px; height: 44px; bottom: 250px; right: 20px; } } </style> </head> <body> <!-- Back to Top Widget --> <div class="back-to-top" id="backToTop"></div> <script> document.addEventListener('DOMContentLoaded', function() { const backToTopButton = document.getElementById('backToTop'); // Show/hide the button based on scroll position window.addEventListener('scroll', function() { if (window.pageYOffset > 300) { backToTopButton.classList.add('active'); } else { backToTopButton.classList.remove('active'); } }); // Smooth scroll to top when clicked backToTopButton.addEventListener('click', function(e) { e.preventDefault(); window.scrollTo({ top: 0, behavior: 'smooth' }); }); }); </script> </body> </html>";} 0 1308 2 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Scroll Widget HTML
803 384 a:1:{s:5:"items";a:2:{s:7:"filling";s:15:"vendor_products";s:5:"limit";s:1:"6";}} 0 1346 blocks/wrappers/sidebox_important.tpl product-scroller-div 2 A products a:11:{s:8:"template";s:37:"blocks/products/products_scroller.tpl";s:10:"show_price";s:1:"Y";s:17:"enable_quick_view";s:1:"N";s:24:"not_scroll_automatically";s:1:"N";s:15:"scroll_per_page";s:1:"N";s:5:"speed";s:3:"400";s:11:"pause_delay";s:1:"3";s:13:"item_quantity";s:1:"5";s:15:"thumbnail_width";s:2:"80";s:18:"outside_navigation";s:1:"Y";s:23:"hide_add_to_cart_button";s:1:"N";} 0 1 en Bulk Boxes
568 2 a:1:{s:4:"text";s:0:"";} 0 888 top-currencies 3 A currencies a:3:{s:8:"template";s:21:"blocks/currencies.tpl";s:6:"format";s:6:"symbol";s:14:"dropdown_limit";s:1:"3";} 0 1 en Currencies
803 203 a:1:{s:7:"content";s:434:"<!--Start of Tawk.to Script--> <script type="text/javascript"> var Tawk_API=Tawk_API||{}, Tawk_LoadStart=new Date(); (function(){ var s1=document.createElement("script"),s0=document.getElementsByTagName("script")[0]; s1.async=true; s1.src='https://embed.tawk.to/6582623e07843602b803d081/1hi2kvi4u'; s1.charset='UTF-8'; s1.setAttribute('crossorigin','*'); s0.parentNode.insertBefore(s1,s0); })(); </script> <!--End of Tawk.to Script-->";} 0 907 3 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Tawkto Block
790 248 a:1:{s:7:"content";s:342:"<script>// Find all span elements with both classes // Find all span elements with both classes const elements = document.querySelectorAll('span.ty-icon.ty-icon-short-list'); // Loop through each found element and apply the style elements.forEach(element => { element.style.top = '-20px'; element.style.background = 'none'; }); </script>";} 0 1309 3 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Script to target sorting icon on product page and restyle
790 236 a:1:{s:7:"content";s:890:"// Find the button by its name attribute const addToCartButton = document.querySelector('button[name="dispatch[checkout.add..8]"]'); // Function to replace text in the specified classes function replaceTextInClasses() { const elements = document.querySelectorAll('.ty-minicart-title, .ty-hand'); elements.forEach(element => { element.textContent = ''; }); console.log('Text replaced in .ty-minicart-title and .ty-hand'); } // Add click event listener to the button if (addToCartButton) { addToCartButton.addEventListener('click', function(event) { // Optional: Prevent default button behavior if needed // event.preventDefault(); // Execute the text replacement replaceTextInClasses(); // Optional: Add a delay if the content appears dynamically // setTimeout(replaceTextInClasses, 1000); }); } else { console.log('Button not found'); }";} 0 1310 4 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Script to clear cart text after adding item
803 335 a:1:{s:7:"content";s:1850:"<style> .popup { position: fixed; top: 0; left: 0; width: 100vw; height: 100vh; background: rgba(0,0,0,0.6); display: flex; align-items: center; justify-content: center; z-index: 9999; } .popup-content { background: white; padding: 30px 10px; border-radius: 12px; text-align: center; box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); position: relative; } h3{ font-size:20px!important; margin-top:0px!important; margin-bottom:20px!important; } .option-button { display: inline-block; margin: 5px; padding: 12px 20px; border: 2px solid #ccc; border-radius: 8px; cursor: pointer; font-weight: bold; transition: all 0.3s ease; } .option-button.active { background-color: #007bff; color: white; border-color: #007bff; } input[type="radio"] { display: none; } .close-btn { position: absolute; top: 10px; right: 15px; font-size: 20px; cursor: pointer; color: #888; } .submit-btn { margin-top: 20px; padding: 10px 20px; background: green; color: white; border: none; border-radius: 6px; cursor: pointer; display: none; } </style> </head> <body> <div class="hidden" id="user_selection_box"> <div class="popup" id="popup"> <div class="popup-content"> <h3>Select Order Type</h3> <label class="option-button user-selection dine-in" for="dinein" id="label-dinein">Dine In</label> <label class="option-button user-selection delivery" for="delivery" id="label-delivery">Delivery</label> <label class="option-button user-selection pickup" for="pickup" id="label-pickup">Pickup</label> </div> </div> </div> ";} 0 1138 4 A safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 en select-popup
790 237 a:1:{s:7:"content";s:569:"<script> // Wait for the DOM to be fully loaded document.addEventListener('DOMContentLoaded', function() { // Find all elements with the class 'ty-minicart-title' var minicartTitles = document.querySelectorAll('.ty-minicart-title'); // Loop through each element found minicartTitles.forEach(function(element) { // Add 10 &nbsp; to the element's content element.innerHTML = '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;' + element.innerHTML; // Set the display to none element.style.display = 'none'; }); }); </script>";} 0 1311 5 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Replace title with non breaking space in cart content
803 391 0 1351 blocks/wrappers/sidebox_important.tpl product-scroller-div 5 A sg_vendor_extra_list_block a:1:{s:8:"template";s:31:"blocks/sg_vendor_extra_list.tpl";} 0 1 en Other Snacks
790 239 a:1:{s:7:"content";s:494:"<script> // Wait for the DOM to be fully loaded document.addEventListener('DOMContentLoaded', function() { // Find the element with both classes const emptyCartElement = document.querySelector('.ty-cart-items__empty.ty-center'); // If the element exists, insert the text if (emptyCartElement) { emptyCartElement.textContent = 'The cart is empty'; } else { console.log('Element with class "ty-cart-items__empty ty-center" not found'); } }); </script>";} 0 1312 6 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Add cart is empty text
790 240 a:1:{s:7:"content";s:1746:"<script> (function(_, $) { // Visual feedback function function flashCounter() { var $counter = $('#realtime_cart_counter'); $counter.addClass('update-flash'); setTimeout(function() { $counter.removeClass('update-flash'); }, 300); } // Function to fetch the latest cart data from the server function updateCartCount() { $.ceAjax('request', fn_url('checkout.cart'), { method: 'POST', callback: function(data) { if (data.cart_amount !== undefined) { $('#realtime_cart_counter').text(data.cart_amount); flashCounter(); } } }); } // 1. TRACK ALL ADD TO CART BUTTONS $(document).on('click', '[id^="button_cart_"], .ty-btn__add-to-cart', function(e) { updateCartCount(); }); // 2. TRACK ALL REMOVE ITEM LINKS $(document).on('click', 'a[href*="checkout.delete"], a[href*="cart.delete"], a[href*="wishlist.delete"]', function(e) { updateCartCount(); }); // 3. HANDLE AJAX RESPONSE EVENTS $.ceEvent('on', 'ce.ajaxdone', function(response) { if (response.cart_amount !== undefined) { $('#realtime_cart_counter').text(response.cart_amount); flashCounter(); } }); // 4. HANDLE CART CHANGES (e.g., quantity updates) $.ceEvent('on', 'ce.cart.changed', function(data) { if (data.amount !== undefined) { $('#realtime_cart_counter').text(data.amount); flashCounter(); } }); // 5. INITIAL CART COUNT UPDATE ON PAGE LOAD $(document).ready(function() { updateCartCount(); }); })(Tygh, Tygh.$); </script>";} 0 1313 7 D safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 en Cart count tpl script
790 242 a:1:{s:7:"content";s:3195:"<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Cart Indicator</title> <style> /* Base styles */ .ty-dropdown-box { } /* Cart icon styles */ .ty-icon.ty-icon-cart.ty-minicart__icon.filled { display: inline-block; width: 40px; height: 40px; background-color: #f7f5f0; margin: 10px; position: relative; } /* Green dot indicator */ .ty-icon.ty-icon-cart.ty-minicart__icon.filled.has-indicator::after { content: ''; position: absolute; top: -5px; right: -5px; width: 12px; height: 12px; background-color: #2ecc71; border-radius: 50%; border: 2px solid white; z-index: 10; } /* Button styles */ .ty-btn__add-to-cart { } .ty-btn__add-to-cart:hover { } </style> </head> <body> <script> document.addEventListener('DOMContentLoaded', function() { const addToCartButton = document.querySelector('.ty-btn__add-to-cart'); function containsCartText(element) { const textContent = element.textContent || element.innerText; return textContent.toLowerCase().includes('cart'); } function getTargetIcons() { const allDropdowns = document.querySelectorAll('.ty-dropdown-box'); const targetIcons = []; allDropdowns.forEach(dropdown => { if (containsCartText(dropdown)) { const icon = dropdown.querySelector('.ty-icon.ty-icon-cart.ty-minicart__icon.filled'); if (icon) { targetIcons.push({ icon: icon, container: dropdown }); } } }); return targetIcons; } // Add green dot when clicking the button addToCartButton.addEventListener('click', function() { const targetIcons = getTargetIcons(); targetIcons.forEach(item => { item.icon.classList.add('has-indicator'); }); }); // Remove green dot when clicking the container document.addEventListener('click', function(e) { const dropdown = e.target.closest('.ty-dropdown-box'); if (dropdown && containsCartText(dropdown)) { const icon = dropdown.querySelector('.ty-icon.ty-icon-cart.ty-minicart__icon.filled'); if (icon) { icon.classList.remove('has-indicator'); } } }); }); </script> </body> </html>";} 0 1314 8 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Cart Update Indicator
790 243 a:1:{s:7:"content";s:861:"<script> (function() { // Function to hide the error message const hideCountryError = () => { const notifications = document.querySelectorAll('.cm-notification-content.notification-content.alert-error'); notifications.forEach(notification => { if (notification.textContent.includes("The 'Country' field is required.")) { notification.style.display = 'none'; // Hide it // notification.remove(); // Or remove it completely } }); }; // Run immediately when the script loads hideCountryError(); // Set up a MutationObserver to detect dynamically loaded errors const observer = new MutationObserver(hideCountryError); observer.observe(document.body, { childList: true, subtree: true }); })(); </script>";} 0 1315 9 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Remove country required notification
790 244 a:1:{s:7:"content";s:2123:"<script> // Function to fetch country from IPinfo and update both select and flag function setCountryBasedOnIP() { const selectElement = document.getElementById('litecheckout_country'); const flagSpan = document.querySelector('.ty-icon.ty-flag.ty-select-block__a-flag'); if (!selectElement || !flagSpan) { console.error('Required elements not found'); return; } // Fetch country information from IPinfo fetch('https://ipinfo.io/json?token=801609ba6b01eb') .then(response => response.json()) .then(data => { const countryCode = data.country; // Get the 2-letter country code if (!countryCode) { console.error('Could not determine country from IP'); return; } // Update the select dropdown const optionToSelect = selectElement.querySelector(`option[value="${countryCode}"]`); if (optionToSelect) { optionToSelect.selected = true; // Update the flag span // First remove all existing flag classes flagSpan.className = flagSpan.className.replace(/\bty-flag-\w+\b/g, ''); // Add the new flag class flagSpan.classList.add(`ty-flag-${countryCode.toLowerCase()}`); // Trigger change event const event = new Event('change'); selectElement.dispatchEvent(event); console.log(`Country set to ${optionToSelect.textContent} (${countryCode})`); } else { console.warn(`No option found for country code: ${countryCode}`); } }) .catch(error => { console.error('Error fetching IP info:', error); }); } // Run when page loads document.addEventListener('DOMContentLoaded', setCountryBasedOnIP); // Also handle dynamic loading const observer = new MutationObserver(() => { if (document.getElementById('litecheckout_country') && document.querySelector('.ty-icon.ty-flag.ty-select-block__a-flag')) { setCountryBasedOnIP(); observer.disconnect(); } }); observer.observe(document.body, { childList: true, subtree: true }); </script>";} 0 1316 10 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Target and autofill country input field
790 19 0 1317 11 D template a:1:{s:8:"template";s:41:"blocks/static_templates/payment_icons.tpl";} 0 1 en Payment icons
790 221 a:1:{s:7:"content";s:475:"<script> function hideNotifications() { document.querySelectorAll(".notification-content").forEach(function (element) { element.style.display = "none"; }); } // Run once on initial load setTimeout(hideNotifications, 3000); // Set up MutationObserver to handle AJAX-loaded elements const observer = new MutationObserver(function (mutations) { hideNotifications(); }); observer.observe(document.body, { childList: true, subtree: true, }); </script>";} 0 1318 12 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Notification timer control
790 234 a:1:{s:7:"content";s:721:"<script> document.addEventListener('DOMContentLoaded', function() { // Find all elements with the specified classes const elements = document.querySelectorAll('.ty-minicart-title.ty-hand, .ty-block'); // Loop through each element found elements.forEach(element => { // Clear the existing text content and add &nbsp; with a dropdown icon element.innerHTML = '&nbsp;<span class="dropdown-icon">▼</span>'; // Style the dropdown icon for mobile const dropdownIcon = element.querySelector('.dropdown-icon'); dropdownIcon.style.fontSize = '8px'; // Mobile-friendly size dropdownIcon.style.verticalAlign = 'middle'; dropdownIcon.style.display = 'none'; }); }); </script>";} 0 1319 13 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Remodel and remove text from cart
790 235 a:1:{s:7:"content";s:909:"<script> // Find the button by its name attribute const addToCartButton = document.querySelector('button[name="dispatch[checkout.add..8]"]'); // Function to replace text in the specified classes function replaceTextInClasses() { const elements = document.querySelectorAll('.ty-minicart-title, .ty-hand'); elements.forEach(element => { element.textContent = ''; }); console.log('Text replaced in .ty-minicart-title and .ty-hand'); } // Add click event listener to the button if (addToCartButton) { addToCartButton.addEventListener('click', function(event) { // Optional: Prevent default button behavior if needed // event.preventDefault(); // Execute the text replacement replaceTextInClasses(); // Optional: Add a delay if the content appears dynamically // setTimeout(replaceTextInClasses, 1000); }); } else { console.log('Button not found'); } </script>";} 0 1320 14 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Replace cart title with empty string
790 245 a:1:{s:7:"content";s:619:"<script> const shopNowLink = Array.from(document.querySelectorAll('a')).find(a => a.textContent.trim() === 'Shop now' && a.href === 'https://marketplace.gonje.com/fulfilment-by-gonje/' ); if (shopNowLink) { // Add the onclick attribute shopNowLink.setAttribute('onclick', "document.getElementById('mod-sn-modal').style.display = 'flex'"); // Remove the href attribute to disable linking shopNowLink.removeAttribute('href'); // Prevent default behavior if someone tries to click it shopNowLink.addEventListener('click', (e) => { e.preventDefault(); }); } </script>";} 0 1321 15 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Script for shop now vendor location link
790 233 a:1:{s:7:"content";s:946:"<script> // Wait for DOM to be fully loaded before executing document.addEventListener('DOMContentLoaded', function() { try { // Hide elements with any attribute containing 'wk_aramex_delivery_datetime' const elementsToHide = document.querySelectorAll('[id*="wk_aramex_delivery_datetime"], [name*="wk_aramex_delivery_datetime"], [class*="wk_aramex_delivery_datetime"]'); elementsToHide.forEach(element => { if (element && element.style) { element.style.display = 'none'; } }); // Hide labels containing these elements document.querySelectorAll('label').forEach(label => { if (label && label.innerHTML && label.innerHTML.includes('wk_aramex_delivery_datetime')) { label.style.display = 'none'; } }); } catch (error) { console.error('Error hiding elements:', error); } }); </script>";} 0 1322 16 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 en Hide Webkul Date and Time