PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC ]); } catch (Exception $e) { die("DB connection failed: " . $e->getMessage() . "\n"); } $targetPages = [8, 2]; foreach ($targetPages as $pageId) { $stmt = $pdo->prepare("SELECT id, page FROM hla_shopro_decorate_page WHERE id = ?"); $stmt->execute([$pageId]); $row = $stmt->fetch(); if (!$row) { echo "Page $pageId not found.\n"; continue; } $pageData = json_decode($row['page'], true); if (!is_array($pageData) || !isset($pageData['data']) || !is_array($pageData['data'])) { echo "Invalid structure in page $pageId.\n"; continue; } $updated = false; foreach ($pageData['data'] as &$comp) { if (isset($comp['type']) && $comp['type'] === 'menuButton') { echo "Found menuButton in page $pageId.\n"; $comp['data']['layout'] = 2; // 纯图标模式 $comp['data']['iconSize'] = 120; // 放大图标至 120rpx // 确保 list 中的每个项均指向 _v2.png 高清大图,并清空 title.text $listConfig = [ ['src' => '/uploads/decorate/menu_city_center_v2.png', 'url' => '/pages/public/richtext?id=5&title=%E5%B8%82%E7%BA%A7%E8%BF%90%E8%90%A5%E4%B8%AD%E5%BF%83'], ['src' => '/uploads/decorate/menu_city_partner_v2.png', 'url' => '/pages/public/richtext?id=5&title=%E5%B8%82%E7%BA%A7%E5%90%88%E4%BC%99%E4%BA%BA'], ['src' => '/uploads/decorate/menu_province_center_v2.png', 'url' => '/pages/public/richtext?id=5&title=%E7%9C%81%E7%BA%A7%E6%9C%8D%E5%8A%A1%E4%B8%AD%E5%BF%83'], ['src' => '/uploads/decorate/menu_province_partner_v2.png', 'url' => '/pages/public/richtext?id=5&title=%E7%9C%81%E7%BA%A7%E5%90%88%E4%BC%99%E4%BA%BA'], ['src' => '/uploads/decorate/menu_region_branch_v2.png', 'url' => '/pages/public/richtext?id=5&title=%E5%A4%A7%E5%8C%BA%E5%88%86%E5%85%AC%E5%8F%B8'], ]; if (isset($comp['data']['list']) && is_array($comp['data']['list'])) { foreach ($comp['data']['list'] as $idx => &$item) { if (isset($listConfig[$idx])) { $item['src'] = $listConfig[$idx]['src']; $item['url'] = $listConfig[$idx]['url']; $item['title']['text'] = ''; } } } $updated = true; } } if ($updated) { $newJson = json_encode($pageData, JSON_UNESCAPED_UNICODE); $updateStmt = $pdo->prepare("UPDATE hla_shopro_decorate_page SET page = ? WHERE id = ?"); $updateStmt->execute([$newJson, $pageId]); echo "Page $pageId successfully updated to HD v2 icons & iconSize: 120!\n"; } } // 刷新 Redis 缓存(如果有) try { $redis = new Redis(); if ($redis->connect('127.0.0.1', 6379)) { // 清理商城相关的装修缓存 $keys = $redis->keys('*shopro*decorate*'); if (!empty($keys)) { $redis->del($keys); echo "Cleared " . count($keys) . " decorate redis cache keys.\n"; } } } catch (Exception $e) { echo "Redis notice: " . $e->getMessage() . "\n"; } echo "All Done.\n";