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 (
    560, 561, 562, 731, 734, 740, 732, 735, 
    736, 737, 738, 739, 741, 733, 742, 743, 
    746, 747, 748, 749, 750, 751, 752, 753, 
    754, 755, 756
  ) 
  AND cscart_bm_blocks_descriptions.lang_code = 'de' 
ORDER BY 
  cscart_bm_snapping.order, 
  cscart_bm_snapping.block_id

Query time 0.00190

JSON explain

{
  "query_block": {
    "select_id": 1,
    "cost": 0.722003944,
    "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": 61,
              "cost": 0.0886276,
              "filtered": 100,
              "index_condition": "cscart_bm_snapping.grid_id in (560,561,562,731,734,740,732,735,736,737,738,739,741,733,742,743,746,747,748,749,750,751,752,753,754,755,756)"
            }
          }
        }
      },
      {
        "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": 61,
          "rows": 1,
          "cost": 0.05865684,
          "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": 61,
          "rows": 1,
          "cost": 0.05947604,
          "filtered": 100,
          "attached_condition": "cscart_bm_blocks_descriptions.lang_code = 'de'"
        }
      },
      {
        "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": 61,
          "rows": 1,
          "cost": 0.05965797,
          "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": 61,
          "rows": 1,
          "cost": 0.10880997,
          "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": 61,
          "rows": 5,
          "cost": 0.14858197,
          "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
754 4 0 1200 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 de My Account
753 5 0 1197 0 D template a:2:{s:8:"template";s:32:"blocks/static_templates/logo.tpl";s:11:"enable_link";s:1:"Y";} 0 1 de Logo
746 6 0 1192 0 D call_request a:1:{s:8:"template";s:44:"addons/call_requests/blocks/call_request.tpl";} 0 1 de Call Request
756 8 0 1205 hidden-desktop top-cart-content 0 D 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 de Cart content
755 8 0 1202 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 de Cart content
560 10 0 872 0 A breadcrumbs a:1:{s:8:"template";s:22:"common/breadcrumbs.tpl";} 0 1 de Breadcrumbs
561 11 0 873 blocks/wrappers/mainbox_general.tpl 0 A main 0 1 de Main Content
741 18 0 1170 0 A template a:1:{s:8:"template";s:37:"blocks/static_templates/copyright.tpl";} 0 1 de Copyright
562 47 0 875 0 A template a:1:{s:8:"template";s:40:"blocks/static_templates/profile_info.tpl";} 0 1 de Profile information
735 128 0 1164 blocks/wrappers/footer_general.tpl 0 D template a:1:{s:8:"template";s:39:"blocks/static_templates/quick_links.tpl";} 0 1 de My account
736 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 1166 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 de Quick Links
737 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 1167 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 de Customer Service
739 178 a:1:{s:7:"content";s:3542:"<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://www.gonje.com.au/aboutUs" style="font-weight: normal;>About Us</a></li> <li><a href=" https:="" www.gonje.com.au="" terms"="">Terms & Conditions</a></li> <li><a href="https://www.gonje.com.au/terms/#privacy" style="font-weight: normal;">Privacy Policy</a></li> <li><a href="https://www.gonje.com.au/terms/#refunds" style="font-weight: normal;">Refunds Policy</a></li> </ul> </div> <div> <h3>Customer Service</h3> <ul class="quick-links"> <li><a href="https://www.gonje.com.au/contactUs" style="font-weight: normal;">Help & Contact Us</a></li> <li><a href="https://www.gonje.com.au/faq" style="font-weight: normal;">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 – 1800 749 277<br> Email – info@onjegroup.com.au</p> </div> </div> </footer>";} 0 1169 0 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Gonje Footer
742 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 1188 0 D safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 de Smarty Bottom Nav
742 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 1245 0 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de HTML BOTTOM NAV
742 359 a:1:{s:7:"content";s:7297:"<!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 will complete in 10 seconds</div> <div class="gonje-loading-tip">Gonje Tip: Ordering in advance helps ensure you get the best delivery slots!</div> </div> </div> <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." ]; // Set loading duration to 10 seconds (10000 milliseconds) const loadingDuration = 10000; let progress = 0; let currentFact = 0; let secondsRemaining = 10; // Update countdown timer const countdownInterval = setInterval(() => { secondsRemaining--; if (secondsRemaining > 0) { countdownElement.textContent = `Loading will complete in ${secondsRemaining} second${secondsRemaining !== 1 ? 's' : ''}`; } else { countdownElement.textContent = "Loading complete!"; clearInterval(countdownInterval); } }, 1000); // Change fact every 5 seconds setInterval(() => { currentFact = (currentFact + 1) % facts.length; factElement.textContent = facts[currentFact]; }, 5000); // Calculate progress increment per interval const totalIntervals = loadingDuration / 300; const progressIncrement = 100 / totalIntervals; // Simulate loading progress const loadingInterval = setInterval(() => { progress += progressIncrement; if (progress >= 100) { progress = 100; clearInterval(loadingInterval); // Hide loading overlay when done setTimeout(() => { loadingOverlay.style.opacity = '0'; setTimeout(() => { loadingOverlay.style.display = 'none'; }, 500); }, 500); } progressBar.style.width = progress + '%'; }, 300); }); </script> </body> </html>";} 0 1246 0 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Gonje animated loader
742 360 a:1:{s:7:"content";s:67:"<style> .ty-pagination__selected { color: black; } </style>";} 0 1247 0 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de CUSTOM STYLES
742 361 a:1:{s:7:"content";s:5270:"<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: relative; 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: #000; 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); } @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; } } `; // 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); // 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'; // 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'; } else { banner.style.display = 'none'; } } } // Initialize the banner when DOM is loaded if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', function() { createPromoBanner(); }); } else { createPromoBanner(); } </script>";} 0 1249 0 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Nav Popup Script
742 365 a:1:{s:7:"content";s:6590:"<!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: 300px; right: 20px; width: 70px; height: 70px; background: linear-gradient(135deg, #0070ba, #005ea6); 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"> <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 ????</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 (USD)" 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> // Get DOM elements const donationWidget = document.getElementById("gonjeDonationsWidget"); 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"); </script> </body> </html>";} 0 1282 0 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Donations AMCF
742 368 a:1:{s:7:"content";s:23834:"<!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://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fiicons/fi@1.0.0/css/fi.min.css"> <style> /* Hamburger container – bottom-right gonje-camera-status-message */ .gonje-hamburger-btn { position: fixed; bottom: 200px; 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); } /* Widget buttons container */ .gonje-widgets-panel { position: fixed; bottom: 270px; right: 20px; display: flex; flex-direction: column; gap: 12px; z-index: 9998; opacity: 0; transform: translateY(20px); pointer-events: none; transition: all .3s ease; } .gonje-widgets-panel.show { opacity: 1; transform: translateY(0); pointer-events: auto; } /* Individual widget button */ .gonje-widget-btn { width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 22px; cursor: pointer; box-shadow: 0 4px 10px rgba(0,0,0,.2); transition: all .3s; position: relative; } .gonje-widget-btn:hover { transform: scale(1.1); background: #70AB4B !important; } .gonje-widget-camera { background: #4285f4; } .gonje-widget-support { background: linear-gradient(135deg, #28A745, #70ab4b); } .gonje-widget-sustainable { background: #2E8B57; } .gonje-widget-tooltip { position: absolute; right: 62px; top: 50%; transform: translateY(-50%); background: #333; color: #fff; padding: 6px 10px; border-radius: 4px; white-space: nowrap; font-size: 12px; opacity: 0; pointer-events: none; transition: opacity .2s; } .gonje-widget-btn:hover .gonje-widget-tooltip { opacity: 1; } /* Camera widget specific */ .gonje-camera-status-message { position: fixed; bottom: 200px; left: 20px; padding: 6px 12px; border-radius: 4px; font-size: 13px; background: rgba(0,0,0,.1); color: #333; max-width: 200px; transition: all .3s; } .gonje-camera-status-message.success { background: rgba(76,175,80,.2); color: #2e7d32; } .gonje-camera-status-message.error { background: rgba(244,67,54,.2); color: #c62828; } /* Sustainable modal specific */ .gonje-sustainable-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.7); z-index: 2000; 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; } } </style> </head> <body> <!-- ========== Hamburger Trigger ========== --> <div class="gonje-hamburger-btn" id="gonjeHamburgerBtn" aria-label="Toggle widgets" aria-expanded="false"> <div class="gonje-hamburger-bar"></div> <div class="gonje-hamburger-bar"></div> <div class="gonje-hamburger-bar"></div> </div> <!-- ========== Widget Buttons Panel ========== --> <div class="gonje-widgets-panel" id="gonjeWidgetsPanel"> <!-- Camera --> <div class="gonje-widget-btn gonje-widget-camera" id="gonjeWidgetCamera" aria-label="Camera / QR scanner"> <i class="fi fi-rr-camera"></i> <span class="gonje-widget-tooltip">Camera / QR scanner</span> </div> <!-- Support --> <div class="gonje-widget-btn gonje-widget-support" id="gonjeWidgetSupport" aria-label="Help & Support"> <i class="fas fa-headset"></i> <span class="gonje-widget-tooltip">Help & Support</span> </div> <!-- Sustainable --> <div class="gonje-widget-btn gonje-widget-sustainable" id="gonjeWidgetSustainable" aria-label="Sustainable packaging"> <i class="fas fa-leaf"></i> <span class="gonje-widget-tooltip">Sustainable packaging</span> </div> </div> <!-- ========== Camera Status Message ========== --> <div class="gonje-camera-status-message" id="gonjeCameraStatusMessage"></div> <!-- ========== Sustainable Modal ========== --> <div class="gonje-sustainable-modal" id="gonjeSustainableModal" aria-hidden="true"> <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" id="gonjeSustainableModalClose" aria-label="Close modal">×</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>100% recycled cardboard boxes</div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i>FSC-certified paper materials</div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i>Plant-based coatings</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>AI-optimized sizing</div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i>Soy-based inks</div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i>Reusable designs</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>Recycled paper padding</div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i>Starch-based cool packs</div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i>Compostable fiber trays</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>Plastic-free paper tape</div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i>Recyclable labels</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>Return discounts</div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i>Collapsible crates</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>Clear recycling guides</div> <div class="gonje-sustainable-practice-point"><i class="fas fa-check gonje-sustainable-point-icon"></i>Paper void fill</div> <div class="gonje-sustainable-impact-statement"><strong>Result:</strong> 89% proper recycling</div> </div> </div> </div> </div> </div> </div> <script> /* ========== Hamburger Toggle ========== */ const hamburgerBtn = document.getElementById('gonjeHamburgerBtn'); const widgetsPanel = document.getElementById('gonjeWidgetsPanel'); let panelOpen = false; hamburgerBtn.addEventListener('click', () => { panelOpen = !panelOpen; widgetsPanel.classList.toggle('show', panelOpen); hamburgerBtn.classList.toggle('open', panelOpen); hamburgerBtn.setAttribute('aria-expanded', panelOpen); }); /* ========== Camera Widget ========== */ const cameraBtn = document.getElementById('gonjeWidgetCamera'); const cameraStatus = document.getElementById('gonjeCameraStatusMessage'); cameraBtn.addEventListener('click', () => { 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', (e) => { if (e.target.files && e.target.files.length > 0) { const file = e.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'; } }); }); /* ========== Support Widget ========== */ const supportBtn = document.getElementById('gonjeWidgetSupport'); supportBtn.addEventListener('click', () => { window.location.href = 'https://marketplace.gonje.com/support'; }); /* ========== Sustainable Widget ========== */ const sustainableBtn = document.getElementById('gonjeWidgetSustainable'); const sustainableModal = document.getElementById('gonjeSustainableModal'); const sustainableModalClose = document.getElementById('gonjeSustainableModalClose'); sustainableBtn.addEventListener('click', () => { sustainableModal.style.display = 'block'; sustainableModal.setAttribute('aria-hidden', 'false'); document.body.style.overflow = 'hidden'; }); sustainableModalClose.addEventListener('click', closeSustainableModal); sustainableModal.addEventListener('click', (e) => { if (e.target === sustainableModal) closeSustainableModal(); }); document.addEventListener('keydown', (e) => { if (e.key === 'Escape' && sustainableModal.style.display === 'block') closeSustainableModal(); }); function closeSustainableModal() { sustainableModal.style.display = 'none'; sustainableModal.setAttribute('aria-hidden', 'true'); document.body.style.overflow = 'auto'; } </script> </body> </html>";} 0 1285 0 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Gonje Hub
753 393 a:1:{s:7:"content";s:700:"{** 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 1356 0 D safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 de modify blog for logo
756 394 a:1:{s:7:"content";s:54:"<style> .tygh-top-panel{ padding:unset; } </style>";} 0 1357 0 A safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 de Header style points
754 3 a:1:{s:4:"menu";s:1:"1";} 0 1201 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 de Quick links
738 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 1168 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 de About us
751 126 a:1:{s:5:"items";a:3:{s:7:"filling";s:13:"full_tree_cat";s:18:"parent_category_id";s:0:"";s:7:"sort_by";s:8:"position";}} 0 1194 1 D categories a:3:{s:8:"template";s:52:"blocks/categories/categories_dropdown_horizontal.tpl";s:30:"dropdown_second_level_elements";s:2:"12";s:29:"dropdown_third_level_elements";s:1:"6";} 0 1 de Main menu
735 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 1165 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 de Become a seller
742 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 1171 1 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Gonje Payment methods
756 190 a:1:{s:7:"content";s:1154:"<style> .marquee { width: 100%; overflow: hidden; background: linear-gradient(90deg, #ff6f61, #d5a6a1); color: white; padding: 10px; font-size: 24px; font-weight: bold; white-space: nowrap; box-shadow: 0 4px 6px rgba(0,0,0,0.1); } .marquee-content { display: inline-block; padding-left: 100%; animation: marquee 35s linear infinite; /* Increased duration to slow down */ } @keyframes marquee { from { transform: translateX(100%); } to { transform: translateX(-100%); } } </style> <div class="marquee"> <div class="marquee-content" style="color:#fff;font-size:20px;"> Welcome to Our Marketplace! Explore a wide range of fresh groceries, exclusive deals, and special offers just for you. Don’t miss out on our limited-time discounts and seasonal promotions. Shop now and enjoy the best quality products delivered right to your door! </div> </div>";} 0 1206 1 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Page Marquee Ad
561 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 874 1 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Tawkto Block
753 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 1198 1 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Notification timer control
753 2 a:1:{s:4:"text";s:0:"";} 0 1199 2 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 de Currencies
732 13 a:1:{s:7:"content";s:970:"<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"><span class="ty-icon ty-icon-youtube"></span>Youtube &nbsp; </a> </div></div> ";} 0 1163 2 A safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 de Social links
751 188 a:3:{s:5:"width";s:0:"";s:6:"height";s:0:"";s:5:"items";a:2:{s:7:"filling";s:8:"manually";s:8:"item_ids";s:5:"25,26";}} 0 1195 2 D banners a:3:{s:8:"template";s:34:"addons/banners/blocks/carousel.tpl";s:10:"navigation";s:1:"N";s:5:"delay";s:1:"5";} 0 1 de Hero Sliding Banner
755 238 a:1:{s:7:"content";s:1304:"{* File: themes/your_theme/templates/blocks/realtime_cart_count.tpl *} {* Unique classes/IDs to prevent conflicts *} {$cart_count = $cart.amount|default:$smarty.session.cart.amount|default:0} <style> .realtime-cart-count { position: relative; top: 25px; display: inline-block; z-index: 1000; } .realtime-cart-badge { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; background: #808080; border-radius: 50%; color: white; font-weight: bold; font-size: 14px; } </style> <div class="realtime-cart-count"> <span class="realtime-cart-badge" id="realtime_cart_counter"> {$cart_count} </span> </div> <script> (function(_, $) { // Update immediately when cart changes (add/remove) $.ceEvent('on', 'ce.cart.changed', function(data) { if (typeof data.amount !== 'undefined') { $('#realtime_cart_counter').text(data.amount); } }); // Handle edge cases (e.g., cart emptied via bulk action) $.ceEvent('on', 'ce.ajaxdone', function(response) { if (response.cart_amount === 0) { $('#realtime_cart_counter').text('0'); } }); })(Tygh, Tygh.$); </script>";} 0 1203 2 D safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 de Cart count block for new style
742 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 1172 2 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Scroll Widget HTML
751 173 a:1:{s:7:"content";s:63:"<img src="https://backendapi.gonje.com/public/home-banner.png">";} 0 1196 3 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Gonje Home Banner
755 241 a:1:{s:7:"content";s:1833:"<div class="realtime-cart-count"> <span class="realtime-cart-badge" id="realtime_cart_counter">0</span> </div> <style> .realtime-cart-count { position: relative; top: 25px; display: inline-block; z-index: 1000; } .realtime-cart-badge { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; background: #808080; border-radius: 50%; color: white; font-weight: bold; font-size: 14px; transition: all 0.3s ease; } .realtime-cart-badge.update-flash { transform: scale(1.3); background: #ff6b6b; } </style> <script> (function(_, $) { // Flash effect when the cart count updates function flashCounter() { var $counter = $('#realtime_cart_counter'); $counter.addClass('update-flash'); setTimeout(function() { $counter.removeClass('update-flash'); }, 300); } // Function to update the cart count function updateCartCount(newCount) { $('#realtime_cart_counter').text(newCount); flashCounter(); } // Listen for CS-Cart AJAX events (including the add-to-cart modal) $.ceEvent('on', 'ce.ajaxdone', function(response) { if (response.current_amount !== undefined) { updateCartCount(response.current_amount); // Update count with CS-Cart's own response data } }); // Update cart count on page load $(document).ready(function() { $.ceAjax('request', fn_url('checkout.cart'), { callback: function(data) { if (data.cart_amount !== undefined) { updateCartCount(data.cart_amount); } } }); }); })(Tygh, Tygh.$); </script> ";} 0 1204 3 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Cart count html block
742 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 1173 3 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Script to target sorting icon on product page and restyle
742 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 1174 4 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Script to clear cart text after adding item
742 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 1175 5 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Replace title with non breaking space in cart content
742 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 1176 6 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Add cart is empty text
742 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 1177 7 D safe_smarty_block a:1:{s:8:"template";s:28:"blocks/safe_smarty_block.tpl";} 0 1 de Cart count tpl script
742 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 1178 8 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Cart Update Indicator
742 243 a:1:{s:7:"content";s:842:"<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 1179 9 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Remove country required notification
742 244 a:1:{s:7:"content";s:2072:"<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 1180 10 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Target and autofill country input field
742 19 0 1181 11 D template a:1:{s:8:"template";s:41:"blocks/static_templates/payment_icons.tpl";} 0 1 de Payment icons
742 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 1182 12 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Notification timer control
742 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 1183 13 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Remodel and remove text from cart
742 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 1184 14 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Replace cart title with empty string
742 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 1185 15 D html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Script for shop now vendor location link
742 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 1187 16 A html_block a:1:{s:8:"template";s:21:"blocks/html_block.tpl";} 0 1 de Hide Webkul Date and Time