#1 Life Journey
  • Snippets 1
  • Snippets 1
  • Snippets 1
            ##Run this in your browser console to highlight the overflowing element:
        
            document.querySelectorAll('*').forEach(el => {
              if (el.offsetWidth > document.documentElement.offsetWidth) {
                console.log('Overflow element:', el);
                el.style.outline = '3px solid red';
              }
            });
        
 
            // # password hash
            // Replace 'admin123' with the password you want for your admin
            echo password_hash('admin123', PASSWORD_DEFAULT); 
        
    // -------------------------------
    // #1 Cart Sidebar controls
    // -------------------------------
    cartIcon.addEventListener('click', () => cartSidebar.classList.add('active'));
    closeCartBtn.addEventListener('click', () => cartSidebar.classList.remove('active'));
    // -------------------------------
    // #2 Cart Sidebar controls (auto)
    // -------------------------------
    function openCart() {
        if (cartSidebar) cartSidebar.classList.add('active');
    }

    function closeCart() {
        if (cartSidebar) cartSidebar.classList.remove('active');
    }

    if (cartIcon) cartIcon.addEventListener('click', openCart);
    if (closeCartBtn) closeCartBtn.addEventListener('click', closeCart);
//To prevent decreasing below 1 in frontend - cart
if (target.classList.contains('qty-btn') && target.dataset.action === 'decrease') {
    const qtyEl = target.nextElementSibling; // the number element
    const qty = parseInt(qtyEl.textContent);
    if (qty <= 1) return; // do nothing
}

//Create one shared function to return cart JSON:
function cartResponse() {
    return json_encode([
        'status' => 'success',
        'cart_count' => array_sum(array_column($_SESSION['cart'], 'qty')),
        'cart_html' => renderCart($_SESSION['cart'])
    ]);
}
//Then use:
echo cartResponse();
exit;

$cart = $_SESSION['cart'] ?? [];
$cartCount = array_sum(array_column($cart, 'qty'));

echo json_encode([
    'status'     => 'success',
    'cart_count'=> $cartCount,
    'cart_html' => renderCart($cart)
]);
exit;
//Your AJAX PHP files (add, update, remove) should return:
function updateCartUI(data) {

    // Sidebar items
    const sidebarItems = document.getElementById('cart-items');
    if (sidebarItems && data.cart_html) {
        sidebarItems.innerHTML = data.cart_html;
    }

    // Cart page table
    const cartTableBody = document.getElementById('cart-page-body');
    if (cartTableBody && data.cart_table_html) {
        cartTableBody.innerHTML = data.cart_table_html;
    }

    // Cart count
    const countEl = document.getElementById('cart-count');
    if (countEl && data.cart_count !== undefined) {
        countEl.textContent = data.cart_count;
    }
}

echo json_encode([
    'status' => 'success',
    'cart_count' => $cartCount,
    'cart_html' => renderCartSidebar($cart),
    'cart_table_html' => renderCartTable($cart)
]);
//app/helpers/cart_helper.php
function cartInit(): array {
    if (!isset($_SESSION['cart'])) {
        $_SESSION['cart'] = [];
    }
    return $_SESSION['cart'];
}

function cartTotalQty(array $cart): int {
    return array_sum(array_column($cart, 'qty'));
}

function cartTotalAmount(array $cart): float {
    $total = 0;
    foreach ($cart as $item) {
        $total += $item['price'] * $item['qty'];
    }
    return $total;
}

//update-cart.php
require_once '../app/helpers/cart_helper.php';
require_once '../app/helpers/cart_sidebar_helper.php';
require_once '../app/helpers/cart_page_helper.php';

$cart = cartInit();

echo json_encode([
    'status'           => 'success',
    'cart_count'       => cartTotalQty($cart),
    'sidebar_html'     => renderCartSidebar($cart),
    'cart_page_html'   => renderCartPage($cart)
]);
exit;

 
// IP Detect Function (PRO)
function getUserIp() {
    if (!empty($_SERVER['HTTP_CF_CONNECTING_IP'])) {
        return $_SERVER['HTTP_CF_CONNECTING_IP']; // Cloudflare
    }
    if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        return trim(explode(',', $_SERVER['HTTP_X_FORWARDED_FOR'])[0]);
    }
    return $_SERVER['REMOTE_ADDR'];
}

// তোমার IP (যেটা admin/extra menu দেখতে পারবে)
$myIp = '103.85.193.247'; 

// Current user IP
$userIp = getUserIp();

// True হলে admin menu দেখাবে
$isMe = ($userIp === $myIp);